Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Исп Робот.doc
Скачиваний:
21
Добавлен:
13.11.2019
Размер:
838.14 Кб
Скачать

10.7. Свойства цикла пока

1. Тело цикла может не выполниться ни разу

Если условие в цикле пока не соблюдается с самого начала, то тело цикла не выполняется ни разу. Например, если в алгоритме А18 "вниз до стены" Робот на первый же вопрос "снизу свободно?" ответит нет (т. е. если снизу от него с самого начала будет стена), то компьютер не вызовет команду вниз ни разу.

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

2. Выполнение цикла может не завершиться

Выполнение цикла пока может не завершиться, если условие все время будет соблюдаться. Такая ситуация обычно возникает из-за ошибок в составлении алгоритма. Она называется зацикливанием.

Рассмотрим, например, такой фрагмент алгоритма:

нц пока справа свободно

вправо; влево

кц

Если справа от Робота нет стены, он будет бесконечно топтаться на месте, совершая шаги вправо и влево. Исполнение алгоритма никогда не закончится.

3. Условие цикла не проверяется в процессе выполнения тела цикла

Условие в цикле пока проверяется только перед выполнением тела цикла, но не в процессе выполнения.

Пример 1. Пусть Робот находится в клетке А (рис. 13) и компьютер выполняет цикл

нц пока снизу свободно

вниз вниз

кц

Тогда диалог Компьютер (ЭВМ) — Робот будет таким:

ЭВМ: снизу свободно?

ЭВМ: вниз

ЭВМ: вниз

ЭВМ: снизу свободно?

ЭВМ: вниз

ЭВМ: вниз

Робот: да

Робот: смещается вниз (в клетку Б)

Робот: смещается вниз (в клетку В)

Робот: да

Робот: смещается вниз (в клетку Г)

Робот: отказ

Таким образом, в процессе выполнения тела цикла компьютер условие не проверяет и вопросов Роботу не задает. Если в какой-то момент условие перестанет соблюдаться, то компьютер все равно будет выполнять тело цикла до конца.

Пример 2. Пусть Робот находится в клетке А (рис. 14) и компьютер выполняет цикл

нц пока клетка закрашена

в низ

вниз

вниз

кц

Тогда диалог Компьютер (ЭВМ) —Робот будет таким:

ЭВМ: клетка закрашена?

ЭВМ: вниз

ЭВМ: вниз

ЭВМ: вниз

ЭВМ: клетка закрашена?

ЭВМ: вниз

ЭВМ: вниз

ЭВМ: вниз

ЭВМ: клетка закрашена?

Робот: да

Робот: смещается вниз (в клетку Б)

Робот: смещается вниз (в клетку В)

Робот: смещается вниз (в клетку Г)

Робот: да

Робот: смещается вниз (в клетку Д)

Робот: смещается вниз (в клетку Е)

Робот: смещается вниз (в клетку Ж)

Робот: нет

В процессе второго выполнения тела цикла условие клетка закрашена, перестанет соблюдаться (клетки Д и Е не закрашены). Однако компьютер доведет выполнение тела цикла до конца и Робот окажется на две клетки ниже клетки Д.

4. Перед каждым выполнением тела цикла условие обязательно выполняется.

Это очевидное свойство: если компьютер приступает к выполнению тела цикла, значит, условие выполнено.