пʼятниця, 9 травня 2025 р.

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


У циклі з параметром блок команд (тіло циклу) повторюється задану кількість разів.

Синтаксис оператора циклу for:
for і in <послідовність>:
___ <тіло циклу>

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

Оператор циклу з параметром (лічильником)

Лічильник

Тіло циклу

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

for і іn range(3):

forward(100)
right(120)

Відступ

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

Тіло циклу

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

Приклад 1

Проаналізуємо зміну значень параметра і в циклі for.
for і in range(4):
     print(і)
Буде виведено числа 0, 1, 2, 3.

Отже, виклик range(n) повертає послідовність цілих чисел від 0 до n–1, які почергово присвоюються змінній i. Її можна використовувати у виразах всередині циклу.
Команди тіла циклу записують з однаковим відступом.

Завдання 2

Повторення (цикл) — це така організація дій в алгоритмі, за якої:

Позначте одну правильну відповідь.

Параметр циклу for

Параметр циклу (змінна циклу) почергово набуває всіх значень з указаної послідовності і щоразу виконується тіло циклу.
Розглянемо ще деякі способи задання послідовності значень для змінної циклу.

Приклад 2

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

a = 'Рядок'
for x in a:
     print('–>', x)

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


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

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

Приклад 3

Лічильник почергово набуває заданих зі списку.

b = ['Пн', 'Вт', 'Ср', 'Чт', 'Пт']
for x in b:
     print('–>', x)

Отримати послідовність значень від n1 до n2 з кроком k можна, викликавши range() із такими параметрами: range(n1, n2, k).
Відлік завершується на 1 раніше від значення n2. Якщо крок дорівнює 1, значення k можна не вказувати: range(n1, n2).

Приклад 4

Виклик range(2, 11, 3) надає змінній х значення від 2 до (11–1) із кроком 3, тому, хоча 8 + 3 = 11, значення 11 до послідовності значень не входить.

Як можна змінювати значення лічильника?

range(від, до, крок):
_______ <тіло циклу>

for i in range(20, 25):
     print(i)

i = 20, 21, 22, 23, 24

for i in range(4):
     print(i)

i = 0, 1, 2, 3

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

i = 10, 12, 14, 16, 18

for i in range(5, 0, –1):
     print(i)

i = 5, 4, 3, 2, 1

Завдання 3

Установіть відповідність між операторами циклу та результатами їхнього виконання.

for x in range(10, 5, –1):
print(x)

0 1 2 3 4

for x in range(2, 11, 3):
print(x)

2 3 4 5 6 7

for x in range(5):
print(x)

10 9 8 7 6

for x in range(2, 8):
print(x)

2 5 8

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

Приклад 5

Виведемо квадрати непарних чисел з проміжку від 11 до 19.

for i in range(11, 20, 2):
     print(i, '**2 = ', i*i)

Цікава інформація

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

Приклад 6

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

k = 0                                              # Початкове значення лічильника парних чисел
for i in range(5):
     a = int(input(str(i)+'?'))      # Уведення чергового числа
     if a%2 == 0: k = k+1           # Якщо число парне, лічильник k збільшується на 1
print ("k = ", k)                          

Приклад 7

Написати програму, яка здійснює зворотній відлік.
import time                                         # Модуль для роботи з часом
print("Готуємось до зльоту!")
for i in range(10, 0, –1):                  # Зворотній відлік
     print(i)
     time.sleep(1)                                  # Затримка виведення на 1 секунду

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

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

1, Поясніть правила виконання циклу for.
2. Яких значень набуває змінна x у ході виконання циклу з таким заголовком:
     for х in range(5)?
3. Яких значень набуває змінна x у ході виконання циклу з таким заголовком:
     for х in range(0, 10, 2)?
4. Що буде надруковано в ході виконання циклу:
     а) s = 'цикл'                       б) b = [1, 3, 9, 8]             в) for х in range(2, 8, 2):
          for х in s:                             for х in b: print(x)                 print(x*2)
                 print(x)                                print(x)
5. Чому дорівнює s після виконання циклу:
     а) s = 0                                 б) s = 0
          for a in range(5, 7):         for a in range(5, 11, 2):
                 s = s+1                                 s = s+a

Вправа 29

Створити рисунки з використанням циклу for.

1. Відкрийте вікно IDLE і створіть нове вікно програми.
Збережіть файл з іменем Вправа 29.

2. Запишіть програму для побудови поданого малюнка.

from turtle import*
color('blue')
for i in range(1, 100, 2):
     up()
     goto(i*2, 0)
     down()
     circle(i)

3. Запустіть програму на виконання.

Скільки кіл побудовано?  

      

4. Змініть параметри функції range() таким чином:
range (1, 100, 6).

Запустіть програму на виконання.

Скільки кіл побудовано?  

5. Поставте на початку рядка goto(і*2, 0) символ #.

Який малюнок буде намальовано в результаті виконання програми?

Позначте одну правильну відповідь.

6. Змінюючи параметри команди goto(), ми можемо керувати взаємним розташуванням кіл, які Черепашка малює на кожній ітерації циклу.

Установіть відповідність між параметрами команди goto(і*2, 0) і малюнками, які будуть намальовані в результаті виконання програми.

goto(i*2, i)

goto(0, –i)

goto(0, 0)

Немає коментарів:

Дописати коментар