1 of 25

Алгоритми з повтореннями. Цикл із лічильником

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

Урок 43

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

teach-inf.com.ua

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

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

2 of 25

Алгоритми з повтореннями. Цикл із лічильником

Повторення (цикл) — це алгоритмічна структура, за допомогою якої та сама послідовність дій виконується кілька разів.

Розглянемо правила запису алгоритмів із повторенням (циклів) мовою Python з використанням оператора циклу:

циклу із лічильником

for

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

Розділ 5

§ 30

3 of 25

Повторення команд

Цикл for (цикл із параметром) повторює блок команд (тіло циклу) задану кількість разів, позбавляючи необхідності кількаразово писати одні й ті самі команди

Синтаксис оператора циклу for:

for і in range(n):

<тіло циклу>

Насамперед ми вказуємо ключове слово for

Потім — змінну і, яка буде лічильником циклу

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

Розділ 5

§ 30

4 of 25

Повторення команд

Ключове слово in наказує почергово надати змінній і усі цілі значення з послідовності чисел від 0 до n–1.

for і in range(n):

<тіло циклу>

Не забувайте, що лічильник починає рахувати з 0, а не з 1.

Серію команд, що повторюється під час виконання циклу, називають тілом циклу. Кожне виконання тіла циклу називають ітерацією.

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

Розділ 5

§ 30

5 of 25

Повторення команд

ПРИКЛАД 1. Проаналізуйте зміну значень лічильника і у циклі for. Функція range(4) задає список значень

[0, 1, 2, 3]:

Програмний код

Результат

0

1

2

3

for і in range(4):

print(і)

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

Розділ 5

§ 30

6 of 25

Повторення команд

Вбудована функція range() повертає зростаючу послідовність цілих чисел, які можна використовувати у виразах всередині циклу.

Щоб дати зрозуміти комп’ютеру, які команди слід повторити, використовуються відступи.

for і in range(n):

<тіло циклу>

Можна зробити відступ для кожної повторюваної в тілі циклу команди, натискаючи для цього клавішу Tab.

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

Розділ 5

§ 30

7 of 25

Повторення команд

ПРИКЛАД 2. У прикладі для малювання трикутника ми тричі, для кожної сторони трикутника, давали Черепашці команди forward(100) і right(120). Замість цього можна повторити ці команди в циклі.

Програмний код

Результат

from turtle import*

for і in range(3):

forward(100)

right(120)

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

Розділ 5

§ 30

8 of 25

Повторення команд

і – лічильник циклу

for і in range(3):

forward(100)

right(120)

Обов’язкова двокрапка

Тіло циклу

Відступи

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

Розділ 5

§ 30

9 of 25

Повторення команд

Щоб оператор циклу намалював квадрат, змінимо кількість повторень циклу і кут повороту:

Програмний код

Результат

from turtle import*

for і in range(4):

forward(100)

right(90)

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

Розділ 5

§ 30

10 of 25

Лічильник циклу for

Лічильник циклу (змінна циклу) почергово набуває всіх значень з указаної послідовності. Цикл виконає стільки повторень, скільки значень задано у цій послідовності.

ПРИКЛАД 3. Лічильник почергово набуває значення літер, з яких складається зазначений рядок.

-> р

-> я

-> д

-> о

-> к

a = 'рядок'

for i in a:

print('->', i)

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

Розділ 5

§ 30

11 of 25

Лічильник циклу for

Послідовність значень може бути задана у вигляді списку.

Список — це набір значень, розділених комами, взятий у квадратні дужки.

У списках можна зберігати значення будь-якого типу — числа або рядки. Можна сказати, що список — це контейнер для збереження набору значень.

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

Розділ 5

§ 30

12 of 25

Лічильник циклу for

ПРИКЛАД 4. Лічильник почергово набуває заданих значень зі списку.

Програмний код

Результат

-> 2

-> 4

-> 6

-> 8

-> 10

b = [2, 4, 6, 8, 10]

for i in b:

print('->', i)

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

Розділ 5

§ 30

13 of 25

Лічильник циклу for

Якщо список значень лічильника достатньо великий і числа в списку змінюються з певним кроком, можна застосувати функцію range() із такими параметрами:

range(від, до, крок)

Відлік починається зі значення від

Завершується на 1 раніше за значення до

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

Розділ 5

§ 30

14 of 25

Лічильник циклу for

ПРИКЛАД 5. Функція range(2, 11, 3) надає змінній i значення від 2 до (11–1) із кроком 3, тому,

хоча 8 + 3 = 11, значення 11 уже до послідовності значень не входить.

Програмний код

Результат

-> 2

-> 5

-> 8

for i in range (2, 11, 3):

print('->', i)

Якщо значення від більше, ніж значення до, і значення крок ≥ 0, цикл не виконається жодного разу.

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

Розділ 5

§ 30

15 of 25

Лічильник циклу for

ПРИКЛАД 6. Якщо потрібно вести зворотний відлік (у бік зменшення значень), укажіть значення від більшим, ніж значення до, а крок має бути від’ємним.

Програмний код

Результат

-> 5

-> 4

-> 3

-> 2

for i in range (5, 1, -1):

print('->', i)

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

Розділ 5

§ 30

16 of 25

Приклади розв’язування задач�за допомогою циклу for

ПРИКЛАД 7. Вивести квадрати непарних чисел з проміжку від 11 до 19.

Програмний код

Результат

11 **2 = 121

13 **2 = 169

15 **2 = 225

17 **2 = 289

19 **2 = 361

for i in range(11, 20, 2):

print(i, "**2 = ", i*i)

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

Розділ 5

§ 30

17 of 25

Приклади розв’язування задач�за допомогою циклу for

ПРИКЛАД 8. Увести з клавіатури 5 цілих чисел і визначити, скільки серед уведених чисел було парних.

Створимо змінну k, у якій зберігатимемо кількість парних чисел. Змінна а при кожній ітерації циклу буде набувати введеного з клавіатури значення.

0? 10

1? 3

2? 12

3? 7

4? 25

k = 2

k = 0 # Початкове значення лічильника парних чисел

for i in range(5):

a = int(input(str(i)+"? "))

# Уведення чергового числа

if a%2 == 0: k = k+1

# Якщо число парне, лічильник k збільшується на 1

print ("k = ", k)

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

Розділ 5

§ 30

18 of 25

Приклади розв’язування задач�за допомогою циклу for

ПРИКЛАД 9. Написати програму, яка здійснює зворотний відлік.

Готуємось до зльоту!

10

9

8

7

6

5

import time # Модуль для роботи з часом

print("Готуємось до зльоту!")

for i in range(10, 0, -1): # Зворотний відлік

print(i)

time.sleep(1)

# Затримка виведення на 1 секунду

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

Розділ 5

§ 30

19 of 25

Приклади розв’язування задач�за допомогою циклу for

Отже, цикл із лічильником є потужним інструментом

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

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

Розділ 5

§ 30

20 of 25

Приклади розв’язування задач�за допомогою циклу for

Віктор Михайлович Глушков — засновник Інституту кібернетики Національної академії наук України, активний учасник світового процесу становлення та розвитку нових напрямів науки ХХ і ХХІ ст. — обчислювальної техніки, інформатики, кібернетики. Під його керівництвом був розроблений перший в Україні та колишньому СРСР персональний комп’ютер «МИР-1».

Цікаві факти

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

Розділ 5

§ 30

21 of 25

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

Повторення

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

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

Розділ 5

§ 30

22 of 25

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

  1. Поясніть правила виконання циклу for.
  1. Яких значень набуває змінна х у ході виконання циклу:

for х in range(5)?

  1. Яких значень набуває змінна х у ході виконання циклу:

for х in range(0, 10, 2)?

  1. Що буде надруковано в ході виконання циклу:

s = 'цикл’ b = [1,3,5,7,9]

for х in s: for х in b:

print (x) print (x)

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

Розділ 5

§ 30

23 of 25

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

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

с. 181-185

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

Розділ 5

§ 30

24 of 25

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

Сторінка

185

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

Розділ 5

§ 30

25 of 25

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

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

Урок 43

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

teach-inf.com.ua

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

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