Определить по координатам точек, являются ли они вершинами параллелограмма - 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.
Объяснение кода листинга программы
- Создается тип данных
point
, который представляет точку с координатами x и y. - Задаются переменные a, b, c и d типа point для хранения координат точек.
- Выводится сообщение для ввода координат 4 точек.
- Проверяется, являются ли прямые, соединяющие точки, вертикальными или горизонтальными. Если это так, то выводится сообщение
Это вершины параллелограмма
. - Если прямые не являются ни вертикальными, ни горизонтальными, то проверяется, равны ли угловые коэффициенты попарно. Если это так, то выводится сообщение
Это вершины параллелограмма
. - Если ни одно из условий не выполняется, то выводится сообщение
Это не вершины параллелограмма
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д