Система команд исполнителя РОБОТ, «живущего» в клетках прямоугольного лабиринта на плоскости:
вверх, вниз, влево, вправо.
При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево←, вправо →.
Четыре условия позволяют проверить отсутствие преград у каждой из сторон той клетки, где находится РОБОТ: сверху свободно, снизу свободно, слева свободно, справа свободно.
В цикле
ПОКА <условие> команда
команда выполняется, пока условие истинно, иначе происходит переход на следующую строку программы.
Если РОБОТ начнёт движение в сторону стены рядом с которой он стоит, то робот разрушится, и выполнение программы прервётся. Сколько клеток лабиринта соответствуют требованию, что, выполнив предложенную программу, РОБОТ уцелеет и остановится в той же клетке, с которой он начал движение?
НАЧАЛО
ПОКА < снизу свободно > влево
ПОКА < слева свободно > вверх
ПОКА < сверху свободно > вправо
ПОКА < справа свободно > вниз
КОНЕЦ
Выясним, что необходимо, чтобы РОБОТ остановился в той же клетке, с которой он начал движение. Так как программа заканчивается командой "ПОКА < справа свободно > вниз", для того, чтобы робот остановился в той же клетке, с которой он начал движение, необходимо, чтобы у этой клетки была стенка справа. Этому условию удовлетворяют все клетки правой стенки лабиринта и еще четыре клетки помимо неё. Все клетки правой стенки, кроме одной, не подходят.
Проверим каждую оставшуюся клетку. Обратим внимание, что возможны зацикливания. Будем нумеровать клетки цифрами сверху вниз, а буквами слева направо. Удовлетворяющими условию задачи будут клетки В2, Д3, В5 и E5.

