uses crt;
type TPoint=record {тип точка}
x,y:real;{поля - координаты}
end;
function Leng(a1,a2:TPoint):real;{длина отрезка(стороны треугольника)}
begin
Leng:=sqrt(sqr(a1.x-a2.x)+sqr(a1.y-a2.y));
end;
function Area(a1,a2,a3:TPoint):real;{площадь треугольника}
var s1,s2,s3,p,S:real;
begin
s1:=Leng(a1,a2);{длина стороны}
s2:=Leng(a2,a3);
s3:=Leng(a1,a3);
p:=(s1+s2+s3)/2;{полупериметр}
S:=sqrt(p*(p-s1)*(p-s2)*(p-s3));{формула Герона}
Area:=S;
end;
function Dist(p,a,b:TPoint):real;{расстояние до прямой, высота треугольника, опущенная на эту сторону}
begin
Dist:=2*Area(p,a,b)/Leng(a,b);{переделанная формула площади треугольника S=1/2*h*a}
end;
var p,a,b,c:TPoint;
begin
clrscr;
writeln('Vvedite koordinaty tochek:');
write(' P.x=');readln(p.x);
write(' P.y=');readln(p.y);
write(' A.x=');readln(a.x);
write(' A.y=');readln(a.y);
write(' B.x=');readln(b.x);
write(' B.y=');readln(b.y);
write(' C.x=');readln(c.x);
write(' C.y=');readln(c.y);
writeln('Rasstoyanie PAB=',Dist(p,a,b):0:3);
writeln('Rasstoyanie PAC=',Dist(p,a,c):0:3);
writeln('Rasstoyanie PBC=',Dist(p,b,c):0:3);
readln
end.