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


Решение по шагам
4 шагаРобот движется влево по горизонтальной части лестницы до вертикальной стенки очередной ступени. Перед движением проверяется, что путь слева свободен.
Клетка справа от вертикальной части ступени является первой клеткой, которую нужно закрасить. Затем Робот поднимается на одну клетку и закрашивает вторую клетку.
После закрашивания двух клеток Робот возвращается на уровень следующего горизонтального участка и продолжает движение влево. Цикл завершается, когда слева больше нет очередной вертикальной части лестницы.
Один из вариантов программы Кумир:
алг
нач
нц пока слева свободно
влево
кц
нц пока сверху свободно
если слева свободно то
влево
иначе
закрасить
вверх
закрасить
вниз
все
все
кц
кон
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Закрашивают клетки самой стены, а не клетки рядом с её вертикальной частью.
Закрашивают только одну клетку вместо двух.
Двигаются влево без проверки «слева свободно», из-за чего Робот может разрушиться.
Не предусматривают завершение алгоритма после обработки всех ступеней.
После закрашивания не переходят на следующий горизонтальный уровень.