Расстояние от точки до отрезка - 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.
Объяснение кода листинга программы
- Входные данные считываются в переменные x0, y0, x1, y1, x2, y2.
- Вычисляются квадраты боковых сторон треугольника: a, b.
- Вычисляется квадрат основания треугольника: c.
- Вычисляется площадь треугольника: s.
- Вычисляется высота к основанию треугольника: h.
- Выводится значение переменных a, b, c, h.
- Если треугольник не является тупоугольным, то расстояние до отрезка равно высоте.
- Если треугольник является тупоугольным, то определяется конец отрезка, к которому расстояние меньше.
- Если a меньше b, то расстояние до отрезка равно a.
- Если b меньше a, то расстояние до отрезка равно b.
- Если a и b равны, то расстояние до отрезка равно a.
- Выводится значение переменной d.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д