Точка пересечения отрезков - Pascal ABC

Узнай цену своей работы

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

Пересекаются ли отрезки заданными координатами (x1;y1),(x2;y2),(x3;y3),(x4;y4)

Решение задачи: «Точка пересечения отрезков»

textual
Листинг программы
  1. uses crt;
  2. const e=0.0001;
  3. var x1,y1,x2,y2,x3,y3,x4,y4,x,y:real;
  4. begin
  5. clrscr;
  6. writeln('Введите координаты концов первого отрезка:');
  7. readln(x1,y1,x2,y2);
  8. writeln('Введите координаты концов второго отрезка:');
  9. readln(x3,y3,x4,y4);
  10. if(abs(x1-x2)<e)and(abs(x3-x4)<e)or(abs((y2-y1)*(x4-x3)-(y4-y3)*(x2-x1))<e)then
  11. writeln('Отрезки параллельны')
  12. else
  13.  begin
  14.   if(abs(x1-x2)<e)and(abs(y3-y4)<e)then
  15.    begin
  16.     x:=x1;
  17.     y:=y3;
  18.    end
  19.   else if(abs(x3-x4)<e)and(abs(y1-y2)<e)then
  20.    begin
  21.     x:=x3;
  22.     y:=y1;
  23.    end
  24.   else
  25.    begin
  26.     x:=-((x1*y2-x2*y1)*(x4-x3)-(x3*x4-x4*y3)*(x2-x1))/((y1-y2)*(x4-x3)-(y3-y4)*(x2-x1));
  27.     y:=((y3-y4)*(-x)-(x3*y4-x4*y3))/(x4-x3);
  28.    end;
  29.   if((x>=x1)and(x<=x2))or((x>=x2)and(x<=x))then
  30.   write('Отрезки пересекаются ')
  31.   else write('Отрезки не пересекются');
  32.  end;
  33. end.

Объяснение кода листинга программы

  1. В начале кода подключается библиотека crt, которая используется для ввода и вывода чисел с плавающей точкой.
  2. Затем определяется константа e, которая равна очень маленькому числу (в данном случае 0.0001), чтобы использовать его в вычислениях.
  3. Далее определяются переменные x1, y1, x2, y2, x3, y3, x4, y4, x и y, которые будут использоваться для хранения координат концов отрезков.
  4. После этого происходит ввод координат концов первого отрезка с помощью функции readln.
  5. Затем происходит ввод координат концов второго отрезка с помощью функции readln.
  6. Далее выполняется проверка на пересечение отрезков с помощью условного оператора if.
  7. Если выполняется условие, что расстояние между концами первого и второго отрезков меньше e, а также расстояние между концами третьего и четвертого отрезков меньше e, то считается, что отрезки параллельны. В этом случае выводится сообщение Отрезки параллельны.
  8. Если выполняется условие, что расстояние между концами первого и второго отрезков меньше e, а также расстояние между концами третьего и четвертого отрезков больше e, то считается, что отрезки пересекаются. В этом случае выводится сообщение Отрезки пересекаются.
  9. Если выполняется условие, что расстояние между концами первого и второго отрезков больше e, а также расстояние между концами третьего и четвертого отрезков меньше e, то считается, что отрезки не пересекаются. В этом случае выводится сообщение Отрезки не пересекаются.
  10. Код завершается с помощью оператора end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы