В більшості задач цикли доводиться виконувати невідому кількість разів. Ця ситуація виникає, якщо обчислення значення функції закінчується у випадках, коли досягнуто заданої точності, або коли виконання оператора залежить від інформації, що вводиться користувачем, або коли у масиві необхідно знайти елемент з конкретним значенням тощо. У цих випадках певну послідовність дій необхідно виконувати декілька разів, причому необхідне число повторень під час розробки програми невідоме і може бути визначеним тільки під час роботи програми, тобто в процесі обчислення задач.
Оператор циклу з передумовою -while (поки)призначений для організації багатократного виконання групи вказівок (тіло циклу) до тих пір, доки залишається істинною умова виконання циклу.
Оператор циклу з передумовою має вигляд:
while<логічний вираз> do
Begin
<вказівка 1>;
<вказівка 2>;
……….;
<вказівка N>
end;
Тут while(поки), do(виконати) - зарезервовані слова; логічний вираз -умова, яка визначає виконання циклу.
Дія команди. Обчислюється значення логічного виразу (умови). Якщо умова істинна (приймає значення true), то виконується група вказівок (тіло циклу). Виконання програми знову повертається до перевірки умови циклу. Якщо умова хибна (приймає значення false), то виконується вказівка, яка знаходиться після оператору повторення з передумовою.
Блок-схема оператора циклу з передумовою має вигляд:

Примітка.
1. Якщо умова у вказівці повторення хибна при першій же перевірці, то тіло циклу не виконується жодного разу. Умова оператора є умовою входження в цикл.
2. Умову оператора повторення з передумовою необхідно підбирати таким чином, щоб в деякий момент вона змінила своє значення з true на false, інакше виникне ситуація “зациклювання” програми.
3. Програмісту необхідно самому потурбуватись про необхідність збільшення (зменшення) лічильника циклу на 1. Це можна зробити таким чином I:=I+1.
4. Входження в тіло оператора повторення можливе тільки через заголовок цього оператора.
Приклад. Нехай змінні , s мають значення = 4, s= 0. Після виконання команди
whilex<=8 do
Begin
s:=s+x; x:=x+1
end;
вони набудуть значень s=4+5+6+7+8=30, x=9.
Приклад. Вивести таблицю чисел від 20 до 30, їхні квадрати та куби за допомогою команди whileможна так: i:= 20;
whilei <= 30 do
Begin
writeln(i:4, sqr(i):6, exp(3*ln(i)):8); i:= i + 1
end;
Задача 3. Знайти суму всіх натуральних чисел від 1 до N.
programSUMA1;
varI,N,S: integer; begin
writeln(‘Введіть кількість натуральних чисел:’);
write(‘N=’);
readln(N);
I:=1;
S:=0;
whileI<=N do
Begin
S:=S+i; i:=i+1 end; writeln(‘S=’,S)
end.