Написать программу, распознающую по длинам сторон среди всех треугольников прямоугольный....

0 голосов
248 просмотров

Написать программу, распознающую по длинам сторон среди всех треугольников прямоугольный. Если таковых нет, то вычислить величину угла С. (Паскаль)
С объяснением, если можно. Заранее благодарен.


Информатика (31 баллов) | 248 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

//искать угол будем по теореме косинусов
Program n1;
var x,y,z:real;
function arccos(x : real) : real; {это понадобится для теор. кос.}
begin
arccos := 2 * arctan(sqrt((1 - x) / (1 + x)));
end;
procedure ygl( a,b,c: real); {процедура для удобства}
var ga: real;
begin
ga:=arccos((sqr(a) + sqr(b) - sqr(c))/(2 * a* b)) * 180 / pi; {сама теор. кос.}
writeln('угол С= ',ga:5:2);
end;
begin
write('введите сторону а: ');
readln(x);
write('введите сторону b: ');
readln(y);
write('введите сторону c: ');
readln(z);
if(x>=y+z)or(y>=x+z)or(z>=x+y)then writeln('Это не треугольник')
else if x*x+y*y=z*z then {теорема пифагора}
writeln('Это прямоугольный треугольник')
else if (x*x+y*y>z*z)and(x*x+z*z>y*y)and(z*z+y*y>x*x)
then
begin
writeln('Это остроугольный треугольник');
ygl(x,y,z); {вызываем процедуру}
end
else
begin
writeln('Это тупоугольный треугольник');
ygl(x,y,z);
end;
end.

(149k баллов)