Function Otr(Ax, Ay, Bx, By: real): real;
begin
Otr := sqrt(sqr(Ax - Bx) + sqr(Ay - By))
end;
function Perim(Ax, Ay, Bx, By, Cx, Cy: real): real;
begin
Perim := Otr(Ax, Ay, Bx, By) + Otr(Bx, By, Cx, Cy) + Otr(aX, aY, Cx, Cy);
end;
function Area(Ax, Ay, Bx, By, Cx, Cy: real): real;
var
pp: real;
begin
pp := Perim(Ax, Ay, Bx, By, Cx, Cy) / 2;
Area := sqrt(pp * (pp - Otr(Ax, Ay, Bx, By)) * (pp - Otr(Bx, By, Cx, Cy)) *
(pp - Otr(Ax, Ay, Cx, Cy)))
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: real;
d: real;
begin
writeln('Вводите координаты точкек парами чисел: ');
write('P-> ');
readln(Px, Py);
write('A-> ');
readln(Ax, Ay);
write('B-> ');
readln(Bx, By);
write('C-> ');
readln(Cx, Cy);
writeln;
Dist(Px, Py, Ax, Ay, Bx, By, d);
writeln('Расстояние от Р до АВ равно ', d);
Dist(Px, Py, Cx, Cy, Bx, By, d);
writeln('Расстояние от Р до ВC равно ', d);
Dist(Px, Py, Ax, Ay, Cx, Cy, d);
writeln('Расстояние от Р до АC равно ', d)
end.
Тестовое решение:
Вводите координаты точкек парами чисел:
P-> -3 6
A-> 5 8
B-> 9 -4
C-> 8 -2.5
Расстояние от Р до АВ равно 8.22192191643778
Расстояние от Р до ВC равно 4.43760156980184
Расстояние от Р до АC равно 8.24163383692135