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