Определить, существует ли треугольник с заданными длинами сторон x, y, z - Pascal

Формулировка задачи:

Даны три вещественных числа x,y,z. Определить, существует ли треугольник с длинами сторон x,y,z. Если треугольник существует, определить его тип (равносторонний, равнобедренный, прямоугольный) и вычислить все углы в градусах. Напечатать длины сторон с противолежащими углами.

Код к задаче: «Определить, существует ли треугольник с заданными длинами сторон x, y, z - Pascal»

textual
uses crt;
{нахождение угла через полупериметр и тангенс половинного угла}
function ugol(a,b,c:real):real;
var p:real;
begin
p:=(a+b+c)/2;
ugol:=(2*arctan(sqrt((p-b)*(p-c)/(p*(p-a)))))*(180/pi);
end;
const t=0.001;{точность сравнения вычисленных вещественных чисел}
var x,y,z,ux,uy,uz:real;
begin
clrscr;
writeln('Введите 3 вещественыхт числа');
readln(x,y,z);
if(x+y<=z)or(x+z<=y)or(y+z<=x)then
 begin
  writeln('Треугольник не существует');
  readln;
  exit;
 end;
writeln('Треугольник существует');
ux:=ugol(x,y,z);
uy:=ugol(y,x,z);
uz:=ugol(z,x,y);
writeln('Сторона Х=',x:0:2,' противолежащий угол=',ux:0:1,#248);
writeln('Сторона Y=',y:0:2,' противолежащий угол=',uy:0:1,#248);
writeln('Сторона Z=',z:0:2,' противолежащий угол=',uz:0:1,#248);
if (abs(x-y)<t)and(abs(x-z)<t) then write('Это равносторонний треугольник')
else if ((abs(x-y)<t)and(abs(x-z)>t))
     or((abs(x-z)<t)and(abs(y-z)>t))
     or((abs(y-z)<t)and(abs(x-y)>t))
     then write('Это равнобедренный треугольник')
else if (abs(90-ux)<t)or(abs(90-uy)<t)or(abs(90-uz)<t)
     then write('Это прямоугольный треугольник');
readln
end.

15   голосов, оценка 4.200 из 5


СОХРАНИТЬ ССЫЛКУ