Арифметические циклы

Циклы

В большинстве задач, встречающихся на практике, необходимо производить многократное выполнение некоторого действия. Например:

· запросить 10 чисел

· вывести 5 строк

· запрашивать целые числа до тех пор, пока введут чётное число

· выполнить действие несколько раз подряд

Процессы, при реализации которых повторяется выполнение одних и тех же действий, называют циклическими. А многократно повторяющийся участок процесса называется циклом.

Если заранее известно количество необходимых повторений, то цикл называется арифметическим. Если же количество повторений заранее неизвестно, то говорят об итерационном цикле.

В арифметическом цикле количество повторений задается явно при помощи специальных переменных, называемых счетчиками цикла.

В итерационных циклах производится проверка некоторого условия, и в зависимости от результата этой проверки происходит либо выход из цикла, либо повторение выполнения тела цикла. Если проверка условия производится перед выполнением блока операторов, то такой итерационный цикл называется циклом с предусловием (цикл "пока"(while - do)), а если проверка производится после выполнения тела цикла, то это цикл с постусловием (цикл "до"(repeat-until)).

В цикле со счетчиком тело цикла повторяется заранее определенное число раз. Циклы со счетчиком используются довольно часто, и поэтому в языке Паскаль для этих целей имеется специальная конструкция. Часто этот оператор повтора называют циклом с параметром, так как число повторений задается переменной, называемой параметром цикла или счетчиком.

Синтаксис:

for переменная := значение 1 to значение 2 do оператор

или

for переменная := значение 1 downto значение 2 do оператор

Оператор for вызывает оператор, находящийся после слова do, по одному разу для каждого значения в диапазоне от значения 1 до значения 2. В данном случае переменная – хранит в себе текущий номер шага цикла и называется счетчиком цикла. Выход из цикла происходит когда значение в поле переменная станет равным значению 2

Переменная цикла, начальное и конечное значения должны иметь порядковый тип (числа, буквы латинского и русского алфавита, перечисляемые типы).

Со словом to, значение переменной цикла увеличивается на 1 при каждой итерации цикла. Со словом downto, значение переменной цикла уменьшается на 1 при каждой итерации цикла. Не следует самостоятельно изменять значение управляющей переменной внутри цикла.

Как и в случае использования оператора условного перехода, следует помнить, что синтаксис языка допускает запись только одного оператора после ключевого слова do, поэтому, если вы хотите в цикле выполнить группу операторов, обязательно надо объединить их в составной оператор (окаймить операторными скобками begin ... end). В противном случае будет сделана логическая ошибка программы.

Пример 1.1 Квадраты чисел от 2-х до 10-и.

for x:=2 to 10 do WriteLn(x*x);

Пример 1.2 Латинский алфавит.

for ch:='A' to 'Z' do Writeln(ch);

Пример 1.3 Использование цикла с downto.

for i:=10 downto 1 do WriteLn(i);

Пример 1.4 Использование составного оператора.

for x:=1 to 10 do

begin

y:=2*x;

WriteLn('f(',x,')=',y);

end;

 

Для графического обозначения оператора for используется специальный графический символ (рисунок 1):

Рисунок 1. Графическое обозначение

внутри которого указывается начальное и конечное значения счетчика цикла. Блок-схема выполнения цикла For приведена на рисунке 2:

Рисунок 2. Блок-схема цикла FOR