При составлении алгоритмов довольно часто встречаются случаи, когда некоторую последовательность команд нажно выполнить несколько раз подряд (см., например, алгоритм А3). Для упрощения записи алгоритма в таких случаях можно использовать специальную составную команду алгоритмического языка - цикл n раз
А15:
алг из А в Б
нач
. нц 5 раз
. . вверх; вверх; вправо; вниз; вниз; вправо;
. кц
кон
При выполнении этого алгоритма компьютер 5 раз повторит последовательность вызовов вверх; вверх; вправо; вниз; вниз; вправо и Робот окажется в клетке Б.
В общем виде цикл n раз записывается так:
нц число повтореий раз
. тело цикла (последовательность команд)
кц
Служебные слова нц (начало цикла) и кц (конец цикла) пишутся строго одно под другим, а между ними записывается повторяемая последовательность команд (тело цикла).
Число повторений - произвольное целое число.
При выполнеии алгоритма последовательность команд в теле цикла повторяется указанное число раз. Правила алгоритмического языка допускают задание любого целого числа повторений. Оно может быть нулевым и даже отрицательным. Эти случаи не считаются ошибочными, просто тело цикла не будет выполнено ни разу, а компьютер сразу перейдет к выполнению команд, записанных после кц
Использование цикла позволяет очень коротко записать довольно длинные последовательности действий. Рассмотрим пример
А16:
алг закрасить ряд из 10 клеток
нач
. нц 10 раз
. . закрасить; вправо
. кц
. нц 10 раз
. . влево
. кц
кон
При выполнении этого короткого алгоритма компьютер даст Роботу 30 команд: сначала 10 раз будет выполнена пара команд закрасить; вправо, а затем 10 команд влево.
Если вместо числа 10 поставить 100, Робот выполнит уже 300 команд, а ведь длина алгоритма при этом не увеличится!
Таким образом, короткие алгоритмы могут описывать очень длинные последовательности действий.
А17:
алг закрасить прямоугольник
нач
. нц 6 раз
. . закрасить ряд из 10 клеток
. . вниз
. кц
. нц 6 раз
. . вверх
. кц
кон
Задачу из алгоритма А17 можно решить и без использования вспомогательного алгоритма, вставив текст алгоритма "закрасить ряд из 10 клеток" (А16) непосредственно в текст основного алгоритма.
А18:
алг закрасить прямоугольник
нач
. нц 6 раз
. . нц 10 раз
. . . закрасить; вправо
. . кц
. . нц 10 раз
. . . влево
. . кц
. . вниз
. кц
. нц 6 раз
. . вверх
. кц
кон
Цикл, который находится внутри другого, называется вложенным циклом.
В данной задаче использование вложенных циклов не очень удобно: алгоритм А18 выглядит более громоздким и менее понятным, чем А17