Контрольные задания > 12) На бесконечном поле имеется вертикальная стена. Длина стены 6 клеток.
От верхнего конца стены влево и вправо отходят горизонтальные стены длиной по 3 клетки. Робот находится в клетке, расположенной слева от верхнего края вертикальной стены.
На рисунке указано расположение стен и Робота. Робот обозначен буквой
P.
Напишите для Робота программу, использующую не менее 3 циклических алгоритмов, закрашивающую все клетки, расположенные непосредственно правее вертикальной стены и ниже правой горизонтальной стены. Вы можете использовать цикл нц-раз-кц или нц-пока-кц. Робот должен закрасить только клетки, удовлетворяющие данному условию. На рисунке показаны клетки, которые Робот должен закрасить (см. рисунок).
Вопрос:
12) На бесконечном поле имеется вертикальная стена. Длина стены 6 клеток.
От верхнего конца стены влево и вправо отходят горизонтальные стены длиной по 3 клетки. Робот находится в клетке, расположенной слева от верхнего края вертикальной стены.
На рисунке указано расположение стен и Робота. Робот обозначен буквой
P.
Напишите для Робота программу, использующую не менее 3 циклических алгоритмов, закрашивающую все клетки, расположенные непосредственно правее вертикальной стены и ниже правой горизонтальной стены. Вы можете использовать цикл нц-раз-кц или нц-пока-кц. Робот должен закрасить только клетки, удовлетворяющие данному условию. На рисунке показаны клетки, которые Робот должен закрасить (см. рисунок).
Вот возможная программа для Робота, использующая три цикла:
alg
нач
// Перемещаемся к началу области для закрашивания
нц 3 раз
вниз
кц
вправо
// Закрашиваем клетки справа от вертикальной стены
нц 6 раз
закрасить
вверх
кц
вниз
влево
нц 2 раз
вниз
кц
вправо
// Закрашиваем клетки ниже горизонтальной стены
нц 3 раз
закрасить
вправо
кц
кон
Пояснения к программе:
1. Начало работы:
* Робот изначально находится слева от верхнего края вертикальной стены.
2. Перемещение к началу области для закрашивания:
* `нц 3 раз`: Цикл повторяется 3 раза.
* `вниз`: Робот перемещается вниз на одну клетку. Этот цикл перемещает робота на 3 клетки вниз от верхнего края вертикальной стены, чтобы начать закрашивание справа от вертикальной стены.
* `кц`: Конец цикла.
* `вправо`: Робот перемещается на одну клетку вправо.
3. Закрашивание клеток справа от вертикальной стены:
* `нц 6 раз`: Цикл повторяется 6 раз.
* `закрасить`: Робот закрашивает текущую клетку.
* `вверх`: Робот перемещается на одну клетку вверх. Этот цикл закрашивает все клетки справа от вертикальной стены.
* `кц`: Конец цикла.
* `вниз`: Переместиться вниз.
* `влево`: Переместиться влево.
* `нц 2 раз`: Цикл повторяется 2 раза.
* `вниз`: Робот перемещается на одну клетку вниз.
* `кц`: Конец цикла.
* `вправо`: Робот перемещается на одну клетку вправо.
4. Закрашивание клеток ниже горизонтальной стены:
* `нц 3 раз`: Цикл повторяется 3 раза.
* `закрасить`: Робот закрашивает текущую клетку.
* `вправо`: Робот перемещается на одну клетку вправо. Этот цикл закрашивает клетки ниже правой горизонтальной стены.
* `кц`: Конец цикла.
Таким образом, программа сначала перемещает робота в нужную позицию, а затем использует циклы для закрашивания всех необходимых клеток.