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