Вопрос:

Напишите программу для робота, закрашивающую указанные клетки. Опишите программу.

Смотреть решения всех заданий с листа

Ответ:

Решение:

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

На основе рисунка, клетки, которые нужно закрасить, образуют собой букву "Г", повернутую на 90 градусов против часовой стрелки. Робот стартует в клетке, расположенной между верхними краями вертикальных стен, в третьей клетке справа от левой вертикальной стены.

Для решения задачи будем использовать команды робота:

  • вверх
  • вниз
  • влево
  • вправо
  • закрасить
  • нц ... кц (цикл с известным числом повторений)
  • нц ... пока ... кц (цикл с условием)

Алгоритм:

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

Пример программы (на псевдокоде):

Начальная позиция робота: (3, 3) (x=3, y=3, отсчитывая от верхнего левого угла поля, где (1,1) - самая верхняя левая клетка).

Конечная область закрашивания: клетки (3,3), (3,4), (3,5), (4,5), (5,5).

Программа:

// Перемещение к первой клетке закрашивания (3,3) 
нц 2 раз 
  вниз 
кц 
закрасить 
// Закрашивание вертикальной части (3 клетки вниз) 
нц 3 раз 
  вниз 
  закрасить 
кц 
// Перемещение к началу горизонтальной части (4,5) 
вправо 
закрасить 
// Закрашивание горизонтальной части (2 клетки вправо) 
нц 2 раз 
  вправо 
  закрасить 
кц 

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

Альтернативный вариант (с использованием цикла пока):

// Перемещение к первой клетке закрашивания (3,3) 
нц 2 раз 
  вниз 
кц 
закрасить 
// Закрашивание вертикальной части 
нц пока не стена сверху 
  вниз 
  закрасить 
кц 
// Перемещение к началу горизонтальной части (4,5) 
вправо 
закрасить 
// Закрашивание горизонтальной части 
нц пока не стена справа 
  вправо 
  закрасить 
кц 

Объяснение:

Первый цикл (нц 2 раз) перемещает робота на две клетки вниз, чтобы он оказался в первой клетке для закрашивания. Затем клетка закрашивается.

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

После вертикальной части робот делает шаг вправо, закрашивает эту клетку, которая является началом горизонтальной части.

Третий цикл (нц 2 раз или нц пока не стена справа) закрашивает горизонтальную часть фигуры, перемещая робота вправо на 2 клетки и закрашивая каждую.

Этот алгоритм гарантирует закрашивание всех необходимых клеток и соответствует условию использования минимум трех циклических алгоритмов.

ГДЗ по фото 📸