Вкладені алгоритмічні структури розгалуження. 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.Напишіть програму за наступним описом:
  1. двом змінним присвоюються числові значення;
  2. якщо значення першої змінної більше другої, то знайти різницю значень змінних (відняти від першої другу), результат присвоїти третій змінній;
  3. якщо перша змінна має менше значення, ніж друга, то третю змінну пов'язати з результатом суми значень двох перших змінних;
  4. у всіх інших випадках, присвоїти третій змінній значення первої змінної;
  5. вивести значення третьої змінної на екран.
2.Придумайте програму, в якій би використовувалася інструкція if-elif-else. Кількість гілок повинна бути як мінімум чотири.

Коментарі

  1. Доброго дня, скиньте будь ласка свою ел. адресу, куди відправляти тести.

    ВідповістиВидалити

Дописати коментар

Популярні дописи з цього блогу

Повторення. Цілі і дробові раціональні вирази. 11 клас

Авторські права та ліцензії у веб-середовищі

Сервіси розміщення аудіо та відео файлів в Інтернеті