ГДЗ На бесконечном поле имеется вертикальная стена. Длина стены неизвестна, в стене есть ровно один проход, ширина ко...

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

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

Конечное расположение Робота может быть произвольным. При исполнении алгоритма Робот не должен разрушиться. Выполнение алгоритма должно завершиться. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе.

Решение

Для решения задачи на языке Кумир (исполнитель Робот) необходимо использовать циклы пока, так как точные размеры стен и прохода неизвестны. Алгоритм состоит из закрашивания горизонтального участка, возврата к углу и последующего закрашивания вертикальных участков с пропуском пустого пространства.

использовать Робот
алг
нач
  | 1. Закрашиваем клетки под горизонтальной стеной, двигаясь влево
  нц пока сверху стена
    закрасить
    влево
  кц
  
  | 2. Возвращаемся на одну клетку вправо, чтобы оказаться в углу
  вправо
  
  | 3. Закрашиваем клетки справа от верхней части вертикальной стены
  нц пока слева стена
    закрасить
    вниз
  кц
  
  | 4. Проходим через проход (пока слева нет стены)
  нц пока не слева стена
    вниз
  кц
  
  | 5. Закрашиваем клетки справа от нижней части вертикальной стены
  нц пока слева стена
    закрасить
    вниз
  кц
кон
Сообщить об ошибке
ГДЗ по фото