|
|
|
§ 3.3. Управление исполнителем Робот Цикл «пока» (окончание)Напишем программу, исполняя которую Робот нарисует на клетчатом поле меандр (рис. 3.12), число витков которого зависит от положения правой стены. Виток меандра умещается на клетчатом поле, если между клеткой, занимаемой Роботом, и правой стеной есть 1 клетка. ПОКА справа свободно ДЕЛАТЬ
В зависимости от исходного положения Робота тело цикла пока может не выполниться ни разу. Такая ситуация не является отказом. Подумайте, каким должно быть исходное положение Робота в программе рисования меандра, чтобы тело цикла не выполнилось ни разу. Из-за логических ошибок, допущенных при составлении алгоритма, может возникнуть ситуация зацикливания. Это значит, что условие будет всегда соблюдаться, и выполнение цикла «пока» никогда не завершится. Рассмотрим следующий пример: ПОКА справа свободно ДЕЛАТЬ
Что будет происходить, если справа от Робота нет стены? Условие в цикле «пока» проверяется только перед выполнением тела цикла, но не в процессе его выполнения. Подумайте, что произойдет, если Робот начнет выполнять нашу программу рисования меандра с циклом «пока», находясь в следующем исходном положении:
Что общего у циклов «повторить п раз» и «пока»? Какие между ними отличия? Нужны ли две конструкции для описания повторяющихся действий?
|
|
|