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