Упр.86 ГДЗ Рабочая тетрадь Босова 9 класс (Информатика)

Решение #1

Изображение 86. Исполнитель Робот действует на клетчатом поле, между клетками которого могут быть стены.	Система команд исполнителя...
Дополнительное изображение
Дополнительное изображение
Загрузка...

Рассмотрим вариант решения задания из учебника Босова 9 класс, Бином:
86. Исполнитель Робот действует на клетчатом поле, между клетками которого могут быть стены.
Система команд исполнителя Робот:
Команда
Вверх
Вниз
Вправо
Влево
Закрасить
Сверху свободно
Снизу свободно
Слева свободно
Справа свободно
если <условие> то <последовательность команд> все
нц пока <условие> <последовательность команд> кц
Описание команды
Робот перемещается в сосед-нюю клетку в указанном направлении. Если же в этом направлении между клетками стоит стена, то Робот разрушается
Робот закрашивает ту клетку, в которой находится
Проверка истинности условия отсутствия стены у соответствующей стороны той клетки, где находится Робот: стены нет — истина, иначе ложь
Организация ветвления: если <условие> верно, то выполняется последовательность команд>. B одном условии можно использовать несколько команд, применяя логические связки и, или, не.
Организация цикла: пока <условие> верно, выполняется <последовательность команд>
a) На бесконечном клетчатом поле имеется горизонтальная стена. Длина стены неизвестна. Робот находится в одной из клеток, примыкающих к стене сверху. На рисунке указан один из возможных вариантов расположения Робота и стены (Робот обозначен буквой «Р»).
Робот должен закрасить все клетки, примыкающие к стене сверху. Так, для приведенного выше рисунка должны быть закрашены следующие клетки:
Конечное положение Робота значения не имеет. Опишите укрупненными шагами (модулями) план действий Работа по решению поставленной задачи:
Пока снизу не свободно влево
Вправо
Пока снизу не свободно - закрасить, вправо
все
б) Где-то в поле Робота находятся две вертикальные стены равной, но неизвестной длины, расположенные одна напротив другой. Робот находится в произвольной клетке справа от правой стены, причем напротив нее.
На рисунке указан один из возможных вариантов расположения Робота и стен (Робот обозначен буквой «Р»).
Робот приступил к исполнению следующего алгоритма:
нц пока слева свободно
влево
кц
нц пока слева не свободно
вверх
кц
влево; вниз
нц пока справа не свободно или слева не свободно
нц пока слева свободно
закрасить; влево
кц
закрасить; вниз
нц пока справа свободно
закрасить; вправо
кц
закрасить; вниз
кц
Каким будет результат исполнения данного алгоритма?
Изобразите его на рисунке.
Опишите алгоритм действий Робота укрупненными шагами.
1. Найти правую стенку.
2. Обойти ее сверху.
3. Закрасить все клеточки между левой и правой стенками.
в) На бесконечном клетчатом поле имеется горизонтальная стена. Длина стены неизвестна. Робот находится в одной из клеток, примыкающих к стене сверху. Точное положение Робота неизвестно. На рисунке указан один из возможных вариантов расположения Робота и стен (Робот обозначен буквой «Р»).
Робот должен закрасить через одну клетки, примыкающие к стене сверху, начиная с самой левой клетки. Например, для приведенного выше рисунка результат работы должен быть таким:
Конечное положение Робота значения не имеет. Алгоритм должен решать задачу для стены произвольного размера и любого допустимого начального положения Робота.
При составлении алгоритма можно использовать следующее разбиение задачи на подзадачи:
1) перевести Робота в исходное положение - крайнюю левую клетку, примыкающую к стене сверху;
2) двигаясь слева направо, закрасить через одну все клетки, примыкающие к стене сверху.
Напишите алгоритм:
использовать Робот
алг
нач
нц пока снизу не свободно
влево
кц
вправо
нц пока снизу не свободно
закрасить
вправо; вправо
кц
кон
г) Робот находится в произвольной точке внутри прямоугольного огороженного стенами участка клетчатого поля. Размеры прямоугольника неизвестны. Напишите алгоритм, с помощью которого Робот закрасит все клетки, примыкающие к нижней стороне прямоугольника. Конечное положение Робота может быть произвольным.
использовать Робот
алг
нач
нц пока слева свободно
влево
кц
нц пока снизу свободно
вниз
кц
нц пока справа свободно
закрасить; вправо
кц
закрасить
кон
д) Робот находится в произвольной точке внутри прямоугольного огороженного стенами участка клетчатого поля. Размеры прямоугольника неизвестны. Напишите алгоритм, с помощью которого Робот закрасит все клетки, примыкающие к сторонам прямоугольника, и вернется в начальное положение.
использовать Робот
алг
нач
нц пока слева свободно
влево
кц
нц пока снизу свободно
вниз
кц
нц пока справа свободно
закрасить; вправо
кц
закрасить
нц пока сверху свободно
вверх; закрасить
кц
нц пока слева свободно
влево; закрасить
кц
нц пока снизу свободно
вниз; закрасить
кц
кон
*Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания.
*размещая тексты в комментариях ниже, вы автоматически соглашаетесь с пользовательским соглашением

Похожие решебники