Урок 25. 7 клас.


Урок №25.  Вкладені цикли.

Повторимо правила запису команд повторення у задачах.
Завдання 1. Доповни код побудови п’ятикутника.



Завдання 2. Заповни пропуски в заголовку циклу з лічильником, якщо змінна і має початкове значення 3, останнє значення 9, крок 3.


Завдання 3. Заповни пропуски в заголовку циклу з лічильником, якщо змінна і має початкове значення 5, крок 2, кількість значень 4.

Завдання 4. Встановити відповідність між командами та їх призначення.

  
Команди

Призначення
turtle.down()

Підняти курсор
turtle.left(45)

Опустити курсор
turtle.backward(100)

Побудова кола
turtle.forward(100)
Переміщення назад
turtle.circle(100)

Переміщення вперед
turtle.right(45)

Поворот за годинниковою стрілкою
turtle.up()

Поворот проти годинниковою стрілкою


Ознайомимось детальніше з командою circle побудови кола
Зауваження! Після побудови кола черепашка знаходиться в тій самій точці як до побудови, а коло міститься зліва від напрямку, у якому дивиться черепашка.

Код для першого ряду кіл виглядає так:
Щоб над першим рядом кіл розташувати ще один ряд кіл потрібно виконати такі дії:
1)  Перемістити курсор в точку (0;60)
2)  Скопіювати код для побудови першого ряду кіл

Щоб над двома рядами кіл розташувати ще один ряд кіл потрібно виконати такі дії:
1)  Перемістити курсор в точку (0;120)
2)  Скопіювати код для побудови першого ряду кіл
Щоб над двома рядами кіл розташувати ще один ряд кіл потрібно виконати такі дії:
1)  Перемістити курсор в точку (0;120)
2)  Скопіювати код для побудови першого ряду кіл

Для побудови усього трьох рядів кіл ми отримаємо доволі велику та громіздку програму
А якщо таких рядів має бути 5 або 120?
Якщо уважно переглянути код програми, то видно, що різниця у побудові рядів є лише значення, які переміщають курсор по осі у.
Щоб спростити код, вкладемо один цикл всередину іншого. Лічильником внутрішнього циклу є змінна і , що набуває значення 0, 1, 2, 3, 4, а лічильником зовнішнього циклу буде змінна у, що набуватиме значення 0, 60, 120, 180, 240 (різниця між значеннями дорівнює 60). То діапазон для зовнішнього циклу буде range(0,241,60)
Код програми набуде вигляду:
Цикл такого типу називається вкладеним.
Тут внутрішній цикл буде створювати зображення одного ряду кіл, а зовнішній – переміщувати курсор на початок нового ряду.

Приклад 2. Побудуємо ось таку сніжинку.
У побудові сніжинки потрібно реалізувати за допомогою внутрішнього циклу побудову маленької зірочки.
Код програми буде мати вигляд:
Приклад 3. Побудуємо піраміду з прямокутних цеглин.
Код побудови однієї цеглини із зазначеними розмірами має вигляд (курсор має повернутися в початкове положення):
Оптимізуємо даний код за допомогою циклу:
Внутрішній цикл будуватиме ряд прямокутних цеглин. Щоб перейти від побудови однієї цеглини до наступної потрібно після побудови прямокутника додати команду
Оскільки є 10 рядів цеглин, то зовнішній цикл буде виконуватися 10 разів. А на кожній ітерації зовнішнього циклу буде виконуватися тіло внутрішнього циклу стільки разів, скільки цеглин у рядку.
Піраміду малюватимемо зверху вниз. Тоді після побудови кожного рядка кількість цеглин наступного рядка збільшуватиметься на 1.
З малюнку видно, що якщо початкове положення черепашки (0,0) зіставити з верхнім лівим кутом найвищої цеглини піраміди, то координати початку наступних рядів будуть від’ємними.
Визначимо координати лівих верхніх кутів перших цеглин 2-го і 3-го ряду, якщо одна цеглина має розміри 40х20.
Зовнішній цикл буде мати вигляд: