Другие языки программирования и технологии

Информатика и математика

нужно составить программу в паскале. которая имея 1 сторону и два угла произвольного треугольника. находит площадь периметр оставшиеся стороны и углы треугольника. Помогите пожалуйста
А углы у Вас вообще какие - два прилегающих к стороне или один прилегающий, а другой противоположенный? От этого же всё зависит!
Для двух углов β и γ, прилегающих к стороне а:
α = 180° - β - γ
sin(α) = sin(180° - β - γ) = sin(β + γ)
a / sin(α) = b / sin(β) = c / sin(γ)
b = a•sin(β)/sin(β+γ)
c = a•sin(γ)/sin(β+γ)
Π = a + b + c
S = ½•a•b•sin(γ)
 var a, b, c, alpha, beta, gamma,
sinbg, gradus, s, p: real;
begin
gradus := pi / 180;
write('a β γ: ');
readln(a, beta, gamma);
alpha := 180 - beta - gamma;
sinbg := sin((beta + gamma) * gradus);
b := a * sin(beta * gradus) / sinbg;
c := a * sin(gamma * gradus) / sinbg;
p := a + b + c;
s := 0.5 * a * b * sin(gamma * gradus);
writeln('a = ', a);
writeln('b = ', b);
writeln('c = ', c);
writeln('α = ', alpha, '°');
writeln('β = ', beta, '°');
writeln('γ = ', gamma, '°');
writeln('Периметр = ', p);
writeln('Площадь = ', s);
end.

Владимир Степанов
Владимир Степанов
66 572
Лучший ответ
program Triangle;

var
side1, side2, side3, angle1, angle2, angle3: real;

begin
write('Enter side 1: ');
readln(side1);
write('Enter angle 1 (in degrees): ');
readln(angle1);
write('Enter angle 2 (in degrees): ');
readln(angle2);

angle3 := 180 - angle1 - angle2;
angle2 := angle2 * (pi / 180);
angle1 := angle1 * (pi / 180);
side2 := side1 * sin(angle1 * pi / 180) / sin((angle1 + angle2)* pi / 180);
side3 := side1 * sin(angle2 * pi / 180) / sin((angle1 + angle2)* pi / 180);

writeln('Side 2: ', side2:0:2);
writeln('Side 3: ', side3:0:2);
writeln('Angle 3: ', angle3:0:2);
writeln('Perimeter: ', side1 + side2 + side3:0:2);
writeln('Area: ', (side1 * side2 * sin(angle3)) / 2:0:2);
end.
4R
4 Ramadan
2 589
Владимир Степанов Возьмём простейший пифагоров треугольник со сторонами 3, 4, 5, периметром 12 и площадью 6. Введём сторону 3 и два прилегающих к ней угла ≈53,1301024° и 90°. Вот что получится в ходе работы Вашей программы:Это очень смешно!
4 Ramadan
 { 
Программа вычисляет длины сторон треугольника по двум известным углам и длине одной стороны.
Также вычисляются значения неизвестных углов и периметра треугольника.
}

var sideA, sideB, sideC, angleA, angleB, angleC,
sinSumAngles, degree, perimeter, area: real;
begin
degree := pi / 180; // конвертируем градусы в радианы
write('Введите длину стороны A, углы B и C (в градусах): ');
readln(sideA, angleB, angleC);
angleA := 180 - angleB - angleC; // угол A является углом противолежащим к стороне A
4 Ramadan
   sinSumAngles := sin((angleB + angleC) * degree); 
sideB := sideA * sin((angleB * degree) / sinSumAngles); // используем синус теорему
sideC := sideA * sin((angleC * degree) / sinSumAngles);
perimeter := sideA + sideB + sideC;
area := 0.5 * sideA * sideB * sin(angleC * degree); // используем формулу Герона
writeln('A = ', sideA);
writeln('B = ', sideB);
writeln('C = ', sideC);
writeln('α = ', angleA, '°');
writeln('β = ', angleB, '°');
writeln('γ = ', angleC, '°');
writeln('Периметр = ', perimeter);
writeln('Площадь = ', area);
end.