Определить, существует ли треугольник с заданными длинами сторон x, y, z - Pascal
Формулировка задачи:
Даны три вещественных числа x,y,z. Определить, существует ли треугольник с длинами сторон x,y,z. Если треугольник существует, определить его тип (равносторонний, равнобедренный, прямоугольный) и вычислить все углы в градусах. Напечатать длины сторон с противолежащими углами.
Решение задачи: «Определить, существует ли треугольник с заданными длинами сторон x, y, z»
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.
Объяснение кода листинга программы
- Объявляются переменные и константа:
- переменные
x
,y
,z
для длин сторон треугольника - переменные
ux
,uy
,uz
для значений углов - константа
t
для точности сравнения вещественных чисел
- переменные
- Вызывается процедура очистки экрана
clrscr
- Пользователь вводит три вещественных числа
x
,y
,z
- Проверяется существование треугольника:
- Если сумма двух сторон меньше или равна третьей стороне, выводится сообщение
Треугольник не существует
, и программа завершается - В противном случае выводится сообщение
Треугольник существует
- Если сумма двух сторон меньше или равна третьей стороне, выводится сообщение
- Вычисляются углы
ux
,uy
,uz
с помощью функцииugol
, используя значенияx
,y
,z
- Выводятся значения сторон и соответствующих им углов, а также тип треугольника:
- Если все стороны приблизительно равны, выводится сообщение
Это равносторонний треугольник
- Если хотя бы две стороны приблизительно равны, выводится сообщение
Это равнобедренный треугольник
- Если хотя бы один угол приблизительно равен 90 градусам, выводится сообщение
Это прямоугольный треугольник
- Если все стороны приблизительно равны, выводится сообщение
- Ожидается ввод пользователя, завершается выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д