Оператор (тіло циклу) виконується до тих пір, поки умова істинна. Якщо при першій перевірці умова виявилась хибною, оператор не виконується ні разу.
Приклад 8.1. Знайти найменший натуральний розв’язок нерівності
x3 + ax2 + bx + c > 0
з цілими коефіцієнтами.
Очевидний алгоритм пошуку розв’язку складається у послідовному обчисленні значень Y = x3+ax2+bx+c для x = 1, 2, 3, ... до тих пір, поки Y £ 0.
Program UneqvSolution;
Var
a, b, c : Integer;
X : Integer;
Y : Real;
Procedure InpData (Var a, b, c : Integer);
Begin
Write(‘ введіть коефіцієнти a, b, c : ‘);
Readln(a, b, c);
End;
Procedure FindRoot (a, b, c : Integer; Var X: Integer);
Var Y : Real;
Begin
X := 1;
Y := a + b + c + 1; { Ініціалізація циклу }
While Y <= 0 do begin
X := Succ(X); { Наступне значення X }
Y := ((X + a)*X + b)*X + c { Наступне значення Y }
end;
End;
Begin
InpData (a, b, c);
FindRoot (a, b, c, X);
Writeln(‘X = ‘, X)
End.
Для обґрунтування цього методу вимагається єдине: впевнитись у тому, що цикл коли-небудь завершиться, тобто що розв’язок нерівності існує! Відмітимо, що функція Y = x3 + ax2 + bx + c є необмежено зростаючою. Тому починаючи з деякого значення х Y стане додатнім. Тому кількість повторень циклу є скінченою.
Оператор циклу з постумовою визначений діаграмою: