Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алг яз Лаб 2(I-ИСТ).doc
Скачиваний:
3
Добавлен:
05.11.2018
Размер:
497.15 Кб
Скачать

2.3. Операторы циклов

Операторы повторения (циклов) обычно используют для многократного повторения некоторых действий.

Pascal поддерживает три управляющих конструкции повторения:

  • цикл с предусловием (While);

  • цикл с постусловием (Repeat);

  • цикл со счетчиком (For).

2.3.1. Оператор с предусловием While

Цикл While используется, как правило, в тех случаях, когда заранее неизвестно количество повторений цикла.

Синтаксис оператора While:

While выражение Do оператор;

Выражение должно быть булевского типа данных. Значение выражения вычисляется перед каждым выполнением оператора, поэтому цикл While называют еще циклом с предусловием. Оператор, составляющий тело цикла, выполняется, пока выражение равно true. Если значение выражения false, то оператор не выполняется и происходит выход из цикла.

Если первоначальное значение выражения равно false, то оператор не выполнится ни разу. Чтобы избежать бесконечного повторения (зацикливания), необходимо хотя бы одну переменную, входящую в выражение, изменять в теле оператора цикла. Более того, эти изменения должны быть такими, чтобы булевское выражение в ходе вычисления приняло значение false. Если же булевское выражение первоначально истинно и ни при каких обстоятельствах не становится ложным, то выполнение оператора цикла никогда не завершится.

Пример: вычисление суммы ряда, состоящего из 50 элементов.

S:=0; N:=1;

While N<=50 Do Begin

S:=S+1/N;

N:=N+1;

End;

2.3.2. Оператор с постусловием Repeat

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

Repeat

оператор;

Until выражение;

В цикле Repeat вначале выполняется оператор (или операторы) тела цикла, затем вычисляется значение выражения; если его значение равно false, то вновь выполняется оператор, если значение выражения true, то цикл заканчивается. Если значение выражения равно true с самого начала, то оператор выполняется лишь один раз. Если выражение никогда не принимает значение true, то оператор выполняется бесконечное число раз, т.е. происходит «зацикливание».

Нижняя граница операторов циклической части обозначена словом Until, поэтому нет необходимости заключать операторы циклической части в операторные скобки begin … end.

Пример: вычисление суммы ряда, состоящего из 50 элементов.

S:=0; N:=1;

Repeat

S:=S+1/N; N:=N+1;

Until N>50; { пока значение N не превзойдет 50 }

2.3.3. Оператор со счетчиком For

Оператор цикла For служит для организации цикла в тех случаях, когда заранее известно, сколько раз должна повторяться циклическая часть программы, обычно цикл For используют при работе с массивами. Синтаксис оператора For по возрастающим значениям параметра:

For счетчик:=значение_1 To значение_2 Do оператор;

Счетчик – переменная порядкового типа.

Значение_1, значение_2 – начальное и конечное значения переменной счетчик.

Чтобы оператор в цикле выполнился хотя бы один раз, значение_2 должно быть равно либо больше, чем значение_1. Переменная цикла принимает последовательные значения данного типа от значения_1 до значения_2.

Например,

{для i=1,2,3,...,20 будет выполняться оператор А:=А+1}

For i:=1 To 20 Do A:=A+1;

Имеется возможность организовать цикл по убывающим значениям параметра. Для этого используется зарезервированное слово DownTo. Синтаксис оператора For по убывающим значениям параметра:

For счетчик:=значение_1 DownTo значение_2 Do оператор;

В этом случае переменная принимает последовательные убывающие значения данного типа от значения_1 до значения_2.

Например,

{для i=10,9,8,...,1 будет выполняться оператор А:=А+1}

For i:=10 DownTo 1 Do A:=A+1;