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


Решение по шагам
5 шаговРобот начинает в левой клетке первой ступени. Закрашиваем эту клетку и переходим в правую клетку той же ступени.
Закрашиваем вторую клетку ступени. Если справа проход закрыт, все ступени обработаны, и алгоритм заканчивается.
Если справа свободно, переходим вправо. Следующая ступень находится либо ниже, либо выше: при свободном проходе вниз спускаемся, иначе поднимаемся вверх.
Повторяем описанные действия, пока справа можно перейти к следующей ступени. На каждой итерации закрашиваются ровно две клетки, расположенные непосредственно над очередной ступенью.
Один из вариантов записи алгоритма:
алг
нач
закрасить
вправо
закрасить
нц пока справа свободно
вправо
если снизу свободно то
вниз
иначе
вверх
все
закрасить
вправо
закрасить
кц
кон
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Закрашивание клеток самой лестницы вместо клеток непосредственно над ступенями.
Пропуск второй клетки каждой ступени.
Переход вверх или вниз без предварительной проверки свободного прохода.
Использование фиксированного числа повторений при неизвестном количестве ступеней.
Попытка выполнить движение вправо после окончания лестницы без проверки условия.