Задача состоит в том, чтобы организовать цикл не из четырех конкретных итераций 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.
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.