Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости:
вверх вниз влево вправо
При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно (по отношению к наблюдателю): вверх ↑, вниз ↓, влево ←, вправо →.
Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ (также по отношению к наблюдателю):
сверху
свободноснизу
свободнослева
свободносправа
свободно
Цикл
ПОКА < условие >
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
В конструкции
ЕСЛИ < условие >
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда2 (если условие ложно)
Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится и программа прервётся.
Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет и остановится в закрашенной клетке (клетка F6)?
НАЧАЛО
ПОКАснизу свободно ИЛИ справа свободно
ПОКА справа свободно
вправо
КОНЕЦ ПОКА
вниз
КОНЕЦ ПОКА
КОНЕЦ
В данной программе РОБОТ поступает следующим образом: сперва РОБОТ проверяет, свободна ли клетка справа или снизу от него. Если это так, то РОБОТ переходит к первому действию внутри цикла. В этом цикле пока у правой стороны клетки, в которой находится РОБОТ, нет стены, он продолжает двигаться вправо. Как только это условие перестанет выполняться, он переходит ко второму действию внутри цикла. Второе действие заключается в следующем: РОБОТ передвигается на одну клетку вниз. После чего возвращается к началу внешнего цикла.
Проанализировав эту программу, приходим к выводу, что РОБОТ может разбиться. Например, стартовав из клеток А6,B6,C6. Проверив все клетки по выведенному нами правилу движения РОБОТА выясняем, что число клеток, удовлетворяющих условию задачи, равно 15 (вся первая строчка, весь столбец F, клетки D2, E2, D4, D6, E4).
Ответ: 15.
Примечание.
Заметим, что если РОБОТ стартует из клетки F6, то условие «снизу свободно или справа свободно» не выполнится, и цикл не начнет выполняться, следовательно, РОБОТ закончит выполнение программы, не начав движение.


Здравствуйте,
В задании не учитано, что из D6 и E6 робот также может добраться до F6.
С уважением!
Здравствуйте.
Стартовав из клеток D6 и E6 Робот разобьётся:
ПОКАснизу свободно ИЛИ справа свободно Условие выполнено, начинаем выполнять цикл.
ПОКА справа свободно Условие выполнено до клетки F6
вправо
КОНЕЦ ПОКА
вниз Делаем один шаг вниз из клетки F6 и разбиваемся.
КОНЕЦ ПОКА
КОНЕЦ