На бесконечном поле три отрезка стен неизвестной длины — две горизонтали и одна вертикаль — образуют фигуру, похожую на закрывающую квадратную скобку «]».
Робот находится во внутреннем углу между вертикальной и нижней горизонтальной частями.
На рисунке показан один из вариантов (робот — буква «Р»).
Напишите алгоритм, по которому Робот закрасит все клетки, прилегающие справа к вертикальной части стены.
Другие клетки закрашивать не нужно.
Для приведённой схемы закрашенные клетки отмечены на рисунке:
Плоскость размечена клетками.
«Робот» ходит только на соседние клетки по сторонам, если их не разделяет стена.
Удар о стену означает аварийную остановку.
Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может.
Если Робот получит команду двигаться сквозь стену, он остановится из‑за поломки.
У Робота есть девять команд.
Перемещение задают команды:
вверх вниз влево вправо
Также у Робота есть команда закрасить, по которой он красит клетку, в которой находится.
Для ветвления есть проверки:
сверху свободно снизу свободно слева свободно справа свободно
Их можно использовать вместе с условием если:
если условие то
последовательность команд
все
Здесь условие — одна из команд проверки условия.
последовательность команд — одна или несколько любых команд-приказов.
Например, чтобы Робот передвинулся на одну клетку вправо, если справа нет стены, и закрасил эту клетку, можно использовать такой алгоритм:
если справа свободно то
вправо
закрасить
все
В одном условии можно использовать несколько команд проверки с помощью логических связок и, или, не:
если (справа свободно) и (не снизу свободно) то
вправо
все
Чтобы повторить последовательность команд, можно использовать цикл пока:
нц пока условие
последовательность команд
кц
На бесконечном поле стоит стена из трёх отрезков неизвестной длины — двух горизонтальных и одной вертикальной.
Вместе они образуют линию, похожую на закрывающую квадратную скобку ].
Робот находится во внутреннем углу, который образован вертикальной и нижней горизонтальной стенами.
На рисунке представлен один из возможных способов расположения стены и Робота (обозначен буквой Р).
Напишите для Робота алгоритм, по которому он закрасит все клетки, прилегающие справа к вертикальной части стены.
Робот должен закрасить только эти клетки.
Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок).
Прекратить движение Робот может в любой клетке, главное — не столкнуться со стеной.
Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен на нём.
Выполнение алгоритма должно быть завершено.
Сохраните файл с решением и отправьте его по ссылке.
Также вы можете прислать свою работу учителю другим удобным способом.
«Исполнитель Робот умеет перемещаться по полю на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может. Если Робот получит команду двигаться сквозь стену, исполнитель сломается».
Время решения
00:00.00
Нажмите «Пуск», когда начнёте решать
Пробел — пуск и пауза