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


Робот использует команды «вверх», «вниз», «влево», «вправо», «закрасить», проверки «сверху свободно», «снизу свободно», «слева свободно», «справа свободно», а также условие «если» и цикл «нц пока ... кц».
Шешім по шагам
4 қадамРобот начинает в верхней клетке. Пока снизу свободно, он закрашивает текущую клетку и перемещается вниз.
Когда Робот оказывается в нижней клетке, она ещё не закрашена, поэтому её нужно закрасить отдельно.
Затем Робот возвращается в исходную верхнюю клетку: пока сверху свободно, он перемещается вверх.
Алгоритм завершается, когда Робот возвращается в верхнюю клетку, поскольку сверху уже нет свободного прохода.
нц пока снизу свободно
закрасить
вниз
кц
закрасить
нц пока сверху свободно
вверх
кц
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Не закрашивают нижнюю клетку после завершения первого цикла.
Закрашивают клетку после перемещения, из-за чего верхняя или нижняя клетка может остаться незакрашенной.
Возвращаются вверх до проверки условия и пытаются пройти сквозь верхнюю границу.
Используют цикл с условием «снизу свободно» для обратного движения.