1 of 21

Алгоритми та програми з циклами з лічильником

Нова українська школа

Урок 44

Інформатика 5

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.

2 of 21

Алгоритми і програми з циклами з лічильником

Багаторазове повторення команд малювання з використанням циклу for допоможе вам створювати цікаві різнокольорові малюнки.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

3 of 21

Алгоритми створення зображень

Запис алгоритму малювання багатокутників із використанням оператора циклу робить код компактним і універсальним.

ПРИКЛАД 1. Скласти програму малювання n-кутників.

from turtle import*

n = int(input("Скільки кутів? "))

x = int(input("Довжина сторони? "))

for і in range(n):

forward(x)

left(360/n)

Скільки кутів? 7

Довжина сторони? 50

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

4 of 21

Алгоритми створення зображень

Розглянемо алгоритми малювання фігур

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

5 of 21

Алгоритми створення зображень

Проаналізуємо виконання програми:

from turtle import*

for x in range(1, 100, 2):

forward(x)

left(90)

Під час кожного проходу циклу Черепашка малює лінію довжиною х пікселів і повертається вліво на 90°.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

6 of 21

Алгоритми створення зображень

Як ви знаєте, повне обертання навколо точки — це 360°. Отже, за 4 ітерації циклу Черепашка повертається до початкового напрямку:

(4 ∙ 90 = 360)

Програма малює спіраль, оскільки кожен відрізок на 2 пікселі довший за попередній:

перший відрізок має довжину 1 піксель

другий — 3 пікселі

останній (п’ятдесятий) — 99 пікселів

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

7 of 21

Алгоритми створення зображень

Поворот на 90° створює квадратну спіраль. Змінемо кут повороту на 2°: left(92). Зміна лише одного значення викликає зміни у вигляді спіралі.

from turtle import*

for x in range(1, 100, 2):

forward(x)

left(92)

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

8 of 21

Алгоритми створення зображень

Змінимо команду forward(x) на circle(x), яка малює коло радіусу х із поточної позиції:

for x in range(1,100,2):

circle(x)

left(90)

Отримаємо 4 набори кіл, оскільки після малювання кожного кола Черепашка повертається вліво на 90°.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

9 of 21

Алгоритми створення зображень

Щоб намалювати n кіл, потрібно повертати Черепашку на 360/n градусів. Унесемо такі зміни до програми, щоб вона малювала 6 наборів кіл�(360/6 = 60).

for x in range(1,100,2):

circle(x)

left(60)

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

10 of 21

Алгоритми створення зображень

Цікаві факти

Біля витоків української школи програмування стояла Катерина Ющенко, докторка фізико-математичних наук, авторка однієї з перших у світі мов програмування високого рівня, в якій застосовуються операції над адресами об’єктів у пам’яті комп’ютера.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

11 of 21

Зміна кольорів у циклі

Як зробити спіралі різнокольоровими?

Для цього нам потрібен список кольорів, а не один колір.

Створимо змінну colors і помістимо у список назви чотирьох кольорів:

colors = ['red', 'yellow', 'green', 'blue']

Зверніть увагу, що звернутися до значення зі списку з номером х можна як до colors[x].

Наприклад, colors[0] = 'red', colors[3] = 'blue'.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

12 of 21

Зміна кольорів у циклі

Складне питання: як змусити Черепашку під час кожної ітерації циклу, коли х змінюється від 1 до 99, обирати одне з 4 значень списку?

остача від ділення

%

Під час обчислення виразу x%4 ми можемо отримати 4 значення остачі:

Використаємо операцію:

0

1

2

3

Що відповідає номерам кольорів у списку colors.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

13 of 21

Зміна кольорів у циклі

Повернемося до програми малювання квадратної спіралі, але крок циклу зробимо рівним 1:

from turtle import*

colors = ['red', 'yellow', 'green', 'blue']

for x in range(100):

color(colors[x% 4])

forward(x)

left(90)

Отже, уносячи нескладні зміни до операторів малювання в тілі циклу for, ми можемо отримувати складні цікаві зображення.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

14 of 21

Зміна кольорів у циклі

ПРИКЛАД 2. Намалювати різнокольорову спіраль, збільшивши кут повороту на 10 і збільшуючи товщину лінії в залежності від змінної циклу.

from turtle import*

n = int(input('n = ? '))

colors = ['red', 'blue', 'yellow', 'green', 'violet', 'orange', 'purple', 'white']

for x in range(360):

color(colors[x%n])

forward(x)

left (360/n+1)

# Щоб «розтягнути» спіраль, кут повороту збільшено на 1

width(x*n/300) # Товщина лінії залежить від змінної циклу х

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

15 of 21

Зміна кольорів у циклі

Результати виконання програми для:

n = 3

n = 8

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

16 of 21

Зміна кольорів у циклі

Цікаві факти

Адель Голдберг — американська

вчена в галузі інформатики, відома своєю роботою у

галузі об’єктно-орієнтованого програмування і графічних

інтерфейсів та розробкою мови програмування Smalltalk.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

17 of 21

Розгадайте ребус

Лічильник

«Ребуси українською» © rebus1.com

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

18 of 21

Питання для самоперевірки

  1. Обговоріть алгоритм зміни кольору лінії при кожній ітерації циклу.
  1. Яку відстань пройде Черепашка в ході виконання циклу:

а) for х in range(5): б) for х in range(2, 10, 2):

forward(x) forward(10)

  1. Створіть список clrs, елементами якого будуть назви червоного, жовтого, зеленого кольорів.
  1. Обговоріть алгоритм встановлення Черепашки у точку з випадковими координатами.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

19 of 21

Домашнє завдання

Проаналізувати

с. 186-190

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

20 of 21

Працюємо за комп’ютером

Сторінка

189-190

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

21 of 21

Дякую за увагу!

Нова українська школа

Урок 44

Інформатика 5

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.