Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости, включает в себя 4 команды-приказа и 4 команды проверки условия. Команды-приказы: вверх, вниз, влево, вправо. При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится, и программа прервётся.
Другие 4 команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ: сверху свободно, снизу свободно, слева свободно, справа свободно. Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно. В конструкции
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет и остановится в закрашенной клетке (клетка F6)?
НАЧАЛО
ПОКА снизу свободно ИЛИ справа свободно
ПОКА снизу свободно
вниз
КОНЕЦ ПОКА
ЕСЛИ справа свободно
ТО вправо
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
РОБОТ поступает следующим образом: вначале он проверяет, свободна ли клетка снизу или справа от него. Если это так, то РОБОТ переходит к первому действию внутри цикла. В этом цикле пока у нижней стороны клетки, в которой находится РОБОТ, нет стены, он двигается вниз. Далее, если у правой стороны клетки, в которой находиться РОБОТ нет стены, РОБОТ перемещается вправо. После этого возвращается к началу внешнего цикла.
Проанализировав программу, приходим к выводу, что РОБОТ не может разбиться.
Проверив все клетки по выведенному нами правилу движения РОБОТА, выясняем, что число клеток, удовлетворяющих условию задачи, равно 13: A4-A6, B4-B6, C5-D5, и. т. д.

