Программа запускается, но ввожу значения переменных, а ответ не выдаёт. Не могу понять, в...

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

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


var
max,x,y,z,t:real;
begin
readln(x,y,z);
if(x>y)then max:=x
else max:=y;
if(z>max)then max:=z;
if(z*max t:=x*x+y*y+z*z-2*sqr(max);
if(t>0)then writeln('acute');
if(t=0)then writeln('right');
if(t<0)then writeln('obtuse')<br> else writeln('impossible');
end;
readln;
end.



Сама задача, если понадобится
Определите тип треугольника (остроугольный, тупоугольный, прямоугольный) с данными сторонами.

Входные данные
Даны три натуральных числа – стороны треугольника.

Выходные данные
Необходимо вывести одно из слов: right для прямоугольного треугольника, acute для остроугольного треугольника, obtuse для тупоугольного треугольника или impossible, если входные числа не образуют треугольника.


Информатика | 122 просмотров
0

что вы делаете в этой строчке (if(z*max t:=x*x+y*y+z*z-2*sqr(max);)

Дан 1 ответ
0 голосов

Программа должна выглядеть так 
var
max,x,y,z,t:real;
begin
readln(x,y,z);
if(x>y)then max:=x
else max:=y;
if(z>max)then max:=z;
if(z*max*t=x*x+y*y+z*z-2*sqr(max)) then begin
if(t>0)then writeln('acute');
if(t=0)then writeln('right');
if(t<0)then writeln('obtuse')<br>end
else writeln('impossible');
readln;
end.

(748 баллов)
0

это равенство я не трогал если что проверьте его на верность z*max*t=x*x+y*y+z*z-2*sqr(max)

0

var
max,x,y,z,t:real;
begin
readln(x,y,z);
if(x>y)then max:=x
else max:=y;
if(z>max)then max:=z;
if((y+x>z) and (x+z>y) and (y+z>x)) then begin t:=x*x+y*y+z*z-2*sqr(max);
if(t>0)then writeln('acute');
if(t=0)then writeln('right');
if(t<0)then writeln('obtuse')<br>end
else writeln('impossible');
end.

0

вот так вроде все работает верно

0

извините что сразу не нашел ошибку

0

Спасибо большое, всё работает :)

0

я точно такое же делал но на c++