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


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