Створення алгоритмів і програм із розгалуженнями та повтореннями
Створення алгоритмів і програм із розгалуженнями та повтореннями.
Цілі:
навчальна: формувати вміння створення алгоритмів і програм із розгалуженнями та повтореннями;
розвивальна: розвивати світоглядні уявлення про пізнаваність явищ і процесів у навколишньому світі, дослідницькі навички, інформаційну культуру учнів;
виховна: сприяти вихованню культури поведінки, мовлення, сумлінності та відповідальності під час виконання завдань.
Обладнання: комп’ютери з доступом до мережі Інтернет, мультимедійний проектор, інтерактивна дошка, програмне забезпечення, роздавальний матеріал.
Тип уроку: комбінований.
Наскрізні змістові лінії: екологічна безпека та сталий розвиток, здоров’я й безпека, підприємливість і фінансова грамотність, громадянська відповідальність.
Програмне забезпечення: браузер.
Хід виконання програми може бути лінійним , тобто таким, коли вирази виконуються один за одним, починаючи з першого та закінчуючи останнім. Жодний рядок коду програми не пропускається. При складанні алгоритму та написанні програми виникають ситуації, коли частину дій необхідно виконати за будь-якої умови. При виконанні коду, залежно від тих чи інших умов, деякі його ділянки можуть бути опущені, тоді як інші виконані. Іншими словами, у програмі може бути розгалуження , що реалізується умовним оператором – особливою конструкцією мови програмування .
ВКЛАДЕНІ АЛГОРИТМИ З РОЗГАЛУЖЕННЯМ
Всередині умовних конструкцій можна використовувати будь-які конструкції мови Пітон, зокрема умовну конструкцію. Отримуємо вкладене розгалуження – після одного роздоріжжя в ході виконання програми з'являється інше розвилка. При цьому вкладені блоки мають більший розмір відступу (наприклад, 8 пробілів).
Покажемо це на прикладі програми, яка за даними ненульовими числами x та y визначає, в якій із чвертей координатної площини знаходиться точка (x, y):
У цьому прикладі ми використовували коментарі – текст, який ігнорує компілятор. Коментаріями в Python є символ # і весь текст після цього символу до кінця рядка.
x = int(input())
y = int(input())
if x > 0:
if y > 0: # x > 0, y > 0
print("Перша чверть")
else: # x > 0, y < 0
print("Четверта чверть")
else:
if y > 0: # x < 0, y > 0
print("Друга чверть")
else: # x < 0, y < 0
print("Третя чверть")
Якщо є потреба врахувати значення декількох логічних виразів,
то використовують вкладені розгалуження:
if <логічний вираз1>:
блок команд 1
elif <логічний вираз2>:
блок команд 2 ...
elif <логічний вираз n>:
блок команд n
else:
<блок команд інакше>
В описаних вкладених розгалуженнях, якщо значення логічного виразу 1 True, то виконується блок команд 1. Якщо значення логічно-го виразу 1 False і значення логічного виразу 2 True, то виконується блок команд 2, і т.д. Інакше виконується команда інакше або блок команд інакше.
Якщо вкладених умовних операторів декілька, то до якого з них належить else, можна зрозуміти за відступом. Відступ у else має бути такий cамо, як в if, до якого він належить.
Приклад програми, що визначає чверть координатної площини, можна переписати, використовуючи "каскадну" послідовність операцією
if... elif... else:
x = int(input())
y = int(input())
if x > 0 and y > 0:
print("Перша чверть")
elif x > 0 and y < 0:
print("Четверта чверть")
elif y > 0:
print("Друга чверть")
else:
print("Третя чверть")
Питання для самоперевірки
Дано фрагмент коду:
if а%10<3: b = a*2
elif а%10 <= 5: b = a+10
elif а%10 <= 7: b = a*10
else: b = a+1
Чому дорівнюватиме значення змінної b після виконання коду, якщо спочатку: а) а = 13; б) а = 30; в) а = 88; г) а = 11?
Запишіть оператор розгалуження для визначення за номером деякого року у (у > 0) номера його століття С.
Одна пальчикова батарейка може забруднити 400 л води . Об’єм води в озері Світязь становить 180 000 000 м3 . Запишіть оператор циклу для визначення того, на який день забрудниться все озеро, якщо першого дня безвідповідально викинути 1 батарейку, а кожного наступного – удвічі більше, ніж попереднього.
Запишіть оператори циклу для друку двоцифрових двійкових чисел: 00, 01, 10, 11.
Складіть програму для розв’язування задачі методом перебору .У магазині придбали олівці по 6 грн і зошити по 5 грн . Вартість всієї покупки склала 68 грн . Скільки купили олівців і скільки зошитів?
VІІI. Домашнє завдання
Підручник § 3 ст. 16-21