Лекция
Конструкции цикла в языке PASCAL
В практике программирования циклы - повторяющиеся выполнения однотипных действий - играют очень важную роль. Существует три стандартных способа организации циклических действий:
1. оператор цикла с параметром ( цикл FOR )
2. оператор цикла с предусловием ( цикл WHILE )
3. оператор цикла с постусловием ( цикл REPEAT )
1. Оператор цикла FOR
Оператор цикла FOR организует выполнение одного оператора или группы операторов заранее известное число раз. Достигается это с помощью управляющей переменной, называемой параметром цикла. Следующий простой пример иллюстрирует использование цикла с параметром:
for I:=1 to 10 do writeln('Привет!');
В данном примере задано десятикратное повторение оператора вывода. Переменная I является параметром цикла и последовательно принимает значения 1, 2, 3, ... , 10 , т.е. параметр цикла автоматически принимает последовательно все целые значения, начиная от начального значения (в примере - от 1) до конечного значения (в примере - до 10). В результате выполнения данного оператора на экран дисплея будет выведено десять строчек со словом 'Привет!'.
Существует другой вариант оператора цикла FOR. Рассмотрим его на примере:
for I:=10 downto 1 do writeln(I);;
В данном примере вместо ключевого слова TO используется ключевое слово DOWNTO. И это будет означать, что параметр цикла будет уменьшаться на 1 при каждом новом выполнении тела цикла.
Т.е. переменная I будет принимать последовательно значения 10, 9, 8, ... , 1.
В общем виде оператор цикла с параметром имеет два варианта записи.
Вариант 1:
For <имя>:=<выражение1> TO <выражение2> DO <оператор>
Вариант 2:
For <имя>:=<выражение1> DOWNTO <выражение2> DO <оператор>
В этих операторах:
<имя> - параметр цикла, являющийся переменной порядкового
типа (перечислимого или ограниченного); <выражение1> - выражение, определяющее начальное значение
параметра;
<выражение2> - выражение, определяющее конечное значение
параметра;
<оператор> - тело цикла (выполняемый оператор или группа
операторов, оформленных как составной оператор: begin ... end).
Таким образом, оператор цикла с параметром определяет:
- диапазон изменения значений управляющей переменной и, одновременно, число повторений оператора, содержащего тело цикла;
- направление изменения значения переменной ( возрастание или убывание);
- собственно действия, выполняемые на каждом шаге (тело цикла).
Цикл действует таким образом.
Шаг 1. Сначала вычисляются и запоминаются начальное (<выражение1>) и конечное значение (<выражение2>) параметра цикла.
Шаг 2. Параметру цикла <имя> присваивается начальное значение <выражение2>.
Шаг 3. Значение параметра цикла сравнивается со значением <выражение2>. Если параметр цикла больше конечного значения (в первом варианте оператора), или меньше конечного значения (во втором варианте оператора), то выполнение оператора цикла завершается и управление передается команде, следующей за оператором цикла.
Шаг 4. Выполняется тело цикла.
Шаг 5. После выполнения тела цикла происходит присваивание параметру цикла следующего значения (большего - в первом варианте записи, меньшего-во втором случае). Переход к шагу 3.
На использование управляющей переменной накладываются следующие ограничения:
1. Управляющая переменная должна быть описана в текущем блоке.
2. Управляющая переменная должна иметь дискретный тип.
3. Начальные и конечные значения диапазона должны иметь тип, совместимый с типом управляющей переменной.
4. В теле цикла запрещается явное изменение значения управляющей переменной ( например, оператором присваивания).
5. После завершения оператора цикла значение управляющей переменной становится неопределенным.
Рассмотрим примеры использования цикла FOR.
Предположим, что у нас есть следующее описание переменных:
Var
I:integer;
C:char;
B:boolean;
Col=(Red,Yellow,Green,Blue,White);
Тогда будут правильными с синтаксической точки зрения следующие конструкции цикла:
а) for I:=-10 to 10 do writeln(I);
б) for I:=10 downto -10 do writeln(I);
в) for C:='a' to 'r' do writeln(C);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.