Определите тип треугольника (остроугольный, тупоугольный, прямоугольный) с данными сторонами - Pascal ABC
Формулировка задачи:
мне надо сделать такое задание на паскале :
Определите тип треугольника (остроугольный, тупоугольный, прямоугольный) с данными сторонами.
Формат входных данных:
Даны три натуральных числа – стороны треугольника.
Формат выходных данных:
Необходимо вывести одно из слов: rectangular для прямоугольного треугольника, acute для остроугольного треугольника, obtuse для тупоугольного треугольника или impossible, если входные числа не образуют треугольника.
Пример:
Ввод - 3 4 5
Вывод - rectangular
вот моя прога :
и когда я её отправляю (там на автомате всё) на сайт он пишет НЕПРАВИЛЬНЫЙ ОТВЕТ
Решение задачи: «Определите тип треугольника (остроугольный, тупоугольный, прямоугольный) с данными сторонами»
textual
Листинг программы
var a,b,c,d,e,mx,sr,mn:integer;
begin
read(a,b,c);
if (a+b<=c)or(a+c<=b)or(b+c<=a)
then writeln('impossible')
else
begin
if a>b then mx:=a else mx:=b;
if c>mx then mx:=c;
if a<b then mn:=a else mn:=b;
if c<mn then mn:=c;
sr:=a+b+c-mx-mn;
d:=mn*mn+sr*sr;
e:=mx*mx;
if d>e then writeln('acute')
else if d<e then writeln('obtuse')
else if d=e then writeln('right');
end;
end.
Объяснение кода листинга программы
- В начале кода объявляются переменные a, b, c, d, e, mx, sr и mn типа integer.
- Затем происходит чтение значений переменных a, b и c с помощью функции read.
- Далее проверяется условие (a+b<=c) или (a+c<=b) или (b+c<=a). Если хотя бы одно из этих условий выполняется, то выводится строка
impossible. - Если условие не выполняется, то происходит следующий блок кода.
- Внутри блока происходит сравнение значений переменных a и b, и если a больше b, то переменной mx присваивается значение a, иначе mx присваивается значение b. Аналогично происходит сравнение и присвоение значений переменным c и mn.
- Затем вычисляется значение переменной sr как суммы a, b и c, минус mx и mn.
- После этого вычисляется значение переменной d как произведение mn и mn, и значение переменной e как произведение mx и mx.
- Затем происходит проверка значения переменной d. Если d больше e, то выводится строка
acute, если d меньше e, то выводится строкаobtuse, и если d равно e, то выводится строкаright. - Конец программы.