Вопрос:

12. На бесконечном поле имеется вертикальная стена. Длина стены неизвестна. От нижнего конца стены влево отходит горизонтальная стена также неизвестной длины. Робот находится в клетке, расположенной справа от верхнего края вертикальной стены. На рисунке указан один из возможных способов расположения стен и Робота. Робот обозначен буквой «Р». Напишите для Робота программу, закрашивающую все клетки, расположенные непосредственно правее вертикальной стены, ниже горизонтальной стены, угловую клетку и клетки выше горизонтальной стены. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведенного выше рисунка Робот должен закрасить следующие клетки (см. рисунок).

Ответ:

Для решения этой задачи роботу нужно выполнить следующие действия:

  1. Вправо (чтобы оказаться справа от вертикальной стены).
  2. Вниз (чтобы оказаться ниже уровня горизонтальной стены, если она расположена ниже начальной позиции).
  3. Закрасить (начальная клетка справа от вертикальной стены).
  4. Вправо
  5. Вправо ... (повторять Вправо до тех пор, пока не достигнем границы поля или другого препятствия, закрашивая каждую клетку).
  6. Вверх (если нужно закрасить клетки выше горизонтальной стены, это действие выполняется после того, как мы пройдем всю линию ниже горизонтальной стены).
  7. Вправо (после поднятия вверх, чтобы закрасить клетки выше горизонтальной стены).
  8. Вправо ... (повторять Вправо до достижения границы поля или препятствия, закрашивая каждую клетку).

Примечание: Точная последовательность команд зависит от конкретного расположения стен и поля. Задача сформулирована так, что роботу необходимо закрасить все клетки, находящиеся в области, ограниченной вертикальной стеной слева, краем поля справа, и горизонтальной стеной снизу (или сверху, в зависимости от её расположения относительно начальной позиции робота).

Примерный алгоритм (учитывая рисунок):

  1. Вправо
  2. Вверх
  3. Закрасить
  4. Вправо
  5. Закрасить
  6. Вправо
  7. Закрасить
  8. Вниз
  9. Закрасить
  10. Вниз
  11. Закрасить

Ответ: Алгоритм закрашивания клеток.