Алгоритми і програми з розгалуженнями
Нова українська школа
Урок 33
Інформатика 6
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.
Повторюємо
У 5 класі ви познайомились із прийомами роботи в середовищі програмування мовою Python і правилами запису алгоритмів цією мовою.
Згадаємо: мова програмування — це штучна мова, призначена для запису алгоритмів у формі, придатній для їх виконання на комп’ютері.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Повторюємо
Ви навчилися вести діалог в інтерактивному режимі в середовищі IDLE і створювати та зберігати програмний код для використання у вікні програми.
Робоче поле
Головне меню
Позначають позицію, у якій можна вводити команди мовою програмування Python
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Повторюємо
Ви знайомі з поняттям величини в програмуванні та маєте уявлення про алгоритми роботи з величинами числового та рядкового типів. Ви знаєте, як мовою Python реалізувати базові алгоритмічні структури.
Слідування
Повторення
Розгалуження
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Запитання
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Складання алгоритмів і програм із розгалуженнями
Структура розгалуження дозволяє керувати ходом виконання програми.
Згадаємо правила виконання команд.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if
Команда if відповідає конструкції «неповне розгалуження»
Вона призначена для виконання деякої послідовності дій у випадку, якщо зазначена умова є істинною.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if
Синтаксис команди:
іf <умова>:
___ <Оператор>
де ___ — обов’язковий відступ від лівого краю.
Після запису умови слід поставити двокрапку : , яка показує, що далі має бути розташований блок дій.
Блок дій записується з обов’язковим однаковим відступом від лівого краю.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if
Пригадаємо, що умова — це логічний вираз.
Якщо умова набуває значення True (Істина)
Якщо ж умова приймає значення False (Хибність)
програма виконає блок дій, зазначених у частині <Оператор>
то блок <Оператор> пропускається, і керування передається оператору, що йде після команди іf
іf <Умова>:
___ <Оператор>
<Оператор>
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if
Проста умова утворюється логічними операціями порівняння:
Знак операції | Значення | Логічний вираз | Результат |
== | Дорівнює | 8==9 | False |
> | Більше | 8>9 | False |
< | Менше | 8<9 | True |
>= | Більше або дорівнює | 5>=5 | True |
<= | Менше або дорівнює | 5<=2 | False |
!= | Не дорівнює | 2!=5 | True |
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if
Перевіримо, чи є значення змінної х додатним,
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if
Коли ж потрібно перевірити виконання декількох умов одночасно, використовують складену умову.
Складена умова — це кілька простих умов, з’єднаних логічними операціями:
AND
OR
NOT
(логічне і, інакше — логічний добуток)
(логічне або, інакше —
логічна сума)
(логічне заперечення – не)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if
Нехай А і В — два логічні значення. Складена умова A and В істинна, тільки якщо й А, й В істинні. Складена умова A or В хибна, якщо й А, й В хибні.
Розглянемо приклади складених умов.
рівнозначне виразу а > 3;
not а <= 3
істинне тоді й тільки тоді, коли значення age розташовується в проміжку від 10 до 18 включно;
age >= 10
and
age <= 18
істинне для всіх значень age, які не належать проміжку від 10 до 18.
age < 10 or
age > 18
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if
Визначимо, чи належить точка з координатою х відрізку [10; 20]
Точка належить відрізку, якщо одночасно виконуються умови х >= 10 і х <= 20
if х >= 10 and х <= 20:
print('Точка належить відрізку від 10 до 20')
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if
Визначити за назвою дня тижня, чи є цей день вихідним:
day = input()
if day == 'Субота' or day == 'Неділя':
print('Вихідний')
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if ... else
Команда if ... else відповідає конструкції «повне розгалуження».
Призначена для виконання однієї дії у випадку, якщо деяка умова істинна, та іншої дії, якщо ця умова хибна.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if ... else
Синтаксис умовної команди в повній формі::
if <Умова> :
<Оператор 1>
else:
<Оператор 2>
Якщо умова істинна (True)
Якщо умова хибна (False)
програма виконає блок дій <Оператор 1>
виконується блок дій <Оператор 2>, який міститься після службового слова еlse
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if ... else
З’ясуємо, чи є значення змінної х додатним числом.
x = int(input())
if x >= 0: print("Число додатне")
else: print("Число від'ємне")
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if ... else
З курсу математики відомо, що модулем додатного числа та числа 0 є саме це число, а модулем від’ємного числа — протилежне йому число:
Запишемо код для знаходження модуля числа х:
x = int(input())
if x >= 0: y = x
else: y = -x
print(y)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if ... else
Запишемо команду розгалуження для визначення, чи пройде м’яч діаметром d у кватирку заввишки х і завширшки у
if d<x and d<y:
print('TaK, пройде')
else: print('Hi, не пройде')
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if ... else
У програмі можуть послідовно виконуватись команди повного і неповного розгалуження.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if ... else
Складемо програму пошуку найбільшого з трьох чисел а, b, с. Фрагмент блок-схеми алгоритму наведено на рисунку.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if ... else
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)
Програмний код
Результат
a = ? 3
b = ? 12
c = ? 8
m = 12
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if ... else
Складемо програму, яка за введеним віком дитини визначає, який мультфільм запропонувати для перегляду,
vik = int(input('Скільки дитині років?'))
if vik<=3: print('Жирафа Афа')
if vik>3 and vik<=6: print('Котигорошко')
if vik>6: print('Як козаки сіль купували?')
У цьому коді використано три команди неповного розгалуження. Кожна наступна умова перевіряється незалежно від того, чи істинна умова в попередній команді.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Команда if ... else
У випадку ж, коли виконується умова, наприклад, у першій команді if, перевірки умов в інших командах виконуються марно.
Коли потрібно перевірити послідовно дві або більше умов, краще використовувати вкладені розгалуження або множинне розгалуження. Такі конструкції ми розглянемо далі.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Питання для самоперевірки
а) а = З, b = 5; б) а = 8, b = 2?
1)if а != b : 2) if а%3 == 0: 3) if а<b:
а = b а = а//3 а = 2*а
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Розгадайте ребус
«Ребуси українською» © rebus1.com
Розгалуження
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Домашнє завдання
Проаналізувати
с. 184-190
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Працюємо за комп’ютером
Сторінка
189-190
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 28
Дякую за увагу!
Нова українська школа
Урок 33
Інформатика 6
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.