Тема.Операторы повторения
Цикл - главное средство заставить компьютер много раз сделать одно и то же действие.
Счетный оператор цикла FOR (для - цикл по параметру).
Вид команды в виде блок-схемы следующий:

Общий вид конструкции следующий:
Первый вариант.
FOR <пар_цикла> := <нач_знач> TO <кон_знач> DO <оператор>;.
PS!!! ( <нач_знач> меньше <кон_знач>)
Выполнение оператора FOR в первом варианте происходит по следующей схеме:
1. Вычисляются значения <нач_знач> и <кон_знач>. Это делается только один раз при входе в цикл.
2. Параметру цикла (<пар_цикл>) присваивается значение <нач_знач>.
3. Значение параметра цикла сравнивается со значение <кон_знач>. Если параметр цикла меньше или равен этому значению, то выполняется тело цикла, в противном случае выполнение цикла заканчивается.
4. Значение параметра изменяется на следующее значение в его типе (для целых - увеличивается на единицу); происходит возврат к пункту 3.
Второй вариант.
FOR <пар_цикла> := <нач_знач> DOWNTO <кон_знач> DO <оператор>;.
PS!!! ( <нач_знач> больше <кон_знач>)
Слово DOWNTO буквально можно перевести как "вниз до". В таком случае параметр цикла изменяется по убыванию.
Пример 7. Составить программу вычисления факториала целого положительного числа.

|
program pr7_factorial_for;
var i: word; n: integer; factorial: longint;
begin
writeln('введите число N');
readln(n);
factorial:=1;
for i:=1 to n do
begin
writeln('i= ',i,' ',factorial,' * ',i,' = ',factorial*i);
factorial:=factorial*i;
end;
writeln('факториал числа N=',factorial );
end. |

Оператор цикла WHILE (с предпроверкой условия)
Выполнение серии команд (тела цикла) повторяется, пока условие цикла истинно. Когда условие становится ложным, цикл заканчивает выполнение.
Общий вид команды в блок-схеме следующий:

На языке Паскаль структура имеет следующий вид:
WHILE <условие> DO <оператор>;, где
<условие> - произвольное выражение логического типа,
<оператор> - произвольный оператор языка Паскаль.
Пример 8. Задачу примера 7 решить с помощью оператора While...Do.
 |
program pr8_factorial_while;
var i: word; n: integer; factorial: longint;
begin
writeln('введите число N');
readln(n);
factorial:=1; i:=0;
while i<n do
begin
i := i + 1;
writeln('i= ',i,' ',factorial,' * ',i,' = ',factorial*i);
factorial:=factorial*i;
end;
writeln('факториал числа N=',factorial );
end. |

Оператор цикла REPEAT...UNTIL (с постпроверкой условия)
В цикле с постпроверкой условия используется условие окончания цикла. Когда оно становится истинным, цикл заканчивает работу.
Общий вид команды в блок-схеме следующий:

На языке Паскаль структура имеет следующий вид:
REPEAT <оператор> UNTIL <условие> , где
- <оператор> - произвольный оператор языка Паскаль
- <условие> - произвольное выражение логического типа.
Пример 9. Составить программу. которая запрашивает пароль (например, четырехзначное число) до тех пор, пока пароль введен правильно, затем появляется текст: "Пароль введен верно".
 |
program pr9_repeat;
var p: string;
const parol = '1234';
begin
repeat
begin
writeln('введите пароль');
read(p);
readln;
end
until p = parol;
writeln('Пароль введен верно');
readln;
end. |
 |
|