Інформація про новину
  • Переглядів: 1269
  • Дата: 15-10-2021, 10:43
15-10-2021, 10:43

13.1. Алгоритми з повторенням. Команди повторення. Оператори циклу

Категорія: Інформатика





Попередня сторінка:  12.4. Використання об'єктів мови Python для...
Наступна сторінка:   13.2. Поєднання повторення і розгалужен...

Наведіть найпростіший приклад алгоритму із заздалегідь відомою та невідомою кількістю повторень.

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

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

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

Цикли з параметрами

Цикли із заздалегідь відомою кількістю повторень інструкцій тіла циклу ще називають циклами з параметрами. Найпростішу структуру таких циклів наведено на рис. 13.1. У ній змінна і — лічильник циклів, який набуває значень від а до п. Блок інструкції тіла циклу може містити одну або кілька інструкцій. Змінна п містить кінцеве значення змінної циклу, а змінна а — її початкове значення.

Наведена структура циклу з лічильником реалізується у багатьох мовах програмування. У Python лічильники у прямому сенсі не використовуються. Цикли із заздалегідь відомою кількістю циклів реалізуються оператором циклу for з об’єктом.

Команда повторення з оператором for має таку структуру:

де: <об'єкт> — може бути рядок, список, кортеж, діапазон, словник тощо, які підтримують реалізацію циклу.

Оператор for перебирає всі значення об’єкта й присвоює їх змінній. Спочатку вибирається перше значення об’єкта і присвоюється змінній, потім друге, трете значення і так далі до останнього значення (приклад 1).

Приклад 1. На рис. 13.2 наведено приклад, у якому об’єктом є список із чотирма значеннями. Спочатку змінна а набуває значення 5, до якого додається число 7, потім вона набуває значення 7, до якого також додається число 7, і так далі.

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

Структура функції range():

Обов’язковим є лише параметр кінець. Якщо інші параметри не зазначено, то генерується послідовність цілих чисел від 0 до значення кінець (приклад 2).

Приклад 2. На рис. 13.3 наведено приклад використання функції range() в команді циклу з оператором for.

Приклад 3. У банк покладено на чотири роки S гривень під k відсотків річних. Визначити суму прибутку за кожний рік і загальну суму прибутку.

Використаємо такі змінні: і — значення поточного року,

р — прибуток за поточний рік,

S — сума вкладу,

Sp — загальна сума прибутку.

Блок-схему алгоритму розв’язування задачі наведено на рис. 13.4, код реалізації алгоритму — на рис. 13.5.

Результат виконання коду:

Цикли з умовою

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

На рис. 13.6 наведено блок-схему циклу з передумовою. Як бачимо, умова перевіряється до початку виконання блоку інструкцій тіла циклу. Це означає, що інструкції тіла циклу можуть бути не виконані жодного разу. Блок інструкцій тіла циклу може містити одну або кілька інструкцій. Вони виконуються доти, доки умова має значення True.

Цикли з передумовою реалізуються оператором while.

Структура оператора while:

Результатом перевірки початкового значення може бути True або False.

Якщо результат перевірки має значення True, то виконуються команди тіла циклу, змінюється початкове значення змінної, після чого керування передається оператору while.

Якщо результатом перевірки є значення False, то буде виконана перша команда, розташована після тіла циклу.

Приклад 4. На рис. 13.7 наведено приклад використання оператора while. Тут змінна і набуває початкового значення 1, і потім на кожному циклі обчислюється І2, отримане значення виводиться на екран і далі збільшується на одиницю. Як тільки значення і буде більшим або дорівнюватиме 12, виконується значення False і здійснюється вихід із циклу.

Приклад 5. З клавіатури уводиться ціле десяткове число довільної розрядності. Визначити суму цифр цього числа.

На рис. 13.8 наведено блок-схему алгоритму обчислення. Основна ідея алгоритму полягає в тому, що початкове значення числа ділиться на 10. У результаті отримаємо остачу й цифру молодшого розряду. На наступному кроці остача також ділиться на 10, у результаті чого отримаємо цифру

наступного розряду і чергову остачу. Цей процес продовжується доти, доки поточна остача залишається більшою за нуль.

У блок-схемі використано такі змінні: а — початкове значення десяткового числа, S — сума цифр числа, k — значення поточної цифри, х — поточне значення цілої частини числа

Код реалізації алгоритму наведено на рис. 13.9.

На рис. 13.10 наведено блок-схему циклу з післяумовою. У таких алгоритмах спочатку виконуються інструкції тіла циклу, а потім перевіряється умова.

Якщо умова має значення True, то виконання інструкцій тіла циклу продовжується. Щойно умова набуде значення False, виконання інструкцій тіла циклу закінчується й керування передається першому оператору, розташованому за оператором циклу.

У мові Python відсутній оператор, який безпосередньо реалізує такий варіант циклу. Його можна реалізувати такою конструкцією оператора while з оператором break:

Оператор break перериває виконання циклу, якщо виконується деяка умова (приклад 6).

Приклад 6. Список містить числа 2, 5, 7, 9, 15. З’ясувати, на якій позиції знаходиться число 7.

Код реалізації алгоритму наведено на рис. 13.11.

Результат виконання коду: На позиції 2.

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

На відміну від break, оператор continue не перериває цикл, а повертає на початок циклу, що надає можливість перейти до наступної ітерації циклу до завершення виконання всіх команд усередині циклу (приклад 7).

Приклад 7. Генерується послідовність цілих чисел у діапазоні від 3 до 40 з кроком 3. Вивести на екран усі числа, крім чисел у діапазоні від 14 до 31.

Код реалізації алгоритму наведено на рис. 13.12.

Результат виконання коду: 3 6 9 12 33 36 39.

Запитання для перевірки знань

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

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

Для чого призначений оператор break?

Для чого призначений оператор continue?

Поясніть сутність виконання команди повторення з оператором for.

Наведіть приклад команди повторення з оператором for і функцією range.

Завдання для самостійного виконання

Розробіть код таблиці множення на 7.

Розробіть код виведення окремо кожного символу слова «оператор».

Розробіть код обчислення значення виразу а+2а+4а+бсн-8сн-1 Оа+12а. Значення а вводиться з клавіатури.

Початкове значення спадної геометричної прогресії дорівнює 12, а її знаменник — 0,5. Розробіть код обчислення суми членів прогресії, значення яких більше за 0,5.

Розробіть код обчислення значення виразу

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

З висоти 400 м тіло кидають вертикально вниз. Розробіть код визначення такої швидкості кидання, за якої тіло падає на землю не пізніше ніж через 2,1 с.

Запишіть структуру команди повторення з оператором while.

 

Це матеріал з підручника Інформатика 8 клас Руденко (2021)

 




Попередня сторінка:  12.4. Використання об'єктів мови Python для...
Наступна сторінка:   13.2. Поєднання повторення і розгалужен...



^