Упр.3.86 ГДЗ Сборник упражнений Босова 7-9 класс (Информатика)
Исполнитель Робот действует на клетчатом поле, между клетками которого могут быть стены.
- На бесконечном клетчатом поле имеется горизонтальная стена. Длина стены неизвестна. Робот находится в одной из клеток, примыкающих к стене сверху. На рисунке указан один из возможных вариантов расположения Робота и стены (Робот обозначен буквой «Р»). Робот должен закрасить все клетки, примыкающие к стене сверху. Конечное положение Робота значения не имеет. Опишите укрупнёнными блоками план действий Робота по решению поставленной задачи.
- Где-то в поле Робота находятся две вертикальные стены равной, но неизвестной длины, расположенные одна напротив другой. Робот находится в произвольной клетке справа от правой стены, причём напротив неё. На рисунке указан один из возможных вариантов расположения Робота и стен (Робот обозначен буквой «Р»). Робот приступил к исполнению следующего алгоритма. Каким будет результат исполнения данного алгоритма? Изобразите его на рисунке. Опишите алгоритм действий Робота укрупнёнными шагами.
- На бесконечном клетчатом поле имеется горизонтальная стена. Длина стены неизвестна. Робот находится в одной из клеток, примыкающих к стене сверху. Точное положение Робота неизвестно. На рисунке указан один из возможных вариантов расположения Робота и стены (Робот обозначен буквой «Р»). Робот должен закрасить через одну клетки, примыкающие к стене сверху, начиная с самой левой клетки. Конечное положение Робота значения не имеет. Алгоритм должен решать задачу для стены произвольного размера и любого допустимого начального положения Робота. Напишите алгоритм.
- Робот находится в произвольной точке внутри прямоугольного огороженного стенами участка клетчатого поля. Размеры прямоугольника неизвестны. Напишите алгоритм, с помощью которого Робот закрасит все клетки, примыкающие к нижней стороне прямоугольника. Конечное положение Робота может быть произвольным.
- Робот находится в произвольной точке внутри прямоугольного огороженного стенами участка клетчатого поля. Размеры прямоугольника неизвестны. Напишите алгоритм, с помощью которого Робот закрасит все клетки, примыкающие к сторонам прямоугольника, и вернётся в начальное положение. Для запоминания начального положения Робота введены две переменные: k1 и k2.
1) Чтобы закрасить все клетки над горизонтальной стеной, Роботу нужно дойти до одного конца стены, встать в первую клетку над ней и пройти вдоль стены, закрашивая все соседние сверху клетки.
Укрупнённый план:
- Найти конец стены.
- Встать на первую клетку над стеной.
- Закрасить все клетки, примыкающие к стене сверху.
2) После выполнения алгоритма Робот окажется в прямоугольнике между двумя вертикальными стенами, а все клетки между стенами будут закрашены.
Укрупнённые шаги алгоритма:
- Подойти к правой стене.
- Подняться по стене до верхнего конца.
- Закрасить все клетки между стенами.
3) Сначала Робота нужно перевести в крайнюю левую клетку, примыкающую к стене сверху, а затем двигаться вправо, закрашивая каждую вторую клетку.
использовать Робот
алг
нач
нц пока снизу не свободно
влево
кц
вправо
нц пока снизу не свободно
закрасить
вправо; вправо
кц
кон
4) Чтобы закрасить все клетки у нижней стороны прямоугольника, Роботу нужно сначала дойти до левой нижней клетки внутри прямоугольника, затем пройти вправо вдоль нижней стороны, закрашивая клетки.
использовать Робот
алг
нач
нц пока слева свободно
влево
кц
нц пока снизу свободно
вниз
кц
нц пока справа свободно
закрасить; вправо
кц
закрасить
кон
5) Сначала запомним, на сколько клеток Робот сместился влево и вниз от начального положения, затем закрасим клетки у всех сторон прямоугольника и вернёмся обратно по сохранённым значениям.
использовать Робот
алг
нач
цел k1, k2
k1:=0; k2:=0;
нц пока слева свободно
влево
k1:=k1+1
кц
нц пока снизу свободно
вниз
k2:=k2+1
кц
нц пока справа свободно
закрасить; вправо
кц
закрасить
нц пока сверху свободно
вверх; закрасить
кц
нц пока слева свободно
влево; закрасить
кц
нц пока снизу свободно
вниз; закрасить
кц
нц k1 раз
вправо
кц
нц k2 раз
вверх
кц
кон




