Написать программу в паскаль вычисляющую, какой их двух отрезков больше. отрезки заданы координатами своих концов.

maximbelov00 maximbelov00    1   09.07.2019 07:30    0

Ответы
mkim7119 mkim7119  30.08.2020 14:55
Var x1a,y1a,x2a,y2a,L1,L2,x1b,y1b,x2b,y2b,:real;
begin;
readln(x1a);
readln(y1a);
readln(x2a);
readln(y2a);
readln(x1b);
readln(y1b);
readln(x2b);
readln(y2b);
l1:=sqrt(sqr(x2a-x1a)+sqr(y2a-y1a));
l2:=sqrt(sqr(x2b-x1b)+sqr(y2b-y1b));
if I1>l2 then writeln('Первый');
if l1<l2 then writeln('Второй');
if l1=l2 then writeln('Равны');
end.
ПОКАЗАТЬ ОТВЕТЫ
consenttime consenttime  30.08.2020 14:55
Если х1,у1 - координаты одного конца 1-го отрезка, х2,у2 - координаты его второго конца, то уравнение прямой, на которой этот отрезок лежит, такое: у=у1+(у2-у1)(х-х1)/(х2-х1).
Для второго отрезка (х3,у3) и (х4,у4), прямая у=у3+(у4-у3)(х-х3)/(х4-х3).
Абсцисса точки пересечения (х,у) этих прямых находится из равенства

у1+(у2-у1)(х-х1)/(х2-х1)=у3+(у4-у3)(х-х3)/(х4-х3). Это х надо выразить в виде формулы до написания программы, чтобы х вычислялось в программе по этой формуле.

Схема программы:
1) проверка параллельности отрезков. Если "да", то выход и ответ "не существует".
2) проверка выполнения двух двойных неравенств: x1 <= x <= x2, x2 <= x <= x4.
Если оба неравенства "истина", то ответ "существует", иначе "не существует"

Обратите внимание, что х1 должно быть меньше чем х2, и х3 меньше чем х4.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика