var
a, b, S, c, alpha, betta, gamma, H, P: real;
x, ar, br, gr: real;{alpha, beta. gamma в радианах}
begin
write('Введите длины двух сторон треугольника и площадь: ');
readln(a, b, S);
x := 2 * S / (a * b);
if x > 1 then writeln('Такой треугольник невозможен')
else
gr := ArcSin(x);
c := Sqrt(Sqr(a) + Sqr(b) - 2 * a * b * Cos(gr));
P := a + b + c;
ar := ArcSin(a * Sin(gr) / c);
br := Pi - (ar + gr);
H := b * Sin(ar);
alpha := ar * 180 / Pi;
betta := br * 180 / Pi;
gamma := 180 - (alpha + betta);
writeln('Решение треугольника');
writeln('a=', a, ', b=', b, ', c=', c:0:5);
writeln('Alpha=', alpha:0:2, ', Betta=', betta:0:2, ', Gamma=', gamma:0:2);
writeln('P=', P:0:5, ', H=', H:0:5, ', S=', S)
end
end.
Тестовое решение:
Введите длины двух сторон треугольника и площадь: 3 4 6
Решение треугольника
a=3, b=4, c=5.00000
Alpha=36.87, Betta=53.13, Gamma=90.00
P=12.00000, H=2.40000, S=6
var
a, b, S, c, alpha, betta, gamma, H, P: real;
x, ar, br, gr: real;{alpha, beta. gamma в радианах}
begin
write('Введите длины двух сторон треугольника и площадь: ');
readln(a, b, S);
x := 2 * S / (a * b);
if x > 1 then writeln('Такой треугольник невозможен')
else
begin
gr := ArcSin(x);
c := Sqrt(Sqr(a) + Sqr(b) - 2 * a * b * Cos(gr));
P := a + b + c;
ar := ArcSin(a * Sin(gr) / c);
br := Pi - (ar + gr);
H := b * Sin(ar);
alpha := ar * 180 / Pi;
betta := br * 180 / Pi;
gamma := 180 - (alpha + betta);
writeln('Решение треугольника');
writeln('a=', a, ', b=', b, ', c=', c:0:5);
writeln('Alpha=', alpha:0:2, ', Betta=', betta:0:2, ', Gamma=', gamma:0:2);
writeln('P=', P:0:5, ', H=', H:0:5, ', S=', S)
end
end.
Тестовое решение:
Введите длины двух сторон треугольника и площадь: 3 4 6
Решение треугольника
a=3, b=4, c=5.00000
Alpha=36.87, Betta=53.13, Gamma=90.00
P=12.00000, H=2.40000, S=6
var x,y,n,z,h,C:real;
function arccos(x : real) : real;
begin
arccos := 2 * arctan(sqrt((1 - x) / (1 + x)));
end;
procedure ygls( a,b,c,t: real);
var al,be,ga: real;
begin
al := arccos((sqr(b) + sqr(c) - sqr(a))/(2 * b * c)) * 180 / pi;
writeln('угол A= ',trunc(al));
writeln('угол B= ',trunc(180-al-t));
end;
begin
write('введите сторону а: ');
readln(x);
write('введите сторону b: ');
readln(y);
write('введите угол С: ');
readln(C);
n:=C;
C:=cos(C*180/pi);
z:=sqrt(x*x+y*y-2*x*y*C);
h:=0.5*sqrt(2*(x*x+y*y)-c*c);
ygls(x,y,z,n);
writeln('сторона c: ',trunc(z));
writeln('высота h: ',trunc(h));
writeln('периметр P: ',trunc(x+y+z));
writeln('площадь S: ',trunc(z*h));
end.