Вопрос:

Задание 24. Исполнитель РОБОТ умеет перемещаться по прямоугольному лабиринту, начерченному на плоскости, разбитой на клетки. Система команд РОБОТА включает 4 команды-приказа (вверх, вниз, влево, вправо) и 4 команды проверки условия (сверху свободно, снизу свободно, слева свободно, справа свободно). Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится, и программа прервётся. Сколько клеток лабиринта соответствуют требованию, что, выполнив предложенную программу, РОБОТ улетит и остановится в закрашенной клетке? Программа: НАЧАЛО; ПОКА снизу свободно ИЛИ справа свободно; ПОКА снизу свободно; вниз; КОНЕЦ ПОКА; ЕСЛИ справа свободно ТО; вправо; КОНЕЦ ЕСЛИ; КОНЕЦ ПОКА; КОНЕЦ.

Ответ:

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

На рисунке таких стартовых клеток столько, сколько клеток последнего столбца, из которых можно двигаться вниз по соответствующему маршруту до закрашенной клетки. Подсчёт по схеме даёт 5 клеток.

Ответ: 5.

Подать жалобу Правообладателю