Алгоритми з повтореннями. Цикл із лічильником
Нова українська школа
Урок 43
Інформатика 5
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.
Алгоритми з повтореннями. Цикл із лічильником
Повторення (цикл) — це алгоритмічна структура, за допомогою якої та сама послідовність дій виконується кілька разів.
Розглянемо правила запису алгоритмів із повторенням (циклів) мовою Python з використанням оператора циклу:
циклу із лічильником
for
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Повторення команд
Цикл for (цикл із параметром) повторює блок команд (тіло циклу) задану кількість разів, позбавляючи необхідності кількаразово писати одні й ті самі команди
Синтаксис оператора циклу for:
for і in range(n):
<тіло циклу>
Насамперед ми вказуємо ключове слово for
Потім — змінну і, яка буде лічильником циклу
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Повторення команд
Ключове слово in наказує почергово надати змінній і усі цілі значення з послідовності чисел від 0 до n–1.
for і in range(n):
<тіло циклу>
Не забувайте, що лічильник починає рахувати з 0, а не з 1.
Серію команд, що повторюється під час виконання циклу, називають тілом циклу. Кожне виконання тіла циклу називають ітерацією.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Повторення команд
ПРИКЛАД 1. Проаналізуйте зміну значень лічильника і у циклі for. Функція range(4) задає список значень
[0, 1, 2, 3]:
Програмний код
Результат
0
1
2
3
for і in range(4):
print(і)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Повторення команд
Вбудована функція range() повертає зростаючу послідовність цілих чисел, які можна використовувати у виразах всередині циклу.
Щоб дати зрозуміти комп’ютеру, які команди слід повторити, використовуються відступи.
for і in range(n):
<тіло циклу>
Можна зробити відступ для кожної повторюваної в тілі циклу команди, натискаючи для цього клавішу Tab.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Повторення команд
ПРИКЛАД 2. У прикладі для малювання трикутника ми тричі, для кожної сторони трикутника, давали Черепашці команди forward(100) і right(120). Замість цього можна повторити ці команди в циклі.
Програмний код
Результат
from turtle import*
for і in range(3):
forward(100)
right(120)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Повторення команд
і – лічильник циклу
for і in range(3):
forward(100)
right(120)
Обов’язкова двокрапка
Тіло циклу
Відступи
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Повторення команд
Щоб оператор циклу намалював квадрат, змінимо кількість повторень циклу і кут повороту:
Програмний код
Результат
from turtle import*
for і in range(4):
forward(100)
right(90)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Лічильник циклу for
Лічильник циклу (змінна циклу) почергово набуває всіх значень з указаної послідовності. Цикл виконає стільки повторень, скільки значень задано у цій послідовності.
ПРИКЛАД 3. Лічильник почергово набуває значення літер, з яких складається зазначений рядок.
-> р
-> я
-> д
-> о
-> к
a = 'рядок'
for i in a:
print('->', i)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Лічильник циклу for
Послідовність значень може бути задана у вигляді списку.
Список — це набір значень, розділених комами, взятий у квадратні дужки.
У списках можна зберігати значення будь-якого типу — числа або рядки. Можна сказати, що список — це контейнер для збереження набору значень.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Лічильник циклу 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
Лічильник циклу for
Якщо список значень лічильника достатньо великий і числа в списку змінюються з певним кроком, можна застосувати функцію range() із такими параметрами:
range(від, до, крок)
Відлік починається зі значення від
Завершується на 1 раніше за значення до
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Лічильник циклу 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
Лічильник циклу for
ПРИКЛАД 6. Якщо потрібно вести зворотний відлік (у бік зменшення значень), укажіть значення від більшим, ніж значення до, а крок має бути від’ємним.
Програмний код
Результат
-> 5
-> 4
-> 3
-> 2
for i in range (5, 1, -1):
print('->', i)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Приклади розв’язування задач�за допомогою циклу 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
Приклади розв’язування задач�за допомогою циклу 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
Приклади розв’язування задач�за допомогою циклу 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
Приклади розв’язування задач�за допомогою циклу for
Отже, цикл із лічильником є потужним інструментом
програмування, він позбавляє програміста необхідності писати однакові блоки коду кілька разів, дозволяє в компактному коді виконувати велику кількість операцій.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Приклади розв’язування задач�за допомогою циклу for
Віктор Михайлович Глушков — засновник Інституту кібернетики Національної академії наук України, активний учасник світового процесу становлення та розвитку нових напрямів науки ХХ і ХХІ ст. — обчислювальної техніки, інформатики, кібернетики. Під його керівництвом був розроблений перший в Україні та колишньому СРСР персональний комп’ютер «МИР-1».
Цікаві факти
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Розгадайте ребус
Повторення
«Ребуси українською» © rebus1.com
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Питання для самоперевірки
for х in range(5)?
for х in range(0, 10, 2)?
s = 'цикл’ b = [1,3,5,7,9]
for х in s: for х in b:
print (x) print (x)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Домашнє завдання
Проаналізувати
с. 181-185
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Працюємо за комп’ютером
Сторінка
185
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Дякую за увагу!
Нова українська школа
Урок 43
Інформатика 5
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.