КРОШКА.РУ


08. Команда повторения "ПОКА"

Общий вид:

пока УТВЕРЖДЕНИЕ, повторять

СЕРИЯ КОМАНД

конец цикла


Выполнение:

Блок-схема выполнения

 

 

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

  1. проверяет записанное после служебного слова пока УТВЕРЖДЕНИЕ;
  2. если УТВЕРЖДЕНИЕ неверно (исполнитель ответил "НЕТ"), то выполнение цикла завершается и ЭВМ начинает выполнять команды, записанные после "конец цикла"; если же УТВЕРЖДЕНИЕ верно (исполнитель ответил "ДА"), то ЭВМ выполняет тело цикла (СЕРИЮ КОМАНД), снова проверяет утверждение и т.д.


Демонстрации

Знакомясь с каждой из них,

    1. Обратите внимание на диалог ЭВМ - Исполнитель при выполнении цикла.
    2. Попробуйте найти начальные условия, при которых тело цикла будет выполняться:
        • один раз;
        • три раза;
        • ни разу;
        • шесть раз;
        • бесконечно.
"Шаг по краю"

Можно ли заставить Ру

"Эх, яблочко..."

Попробуйте так положить шесть предметов, чтобы после исполнения программы в кармане было


Свойства:

  1. Если УТВЕРЖДЕНИЕ с самого начала неверно, то тело цикла (СЕРИЯ КОМАНД) не выполняется ни разу. (Поставьте в первой демонстрации, например, Ру в позицию № 9).
  2. Выполнение цикла завершается там, где его УТВЕРЖДЕНИЕ впервые оказывается неверным.
    (Иначе: после окончания цикла его УТВЕРЖДЕНИЕ обязательно ложно. А Пылесосик во втором примере остановится обязательно на чем-нбудь несъедобном.)
  3. Если УТВЕРЖДЕНИЕ всегда верно, то тело цикла (СЕРИЯ КОМАНД) выполняется бесконечно (эту ситуацию принято называть зацикливанием. Бедняга Ру на бесконечном по горизонтали поле.)
  4. УТВЕРЖДЕНИЕ проверяется ЭВМ только перед выполнением тела цикла (СЕРИИ КОМАНД), но не проверяется в процессе выполнения. (Это можно проследить во второй демонстрации.)


Рекомендации по применению цикла "ПОКА"

Всякий раз, когда число повторений каких-либо действий заранее неизвестно, используется цикл "пока".

Лучше всего планировать цикл по частям. При этом необходимо:

  1. Понять, когда цикл должен закончиться, т.е. сформулировать условие окнчания цикла. Записать после пока противоположное УТВЕРЖДЕНИЕ - условие продолжения цикла.
  2. Выяснить, что и как будет меняться в процессе выполнения цикла; описать промежуточные состояния после нескольких повторений цикла.
  3. Описать, что происходит при однократном вылолнении цикла (принято говорить "за один шаг цикла"), т.е. записать тело цикла.
  4. Проверить, что цикл рано или поздно закончится, а не будет выполняться бесконечно.