Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости:
вверх вниз влево вправо
При выполнении этих команд РОБОТ перемещается на одну клетку соответственно: вверх, вниз, влево, вправо.
Четыре команды проверяют истинность условия отсутствия стены у той клетки, где находится РОБОТ:
сверху
свободноснизу
свободнослева
свободносправа
свободно
Цикл
ПОКА <условие> команда
выполняется, пока условие истинно, иначе происходит переход на следующую строку.
Сколько клеток лабиринта соответствуют требованию, что, выполнив предложенную программу, РОБОТ остановится в той же клетке, с которой он начал движение?
НАЧАЛО
ПОКА <слева свободно> вниз
ПОКА <снизу свободно> вправо
ПОКА <справа свободно> вверх
ПОКА <сверху свободно> влево
КОНЕЦ
Так как программа заканчивается командой "ПОКА <сверху свободно> влево", для того, чтобы робот остановился в той же клетке, с которой он начал движение, необходимо, чтобы у этой клетки была стенка сверху. Этому условию удовлетворяют все клетки верхней стенки лабиринта и еще пять клеток кроме нее.
Проверим каждую клетку, удовлетворяющую условию. Обратите внимание, что возможны зацикливания, например, если начать движение из клетки Д1 (если нумеровать цифрами сверху вниз, а русскими буквами слева направо).
Ответ: две клетки Г4 и А2.

