Теория:

После того как мы освоили циклические алгоритмы, определив их виды и узнав об особенностях применения, перед нами открываются возможности создания проектов в Scratch, включающих в себя различные комбинации из циклических алгоритмов.
В этом материале ты познакомишься с реализаций вложенных циклов. При решении некоторых задач появляется необходимость использовать циклический алгоритм внутри другого цикла. Никаких ограничений на вид внешнего или внутреннего цикла нет, можно внутрь алгоритма с циклом «Повторить \(n\) раз» вставить любой из видов цикла — с предусловием, с постусловием или цикл с заданным числом повторений.
 
Часы
  
Рассмотрим понятный и хорошо известный пример: часы с двумя стрелками. Пока минутная стрелка совершает свой обход циферблата, часовая стрелка остаётся неподвижной. Она меняет своё положение только тогда, когда минутная совершит \(12\) шагов по циферблату. Если пренебречь тем, что часы требуют завода или смены батарейки, то совершаются циклические алгоритмы минутной и часовой стрелок внутри одного бесконечного цикла. Посмотреть проект можно здесь: «Часы.sb3».

Следующие примеры будут связаны с умением спрайта Scratch рисовать пером. Давай рассмотрим различные орнаменты и возможность их создания из уже готовых элементов.

Спирограф
 
Спирограф — это линейка с зубчатым вырезом в виде окружности и вкладышами в виде зубчатых кругов. С помощью такой линейки можно создавать узоры из эллипсов. А мы с помощью команд рисования в Scratch и вложенных циклов нарисуем один из таких узоров.
 
спирограф.png
Рис. \(1\). Узор из окружностей
 
Узор состоит из окружностей. Как мы уже знаем, за окружность в Scratch можно выдать многоугольник, созданный с помощью циклического алгоритма. Предложенный узор получится, если поворачивать окружность относительно центра, лежащего на этой же окружности. В реализованном алгоритме узор состоит из \(10\) окружностей.
Важно найти для начала исполнения алгоритма такое место на поле, чтобы спрайт во время движения не попал на границу сцены, иначе произойдёт искажение.
 
спирограф_алгоритм.png
Рис. \(2\). Код для окружностей
  
Меандр
 
Рассмотрим древний орнамент меандр. Существует много вариаций этого орнамента, мы же ограничимся самым простым.
 
меандр_пример.png
Рис. \(3\). Меандр
 
Разобьём создание полосы с орнаментом на отдельные действия.
1. Изобразить элемент орнамента, назовём его Меандр.
2. Повторить изображение \(10\) раз.

Внутри элемента меандра повторяющихся команд нет.
 
меандр_алгоритм.png
Рис. \(4\). Код для меандра
 
Но сам орнамент, символизирующий вечность, изображался так, что он не прерываясь обрамлял изделия древних мастеров. Давайте и мы разместим этот орнамент по краю квадратного изделия — столешницы, платка или настенной плитки.
 
меандр_на_квадрате.png
Рис. \(5\). Орнамент
 
Для поворота в углах изделия нам потребуется элемент, который условно назовём Угол.
 
меандр_угол_алг.png
Рис. \(6\). Код для угла
 
Теперь алгоритм для изображения будет схематично выглядеть так: повторить \(4\) раза (повторить \(10\) раз меандр \(+\) угол).
Таким образом, мы используем один цикл с заданным числом повторений внутри другого цикла с заданным числом повторений.

Оформление подпрограммы
 
Как ты видишь, программа для изображения квадратного орнамента получается достаточно большой. У программистов есть такой приём — часто используемые блоки в программе оформлять в виде подпрограммы. Есть такая возможность и в Scratch.

Нам потребуется розовый блок Другие блоки, в котором мы создадим блоки Меандр и Угол.
 
блоки_меандр_угол.png
Рис. \(7\). Подпрограммы
 
После чего программа примет компактный вид.
 
прогр_меандр_полностью.png
Рис. \(8\). Компактный вид программы
Источники:
Рис. 1. Узор из окружностей. © ЯКласс.
Рис. 2. Код для окружностей. © ЯКласс.
Рис. 3. Меандр. © ЯКласс.
Рис. 4. Код для меандра. © ЯКласс.
Рис. 5. Орнамент. © ЯКласс.
Рис. 6. Код для угла. © ЯКласс.
Рис. 7. Подпрограммы. © ЯКласс.
Рис. 8. Компактный вид программы. © ЯКласс.