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