Реалізація алгоритмів з розгалуженням
Розгалуження в Python
Розгалуження існує двох видів: повне та неповне.
Повне розгалуження має наступну структуру:
Якщо умова істинна, то виконується один блок команд, якщо хибна, то виконується другий блок команд.
Алгоритми, в яких послідовність кроків залежить від виконання деяких умов, називають розгалуженими.
Якщо виконується <умова>:
то виконуються команди 1
інакше: виконуються команди 2.
Мовою Python:
if <умова> :
<команди 1>
else:
<команди 2>
Наприклад:
a = -10
if a>0:
print('Число', a 'додатнє')
else:
print('Число', a 'від ємне')
Словесне представлення алгоритму з розгалуженням:
Якщо закінчились уроки, то я йду додому, якщо уроки не закінчились, то я продовжую навчатись.
В даному прикладі Закінчились уроки - це умова, Йду додому та Продовжую навчатись - це команди, які виконуються в алгоритмі з розгалуженням.
Завдання 1. Вкажіть де умова та команди в наступних прикладах:
Якщо на вулиці йде дощ, то я візьму з собою парасольку, інакше я вдягнусь по погоді.
Якщо я маю 100 гривень, то я зможу купити собі цукерок, інакше я куплю фрукти.
Якщо закінчився навчальний рік, то я зможу поїхати на відпочинок, інакше я відпочиватиму лише на вихідних.
Якщо у мене є пилосос, то він допомагає мені прибирати оселю, інакше я прибиратиму дуже довго.
Завдання 2. Скласти самостійно 3 приклади з розгалуженням.
Якщо блок else (інакше) в алгоритмі відсутній, то таке розгалуження називають неповним.
Структура неповного розгалуження в Python:
if <умова> :
<команди 1>
Особливості написання коду з розгалуженням:
1.) Після умови обов'язково ставиться двокрапка і курсор після натискання клавіші Enter падає на наступну стрічку з відступом, тоді ми прописуємо команди.
Якщо забути двокрапку, то відступу не буде, і при перевірці програми буде видано помилку.
Навіть якщо ми потім поставимо двокрапку, то перевірка коду буде видавати помилку через відсутність відступу. Це можна виправити, поставивши перед командами 4 пропуски.
2.) Якщо є декілька команд, вони записуються теж з відступом в 4 пропуски.
Завдання для самостійного виконання.
Дано натуральне число a. Визначити, чи є воно парним.
Дано натуральне число a. Визначити, чи закінчується воно на 0.
Дано два дійсних числа. Зменшити перше число в 7 разів, якщо воно більше за друге за абсолютною величиною.
Складена умова
Умова може бути проста та складена. Просту умову ми розглянули вище. Складена умова включає в себе декілька простих умов, зв'язаних з допомогою логічних операцій і, або, не.
Складена умова і в Python записується and. (Логічне множення, кон'юнкція, одночасне виконання умов)
Лише тоді, коли виконуються обидві умови, ми виконуємо першу команду, а інакше, якщо одна з умов хибна, ми виконуємо другу команду.
Наприклад:
Якщо на вулиці йде дощ і мені потрібно йти на роботу, то я візьму з собою парасольку, інакше я вдягнусь по погоді.
Складеною буде умова: на вулиці йде дощ і мені потрібно йти на роботу.
Завдання 1. Вкажіть яка з умов буде складеною:
Якщо я маю магазин і скляну вітрину, то я можу побачити там своє відображення, інакше я можу лише здогадатись, що знаходиться за дверима.
Якщо потрібно дізнатись де знаходиться об'єкт до якого я прямую і я не знаю адреси, то я використаю навігатор, інакше я можу знайти його в Інтернеті.
Якщо я читатиму багато книг, то я буду розумним і буду вступати в вищий навчальний заклад, інакше мені прийдеться довго вчитись.
Завдання 2. Придумати свої приклади складеної умови and.
Приклад:
Фірма набирає співробітників на роботу від 25 до 50 років. Визначити, чи буде взято на роботу співробітника, якщо відомо його вік.
a = int(input('Введіть вік співробітника'))
if a>=25 and a<=50:
print('Взято на роботу')
else:
print('Не беремо на роботу')
Складена умова або в Python записується or (Логічне додавання, диз'юнкція, виконання хоча б однієї з умов).
Складена умова не в Python записується not (Заперечення, інверсія).
Приклад:
Завдання розгалуження:
1. Скласти програму для перевірки агрегатного стану води, маючи її температуру у градусах Цельсія.
ТЕСТ 1
Вхідні дані: – 2
Вихідні дані: Лід, твердий стан
ТЕСТ 2
Вхідні дані: 85
Вихідні дані: Рідкий стан
2. Написати програму для розв'язування лінійних рівнянь за заданими коефіцієнтами.
ТЕСТ
Вхідні дані: a = 2, b = 5
Вихідні дані: x = – 2.5
Результат:
ТЕСТ
1
Вхідні дані: 7
Вихідні дані: Не можна купити рівно 7 мячів
ТЕСТ 2
Вхідні дані: 25
Вихідні дані: Можна купити рівно 25 мячів
4. Дано три числа. Написати програму, яка знаходить добуток двох більших з них.
b = int(input('Введіть друге число b '))
c = int(input('Введіть третє число c '))
if a>c and b>c:
x = a*b
print('x =', x)
elif a>b and c>b:
x = a*c
print('x =', x)
elif b>a and c>a:
x = b*c
print('x =', x)
else:
print('Введіть інші числа')
Вхідні
дані: 8 5 9
Вихідні дані: 72
5. З’ясувати існування трикутника, заданого своїми трьома
сторонами.
Вказівка. Трикутник існує тоді і тільки тоді, коли сума довжин будь-яких двох його сторін більша за третю.
a = int(input('Введіть першу сторону a '))
c = int(input('Введіть третю сторону c '))
if a+b>c and a+c>b and b+c>a:
print('Трикутник існує')
else:
print('Трикутник не існує')
Результат:
ТЕСТ
1
Вхідні дані: 3 4 5
Вихідні дані: Трикутник існує
ТЕСТ 2
Вхідні дані: 7 4 3
Вихідні дані: Трикутник не існує
6. Дано три цілих числа. Визначте, скільки серед
них співпадають. Програма повинна вивести одне з чисел: 3 (якщо всі числа
однакові), 2 (якщо два співпадають) або 0 (якщо всі числа різні).
a = int(input('Введіть перше число a '))
b = int(input('Введіть друге число b '))
c = int(input('Введіть третє число c '))
if a == b and b == c and c == a:
print('3')
elif a == b or b == c or a == c:
print('2')
else:
print('0')
ТЕСТ 1
Вхідні дані: 3 4 7
Вихідні дані: 0
ТЕСТ 2
Вхідні дані: 7 5 5
Вихідні дані: 2
ТЕСТ 3
Вхідні дані: 10 10 10
Вихідні дані: 3
7. Перевірити, чи задане трицифрове число ділиться на суму своїх цифр.
Коментарі