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

