Var a,b,c:real; begin writeln('введите a,b,c'); readln(a,b,c); if (a>0) and (b>0) and (c>0) then begin if (a=c) and (b=c) and (a=b) then writeln('равносторонний'); If (a=b) and (b<>c) then writeln('равнобедренный'); If (b=c) and (b<>a) then writeln('равнобедренный'); If (c=b) and (c<>a) then writeln('равнобедренный'); if (a<>b) and (c<>b) and (a<>c) then writeln('произвольный'); end; if (a<0) or (b<0) or (c<0) then writeln('такого треугольника нет'); end.
Можно код сделать покороче, если ты об этом.
program tri;
var
a, b, c: real;
begin
writeln('Введите a,b,c:');
readln(a, b, c);
if (a > 0) and (b > 0) and (c > 0) then
begin
if (a = c) and (b = c) and (a = b) then
writeln('Треугольник равносторонний') ;
if (((a = b) and (b <> c)) or
((b = c) and (b <> a)) or
((c = b) and (c <> a))) then
writeln('Треугольник равнобедренный');
if (a <> b) and (c <> b) and (a <> c) then
writeln('Треугольник произвольный') ;
end
else
writeln('такого треугольника нет') ;
end.
Ну вот, на 5 строчек короче, но смысл тот же.
Изменения:
Использовал if.. else вместо двух if при проверке положительности сторон. Собрал 3 if при проверке на равносторонность в один if.