(71) Реалізація циклічних алгоритмів.
Цикли з параметрами
(71) Реалізація циклічних алгоритмів.
Цикли з параметрами
Повторення (цикл) — це алгоритмічна структура, за допомогою якої та сама послідовність дій виконується багаторазово для різних значень змінних. Серію інструкцій, які виконуються багаторазово під час виконання циклу, називають тілом циклу.
У циклах із параметром (циклах зі змінною циклу) кількість повторень інструкцій тіла циклу заздалегідь відома.
Цикл з лічильником (параметром) - це цикл, у якому деяка змінна змінює своє значення від заданого початкового до деякого кінцевого з певним кроком і для кожного значення цієї змінної тіло циклу виконується 1 раз.
Цикл for найчастіше застосовується для перебору елементів послідовності. У мові Python він має таку загальну структуру:
for <змінна циклу> in <об'єкт>:
<блок інструкцій тіла циклу>
[else:
<Блок, що виконується, якщо не використовувався оператор break>]
Блок-схема циклу із параметром
( цикл for)
Тут є такі конструкції:
• <об'єкт> – може бути рядок, список, словник та інші типи даних, які підтримують реалізацію циклу.
• <змінна циклу> – поточне значення об’єкта. Початкове її значення — це перший елемент об’єкта. У другому циклі ця змінна набуде значення другого елемента об’єкта і так далі до останнього.
• <блок інструкцій тіла циклу> – буде багаторазово виконуватися до тих пір, доки змінна циклу послідовно не набуде усіх значень, що містяться в об’єкті.
• якщо всередині циклу не використовувався оператор break, то після завершення виконання циклу буде виконано блок в інструкції else. Даний блок не є обов’язковим.
Визначення термінів
Змінна і — параметр циклу — послідовно набуває значень кожного члена послідовності.
Рядок, що починається з ключового слова for, називають заголовком циклу, а повторювані в циклі команди - тілом циклу.
Найпростіша структура оператора for така:
for <змінна циклу> in <об'єкт>:
<блок інструкцій тіла циклу>
Загальний вигляд команди циклу з лічильником:
for <ім’я змінної> in range(<кількість повторень>):
<команди тіла циклу>
Рядок for <ім’я змінної> in range(<кількість повторень>) (англ. for – для, in range – в діапазоні) називається рядком заголовка команди циклу з лічильником. Змінна в рядку заголовка команди циклу з лічильником називається лічильником циклу.
Функція range(<кількість повторень>) утворює (генерує) набір послідовних цілих чисел, перше з яких 0, а останнє – на 1 менше від заданої кількості повторень (усього чисел стільки, скільки задано кількість повторень).
Функція range()
Числові послідовності можна задавати за допомогою вбудованої функції range():
range ([<початок>,] <кінець>[, <крок>])
Вона створює об’єкт, який генерує послідовність цілих чисел від значення початок до кінець із заданим кроком, при цьому значення кінець у послідовність не входить. Чергове число генерується при кожному звертанні до такого об’єкта, тому навіть для дуже довгих послідовностей він не займає багато пам'яті.
Виконується команда циклу з лічильником так:
1.Функція range(<кількість повторень>) генерує набір чисел від 0 до (кількість повторень – 1).
2. Виконується перевірка, чи є в наборі числа, які ще не використовувалися і могли б стати новим значенням змінної-лічильника циклу.
3. Якщо результат перевірки True, то змінна-лічильник циклу набуває значення першого з набору чисел, які ще не використовувалися, і після цього виконується дія 4; якщо False, то виконання команди циклу закінчується і далі виконується команда, наступна за командою циклу.
4. Виконуються команди тіла циклу.
5. Повторюється виконання дії 2.
Зауваження *
У записі команди циклу з лічильником усі команди тіла циклу повинні бути записані з однаковим відступом від першої літери в слові for.
Загальна структура цієї функції range() така: range ([<початок>,] <кінець> [, <крок> ]) Обов’язковим є лише параметр кінець.
Приклад:
Надрукувати числа від 20 до 24. Якщо крок дорівнює 1, цей параметр можна не зазначати:
for i in range(20, 25): print(i)
Надрукувати числа від 0 до 3. Якщо початок дорівнює 0, цей параметр можна не зазначати:
for i in range(4): print(i)
Надрукувати числа від 5 до 1. Якщо потрібно вести відлік у зворотному порядку, крок має бути від’ємним:
for i in range(5, 0, –1): print(i)
Працюємо за ПК:
Увага! Під час роботи з комп'ютером дотримуйтеся вимог безпеки життєдіяльності та санітарно-гігієнічних норм.
Приклад 1. Застосуємо цикл for для посимвольного опрацювання рядка. Виведемо всі символи рядка, що міститься в змінній s, окрім «зірочок»:
Приклад 2. У банк клієнт поклав 10000 грн під 20% річних. Визначити суму вкладу за кожний із п’яти років.
Приклад 3. Дано рядок символів. Програму виведення кожного символу з рядка через один пробіл і підрахунку в ньому кількості символів зображено на рис. 5. У цьому прикладі об’єктом у структурі оператора for є рядок. Змінна циклу s послідовно набуває значень, починаючи з букви м до букви р. Аргумент end=" " в операторі print забезпечує виведення символів рядка через пробіл в одному рядку.
Приклад 4. У заданій послідовності комп’ютерних термінів підрахувати кількість конкретного терміна й вивести його стільки разів, скільки він повторюється. На рис. 6 наведено код, за допомогою якого в заданій послідовності виводиться слово «біт» і підраховується його кількість. Результат:
біт біт біт
Таких слів: три
Практичне завдання
Увага! Під час роботи з комп'ютером дотримуйтеся вимог безпеки життєдіяльності та санітарно-гігієнічних норм.
Скласти програми:
Задача 1. Розробити програму реалізації алгоритму отримання таблиці множення на 7.
Задача 2.
Надрукувати числа від 0 до 9.
Надрукувати числа від 30 до 40 з кроком, що дорівнює 2.
Надрукувати у зворотньому порядку числа від 10 до -10.
Задача 3. У банк клієнт поклав суму S грн під P % річних. Визначити суму вкладу за кожний із N років.
Задача 4. Дано рядок символів "інформатика". Скласти програму виведення кожного символу з рядка через один пробіл і підрахунку в ньому кількості символів.
Задача 5. У заданій послідовності комп’ютерних термінів ( біт, байт, принтер, байт, процесор, байт, монітор) підрахувати кількість терміна "байт" й вивести його стільки разів, скільки він повторюється.