Нахождение углов треугольника - Turbo Pascal
Формулировка задачи:
Составить программу, которая определяет углы треугольника со сторонами а, b, с по известным формулам: cos I=(b^2+c^2-a^2)/2*b*c
cos B=(a^2+b^2-c^2)/2*a*b
cos j=(c^2+a^2-b^2)/2*a*c
Решение задачи: «Нахождение углов треугольника»
textual
Листинг программы
program Project1;
uses crt;
var csa,csb,csc,xa,xb,xc: real;
a,b,c,u1,u2,u3: real;
begin
repeat
Writeln('Введите а');
Readln(a);
Writeln('Введите b');
Readln(b);
Writeln('Введите c');
Readln(c);
if(a>=b+c)or(b>=a+c)or(c>=a+b) then
writeln('Это не треугольник, повторите ввод');
until (a<b+c)and(b<a+c)and(c<a+b);
csa:=(sqr(b)+sqr(c)-sqr(a))/(2*b*c);
csc:=(sqr(a)+ sqr(b)-sqr(c))/(2*a*b);
csb:=(sqr(c)+ sqr(a)-sqr(b))/(2*a*c);
if csa=0 then u1:=90 else u1:=(arctan(sqrt(1-sqr(csa))/csa))*180/pi;
if csb=0 then u2:=90 else u2:=(arctan(sqrt(1-sqr(csb))/csb))*180/pi;
if csc=0 then u3:=90 else u3:=(arctan(sqrt(1-sqr(csc))/csc))*180/pi;
writeln('Угол 1 = ',u1:0:1,'гр.');//Если не Паскаль АВС, то можно написать u1:0:1,#248
writeln('Угол 2 = ',u2:0:1,'гр.');
writeln('Угол 3 = ',u3:0:1,'гр.');
readln;
end.
Объяснение кода листинга программы
- Программа называется Project1 и использует библиотеку crt.
- Переменные a, b, c представляют собой стороны треугольника, введенные пользователем.
- Цикл repeat-until используется для проверки, является ли треугольник заданного типа.
- Формулы для вычисления углов треугольника: csa = (a^2 + b^2 - c^2) / (2 b c), csc = (a^2 + b^2 - c^2) / (2 a b), csb = (a^2 + c^2 - b^2) / (2 a c).
- Если один из углов равен нулю, то вычисляется тангенс угла и выводится значение угла в градусах.
- Программа завершается после ввода значений всех сторон треугольника.