Процессы, в которых ряд действий повторяются многократно по одним и тем же математическим зависимостям, называются циклическими.
При организации циклов необходимо:
определить параметр цикла и его начальное значение;
изменять значение параметра цикла на каждом шаге итерации;
организовать проверку на выход из цикла.
for i:=N to K do P ;
(для) (до) (выполнять)
где i - параметр цикла;
N, K - его начальное и конечное значение;
P - простой или составной оператор;
i,N,K - переменные или константы целого типа.
Шаг изменения i - равен 1.
Если K<N, т.е. имеем дело с циклом с отрицательным шагом: (-1)
for i:=N downto K do P;
Оператор цикла с параметром автоматически устанавливает начальное значение параметра цикла, изменяет значение параметра на шаг (+1 или -1), организовывает проверку на выход из цикла.
Задача.
Вычислить сумму ряда
S= 1+1/2+1/3+ … +1/50
Выделим переменную для накапливания суммы - sum. Значение этой переменной необходимо предварительно обнулить. program cikl;
var
i: integer;
sum: real;
begin
sum: =0;
for i: = 1 to 50 do
sum: = sum + 1/i;
Writeln (' сумма = ', sum);
end.
Оператор for применяют в тех случаях, когда значения параметра цикла целые и меняются с шагом +1, -1.
Оператор цикла с постусловием
repeat
p1;p2 ;…pn ;
until <условие>;
где p1; p2 ; … pn ; - любые операторы, образующие тело цикла.
По этому оператору выполняется «тело цикла», а затем проверяется <условие>, если оно не выполнилось, цикл повторяется. И так до тех пор, пока <условие> не будет выполнено. Необходимо помнить: если <условие> выполнилось c первого раза, цикл будет пройден один раз.
Действия, которые подчеркнуты, необходимы для организации цикла. Для организации цикла необходимо выполнить три действия:
восстановить начальное значение параметра цикла;
сформировать текущее значение параметра цикла;
организовать проверку на выход из цикла.
В операторе for … to … do перечисленные действия выполняются автоматически. В остальных операторах цикла эти действия необходимо организовать составителю программы.