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


Шешім по шагам
3 қадамРобот начинает в клетке непосредственно над левым концом стены. Сначала перейдём на ряд, расположенный на одну пустую клетку выше стены.
$$вверх$$Закрашиваем первую нужную клетку и возвращаемся в ряд непосредственно над стеной.
$$закрасить; вниз$$Пока справа есть свободная клетка и снизу находится стена, переходим к следующему столбцу, поднимаемся, закрашиваем клетку и возвращаемся вниз. У правого конца стены условие «не снизу свободно» становится ложным, поэтому цикл завершается.
$$нц пока (справа свободно) и (не снизу свободно) вправо вверх закрасить вниз кц$$вверх
закрасить
вниз
нц пока (справа свободно) и (не снизу свободно)
вправо
вверх
закрасить
вниз
кц
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Закрашивание клетки непосредственно над стеной вместо клетки через одну пустую клетку.
Проверка только условия «справа свободно», из-за чего Робот закрашивает клетки за пределами стены.
Отсутствие команды «вниз» после закрашивания, из-за чего Робот не может перейти к следующему столбцу.
Попытка двигаться вниз через стену.