Цикл:
repeat
{$I-}
write('...'); readln(...);
{$I+}
ok:=(ioresult=0); val(s,k,err);
ok:=ok and (err=0);
if not ok then writeln('...');
until ok;
Программа:
uses crt;
var
x,y,z:real;
c:real;
ans:char;
begin clrscr; repeat clrscr;
writeln('Raschet znachenija functii.');
writeln('');
write('Vvedite X -> '); readln(x);
write('Vvedite Y -> '); readln(y);
write('Vvedite Z -> '); readln(z);
writeln('');
writeln('Raschitaem znachenije functii.');
C:=ln(sqr(2*x+5*y)*(22*x+401*y)/(5*sqr(x)+8*y+9*z));
writeln('');
write('Znachenije functii ravno: ',C:8:4); readln;
writeln('');
writeln('Do you want to repeat?');
ans:=readkey;
until UpCase(ans) = 'N';
end.