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