mskamilee
S = 0.5ah h/c = sin(β) → β = arcsin(h/c) Периметр P=a+b+c По теореме косинусов b² = a² + c² - 2ac cos(β) и можно найти третью сторону b. А дальше используем теорему синусов: a/sin(α) = /sin(β) = c/sin(γ) и отсюда находим углы α и γ, зная b/sin(β).
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018 // Внимание! Если программа не работает, обновите версию!
begin var (a,c,h):=ReadReal3('Введите стороны a, c и высоту h:'); var S:=0.5*h*c; var beta:=ArcSin(h/a); var b:=Sqrt(a*a+c*c-2*a*c*Cos(beta)); var P:=a+b+c; var k:=b/Sin(beta); var (alpha,gamma):=(ArcSin(a/k),ArcSin(c/k)); Writeln('b=',b:0:5,', alpha=',RadTodeg(alpha):0:3, ', beta=',RadtoDeg(beta):0:3,', gamma=',RadtoDeg(gamma):0:3, ', P=',P:0:5,', S=',S:0:5) end.
Пример Введите стороны a, c и высоту h: 5 6.5 4 b=5.31507, alpha=48.814, beta=53.130, gamma=78.056, P=16.81507, S=13.00000
Answers & Comments
h/c = sin(β) → β = arcsin(h/c)
Периметр P=a+b+c
По теореме косинусов b² = a² + c² - 2ac cos(β) и можно найти третью сторону b.
А дальше используем теорему синусов:
a/sin(α) = /sin(β) = c/sin(γ) и отсюда находим углы α и γ, зная b/sin(β).
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программа не работает, обновите версию!
begin
var (a,c,h):=ReadReal3('Введите стороны a, c и высоту h:');
var S:=0.5*h*c;
var beta:=ArcSin(h/a);
var b:=Sqrt(a*a+c*c-2*a*c*Cos(beta));
var P:=a+b+c;
var k:=b/Sin(beta);
var (alpha,gamma):=(ArcSin(a/k),ArcSin(c/k));
Writeln('b=',b:0:5,', alpha=',RadTodeg(alpha):0:3,
', beta=',RadtoDeg(beta):0:3,', gamma=',RadtoDeg(gamma):0:3,
', P=',P:0:5,', S=',S:0:5)
end.
Пример
Введите стороны a, c и высоту h: 5 6.5 4
b=5.31507, alpha=48.814, beta=53.130, gamma=78.056, P=16.81507, S=13.00000