По введенным координатам вершин треугольника вычислить величины его углов(в градусах), периметр и площадь — Pascal(Паскаль)

uses crt;
function Dlina(x1,y1,x2,y2:real):real;
begin
Dlina:=sqrt(sqr(x1-x2)+sqr(y1-y2));
end;
function Prov(a,b,c:real):boolean;
begin
Prov:=(abs(a-b)<c)and(abs(a+b)>c);
end;
function Per(a,b,c:real):real;
begin
Per:=a+b+c;
end;
function Plosh(a,b,c,p:real):real;
begin
p:=p/2;
Plosh:=sqrt(p*(p-a)*(p*b)*(p-c));
end;
function Ugol(a,b,c,p:real):real;
begin
p:=p/2;
Ugol:=(2*arctan(sqrt((p-b)*(p-c)/(p*(p-a)))))*(180/pi);
end;
var x1,y1,x2,y2,x3,y3,a,b,c,p,s,u1,u2,u3:real;
begin
clrscr;
repeat
writeln('Введите координаты X,Y вершин треугольника:');
readln(x1,y1,x2,y2,x3,y3);
a:=Dlina(x1,y1,x2,y2);
b:=Dlina(x2,y2,x3,y3);
c:=Dlina(x1,y1,x3,y3);
if not Prov(a,b,c) then writeln('Это не треугольник, повторите ввод.');
until Prov(a,b,c);
p:=Per(a,b,c);
s:=Plosh(a,b,c,p);
u1:=Ugol(a,b,c,p);
u2:=Ugol(b,a,c,p);
u3:=Ugol(c,a,b,p);
writeln('Результаты вычислений:');
writeln('-----------------------');
writeln('| Параметр | Значение |');
writeln('-----------------------');
writeln('| Угол А   |',u1:7:1,#248,'  |');
writeln('| Угол А   |',u2:7:1,#248,'  |');
writeln('| Угол А   |',u3:7:1,#248,'  |');
writeln('| Периметр |',p:7:1,'   |');
writeln('| Плошадь  |',s:7:1,'   |');
writeln('-----------------------');
readln
end.

Leave a Comment

+ 45 = 46