Да здравствует то, благодаря чему мы - несмотря ни на что!
Методический
материал
Видеоуроки
Домашняя
работа
Портфолио
Полезные
программы
Задать
вопрос

     

Безусловный оператор цикла.

Оператор цикла FOR является безусловным оператором цикла, т.е. позволяет выполнять действие определённое количество раз.

Оператор Модуль Назначение Пример
FOR SYSTEM

Повторение заданной последовательности операторов определённое количество раз. Форма записи:

FOR <п.ц.>:=<н.з.> TO <к.з.> DO <оператор>;
<п.ц.> — параметр цикла, переменная целого типа;
<н.з.> — начальное значение;
<к.з.> — конечное значение;
<оператор> — исполнительный оператор.

TO — увеличение <п.ц.> на 1;
DOWNTO — уменьшение <п.ц.> на 1.

VAR
 I : INTEGER;
 S, C : REAL;
BEGIN
 ...
 FOR I:=1 TO 10 DO
  BEGIN
   WRITELN(I);
   READLN(C);
   S:=S+C;
  END;
 ...
END.

При выполнении оператора цикла FOR вначале вычисляется выражение <н.з.> (начальное значение) и осуществляется присваивание <п.ц.> (параметру цикла) := <н.з.> (начального значения). После этого циклически повторяется:

  • проверка условия <п.ц.> <= <к.з.>; если условие не выполнено, оператор FOR завершает свою работу;
  • выполнение оператора <оператор>;
  • изменение <п.ц.> на единицу.

Во—первых, условие, управляющее работой оператора FOR, проверяется перед выполнением оператора <оператор>: если условие не выполняется в самом начале работы оператора FOR, исполняемый оператор не будет выполнен ни разу.

Во—вторых, шаг изменения параметра цикла (при использовании TO) строго постоянен и равен (+1).

Существует другая запись оператора:

FOR <п.ц.> := <н.з.> DOWNTO <к.з.> DO <оператор>;

Замена зарезервированного слова TO на DOWNTO означает, что шаг изменения параметра цикла равен (-1), а управляющее условие приобретает вид <п.ц.> >= <к.з.> (конечное значение).

Количество повторений вычисляется по следующим формулам:

TO: <к.з.> — <н.з.> + 1;
DOWNTO: <н.з.> — <к.з.> + 1;

Схема работы оператора FOR.

Пример программы.

Program Oper_For;
Var
 I  : Integer;
 St : String;
BEGIN
 Write('Введите слово: ');
 Readln(St);
 Writeln('Повторяю 10 раз...'); 
 For I:=1 To 10 Do
  Writeln(St);
END.

Блок-схема программы.


© Прохоров В.А., учитель информатики и ИКТ