1209
Завантажити презентаціюПрезентація по слайдам:
7 Створення алгоритмів і програм із розгалуженнями та повтореннями Розділ 1 § 3 Вам відомо, що Python, як і інші мови програмування, дозволяє записувати алгоритми: Тож пригадаймо відповідні оператори та розгляньмо приклади їх використання. розгалужені циклічні
7 Алгоритмічна структура розгалуження Розділ 1 § 3 Якщо залежно від початкових умов можливі декілька варіантів розв’язання задачі, при складанні алгоритму використовується алгоритмічна структура розгалуження. Розгалуження — це алгоритмічна структура, в якій виконання певної послідовності дій залежить від істинності умови (логічного виразу).
7 Алгоритмічна структура розгалуження Розділ 1 § 3 Розглянемо блок-схеми: Неповне розгалуження Повне розгалуження
7 Алгоритмічна структура розгалуження Розділ 1 § 3 Приклади запису умовних операторів мовою Python: Неповне розгалуження Повне розгалуження if a>b+c: print('Трикутник не існує’) a = 0.8*a if n%2 == 0: print('Число парне') else: print('Число непарне')
7 Алгоритмічна структура розгалуження Розділ 1 § 3 Якщо потрібно послідовно перевірити декілька умов, застосовують множинне розгалуження. Для цього до оператора повного розгалуження слід додати ключове слово elif (від англ. else if — інше якщо). У гілці elif обов’язково повинен бути логічний вираз — умова, як у заголовку if. У кінці після всіх гілок elif може бути одна гілка else для обробки випадків, які не відповідають умовам гілки if і всіх elif. elif
7 Алгоритмічна структура розгалуження Розділ 1 § 3 Створимо програму-довідник, яка за введеною назвою пори року повідомлятиме назви відповідних їй місяців. W = input('Введіть назву пори року: ') if W == 'весна': print('березень, квітень, травень') elif W == 'літо': print('червень, липень, серпень') elif W == 'осінь': print('вересень, жовтень, листопад') elif W == 'зима': print('грудень, січень, лютий') else: print('неправильні дані')
7 Алгоритмічна структура розгалуження Розділ 1 § 3 Під час виконання програми будь-який рядок, відмінний від української назви пори року, набраної малими літерами, оброблятиметься гілкою else — виводитиметься повідомлення «неправильні дані».
7 Алгоритмічна структура повторення Розділ 1 § 3 Одним із найважливіших засобів програмування є можливість багаторазового виконання деякого набору команд. Це дозволяє: ✔ створювати програми для обробки великих сукупностей даних, ✔ побудови візерунків тощо.
7 Алгоритмічна структура повторення Розділ 1 § 3 зі службовими цим процесом, Команди, що повторюються, разом словами, які забезпечують керування називаються циклом. Повторення (цикл) — це алгоритмічна структура, в якій та сама послідовність дій може виконатися кілька разів. Як ви вже знаєте, повторювані під час виконання циклу дії називають тілом циклу, а кожне виконання тіла циклу називають ітерацією.
7 Алгоритмічна структура повторення Розділ 1 § 3 У Python реалізовано два види операторів циклу: Цикл із умовою Цикл із параметром
7 Алгоритмічна структура повторення Розділ 1 § 3 Приклади запису операторів циклу мовою Python: Цикл із умовою Цикл із параметром Як і в умовному операторі, команди тіла циклу слід записувати з однаковим відступом (натискаючи клавішу Tab) від початку рядка із заголовком циклу. while a
7 Цикл із умовою Розділ 1 § 3 Під час виконання циклу з умовою (while) спочатку перевіряється умова. Якщо умова: то виконується чергова ітерація то виконання циклу припиняється Якщо при першій перевірці умова виявиться хибною, то тіло циклу не виконається жодного разу. істинна хибна
7 Цикл із умовою Розділ 1 § 3 Якщо в ході виконання циклу умова залишається істинною, то цикл може повторюватися нескінченно (кажуть, програма «зациклена»). Знайти суму цифр числа n: n = int(input('n = ?')) s = 0 while n>0: d = n%10 s = s+d n = n//10 print('s = ', s)
7 Цикл із параметром Розділ 1 § 3 Тіло циклу із параметром (for) виконується задану кількість разів. Послідовність значень параметра можна задати кількома способами. □ За допомогою вбудованої функції range(start, stop, step), яка повертає послідовність цілих чисел від start до stop (значення stop не включається у послідовність). range(start, stop, step) Відлік починається зі значення start Завершується на 1 раніше за значення stop Із кроком step
7 Цикл із параметром Розділ 1 § 3 числа у порядку Надрукуємо парні двоцифрові спадання: for i in range(98, 9, -2): print(i) Якщо start = 0 або step = 1, то ці параметри можна не зазначати. Щоб вести відлік у зворотному порядку, step має бути від’ємним.
7 Цикл із параметром Розділ 1 § 3 □ У вигляді списку значень, взятого у квадратні дужки; параметр почергово набуває всіх значень зі списку. Виведемо квадрати чисел зі списку значень: використовувати будь-які for i in[2, 5, 3, 12]: print(i**2) У тілі циклу можна команди: умовні оператори інші оператори циклу тощо
7 Цикл із параметром Розділ 1 § 3 більше від Складемо програму розв’язування задачі. Знайти двоцифрове число, яке на 26 добутку своїх цифр. Позначимо цифру десятків за а, цифру одиниць за b. Тоді наше двоцифрове число можна виразити через його цифри a і b: 10 · a + b. За умовою задачі число 10a + b на 26 більше від добутку цифр ab. Складемо математичну модель: 10a + b = ab + 26
7 Цикл із параметром Розділ 1 § 3 Складемо програму для пошуку розв'язків методом перебору. Запишемо оператори циклу для перебору всіх можливих сполучень цифр a і b та перевіримо для кожного сполучення умову задачі. for a in range(1, 10): for b in range(0, 10): if 10*a+b == a*b+26: print(10*a+b) Задача має три розв’язки: числа 32, 56, 98.
7 Цикл із параметром Розділ 1 § 3 Досконалими давні греки називали дорівнюють числа, що сумі всіх своїх дільників, окрім самого числа (6 = 1 + 2 + 3). Знайдемо досконалі числа в діапазоні від m до n.
7 Цикл із параметром Розділ 1 § 3 Алгоритм розв’язування задачі: для кожного числа k від m до n знайти суму дільників від 1 до k // 2; якщо сума дільників дорівнює числу k, то вивести значення k. # Вводяться цілі значення m, n (m
7 Цикл із параметром Розділ 1 § 3 Використовуючи алгоритмічні структури: Слідування Повторення Розгалуження Можна побудувати будь-який як завгодно складний алгоритм.
7 Питання для самоперевірки Розділ 1 § 3 Одна пальчикова батарейка може забруднити 400 л води. Об’єм води в озері Світязь становить 180 000 000 м3. Запишіть оператор циклу для визначення того, на який день забрудниться все озеро, якщо першого дня безвідповідально викинути 1 батарейку, а кожного наступного — удвічі більше, ніж попереднього. Запишіть оператори циклу для друку двоцифрових двійкових чисел: 00, 01, 10, 11.
Схожі презентації
Категорії