Види циклів
1. Доти, поки не...
Повернемося до обчислення квадратного кореня (приклад 4.4):
X:=(a+1)/2; Y:=0.5*(X+a/X);
while abs(X-Y)>d do
begin
X:=Y; Y:=0.5*(X+a/X);
end;
Цей алгоритм задає послідовність дій такого вигляду:
X:= (a+1)/2;
Y:= 0.5*(X+a/X);
обчислення умови продовження: true;
X:=Y;
Y:= 0.5*(X+a/X);
обчислення умови продовження: true;
…
X:=Y;
Y:= 0.5*(X+a/X);
обчислення умови продовження: false.
Якщо в цій послідовності замінити найперший оператор на Y:=(a+1)/2; X:=Y, то вона буде циклічною, починаючи з другого оператора, і циклом буде
X:=Y;
Y:= 0.5*(X+a/X);
обчислення умови продовження
Можна було б подумати про оператор
do X:=Y;
Y:=0.5*(X+a/X);