1 of 20

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

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

Урок 37

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

teach-inf.com.ua

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

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

2 of 20

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

Однією з базових алгоритмічних структур є цикл.

Ви вже маєте досвід записування алгоритмів із повторенням (циклів) мовою Python за допомогою команди циклу з параметром.

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

Згадаємо: серію команд, яка повторюється під час виконання циклу, називають тілом циклу, а кожне виконання тіла циклу — ітерацією.

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

Розділ 6

§ 31

3 of 20

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

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

Синтаксис команди циклу for:

— обов’язковий відступ від лівого краю.

for і in <послідовність>:

<тіло циклу>

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

Розділ 6

§ 31

4 of 20

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

Ключове слово in наказує почергово надати змінній і усі значення із зазначеної послідовності

for і in <послідовність>:

<тіло циклу>

Вказуємо назву змінної (і), яка буде параметром

Після ключового слова for

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

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

Розділ 6

§ 31

5 of 20

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

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

Виведемо почергово в консоль значення зі списку:

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

Результат

—> 2

—> 4

—> 6

—> 8

—> 10

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

for x in b:

print('—>', x)

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

Розділ 6

§ 31

6 of 20

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

—> к

—> а

—> л

—> и

—> н

—> а

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

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

Виведемо почергово в консоль літери рядка:

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

for і in 'калина':

print('—> ', і)

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

Розділ 6

§ 31

7 of 20

Діапазони (range)

Послідовність цілих чисел можна отримати так:

range(start, stop, step)

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

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

Із кроком step

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

Розділ 6

§ 31

8 of 20

Діапазони (range)

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

Надрукувати парні числа в діапазоні від 10 до 20:

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

Результат

10 12 14 16 18

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

print(i, end = ' ')

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

Розділ 6

§ 31

9 of 20

Діапазони (range)

Розглянемо різні варіанти задання діапазонів.

Надрукувати числа від 20 до 22. Якщо step = 1, цей параметр можна не вказувати

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

Результат

20

21

22

step = 1

for i in range(20, 23):

print(i)

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

Розділ 6

§ 31

10 of 20

Діапазони (range)

Продовження…

Надрукувати числа від 0 до 3. Якщо start = 0, цей параметр можна не вказувати

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

Результат

0

1

2

3

start = 0

step = 1

for i in range(4):

print(i)

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

Розділ 6

§ 31

11 of 20

Діапазони (range)

Надрукувати числа від 5 до 1. Якщо потрібно вести відлік у зворотному порядку, step має бути від'ємним

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

Результат

5

4

3

2

1

step = -1

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

print(i)

Продовження…

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

Розділ 6

§ 31

12 of 20

Діапазони (range)

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

Виведемо в консоль таблицю множення на 5.

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

Результат

1 * 5 = 5

2 * 5 = 10

3 * 5 = 15

4 * 5 = 20

5 * 5 = 25

6 * 5 = 30

7 * 5 = 35

8 * 5 = 40

9 * 5 = 45

for i in range(1, 10):

print(i, '* 5 = ', i*5)

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

Розділ 6

§ 31

13 of 20

Діапазони (range)

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

Вкладник поклав до банку 1000 грн під 15% річних. Скільки грошей буде на його рахунку через 5 років?

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

Результат

1 рік - 1150.0 грн.

2 рік - 1322.5 грн.

3 рік - 1520.88 грн.

4 рік - 1749.01 грн.

5 рік - 2011.36 грн.

s = 1000

for i in range(5):

# Збільшення суми внеску на 15 %

s = s+s*0.15

# Значення s виводиться з двома

# знаками після коми

print(i+1, 'рік -', round(s, 2), 'грн.')

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

Розділ 6

§ 31

14 of 20

Діапазони (range)

Згадаємо «черепашачу» графіку. Програма малює спіраль із заданою кількістю кутів n. Під час кожної ітерації Черепашка малює лінію довжиною х пікселів і повертається вліво на 3600/n. Оскільки кожен відрізок на 2 пікселі довший за попередній, то отримуємо спіраль.

from turtle import*

color('blue')

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

for x in range(50):

forward(x)

left(360/n

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

Розділ 6

§ 31

15 of 20

Діапазони (range)

Отже, цикл for використо-вується, якщо для певної послідовності значень потрібно повторити одні й ті самі дії.

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

Розділ 6

§ 31

16 of 20

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

  1. Яких значень набуває змінна х у ході виконання циклу із заголовком? a) for х in range(5);

б) for x in range(2, 6); в) for х in range(8, 0, -2).

  1. Які числа будуть виведені після виконання команди?

a) for і in range(8): б) for і in range(10, 0, -2):

print(i) print(i)

  1. Ведмедик у понеділок з’їв 200 г меду, а кожного наступного дня тижня з’їдав меду на 20% більше, ніж попереднього. Складіть програму, яка дасть змогу визначити, скільки меду ведмедик з’їв у неділю.

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

Розділ 6

§ 31

17 of 20

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

Повторення

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

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

Розділ 6

§ 31

18 of 20

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

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

с. 201-206

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

Розділ 6

§ 31

19 of 20

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

Сторінка

205-206

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

Розділ 6

§ 31

20 of 20

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

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

Урок 37

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

teach-inf.com.ua

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

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