Вкладені алгоритмічні структури розгалуження. 6 клас
Логіка виконуваної програми може бути складніша, ніж вибір однієї з двох гілок. Наприклад, залежно від значення тієї чи іншої змінної, може виконуватися одна з трьох (або більше) гілок програми.
Як організувати таке множинне розгалуження? Напевно, можна використовувати декілька інструкцій if: спочатку перевіряється умовний вираз у першій інструкції if (якщо він True, то буде виконуватися вкладений в неї блок коду), потім у другій інструкції if і т.д. Однак при такому підході перевірка наступних інструкцій буде продовжуватися навіть тоді, коли перша умова була True, і блок коду при даній гілці був виконаний. Перевірка наступних умов може виявитися безглуздою.
Зазвичай таку проблему можна вирішити за допомогою вкладених конструкцій if-else. Однак при цьому часто з'являється проблема правильного трактування коду: незрозуміло, до якого if відноситься else (хоча в Python така плутанина не можлива через обов'язкові відступи).
З іншого боку, в ряді мов програмування, в тому числі і Python, передбачено спеціальне розширення інструкції if, що дозволяє направити потік виконання програми з одній гілок. Дана розширена інструкція, крім необов'язкової частини else, містить ряд гілок elif (скорочення від "else if" - "ще якщо") і виглядає приблизно так, як показано на блок-схемі. Частин elif може бути як завгодно багато (в межах розумного, звичайно).
На відміну від використання безлічі одиночних інструкцій if, інструкція if-elif-else припиняє перегляд наступних гілок, як тільки логічне вираз в поточній гілці буде True. Наприклад, якщо вираз при if (перша гілка) буде True, то після виконання вкладеного блоку виразів, програма повернеться до основної гілки.
Приклади скриптів з використанням інструкції if-elif-else на мові програмування Python:
x = -10if x > 0: print(1) elif x < 0: print(-1) else: print(0) |
Або такий приклад:
result = "no result"num1 = 3 if num1 == 0: result = 0elif num1 == 1: result = 1 elif num1 == 2: result = 2 elif num1 == 3: result = 3 elif num1 == 4: result = 4 elif num1 == 5: result = 45 else: print("Error") print(result ) |
У який момент припинитися виконання інструкції if-elif-else у вищевказаному прикладі? При якому значенні змінної могла спрацювати гілка else?
Задача 1. Дано температура.
Виведіть стан, у якому знаходиться вода при цій температурі
if(a<0):
print ()
elif (a>100):
print ()
else:
print()
Задача 2. Дано вік людини.
Напишіть програму, яка аналізує людину за її віком та відносить її до однієї з
чотирьох груп: дошкільня, школяр, працівник, пенсіонер.
a=float(input("Скільки
Вам повних років? "))
if
0<a<=6:
print("Ви-дошкільня")
elif
6<a<=16:
print("Ви - школяр")
elif
16<a<=65:
print("Ви - працівник")
else:
print("Ви - пенсіонер")
Задача 3.
Гість знає номер квартири, а також знає, що у будинку на кожному поверсі
розміщено по 3 квартири. На який поверх потрібно їхати ліфтом?
kvartyra=int(input('Введіть номер квартири '))
if (kvartyra%3==0):
p=kvartyra//3
else:
p=(kvartyra//3)+1
print ('Потрібен ',p,' поверх')
Практична робота
1.Напишіть програму за наступним описом:
- двом змінним присвоюються числові значення;
- якщо значення першої змінної більше другої, то знайти різницю значень змінних (відняти від першої другу), результат присвоїти третій змінній;
- якщо перша змінна має менше значення, ніж друга, то третю змінну пов'язати з результатом суми значень двох перших змінних;
- у всіх інших випадках, присвоїти третій змінній значення первої змінної;
- вивести значення третьої змінної на екран.
2.Придумайте програму, в якій би використовувалася інструкція if-elif-else. Кількість гілок повинна бути як мінімум чотири.
Доброго дня, скиньте будь ласка свою ел. адресу, куди відправляти тести.
ВідповістиВидалити