Інформація про новину
  • Переглядів: 41
  • Дата: 4-10-2021, 08:32
4-10-2021, 08:32

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

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





Попередня сторінка:  36. Елементи вибору в Python
Наступна сторінка:   38. Словники. Віджет Combobox в PyCharm

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

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

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

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

Цик/і із параметром

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

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

Застосуємо цикл for для посимвольного опрацювання рядка. Виведемо всі символи рядка, що міститься в змінній s, окрім «зірочок»:

Дано список днів тижня. З’ясуємо, скільки з них припадають на вихідні (сб, нд).

Числові послідовності можна задавати за допомогою вбудованої функції range():

Вона створює об’єкт, який генерує послідовність цілих чисел від значення початок до кінець із заданим кроком, при цьому значення кінець у послідовність не входить. Чергове число генерується при кожному звертанні до такого об’єкта, тому навіть для дуже довгих послідовностей він не займає багато пам'яті.

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

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

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

Цик/і із передумовою

Цикл із передумовою (або цикл while) буде повторюватися доти, поки це потрібно. Блок-схему оператора while наведено на рис. 37.2.

Виконання оператора циклу while починається з обчислення значення логічного виразу — умови повторення циклу.

Якщо умова істинна, то виконуються оператори тіла циклу і керування повертається на перевірку умови.

Якщо умова хибна, то виконання циклу припиняється і виконується оператор, який є наступним після оператора while.

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

Числами Фібоначчі називають послідовність чисел, які обчислюють за таким правилом: перші два числа дорівнюють 1, а кожне наступне дорівнює сумі двох попередніх. Математично це можна записати так:

Для визначення номера першого числа Фібоначчі, яке більше за 1000, потрібен цикл із умовою:

Запрограмуємо рух об’єкта полотном із відбиттям від країв полотна (рис. 37.3).

Вкладені цикли

Вкладений цикл — цикл, який міститься в тілі іншого циклу.

Такий цикл також називають внутрішнім, а цикл, у якому він міститься, — зовнішнім.

Усередину вкладеного циклу може бути вкладено наступний цикл і так далі. У Python підтримується до 20 рівнів вкладеності циклів.

Принцип роботи вкладених циклів такий: при першій ітерації зовнішній цикл викликає внутрішній, який виконується до свого завершення, після чого керування передається в тіло зовнішнього циклу. При другій ітерації зовнішній цикл знову викликає внутрішній. І так доти, поки не завершиться зовнішній цикл.

Обчислимо значення змінної у = 2 ■ k + п при всіх значеннях змінних п= 1, 2, 3 і к = 2, 4, 7, 9.

Якщо перебирати всі значення пік, отримаємо 12 значень змінної у.

Скласти програму можна в такий спосіб: для кожного значення п перебрати всі значення k — від 2 до 8, тобто п використати як параметр зовнішнього циклу, k — як параметр внутрішнього циклу (рис. 37.4):

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

Зовнішній цикл for і in range(1, 10) виконується 9 разів. Внутрішній цикл for j in range(1, 10) виконується 9 разів для однієї ітерації зовнішнього циклу і, відповідно, 81 раз для всіх ітерацій зовнішнього циклу.

У кожній ітерації внутрішнього циклу на консоль буде виводитися добуток чисел і та j (рис. 37.5).

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

1. У вікні IDLE уведіть команду:

Обговоріть результати виконання оператора for. Поексперимен-туйте зі зміною параметрів функції range().

2. З’ясуйте, що буде надруковано в результаті виконання фрагмента програми:

3. З клавіатури вводиться 10 довільних цілих чисел. Запишіть оператори для виконання таких дій:

а) знайдіть суму та середнє арифметичне;

б) знайдіть суму тільки від’ємних доданків;

в) знайдіть найменше число.

4. Визначте значення змінної s після виконання операторів:

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

Скільки значень виведе програма?

Вправа 37

Вивести на екран усі прості числа на інтервалі [а; Ь].

1) Як відомо, простими називають числа (крім 1), що діляться

без остачі тільки на 1 і самі на себе.

Розглянемо алгоритм перевірки, чи є число с простим.

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

б) Перебираються всі числа D від 2 до с//2. Якщо число D є дільником числа с (тобто с ділиться на D без остачі), то змінній ргар присвоюється значення True.

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

2) Запишіть програму для визначення, чи є число с простим.

Увага: задання значення змінної с навмисно пропущено.

3) За умовою задачі переберіть усі числа в інтервалі [а; Ь], тобто для кожного с від а до b потрібно виконати алгоритм перевірки, чи є число с простим.

4) Змініть програму так, щоб а і b уводилися з клавіатури.

5) Додайте керуючий рядок циклу for для перебору значень с у діапазоні [а; Ь].

Тілом циклу є код перевірки, чи є число с простим.

6) Збережіть файл Python. Випробуйте програму з різними значеннями а і Ь. Поміркуйте, чи можна прискорити підрахунок, зменшивши кількість ітерацій циклу for D....

Комп'ютерне тестування

Виконайте тестове завдання 37 із автоматичною перевіркою результату.

 

 

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

 



Попередня сторінка:  36. Елементи вибору в Python
Наступна сторінка:   38. Словники. Віджет Combobox в PyCharm



^