Описать процедуру Dist(Px,Py,Ax,Ay,Bx,By,D), находящую расстояние D от точки P до прямой AB - Turbo Pascal (32795)
Формулировка задачи:
Прошу знатоков помочь в решении задачи, заранее благодарен.
Используя функции Otr и Area, описать процедуру Dist(Px,Py,Ax,Ay,Bx,By,D), находящую расстояние D от точки P до прямой AB по формуле D = 2*SPAB / |AB|, где SPAB — площадь треугольника PAB. С помощью этой процедуры найти расстояния от точки P до прямых AB, AC, BC, если даны координаты точек P, A, B, C.
Решение задачи: «Описать процедуру Dist(Px,Py,Ax,Ay,Bx,By,D), находящую расстояние D от точки P до прямой AB»
textual
Листинг программы
uses crt; function Otr(ax,ay,bx,by:real):real; begin Otr:=sqrt(sqr(ax-bx)+sqr(ay-by)); end; function Area(px,py,ax,ay,bx,by:real):real; begin Area:=abs((ax-px)*(by-py)-(bx-px)*(ay-py))/2; end; procedure Dist(px,py,ax,ay,bx,by:real;var d:real); begin d:=2*Area(px,py,ax,ay,bx,by)/Otr(ax,ay,bx,by); end; var px,py,ax,ay,bx,by,cx,cy,d:real; begin writeln('Введите координаты точки Р:'); readln(px,py); writeln('Введите координаты точек А,В,С'); readln(ax,ay,bx,by,cx,cy); Dist(px,py,ax,ay,bx,by,d); writeln('Расстояние от точки Р до прямой АВ=',d:0:2); Dist(px,py,ax,ay,cx,cy,d); writeln('Расстояние от точки Р до прямой АC=',d:0:2); Dist(px,py,bx,by,cx,cy,d); writeln('Расстояние от точки Р до прямой ВC=',d:0:2); readln end.
Объяснение кода листинга программы
- Создаётся функция Otr(ax,ay,bx,by:real):real, которая вычисляет расстояние между двумя точками в пространстве с использованием формулы расстояния между двумя точками в евклидовом пространстве.
- Создаётся функция Area(px,py,ax,ay,bx,by:real):real, которая вычисляет площадь треугольника, образованного точками P, A, B.
- Создаётся процедура Dist(px,py,ax,ay,bx,by:real;var d:real), которая вычисляет расстояние от точки P до прямой AB.
- Объявляются переменные px, py, ax, ay, bx, by, cx, cy и d:real;
- Выводится приглашение для ввода координат точки Р.
- Выводится приглашение для ввода координат точек А, В, С.
- Вычисляется расстояние от точки Р до прямой АВ и выводится результат.
- Вычисляется расстояние от точки Р до прямой АС и выводится результат.
- Вычисляется расстояние от точки Р до прямой ВС и выводится результат.
- Завершается программа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д