где i - параметр цикла (счетчик повторов)- переменная целого типа (integer);
A и B - начальное и конечное значения параметра цикла- выражения того же типа, что и параметр цикла;
оператор - любой простой или составной оператор, который требуется повторить несколько раз.
Оператор цикла типа FOR...TO...DO предусматривает последовательное увеличение на единицу параметра цикла "i" от начального значения "A" до конечного значения "B" и выполнение входящего в цикл алгоритма при каждом значении параметра цикла.
В качестве иллюстрации применения оператора цикла FOR...TO...DO рассмотрим решение с его помощью предыдущей задачи, где на экран несколько раз выводится слово "ЦИКЛ".
Program Primer;
Uses Crt;
Var i:integer;
Begin
TextColor(Yellow); TextBackGround(Blue);
ClrScr;
FOR i:=1 TO 5 DO Writeln('ЦИКЛ');
Readln
End.
Приведем еще один пример использования оператора цикла с параметром. В этом примере с клавиатуры вводится целое число N, после чего вычисляется сумма всех целых чисел от 1 до N.
Program Primer;
Uses Crt;
Var i,N,S:integer;
Begin
TextColor(Green); TextBackGround(Cyan);
ClrScr;
Write('N= '); Readln(N);{C клавиатуры ввели целое число в переменную “N”}
S:=0; {Задали начальное значение суммы}
FOR i:=1 TO N DO S:=S+i;{ Во время каждого из повторов }
{ значение суммы "S" увеличивается }
{ на новую величину счетчика "i" }
Writeln('S= ',S:6);
Readln
End.
В этой программе оператор "S:=S+i" выполняется "N" раз, при различных значениях параметра цикла "i".
В некоторых случаях бывает удобно, чтобы параметр цикла принимал последовательно убывающие, а не возрастающие значения. Для этого предусмотрена следующая разновидность оператора цикла:
FOR i:=B DOWNTO A DO оператор;
где i, A и B имеют прежний смысл. Отличие от предыдущего варианта цикла в том, что в операторе цикла типа FOR...DOWNTO...DO шаг наращивания параметра равен -1, при этом начальное значение счетчика повторов "B" больше конечного значения "A".
Проследим, как изменится предыдущий пример при нисходящем изменении значения параметра цикла:
Program Primer;
Uses Crt;
Var i,N,S:integer;
Begin
TextColor(Red); TextBackGround(White);
ClrScr;
Write('N= '); Readln(N);
S:=0; {начальное значение суммы}
FOR i:=N DOWNTO 1 DO S:=S+i;
Writeln('S= ',S:6);
Readln
End.
Для операторов цикла с параметром существуют некоторые ограничения:
нельзя задавать шаг изменения значения параметра, отличный от 1 или -1;
не желательно изменять внутри цикла значения параметра цикла, начальное и конечное значения параметра;
входить в цикл можно только через его начало, а выходить - либо при исчерпании значений параметра цикла, либо при выполнении оператора перехода по метке, расположенной вне данного цикла.