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


В клетке В2 робот после 1-го же хода разобьется, а в клетке Д1 после прохождения всего цикла робот окажется в клетке А1.
Правильный ответ- клетка С3!
Клетка В2:
Робот, выполняя условие "ПОКА <сверху свободно> вправо "Б, никак не может разбиться, он может не пойти вправо.
Клетка Д1:
После прохождения всего цикла, робот окажется в клетке Д1.
<сверху свободно> -НЕТ, переходим к следующему действию.
<справа свободно>-ДА, идем вниз.
<снизу свободно>-НЕТ, переходим к следующему действию.
<слева свободно>-ДА, идем вверх.
Клетки С3 в наших обозначениях не существует.
Клетка Е1 тоже подходит
В клетке Е1 робот не остановится, а будет бесконечно пытаться двигаться вверх.