Здравствуйте. В общем имеется своеобразная программная реализация метода Лобачевского для решения кубического уравнения x 3 - 10x2 + 31x - 30 = 0. Это достаточно простое уравнение, корни которого равны x1 = 2; x2 = 3; x3 = 5;

Задача состоит в том, чтобы организовать цикл не из четырех конкретных итераций k, а на основе пост условия
Код
until (b[i]=b[i]*b[i]);
. При этом преподаватель требует использовать для чего-то так называемый флаг/переключатель. Может вы поймете для чего это и как организовать?

Код
program lobach;
uses crt;
var n,i,k: integer;
eps: real;
x : array [1..3] of real;
a,b : array [0..3] of real;

begin

ClrScr;
n:=3;
eps:=1;
a[0]:=1;
a[1]:=-10;
a[2]:=31;
a[3]:=-30;
k:=1;
writeln ('Roots, x: '); writeln;

for k:=1 to 4 do  {тут нужен цикл repeat}
begin

b[0]:=a[0]*a[0];
b[1]:=2*a[0]*a[2] - a[1]*a[1];
b[2]:=a[2]*a[2] - 2*a[1]*a[3];
b[3]:=-a[3]*a[3];

for i:=0 to n do a[i]:=b[i];

for i:=1 to n do
   begin
     x[i]:=-a[i]/a[i-1];
     x[i]:=exp(ln(x[i])/2/k);
   end;

writeln('x(1) = ', x[1], '; x(2) = ', x[2], '; x(3) = ',  x[3]);

end;



readln
end.