Предмет: Информатика,
автор: Ineedhelp5
Задание 15, 5 вопрос
Приложения:
Ответы
Автор ответа:
1
Ну как-то так.
function ArcCos(x:real):real;
var t:real;
begin
t:=ArcTan(Sqrt(1-x*x)/x);
if x<0 then ArcCos:=t+Pi
else ArcCos:=t
end;
var
a,b,c,p,p2,s,alpha,beta,gamma,h:real;
begin
Read(a,b,p);
c:=p-a-b;
p2:=p/2;
s:=sqrt(p2*(p2-a)*(p2-b)*(p2-c));
alpha:=ArcCos((b*b+c*c-a*a)/(2*b*c));
beta:=ArcCos((a*a+c*c-b*b)/(2*a*c));
h:=a*Sin(beta);
alpha:=alpha*180/Pi;
beta:=beta*180/Pi;
gamma:=180-alpha-beta;
Writeln('c=',c);
Writeln('alpha=',alpha:0:2,', beta=',beta:0:2,', gamma=',gamma:0:2);
Writeln('S=',s,', h=',h)
end.
function ArcCos(x:real):real;
var t:real;
begin
t:=ArcTan(Sqrt(1-x*x)/x);
if x<0 then ArcCos:=t+Pi
else ArcCos:=t
end;
var
a,b,c,p,p2,s,alpha,beta,gamma,h:real;
begin
Read(a,b,p);
c:=p-a-b;
p2:=p/2;
s:=sqrt(p2*(p2-a)*(p2-b)*(p2-c));
alpha:=ArcCos((b*b+c*c-a*a)/(2*b*c));
beta:=ArcCos((a*a+c*c-b*b)/(2*a*c));
h:=a*Sin(beta);
alpha:=alpha*180/Pi;
beta:=beta*180/Pi;
gamma:=180-alpha-beta;
Writeln('c=',c);
Writeln('alpha=',alpha:0:2,', beta=',beta:0:2,', gamma=',gamma:0:2);
Writeln('S=',s,', h=',h)
end.
Автор ответа:
0
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
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
Ineedhelp5:
Чуть не так
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));
begin
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.
Похожие вопросы
Предмет: Русский язык,
автор: ceremovskymisha
Предмет: Литература,
автор: lit8021
Предмет: Алгебра,
автор: SofiyaSimanova
Предмет: Математика,
автор: ксю2912
Предмет: Математика,
автор: maks316