Цикл «С параметром».

В данном случае параметром будет являться целочисленная переменная, которая будет изменяться на единицу при каждой итерации цикла. Таким образом, задав начальное и конечное значения для такой переменной, можно точно установить количество выполнений тела цикла. Нарисовать блок-схему такой структуры вы сможете сами после некоторых пояснений.

Форматов у этого вида цикла предусмотрено два:

For <П.Ц>:=<Н.З.> To <К.З.> Do <оператор>;

For <П.Ц>:=<Н.З.> Downto <К.З.> Do <оператор>;

Здесь П.Ц – параметр цикла, Н.З. – его начальное значение, К.З. – соответственно конечное значение параметра.

В первом случае параметр с каждой итерацией увеличивается на единицу, во втором – уменьшается на единицу.

Читается данная структура так: «Для переменной (далее следует ее имя) от начального значения до конечного выполнять оператор (являющийся телом цикла)». Иногда цикл с параметром называют «Для» («For»).

Выполняется этот цикл по следующему алгоритму:

1) параметру цикла присваивается начальное значение;

2) проверяется условие, лежит ли значение параметра цикла между начальной и конечной величинами. Если оно лежит внутри интервала, то выполняется тело цикла, иначе работа цикла прекращается;

3) выполняется тело цикла;

4) переменная-параметр автоматически увеличивается на 1 (или -1).

Примечание: при использовании Downto параметр автоматически уменьшается на 1, а выход из цикла происходит тогда, когда параметр становится меньше конечного значения.

Таким образом, в отличие от первых двух видов цикла, этот цикл используется тогда, когда известно необходимое количество выполнений тела цикла.

Вообще говоря, цикл «Пока» является универсальным, то есть любая задача, требующая использования цикла, может быть решена с применением этой структуры. Циклы «До» и «С параметром» созданы для удобства программирования.

Пример.

Найти сумму квадратов всех натуральных чисел от 1 до 100.

Решим эту задачу с использованием всех трех видов циклов.

I. С использованием цикла «Пока».

Program Ex1;

Var

A : Integer;

S : Longint;

Begin

S:=0;

A:=1;

While A<=100 Do Begin

S:=S+A*A;

A:=A+1

End;

Writeln(¢Результат = ¢,S)

End.

II. С использованием цикла «До».

Program Ex2;

Var

A : Integer;

S : Longint;

Begin

S:=0;

A:=1;

Repeat

S:=S+A*A;

A:=A+1

Until A>100;

Writeln(¢Результат = ¢,S)

End.

III. С использованием цикла «С параметром».

Program Ex3;

Var

A : Integer;

S : Longint;

Begin

S:=0;

For A:=1 To 100 Do

S:=S+A*A;

Writeln(¢Результат = ¢,S)

End.