1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Босова 7-9 класс (Сборник упр-й)
Упр.3.86 ГДЗ Сборник упражнений Босова 7-9 класс (Информатика)
Босова, Аквилянов
9 класс
Автор
Босова, Аквилянов

Упр.3.86 ГДЗ Сборник упражнений Босова 7-9 класс (Информатика)

Задача

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

Подробный ответ

1) Чтобы закрасить все клетки над горизонтальной стеной, Роботу нужно сначала дойти до одного из концов стены, затем перейти в клетку над стеной и пройти вдоль стены, закрашивая все соседние сверху клетки.

2) Для двух вертикальных стен одинаковой длины Робот сначала подходит к правой стене, поднимается до её верхнего конца, а затем закрашивает все клетки между стенами по строкам.

3) Сначала Робота переводим в крайнюю левую клетку, примыкающую к стене сверху, затем двигаемся вправо и закрашиваем каждую вторую клетку.

4) Чтобы закрасить клетки у нижней стороны прямоугольника, Робот сначала находит левую нижнюю вершину, затем спускается к нижней стороне и проходит вдоль неё, закрашивая все соседние клетки.

5) Для закраски всех клеток у сторон прямоугольника и возврата в начальное положение Робот запоминает смещение до левой и нижней стен с помощью переменных $$k1$$ и $$k2$$, затем обходит стороны прямоугольника, закрашивая нужные клетки, и возвращается назад на исходную позицию.

Выполнение

1)

1. Найти конец стены.
2. Встать на первую клетку над стеной.
3. Закрасить все клетки, прилегающие к стене сверху.

2)

Результат исполнения алгоритма: будут закрашены все клетки между двумя вертикальными стенами, расположенные в прямоугольной области между их верхними концами и нижними концами.

Укрупнённые шаги:

1. Подойти к правой стене.
2. Подняться по стене до верхнего её конца.
3. Закрасить все клетки между стенами.

3)

использовать Робот
алг
нач
  нц пока снизу не свободно
    влево
  кц
  вправо
  нц пока снизу не свободно
    закрасить
    вправо; вправо
  кц
кон

4)

использовать Робот
алг
нач
  нц пока слева свободно
    влево
  кц
  нц пока снизу свободно
    вниз
  кц
  нц пока справа свободно
    закрасить; вправо
  кц
  закрасить
кон

5)

использовать Робот
алг
нач
  цел k1, k2
  k1:=0; k2:=0;
  нц пока слева свободно
    влево
    k1:=k1+1
  кц
  нц пока снизу свободно
    вниз
    k2:=k2+1
  кц
  нц пока справа свободно
    закрасить; вправо
  кц
  закрасить
  нц пока сверху свободно
    вверх; закрасить
  кц
  нц пока слева свободно
    влево; закрасить
  кц
  нц пока снизу свободно
    вниз; закрасить
  кц
  нц k1 раз
    вправо
  кц
  нц k2 раз
    вверх
  кц
кон

Ответ

1) Найти конец стены, встать над стеной и закрасить все клетки сверху вдоль стены.
2) Закрашивается прямоугольная область между двумя вертикальными стенами.
3)

использовать Робот
алг
нач
  нц пока снизу не свободно
    влево
  кц
  вправо
  нц пока снизу не свободно
    закрасить
    вправо; вправо
  кц
кон

4)

использовать Робот
алг
нач
  нц пока слева свободно
    влево
  кц
  нц пока снизу свободно
    вниз
  кц
  нц пока справа свободно
    закрасить; вправо
  кц
  закрасить
кон

5)

использовать Робот
алг
нач
  цел k1, k2
  k1:=0; k2:=0;
  нц пока слева свободно
    влево
    k1:=k1+1
  кц
  нц пока снизу свободно
    вниз
    k2:=k2+1
  кц
  нц пока справа свободно
    закрасить; вправо
  кц
  закрасить
  нц пока сверху свободно
    вверх; закрасить
  кц
  нц пока слева свободно
    влево; закрасить
  кц
  нц пока снизу свободно
    вниз; закрасить
  кц
  нц k1 раз
    вправо
  кц
  нц k2 раз
    вверх
  кц
кон



Общая оценка
4.6 / 5
Другие учебники
Другие предметы