Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по информатике.doc
Скачиваний:
465
Добавлен:
17.03.2015
Размер:
3.59 Mб
Скачать

38. Счетный оператор цикла или оператор цикла с параметром

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

Этот оператор имеет следующую структуру:

For <пар_цик> : = <нач_знач> to <кон_знач> do <оператор>;

Здесь: For, to, do - зарезервированные слова;

           <пар_цик> - параметр цикла - переменная типа Integer (точнее любого порядкового типа);

           <нач_знач> - начальное значение - выражение того же типа;

           <кон_знач> - конечное значение - выражение того же типа;

           <оператор> - произвольный оператор Turbo Pascal.

При выполнении оператора For вначале вычисляется начальное значение и осуществляется его присваивание параметру цикла. Затем производится проверка условия <пар_цик> <= <кон_знач>, если условие имеет значение ИСТИНА, то выполняется оператор следующий за словом do, в противном случае оператор For прекращает свою работу.

Отметим два обстоятельства. Во-первых, условие, управляющее работой оператора For, проверяется перед выполнением оператора <оператор>: если условие не выполняется в самом начале работы циклического оператора, исполняемый оператор не будет выполнен ни разу. Другое обстоятельство - шаг наращивания параметр строго постоянен и равен +1. Существует другая форма оператора:

For <пар_цик> : = <нач_знач> downto <кон_знач> do <оператор>;

Замена зарезервированного слова to на downto означает, что шаг наращивания параметра цикла равен -1.

В случае использования в цикле не одного, а нескольких операторов, то принято заключать эти группы операторов в логические скобки begin и end.

Пример 1.

Дана последовательность целых чисел, состоящая из 25 элементов. Вычислить сумму элементов последовательности.

........

Program primer1;

Var i, a, s : integer;

Begin

  x := 0;

  For i := 1 to 25 do

    begin

      Read (a);

      x := x + a;

    end;

  Write ('Сумма элементов равна ', x);

End.

Пример 2.

Решим задание из примера 1 используя конструкцию оператора For, в которой шаг наращивания будет равен -1.

........

Program primer2;

Var i, a, s : integer;

Begin

  x := 0;

  For i := 25 downto 1 do

    begin

      Read (a);

      x := x + a;

    end;

  Write ('Сумма элементов равна ', x);

End.

39. Цикл с предпроверкой условия

Оператор цикла с предпроверкой условия While...Do схематично представлен в виде  блок-схемы на рис.2 и имеет следующий формат:

While <условие> Do <оператор>

         Здесь While, Do - зарезервированные слова («Пока [выполняется условие]», «делать»);

<условие> - выражение логического типа;

<оператор> - произвольный оператор, составляющий тело цикла (включая случай расширенного оператора).

Если условие имеет значение "Истинно" (True), то выполняется<оператор>, после  чего проверка условия повторяется. Если условие имеет значение "Ложь" (False), то оператор While прекращает свою работу. 

 

Рис.5.2 Блок-схема цикла с предпроверкой условия

 Данный оператор может быть использован в тех случаях, когда заранее не известно предстоящее число повторений.

Пример.  Дан бесконечный ряд вида

Найти сумму данного бесконечного ряда с заданной точностью e=0.01,т.е. продолжать процесс суммирования до тех пор, пока модуль разности между суммами для k-го и (k+1)-го шага не станет меньше e.