Циклы
в Кумире.
Виды циклов.
Циклы n раз в КуМир или Цикл со счетчиком
Общий
вид цикла n раз
нц n раз
· тело_цикла
кц
Здесь n — целое
выражение, задающее число повторений; тело цикла – команды, которые должны
повториться заданное число раз.
При выполнении
алгоритма последовательность команд циклически повторяется указанное число раз.
Цикл со счетчиком применяется когда заранее
известно сколько повторений необходимо сделать
Для
того, чтобы написать цикл со счетчиком для исполнителя необходимо знать его
синтаксис. А он такой:
нц
<количество повторений> раз
<команда
1>
<команда
2>
…
<команда
n>
кц
Здесь мы должны
указать количество повторений (число) и команды, которые будут повторяться.
Команды, которые повторяются в цикле называют телом цикла.
Пример.
Закрасить 7 клеток
подряд. Изначально Робот находится в левой верхней клетке.
Давайте для начала
решим задачу линейно. В этом случае мы будет закрашивать текущую клетку и
перемещаться на 1 клетку вправо и программа будет выглядеть так:
использовать Робот
алг
нач
закрасить
вправо
закрасить
вправо
закрасить
вправо
закрасить
вправо
закрасить
вправо
закрасить
вправо
закрасить
вправо
кон
Как видим, команды
закрасить и вправо повторяются 7 раз. Давайте теперь перепишем программу с
использованием цикла. Кстати, чтобы вставить цикл в свою программу можно в меню Вставка
- нц-раз-кц .
Программа
с циклом будет выглядеть так:
использовать
Робот
алг
нач
нц 7 раз
закрасить
вправо
кц
кон
Если мы ее
запустим, то увидим, что в результате получится тоже самое — 7 закрашенных
клеток. Однако программа стала короче и значительно грамотней с алгоритмической
точки зрения
Цикл с условием
Общий
вид цикла «пока» представлен ниже.
нц пока условие
· тело_цикла
кц
При
выполнении цикла «пока» КуМир циклически повторяет следующие действия:
- проверяет записанное после служебного слова «пока» условие;
- если условие не соблюдается, выполнение цикла завершается и
КуМир начинает выполнять команды, записанные после «кц»;
- если условие соблюдается, КуМир выполняет тело цикла, снова
проверяет условие, и так до бесконечности.
Пример
Нарисовать
вертикальную линию от левой до правой границы поля использую цикл с условием.
Изначально Робот находится в левом верхнем углу.
Сначала
сформулируем словесный алгоритм — т. е. опишем словами что нужно делать Роботу.
Этот алгоритм будет звучать примерно так:
«Пока
справа свободно делай шаг вправо и закрашивай клетку»
В результате Робот
пробежит по всем клеткам вправо и будет их закрашивать до тех пор, пока справа
не окажется стена.
Исходный код нашей
программы для Робота будет примерно такой:
использовать
Робот
алг
нач
нц пока
справа свободно
вправо
закрасить
кц
кон
В результате
выполнения этой программы мы увидим вот такую картину:
Как видим, не
хватает только закрашенной первой клетки. Для этого перед циклом необходимо
выполнить команду закрасить.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.