Для организации циклического процесса при известном числе повторений используется управляющая структура (оператор) “For”. Структура “For” имеет две разновидности.
Наиболее распространенная форма имеет вид:
For <управляющая переменная>:=<выражение1> To
<выражение2> Do <оператор>;
Оператор, указанный после слова Do выполняется для каждого заданного значения управляющей переменной. Выполняемый оператор может представлять собой составной оператор, т.е. группу операторов, заключенный в операторные скобки “Begin” и “End”.
Переменная, задаваемая после слова "FOR", называется переменной цикла. Управляющая переменная представляет собой целое число. Первоначально управляющей переменной присваивается значение, определенное как <выражение1>. Затем управляющая переменная будет автоматически принимать очередные значения, увеличенные на единицу. Выполнение завершается после того, как управляющая переменная достигнет значения, определенного как <выражение 2>.
|
|
После выхода из цикла значение переменной цикла считается неопределенным. Менять значения переменной или выражений внутри цикла программным путем не рекомендуется.
Пример:
Программный код, обеспечивающий нахождение наибольшего общего делителя для трех чисел имеет следующий вид:
Program PrjNod;
{$APPTYPE CONSOLE}
Uses SysUtils;
Var
A,B,C,Nod, I: Integer;
Begin
Readln (A,B,C);
For I:= 1 To A Do
If (A Mod I = 0) And (B Mod I = 0)
And (C Mod I = 0) Then Nod:= I;
Writeln('Nod=',Nod);
Readln;
End.
Вторая разновидность оператора “For” отличается от первой, тем, что изменение управляющей переменной идет сверху вниз от большего значения к меньшему значению. Синтаксис второй разновидности:
For <управляющая переменная>:=<выражение1> To
<выражение2> Do <оператор>;
Первоначально управляющей переменной присваивается значение, определенное как <выражение1>. Затем управляющая переменная будет уменьшаться на единицу. Выполнение завершается после того, как управляющая переменная достигнет значения, определенного как <выражение 2>.
Пример:
Программный код, обеспечивает выдачу заданного количества чисел натурального ряда, предшествующих введенному числу.
Program PrjDownTo;
{$APPTYPE CONSOLE}
Uses SysUtils;
Var
N,Q,L,I: Integer;
Begin
Readln(N,Q);
L:=N-Q;
For I:= N-1 DownTo L Do
Writeln (I);
Readln;
End.