Оператор цикла с параметром
вводится для организации “строгих” циклов,
которые должны быть проделаны заданное число
раз. Кроме того, циклы с параметром позволяют
организовать автоматическое изменение значения
некоторой переменной в определенном диапазоне.
Синтаксис оператора FOR:
FOR
ПараметрЦикла := МладшееЗначение TO
СтаршееЗначение DO Оператор;
или
FOR ПараметрЦикла := СтаршееЗначение DOWNTO МладшееЗначение DO Оператор;
FOR ПараметрЦикла := СтаршееЗначение DOWNTO МладшееЗначение DO Оператор;
Блок-схема оператора цикла с параметром
Оператор,
представляющий собой тело цикла, может быть как
простым, так и составным. Параметр цикла, а также диапазон его значений
(от стартового до конечного
включительно) может быть только порядкового
(целочисленного. символьного, логического) или
перечислимого типа! Параметр
цикла это обычная переменная, описанная в
текущем блоке. Шаг изменения значения параметра
цикла всегда постоянный (в случае целочисленного
типа равен единице).
Изменение
параметра цикла может быть как возрастающим, так
и убывающим. В первом случае МладшееЗначение должно быть больше чем Старшее, а во втором – наоборот.
Примеры оформления циклов с
параметром.
VAR i : integer;
BEGIN
FOR i := 1 TO 10 DO Write(i:5);
FOR i := 5 DOWNTO 0 DO
Write(i:5)
END.
На месте младших и старших
значений могут стоять константы, а могут и
переменные или выражения, совместимые по
присваиванию с параметром цикла. Например,
CONST n = 10;
m = 3;
VAR i,
k : integer;
BEGIN
k := 1;
FOR i := k TO n DO Write(i:5);
FOR i := (m+2) DOWNTO 0 DO
Write(i:5)
END.
Выполнение цикла начинается
с присваивания параметру стартового значения.
Затем следует проверка, не превосходит ли
параметр конечное значение (случай с TO) или не
является ли он меньше конечного значения (случай
с DOWNTO). Если результат проверки утвердительный,
то цикл считается завершенным. В противном
случае выполняется тело цикла (оператор,
следующий за словом DO), и после этого параметр
цикла меняет свое значение на следующее. Далее
снова производится проверка значения параметра
цикла, т.е. алгоритм повторяется.
Запрещается изменять
параметр цикла и его старшее и младшее значения
внутри тела цикла. Кроме того, параметр цикла не
может участвовать в построении диапазонов этого
же цикла. Компилятор таких “незаконных”
действий не замечает, но программа, содержащая
цикл с заголовком типа
FOR i := i-5 TO
i+5 DO ... ;
не заслуживает никакого
доверия, даже если запускается!
Операторы FOR могут быть
вложенными друг в друга, например
VAR
i,j : integer;
BEGIN
WriteLn(‘Таблица умножения’);
FOR i := 1 TO 10 DO begin
FOR j := 1 TO 10 DO
Write((i*j):5);
WriteLn;
end;
END.
Комментариев нет:
Отправить комментарий