Урок №15. Вложенные циклы.
Рассмотрим такую задачу: Черепахе нужно нарисовать в ряд пять квадратов со стороной 40 шагов, разделив их интервалом в 10 шагов (рис. 3.6).

Мы уже можем её решить. Черепахе нужно нарисовать один квадрат, затем поднять перо и перейти в точку, откуда она начнёт рисовать следующий квадрат. Так нужно повторить пять раз, то есть в программе будет цикл:
повтори( 5 )
нарисовать квадрат
перейти к следующему квадрату
Основные действия пока записаны русскими словами. Это означает, что компьютер не будет (и не сможет) их выполнять. Давайте запишем вместо этих строк команды, которые Черепаха знает и может выполнить.
Мы уже знаем, что значит «нарисовать квадрат»:
использовать Черепаха
алг квадрат
нач
опустить хвост
нц 4 раз
вперед(40)
вправо(90)
кц
кон
После выполнения этого цикла Черепаха воэвршцнггон и начальное положение. Далее ей нужно перейти в новое мести, не оставляя за собой следа:
поднять хвост;
вправо( 90 ); // перейти к следующему
вперед( 50 );
влево( 90 ); // * (повернуться на север)
опустить хвост;
Заметьте, что Черепаха должна не только прийти в нужную точку, но и развернуться «на север». Это делает команда, отмеченная знаком * в комментарии.
Теперь мы готовы добавить эти фрагменты в первую программу вместо комментариев. Получается такая программа:
использовать Черепаха
алг квадраты
нач
опустить хвост
нц 5 раз
нц 4 раз
вперед(40)
вправо(90)
кц
поднять хвост
вправо(90)
вперед(50)
влево(90)
опустить хвост
кц
кон
В основном цикле мы рисуем квадрат, но для рисования квадрата также используем цикл. И получается, что внутри (в теле) одного цикла оказался другой (он выделен фоном). Такая структура называется вложенным циклом.
Вложенный цикл — это цикл, находящийся в теле другого цикла.
В этой программе цикл повтори (5) называется внешним циклом, а цикл повтори (4) — вложенным или внутренним циклом.
В больших программах может получиться так, что в теле вложенного цикла также находятся другие циклы, при этом появляется несколько уровней вложенности.