§ 28. Складання алгоритмів і програм з розгалуженнями

У 5 класі ви познайомилися із прийомами роботи в середовищі програмування мовою Python і правилами запису алгоритмів цією мовою. Згадаймо: мова програмування — це штучна мова, призначена для запису алгоритмів у формі, придатній для їх виконання на комп’ютері.
Ви навчилися вести діалог в інтерактивному режимі в середовищі IDLE і створювати та зберігати програмний код для використання у вікні програми. Ви знайомі з поняттям величини в програмуванні та маєте уявлення про алгоритми роботи з величинами числового та рядкового типів. Ви знаєте, як мовою Python реалізувати базові алгоритмічні структури.


Ви вже знаєте, що однією з базових алгоритмічних структур є . Структура розгалуження дає змогу керувати ходом виконання програми. Для організації розгалуження у програмах мовою Python призначені команди іf і іf-else. Згадаймо правила виконання команд.

28.1. Команда іf


Команда іf відповідає структурі неповне розгалуження. Вона призначена для виконання деякої дії у випадку, якщо зазначена умова є істинною.

Синтаксис команди:
іf <умова>:
___<команди>
де ___ — обов’язковий відступ від лівого краю.

Пригадаймо, що умова — це логічний вираз, значенням якого є True або False. Після запису умови слід поставити двокрапку, в наступних рядках з обов’язковим однаковим відступом від лівого краю записати команди, які буде виконано, якщо умова істинна (True).

Проста умова утворюється операціями порівняння: == (дорівнює), != (не дорівнює), < (менше), > (більше), >= (більше або дорівнює), <= (менше або дорівнює).

Приклад 1

Перевіримо, чи є значення змінної х додатним.
if x >= 0:
     print('Число додатне')

Коли ж потрібно перевірити виконання декількох умов одночасно, використовують складену умову, що являє собою кілька простих умов, з’єднаних логічними операціями.

Нехай A і B — два логічні значення. Складена умова А and B істинна, тільки якщо й А, й В істинні. Складена умова А or B хибна, якщо й А, й В хибні.

Приклад 2

Визначимо, чи належить точка з координатою х відрізку [10; 20]. Точка належить відрізку, якщо одночасно виконуються умови x >= 10 і x <= 20:

if x >= 10 and x <= 20:
     print('Точка належить відрізку від 10 до 20')

Завдання 1

Приклад 3

Визначимо за назвою дня тижня, чи є цей день вихідним:
day = input()
if day == 'Субота' or day == 'Неділя':
     print('Вихідний')

Завдання 2

28.2. Команда іf…else


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

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

Якщо результатом перевірки умови є значення True, то виконуються команди 1, якщо значення False — то команди 2, записані після службового слова еlse.

Приклад 4

Із курсу математики відомо, що модулем додатного числа та числа 0 є саме це число, а модулем від’ємного числа — протилежне йому число:

Запишемо код для знаходження модуля числа х:
if x >= 0: y = x
else: y = –x

Приклад 5

Запишемо команду розгалуження для визначення, чи пройде м’яч діаметром d у кватирку заввишки x і завширшки y.
if d<x and d<y: print('Так, пройде')
else: print('Ні, не пройде')

Завдання 3

Приклад 6

Складемо програму, яка за введеним віком дитини визначає, який мультфільм запропонувати для перегляду.
vik = int(input('Скільки дитині років?'))
if vik <= 3: print('Жирафа Афа')
if vik>3 and vik <= 6: print('Котигорошко')
if vik>6: print('Як козаки сіль купували')

У коді використано три команди неповного розгалуження. Якщо істинна умова, наприклад, у першій команді if, перевірки умов у інших командах марні. Щоб перевірити послідовно дві або більше умов, краще використовувати вкладені розгалуження або множинне (про це — далі).
У програмі можуть послідовно виконуватися команди повного й неповного розгалуження.

Приклад 7

Складемо програму пошуку найбільшого з трьох чисел а, 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)

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

Задача. Ракету запускають із космодрому, розташованого на екваторі Землі, у напрямку руху Землі по орбіті навколо Сонця. Швидкість руху ракети [latex]\upsilon[/latex] км/с. Скласти програму перевірки результату запуску ракети залежно від швидкості її руху: 
• якщо [latex]\upsilon<7,8[/latex], то впаде на Землю; 
• якщо [latex]7,8\le\upsilon<11,2[/latex], то стане супутником Землі; 
• якщо [latex]11,2\le\upsilon<16,4[/latex], то стане супутником Сонця; 
• якщо [latex]\upsilon\ge16,4[/latex] км/c, то піде в міжзоряний простір.

1. Завантажте програму Python → IDLE. Створіть нове вікно програми.
Збережіть файл із назвою Vprava28 у власну папку.

if v<7.8: print('Bпаде на Землю')
if v >= 7.8 and v<11.2: print('Cтане супутником Землі')

4. Перевірте роботу наведеного фрагмента програми.

6. Виконайте програму для наведених значень швидкості руху.
Проаналізуйте результат виконання програми у вікні консолі.

Закінчить роботу, закривши вікно IDLE.

Оцініть свої знання