Алгоритми з повтореннями. Цикл з умовою

Для повторення:

До цього часу ми з вами використовували виключно лінійні алгоритмічні структури. Але часто виникає потреба повторювати певні команди декілька разів. Щоб не записувати ці команди повторно ми можемо використовувати циклічні алгоритмічні структури, з якими познайомилися в курсі інформатики 5 класу (Scratch):

Цикл – базова алгоритмічна структура, яка передбачає неодноразове виконання однієї або декількох команд.

Тіло циклу – команда або набір команд, які повторюються.

Ітерація – повторення тіла циклу 1 раз.

Типи циклів:

Цикл з умовою:

Цикл з умовою – ітерації відбуваються до тих пір, доки виконується поставлена умова.

 

Реалізація на Python:

 

Цикл while ("поки") дозволяє виконати одну і ту ж послідовність дій, поки є істинною поставлена умова. Умова записується до початку тіла циклу і перевіряється до виконання тіла циклу. Як правило, цикл while використовується, коли неможливо визначити точне значення кількості проходів виконання циклу.

При виконанні циклу while спочатку перевіряється умова. Якщо вона хибна, то виконання циклу припиняється і керування передається на наступну інструкцію після тіла циклу while. Якщо умова істинна, то виконується інструкція, після чого умова перевіряється знову і знову виконується інструкція. Так триває до тих пір, поки умова буде істинно. Як тільки умова стане хибною, робота циклу завершиться і управління передасться наступній інструкції після циклу. 

Перейдемо до практики:

Завдання 1.

Наприклад, створимо програму, яка малюватиме круги різного радіуса, починаючи з 1 пікселя, кожен наступний матиме радіус на 4 пікселів більший, доки радіус не перевищить 150 пікселів. Звичайно, для цього можна використати цикл з лічильником, але тоді нам додатково доведеться порахувати кількість ітерацій які потрібно виконати. Ми ж скористаємось циклом з умовою, при цьому створивши комірку пам'яті в якій зберігатимемо значення радіуса нашого кола, при кожній ітерації - це значення будемо збільшувати на 4 пікселя і при досягненні значення 150 - зупинимо виконання програми.

Приклад виконання програми:

Завдання 2.

Створимо програму, яка малюватиме квадратичну спіраль, починаючи з довжини сторони квадрата 1 піксель, кожна наступна сторона матиме довжину на 2 пікселі більшу за попередню. Спіраль малюватимемо до тих пір, доки сторона не перевищує 150 пікселів:

Приклад виконання програми:

Завдання 3:

Створимо програму, яка малюватиме "квітку" з пелюстками у вигляді ромбів (попереднє д/з, кути 10 та 170 градусів, сторона - 100 пікселів), довільного кольору, які розташуються через 35 градусів до припинення роботи програми. Очевидно, нам потрібно використати, по перше вкладеність циклів, та по друге - безкінечний цикл. Створити безкінечний цикл досить просто, достатньо вказати умову, яка ніколи не зможе стати хибною! (Наприклад, вказавши в якості умови значення True):

Приклад виконання програми:

 

Завдання:

1. Опрацювати статтю та законспектувати основні моменти

2. Виконати всі приклади наведені в статті

3. Написати програму за зразком:

4. Написати програму за зразком:

5. Написати програму, яка створить рисунок "шестикутної" спіралі (дивись приклад 2), початкова довжина сторони - 1 піксель, кожна наступна - на 1 піксель більша, завершити - коли сторона стане більшою за 200 пікселів.

6. Фотопідтвердження виконаної роботи переслати на перевірку доступним способом (класні керівники).