Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LYeKTsIYa_15_2.doc
Скачиваний:
13
Добавлен:
20.04.2019
Размер:
199.68 Кб
Скачать

2.3. Оператор цикла с параметром (for).

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

Формат записи оператора:

FOR <параметр цикла> := <m1> TO <m2> DO

BEGIN

{операторы тела цикла}

END;

где m1 и m2 – выражения, определяющие соответственно начальное и конечное значения параметра цикла;

for … do – заголовок цикла, определяющий:

  • диапазон изменения значений управляющей переменной (параметра цикла) и одновременно число повторений оператора, содержащегося в теле цикла;

  • направление изменения значения параметра цикла (возрастание – TO или убывание – DOWNTO).

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

При первом обращении к оператору FOR вначале вычисляются выражения m1, m2 и осуществляется присваивание <параметр цикла>:= m1.

После этого циклически повторяются следующие действия:

  1. Проверяется условие <параметр цикла> <= m2.

  2. Если условие выполнено, то оператор FOR продолжает работу (выполняется оператор в теле цикла), если условие <параметр цикла> <=m2 не выполняется, то оператор FOR завершает работу, и управление в программе передается на оператор, следующий за циклом.

  3. Значение управляющей переменной (параметра цикла) изменяется на +1 или –1 (в этом случае вместо служебного слова TO записывается служебное слово DOWNTO в операторе цикла FOR). Необходимо обратить внимание, что шаг изменения управляющей переменной – единица.

На использование управляющей переменной (параметра цикла) в цикле FOR налагаются следующие ограничения:

  1. В качестве параметра должна использоваться простая переменная, описанная в текущем блоке.

  2. Управляющая переменная должна иметь дискретный тип.

  3. Начальные и конечные значения диапазона должны иметь тип, совместимый с типом управляющей переменной. При этом допустим любой скалярный тип, кроме вещественного.

  4. В теле цикла запрещается явное изменение значения управляющей переменной (например, оператором присваивания).

  5. После завершения оператора значение управляющей переменной становится неопределенным, если только выполнение оператора не было прервано оператором перехода.

Пример 8.

Вычислить сумму .

Решение:

program pr3;

var s:real;

i:integer;

begin

s:=0;

for i:=1 to 20 do

s:=s+sqr(i);

writeln(‘s=’,s:8:2)

end.

При программировании циклов с параметром необходимо соблюдать следующие правила организации цикла:

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

  2. запрещено изменять внутри (в теле) цикла значения параметра цикла;

  3. запрещено входить в цикл с помощью оператора GOTO, минуя заголовок оператора цикла FOR, т.к. значения параметра цикла будут не определены;

  4. цикл не выполняется вообще, если начальное значение больше чем конечное при изменении параметра цикла на +1, или, если начальное значение меньше чем конечное при изменении цикла на –1;

  5. по окончании выполнения цикла значение переменной параметра цикла не определено и не может быть непосредственно использовано в дальнейших вычислениях;

  6. после служебного слова DO может стоять только один оператор; если в цикле нужно выполнить группу операторов, то их заключают в операторные скобки BEGIN – END;

  7. из составного оператора, входящего в оператор цикла, можно выйти до окончания этого цикла с помощью оператора GOTO, тогда последнее значение параметра цикла сохраняется.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]