Оператор цикла с параметром (FOR)

ВОПРОСЫ

1. Что делают следующие инструкции?

n:=0;

repeat

writeln(‘*’);

n:=n+1

until n<5;

2. Запишите условие окончания цикла для предыдущего примера так, чтобы было выведено 5 звездочек.

3. Для инструкций

n:=0;

repeat

writeln(‘->’);

readln(a);

n:=n+1

until <условие>;

запишите условие окончания цикла так, чтобы цикл завершался, если введено 10 чисел или введено число 0.

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

1) перед каждым (первым) выполнением цикла условие его окончания (или продолжения) должно быть определено (иметь конкретное значение);

2) тело цикла должно содержать хотя бы один оператор, влияющий на условие окончания (продолжения), иначе цикл будет продолжаться бесконечно;

3) условие окончания цикла должно быть в конце концов удовлетворено;

4) условие вычисляется при каждом выполнении цикла и поэтому должно быть насколько можно простым.

В случаях, когда число повторений может быть заранее известно, для организации циклической обработки информации применяется оператор повтора 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. После завершения оператора значение управляющей переменной становится неопределенным, если только выполнение оператора не было прервано оператором перехода.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: