"напишите программу. Даны три действительных числа. Возвести в квадрат те из них, значения которых не отрицательны, и в четвертую степень - отрицательные."
Program _629;
Var a, b, c: real;
Begin
WriteLn ('Введите 3 действительных числа a, b, c' ) ;
Readln (a, b, c) ;
If a>0 then a:=a*a;
If b>0 then b:=b*b;
If c>0 then c:=c*c;
If a<0 then a:=a*a*a*a;
If b<0 then b:=b*b*b*b;
If c<0 them c:=c*c*c*c;
WriteLn (a, b, c) ;
End.
Да, программа написана верно. Однако, первые три строки с if нельзя менять местами с последними тремя — программа тогда станет работать неправильно.
Вообще, лучше было бы написать так:
if a > 0 then a := a*a else a := a*a*a*a;
и аналогично для двух других переменных