Расстояние от точки до отрезка - Free Pascal

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

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

Помогите пожалуйста решить

Входные данные

Шесть чисел – координаты точки и координаты концов отрезка.

Выходные данные

Одно число – расстояние от точки до отрезка.

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

textual
Листинг программы
  1. var x0,y0,x1,y1,x2,y2,a,b,c,s,h,d:real;
  2. begin
  3. readln(x0,y0,x1,y1,x2,y2);
  4. {квадраты боковых сторон треугольника}
  5. a:=sqr(x0-x1)+sqr(y0-y1);
  6. b:=sqr(x0-x2)+sqr(y0-y2);
  7. {квадрат основания}
  8. c:=sqr(x2-x1)+sqr(y2-y1);
  9. {площадь треугольника}
  10. s:=abs((x0-x2)*(y1-y2)-(x1-x2)*(y0-y2))/2;
  11. {высота к основанию}
  12. h:=2*s/sqrt(c);{и его высоту}
  13. writeln('a=',sqrt(a):0:2,' b=',sqrt(b):0:2,' c=',sqrt(c):0:2,' h=',h:0:2);
  14. {если треугольник тупоугольный, найдем до какого конца расстояние меньше}
  15. if (a+c<b)or(b+c<a) then
  16.  begin
  17.   if a<b then d:=sqrt(a)
  18.   else d:=sqrt(b);
  19.  end
  20. else d:=h;{если не тупоугольный, расстояние=высоте}
  21. write(d:0:2);
  22. end.

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

  1. Входные данные считываются в переменные x0, y0, x1, y1, x2, y2.
  2. Вычисляются квадраты боковых сторон треугольника: a, b.
  3. Вычисляется квадрат основания треугольника: c.
  4. Вычисляется площадь треугольника: s.
  5. Вычисляется высота к основанию треугольника: h.
  6. Выводится значение переменных a, b, c, h.
  7. Если треугольник не является тупоугольным, то расстояние до отрезка равно высоте.
  8. Если треугольник является тупоугольным, то определяется конец отрезка, к которому расстояние меньше.
  9. Если a меньше b, то расстояние до отрезка равно a.
  10. Если b меньше a, то расстояние до отрезка равно b.
  11. Если a и b равны, то расстояние до отрезка равно a.
  12. Выводится значение переменной d.

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


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

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

9   голосов , оценка 4.111 из 5

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

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

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