15. Исполнитель алгоритма: #296282
На бесконечном поле имеются две одинаковые вертикальные параллельные стены, расположенные на одинаковой высоте и отстоящие друг от друга более чем на $1$ клетку. Длины стен неизвестны. Робот находится в одной из клеток, расположенной справа от левой стены, рядом со стеной. На рисунке 1 указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»).
Напишите для Робота алгоритм, закрашивающий все клетки, примыкающие к вертикальным стенам справа. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого рисунка 1 Робот должен закрасить следующие клетки (см. рисунок 2).

Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для любого допустимого расположения стен. При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться.
Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе.
Сохраните алгоритм в формате программы Кумир или в текстовом файле. Название файла и каталог для сохранения Вам сообщат организаторы экзамена.
Сначала Робот движется вниз вдоль правой стороны левой стены до её нижнего края. Затем возвращается на одну клетку вверх и, двигаясь вверх вдоль стены, закрашивает все клетки справа от неё.
После верхнего края Робот возвращается на уровень верхней клетки стены и движется вправо до второй стены. Затем обходит её сверху и закрашивает все клетки справа от второй стены, двигаясь вниз.
нц пока не слева свободно
вниз
кц
вверх
нц пока не слева свободно
закрасить
вверх
кц
вниз
нц пока справа свободно
вправо
кц
вверх
вправо
вниз
нц пока не слева свободно
закрасить
вниз
кц
Первый цикл
нц пока не слева свободно
вниз
кц
ведёт Робота вниз вдоль левой стены. Когда он окажется ниже её нижнего края, слева станет свободно.
После команды вверх Робот возвращается к нижней клетке стены. Цикл
нц пока не слева свободно
закрасить
вверх
кц
закрашивает все клетки справа от левой стены.
После окончания стены Робот оказывается выше неё. Команда вниз возвращает его на уровень верхнего края. Далее он движется вправо до второй стены:
нц пока справа свободно
вправо
кц
Команды
вверх
вправо
вниз
позволяют обойти верхний край второй стены и оказаться справа от неё.
Последний цикл
нц пока не слева свободно
закрасить
вниз
кц
закрашивает все клетки справа от второй вертикальной стены.
Таким образом, будут закрашены все и только клетки, примыкающие к обеим вертикальным стенам справа.