Тема 68(10): Алгоритми з розгалуженнями для опрацювання величин.
План вивчення теми:
Б
Повторення
Які існують базові типи алгоритмів
Що позначають наступні блоки у Scratch:
Теоретичний матеріал
Під час розробки програмних кодів для завдань, у яких для їх виконання потрібно враховувати початковий стан (початковий набір даних), застосовують алгоритми з розгалуженнями.
Наприклад, створення проекту "Чек": якщо набрано товару на певну суму, то буде нарахована знижка на покупку, якщо не набрано - знижка не нараховується.
Розгалуження - це алгоритмічна конструкція, у якій в результаті перевірки логічного виразу виконується та чи інша дія.
Види розгалужень в Python :
Повне
Неповне
Багатоальтернативне
Повне розгалуження:
if <логічний вираз>:
<послідовність команд 1>
else:
<послідовність команд 2>
Порядок виконання команди:
Визначається значення логічного виразу (True або False)
Якщо значення True (істина), то виконується послідовність команд 1 і після цього виконується команда наступна за розгалуженням.
Якщо значення False (хиба), то виконується послідовність команд 2 і після цього виконується наступна команда за розгалуженням.
Неповне розгалуження в Python:
if <логічний вираз>:
<послідовність команд>
Порядок виконання команди:
Визначається значення логічного виразу (True або False)
Якщо значення True (істина), то виконується послідовність команд і після цього виконується команда наступна за розгалуженням.
Якщо значення False (хиба), то відразу виконується наступна команда за розгалуженням.
Багатоальтирнативне розгалуження:
if <логічний вираз 1>:
<послідовність команд 1>
elif <логічний вираз 2>:
<послідовність команд 2>
elif <логічний вираз 3>:
<послідовність команд 3>
...
else <логічний вираз N>:
<послідовність команд N>
Порядок виконання команди:
визначається значення логічного виразу 1;
якщо це значення істина, то виконується послідовність команд 1 і після цього виконується команда наступна за розгалуженням;
якщо це значення хиба, то обчислюється логічний вираз 2;
якщо це значення істина, то виконується послідовність команд 2 й після цього виконується команда наступна за розгалуженням;
якщо це значення хиба, то обчислюється значення наступного логічного виразу і т.д.
якщо всі вирази в команді мають значення хиба, то виконується послідовність команд N, розміщена після else, і після цього виконується команда наступна за розгалуженням.
Зауваження*
Послідовність команд, виконання яких залежить від значень логічних виразів, записують з відступом вправо відносно першої літери слів if, elif, else. Розмір відступу для кожної команди має бути однаковим.
Увага! Під час роботи з комп'ютером дотримуйтеся вимог БДЖ та санітарно-гігієнічних норм.
Задача 1. Обчислити значення виразу (а + 2Ь) / (а - Зb), де а, b - дійсні числа.
Математична модель:
Вхідні дані: два довільних числа a та b;
Кінцеві результати: значення виразу k.
Додаткові змінні (проміжні результати): x, y – для обчислення чисельника та знаменника.
Формули (зв'язок між вхідними даними та результатом): k=(a+2*b) / (a-3*b).
a=float(input('a='))
b=float(input('b='))
x=a+3*b
y=a-3*b
if y==0:
print('Вираз значення немає: ділення на 0')
else:
k=x/y
print(k)
Задача 2. Дано два числа. Визначити, чи рівні вони. Якщо ні, то яке з них більше.
Математична модель проєкту:
вхідні дані: два довільних числа х та у;
кінцеві результати: висновок: числа рівні, або перше число більше, або друге число більше;
Фрагмент програмного коду:
if x == y:
print(‘Числа рівні’)
elif x > y:
print(‘Перше число більше’)
else:
print(‘Друге число більше’)
Для перевірки правильності проєкту можна виконати його, наприклад, для таких наборів вхідних даних:
1) х = 3, у = 3;
2) х = 5, у = 2;
3) х = 4, у = 10.
Задача 3. Якщо споживач за місяць спожив не більше як 100 кВт год електроенергії, то за кожну кВт год потрібно заплатити 0,9 грн, а за кожну кВт год спожитої електроенергії, що понад 100, потрібно заплатити 1,68 грн. Побудуйте математичну модель і створіть проєкт для визначення, яку суму грошей має заплатити споживач за спожиту електроенергію. З