Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости, состоит из 8 команд. Четыре команды −
| вверх | вниз | влево | вправо |
При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →.
Четыре команды проверяют истинность условия отсутствия стены у каждой
| сверху свободно | снизу свободно | слева свободно | справа свободно |
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
В конструкции
ЕСЛИ условие
ТО команда 1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
В конструкциях ПОКА и ЕСЛИ условие может содержать команды проверки, а также слова И, ИЛИ, НЕ, обозначающие логические операции.
Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится, и программа прервётся.
Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет и остановится в закрашенной клетке (клетка F6)?
НАЧАЛО
ПОКА снизу свободно ИЛИ справа свободно
ЕСЛИ снизу свободно
ТО
вниз
КОНЕЦ ЕСЛИ
ЕСЛИ справа свободно
ТО
вправо
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
При данной программе РОБОТ поступает следующим образом: сперва РОБОТ проверяет, свободна ли клетка справа или снизу от него. Если это так, то РОБОТ переходит к первому действию внутри цикла. В этом цикле если у нижней стороны клетки, в которой находится РОБОТ, нет стены, он двигается вниз, в противном случае, если у правой стороны клетки нет стены, он перемещается вправо. После этого возвращается к началу внешнего цикла.
Проанализировав эту программу, приходим к выводу, что РОБОТ не может разбиться.
Проверив все клетки по выведенному нами правилу движения РОБОТА выясняем, что число клеток, удовлетворяющих условию задачи, равно 12 (клетки А4-6, B4-6, C5-6, D5-6, E6, F6).
Примечание. Робот будет на каждом новом круге последовательно проверять оба условия и выполнять их, и будет двигаться "лесенкой" пока это возможно, а не просто спускаться вниз до препятствия, а затем идти вправо. В частности, начав движение из клетки D4, робот будет перемещаться по пути D4—D5—E5—F5.
Заметим, что фраза «робот начнет движение и остановится» подразумевает, что «робот начнет выполнение программы и остановится», при этом робот не обязательно будет перемещаться в другую клетку.

