ГДЗ Выполните задание. На бесконечном поле есть две вертикальные стены и одна горизонтальная. Левый конец горизонталь...
Выполните задание.
На бесконечном поле есть две вертикальные стены и одна горизонтальная. Левый конец горизонтальной стены соединён с нижним концом первой вертикальной стены, а правый её конец соединён со второй вертикальной стеной в одной из её точек, не являющейся ни одним из концов второй стены. Длины стен неизвестны. Робот находится в клетке, расположенной непосредственно левее второй вертикальной стены у её нижнего конца.
На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»).
Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно правее первой вертикальной стены, и клетки, расположенные непосредственно правее второй вертикальной стены. Робот должен закрасить только клетки, удовлетворяющие данному условию.
Решение
Для решения задачи на языке исполнителя «Робот» (среда КуМир) необходимо использовать циклы пока, так как длины стен заранее неизвестны. Алгоритм учитывает, что Робот должен обойти вторую стену, закрасить её правую сторону, а затем переместиться к первой стене.
использовать Робот
алг
нач
| 1. Переходим на правую сторону второй (правой) стены
вниз
вправо
вверх
| 2. Закрашиваем клетки справа от второй стены, двигаясь снизу вверх
нц пока слева стена
закрасить
вверх
кц
| 3. Переходим к первой (левой) стене
| Сначала делаем шаг влево, чтобы выйти из-за линии второй стены
влево
| Спускаемся вниз до горизонтальной перегородки
нц пока не снизу стена
вниз
кц
| Двигаемся влево вдоль горизонтальной стены до упора в первую вертикальную стену
нц пока не слева стена
влево
кц
| 4. Закрашиваем клетки справа от первой стены, двигаясь снизу вверх
нц пока слева стена
закрасить
вверх
кц
кон
Пояснение к алгоритму:
- Обход второй стены: Робот начинает путь слева от нижней точки правой стены. Чтобы попасть на нужную сторону для закрашивания, он огибает стену снизу командами
вниз,вправо,вверх. - Закрашивание второй стены: С помощью цикла
нц пока слева стенаРобот закрашивает все клетки справа от стены, поднимаясь до её верхнего края. - Переход: Оказавшись выше второй стены, Робот смещается влево и спускается до горизонтальной стены. Затем он движется влево до тех пор, пока не упрется в первую вертикальную стену.
- Закрашивание первой стены: Находясь в углу (справа от первой стены и над горизонтальной), Робот закрашивает клетки вдоль первой стены, поднимаясь вверх до её конца.