Type
Point = record
x: integer;
y: integer;
end;
Line = record
P: Point;
Q: Point;
Len: double;
end;
procedure LineLength(var pL: Line);
// Вычисляет и сохраняет значение длины отрезка
begin
pL.Len := sqrt(sqr(pL.Q.x - pL.P.x) + sqr(pL.Q.y - pL.P.y))
end;
var
A, B, C, D: Point;
AB, AC, AD, BC, BD, CD: Line;
begin
writeln('Введите попарно координаты четырех точек');
readln(A.x, A.y, B.x, B.y, C.x, C.y, D.x, D.y);
with AB do
begin
P.x := A.x; P.y := A.y; Q.x := B.x; Q.y := B.y; LineLength(AB);
end;
with AC do
begin
P.x := A.x; P.y := A.y; Q.x := C.x; Q.y := C.y; LineLength(AC);
end;
with AD do
begin
P.x := A.x; P.y := A.y; Q.x := D.x; Q.y := D.y; LineLength(AD);
end;
with BC do
begin
P.x := B.x; P.y := B.y; Q.x := C.x; Q.y := C.y; LineLength(BC);
end;
with BD do
begin
P.x := B.x; P.y := B.y; Q.x := D.x; Q.y := D.y; LineLength(BD);
end;
with CD do
begin
P.x := C.x; P.y := C.y; Q.x := D.x; Q.y := D.y; LineLength(CD);
end;
writeln(AB.Len, ' ', AC.Len, ' ', AD.Len, ' ', BC.Len, ' ', BD.Len, ' ', CD.Len);
if AB.Len = CD.Len then begin
// AB и CD - претенденты
if AC.Len = BD.Len then // Нашли ABDC
writeln('Параллелограмм ABDC')
else
if AD.Len = BC.Len then // Нашли ABCD
writeln('Параллелограмм ABCD')
end
else
if AC.Len = BD.Len then begin
// AC и BD - претенденты
if AD.Len = BC.Len then // Нашли ACBD
writeln('Параллелограмм ACBD')
else
if AB.Len = CD.Len then // Нашли ABCD
writeln('Параллелограмм ACDB')
end
else
if AD.Len = BC.Len then begin
// AD и ВС - претенденты
if AC.Len = BD.Len then // Нашли ADBC
writeln('Параллелограмм ADBC')
else
if AB.Len = CD.Len then // Нашли ADCB
writeln('Параллелограмм ADCB')
end
else
writeln('Параллелограмм построить невозможно');
end.
Контрольный прогон:
Введите попарно координаты четырех точек
5 1 10 3 8 9 3 6
5.3851648071345 8.54400374531753 5.3851648071345 6.32455532033676 7.61577310586391 5.8309518948453
Параллелограмм построить невозможно
Введите попарно координаты четырех точек
5 1 10 4 8 9 3 6
5.8309518948453 8.54400374531753 5.3851648071345 5.3851648071345 7.28010988928052 5.8309518948453
Параллелограмм ABCD
Введите попарно координаты четырех точек
5 1 8 9 10 4 3 6
8.54400374531753 5.8309518948453 5.3851648071345 5.3851648071345 5.8309518948453 7.28010988928052
Параллелограмм ACBD