Выполни задания
Исполнитель Робот действует на клетчатом поле, между клетками которого могут быть стены. Система команд исполнителя Робот:
Команда | Описание команды |
Вверх Вниз Вправо Влево |
Робот перемещается в соседнюю клетку в указанном направлении. Если же в этом направлении между клетками стоит стена, то Робот разрушается |
Закрасить |
Робот закрашивает ту клетку, в которой находится |
Сверху свободно Снизу свободно Слева свободно Справа свободно |
Проверка истинности условия отсутствия стены у соответствующей стороны той клетки, где находится Робот: стены нет — истина, иначе ложь |
если \(\lt\) условие \(\gt\) то \(\lt\) последовательность команд \(\gt\)все |
Организация ветвления: если \(\lt\) условие \(\gt\) верно, то выполняется \(\lt\) последовательность команд \(\gt\) . В одном условии можно использовать несколько команд, применяя логические связки и, или, не. |
нц пока \(\lt\) условие \(\gt\) \(\lt\) последовательность команд \(\gt\)кц |
Организация цикла: пока \(\lt\) условие \(\gt\) верно, выполняется \(\lt\) последовательность команд \(\gt\) |
А. На бесконечном клетчатом поле имеется горизонтальная стена. Длина стены неизвестна. Робот находится в одной из клеток, примыкающих к стене сверху. На рисунке указан один из возможных вариантов расположения Робота и стены (Робот обозначен буквой «Р»).
Робот должен закрасить все клетки, примыкающие к стене сверху. Так, для приведённого выше рисунка должны быть закрашены следующие клетки:
Конечное положение Робота значения не имеет.
Опиши укрупнёнными шагами (модулями) план действий Робота по решению поставленной задачи.
Б. Где-то в поле Робота находятся две вертикальные стены равной, но неизвестной длины, расположенные одна напротив другой. Робот находится в произвольной клетке справа от правой стены, причём напротив неё. На рисунке указан один из возможных вариантов расположения Робота и стен (Робот обозначен буквой «Р»).
Робот приступил к исполнению следующего алгоритма:
нц пока слева свободно
влево
кц
нц пока слева не свободно
вверх
кц
влево; вниз
нц пока справа не свободно или слева не свободно
нц пока слева свободно
закрасить; влево
кц
закрасить; вниз
нц пока справа свободно
закрасить; вправо
кц
закрасить; вниз
кц
Каким будет результат исполнения данного алгоритма? Изобрази его на рисунке.
Опиши алгоритм действий Робота укрупнёнными шагами.
В. На бесконечном клетчатом поле имеется горизонтальная стена. Длина стены неизвестна. Робот находится в одной из клеток, примыкающих к стене сверху. Точное положение Робота неизвестно. На рисунке указан один из возможных вариантов расположения Робота и стен (Робот обозначен буквой «Р»).
Робот должен закрасить через одну клетки, примыкающие к стене сверху, начиная с самой левой клетки. Например, для приведённого выше рисунка результат работы должен быть таким:
Конечное положение Робота значения не имеет. Алгоритм должен решать задачу для стены произвольного размера и любого допустимого начального положения Робота.
При составлении алгоритма можно использовать следующее разбиение задачи на подзадачи:
перевести Робота в исходное положение — крайнюю левую клетку, примыкающую к стене сверху;
двигаясь слева направо, закрасить через одну все клетки, примыкающие к стене сверху.
Напиши алгоритм.
Г. Робот находится в произвольной точке внутри прямоугольного, огороженного стенами участка клетчатого поля. Размеры прямоугольника неизвестны.
Напиши алгоритм, с помощью которого Робот закрасит все клетки, примыкающие к нижней стороне прямоугольника. Конечное положение Робота может быть произвольным.
Д. Робот находится в произвольной точке внутри прямоугольного, огороженного стенами участка клетчатого поля. Размеры прямоугольника неизвестны.
Напиши алгоритм, с помощью которого Робот закрасит все клетки, примыкающие к сторонам прямоугольника, и вернётся в начальное положение.