G-X3X01SGQDG

§ 28. Алгоритми
з розгалуженнями. Оператор if...else


Для виконання однієї дії, якщо деяка умова істинна, та іншої дії, якщо ця умова хибна, використовується алгоритмічна конструкція повне розгалуження. Цій конструкції відповідає умовний оператор if...else.

Завдання 1

Умовний оператор іf ... else

Синтаксис умовного оператора в повній формі:
if <Умова>:
     <Команди 1>
else:
     <Команди 2>

Якщо умова істинна (True), буде виконано Команди 1. Якщо умова хибна (False), виконуються Команди 2, записані після службового слова еlse.

Приклад 1

Якщо вводиться літера у, виводиться Вітаю!, інакше — Щасти тобі!. Далі в обох випадках — Гарного дня!.
answer = input('Сьогодні твій день народження? (y/n)')
if answer == 'y':
     print('Вітаю!')
else:
     print('Щасти тобі!')
print('Гарного дня!')

Зверніть увагу! Команди, вкладені в гілки if і else, пишуть з однаковим відступом. Якщо команда одна, її можна записати після двокрапки.

Завдання 2

Приклади 2–4

2.         Оператор if...else реалізує дію: якщо a>b, то змінні міняються значеннями так,
             щоб виявилося a<b.
             if a>b:
                  c = a
                  a = b
                  b = c
                  print('a i b обмінялися значеннями')
             else: print('обміну значеннями не потрібно')
             print ('a = ', a, ', b = ', b)

3.         Перевіримо, чи можна скласти трикутник з відрізків довжиною a, b, c.
             Згадаємо правило трикутника.
             if(a<b+c) and (b<a+c) and (c<a+b):
                  print('Трикутник з такими сторонами існує')
             еlse: print('Трикутника з такими сторонами не існує')

4.         Складемо програму пошуку найбільшого з трьох чисел а, b, с. Блок-схему
             алгоритму пошуку найбільшого з трьох чисел наведено на рисунку.
             a = int(input("a = ?"))
             b = int(input("b = ?"))
             c = int(input("c = ?"))
             if a>b: m = a
             else: m = b
             if c>m: m = c
             print('m = ', m)

Завдання 3

Отже, умовні оператори if та if...else є важливими інструментами програмування, які стануть вам у пригоді під час створення тестових та ігрових програм.

Питання для самоперевірки 

1. Як виконується умовний оператор у повній формі?
2. Поясніть, як виконано обмін значень у прикладі 2.
3. Яких значень набудуть змінні a і b після виконання таких операторів, якщо
     спочатку a = 3; b = 5?
     а) if a>b: a = 0               б) if a>b: a = a+10              в) if a<b: a = 2*a
          else: b = 0                       else: b = b+10                      else: b = b*a
4. Запишіть оператори розгалуження, які реалізують дії:
     а) якщо ціле число a парне, поділити його на 2, інакше збільшити a на 1;
     б) значення більшого з чисел a і b замінити нулем.
5. Скласти програму: виводиться приклад на додавання двох випадкових чисел
     і перевіряється введена відповідь.

Вправа 28

Скласти програму, яка визначає, чи достатньо користувачеві років, щоб керувати автомобілем.

Задача.
Потрібно ввести вік користувача та зберегти значення в змінній age; якщо age>=18, то вивести повідомлення Ваш вік дозволяє керувати авто, інакше: змінній r присвоїти значення виразу (18–age), вивести повідомлення, через скільки років користувач зможе отримати посвідчення.

1. Відкрийте вікно IDLE і створіть нове вікно програми. Збережіть файл у власній папці з ім’ям Вправа 28.

2. Запишіть оператор введення з клавіатури значення змінної age:
age=int(input("Скільки Вам років?"))

4. Уведіть текст програми.

5. Запустіть програму на виконання, проаналізуйте результат виконання програми у вікні консолі.

6. Виконайте програму для значень змінної age: 11, 10, 20.
Закінчить роботу, закривши вікно IDLE.

Комп’ютерне тестування