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

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

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

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

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

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

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

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

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

textual
Листинг программы
var x0,y0,x1,y1,x2,y2,a,b,c,s,h,d:real;
begin
readln(x0,y0,x1,y1,x2,y2);
{квадраты боковых сторон треугольника}
a:=sqr(x0-x1)+sqr(y0-y1);
b:=sqr(x0-x2)+sqr(y0-y2);
{квадрат основания}
c:=sqr(x2-x1)+sqr(y2-y1);
{площадь треугольника}
s:=abs((x0-x2)*(y1-y2)-(x1-x2)*(y0-y2))/2;
{высота к основанию}
h:=2*s/sqrt(c);{и его высоту}
writeln('a=',sqrt(a):0:2,' b=',sqrt(b):0:2,' c=',sqrt(c):0:2,' h=',h:0:2);
{если треугольник тупоугольный, найдем до какого конца расстояние меньше}
if (a+c<b)or(b+c<a) then
 begin
  if a<b then d:=sqrt(a)
  else d:=sqrt(b);
 end
else d:=h;{если не тупоугольный, расстояние=высоте}
write(d:0:2);
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
Похожие ответы