Определить по координатам точек, являются ли они вершинами параллелограмма - Pascal ABC

Формулировка задачи:

Доброго времени суток программисты! Вот такая задачка вызвала затруднение: С клавиатуры вводятся четыре пары координат точек в произвольном порядке(гарантируется, что они не лежат на одной прямой), определить являются ли эти точки вершинами параллелограмма. Подскажите пожалуйста с программой или с алгоритмом осуществления, заранее благодарен.

Код к задаче: «Определить по координатам точек, являются ли они вершинами параллелограмма - Pascal ABC»

textual
uses crt;
type point=record  //тип точка
           x,y:real;
           end;
const t=0.001;//точность сравнения вещественных чисел
var a,b,c,d:point;
begin
writeln('Введите координаты 4 точек, не лежащих на 1 прямой:');
readln(a.x,a.y,b.x,b.y,c.x,c.y,d.x,d.y);
//если прямые попарно вертикальны
if(((a.x=b.x)and(c.x=d.x)) or((a.x=c.x)and(b.x=d.x)) or((a.x=d.x)and(b.x=c.x))
//или угловые коэффициенты попарно равны
or((abs((a.y-b.y)/(a.x-b.x)-(c.y-d.y)/(c.x-d.x))<t))
or((abs((a.y-c.y)/(a.x-c.x)-(b.y-d.y)/(b.x-d.x))<t))
or((abs((a.y-d.y)/(a.x-d.x)-(b.y-c.y)/(b.x-c.x))<t)))
then write('Это вершины параллелограмма')
else write('Это не вершины параллелограмма')
end.

10   голосов, оценка 4.100 из 5


СОХРАНИТЬ ССЫЛКУ