1 of 35

Нова українська школа

Алгоритми і програми з розгалуженнями.

Оператор if

2 of 35

3 of 35

4 of 35

5 of 35

Повторюємо

Розгалуження - це фрагмент алгоритму, що містить команду перевірки умови і послідовності команд, які будуть виконуватися або невиконуватися залежно від результату перевірки умови.

6 of 35

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

Програма має вміти вибирати різні дії в залежності від уведених даних.

Ви ознайомились із алгоритмічною структурою Розгалуження і розглянули приклади алгоритмів з розгалуженнями. Для перевірки істинності умов і організації розгалуження у програмах мовою Python призначені умовні оператори.

іf

іf-else

та

Оператори — це команди програми.

7 of 35

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

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

Цей умовний оператор відповідає алгоритмічній конструкції

неповне розгалуження.

8 of 35

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

Синтаксис умовного оператора в неповній формі:

іf <Умова>:

___ <Оператор>

де ___ — обов’язковий відступ від лівого краю.

Після запису умови слід поставити двокрапку :, яка показує, що далі має бути розташований блок дій.

Блок дій записується з обов’язковим однаковим відступом від лівого краю.

9 of 35

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

Оператор іf перевіряє істинність зазначеної умови.

Якщо умова набуває значення True (Істина)

Якщо ж умова приймає значення False (Хибність)

програма виконає блок дій, зазначених у частині <Оператор>

то блок <Оператор> пропускається, і керування передається оператору, що йде після оператора іf

іf <Умова>:

___ <Оператор>

<Оператор>

10 of 35

Команда if

Проста умова утворюється логічними операціями порівняння:

Знак операції

Значення

Логічний вираз

Результат

==

Дорівнює

8==9

False

>

Більше

8>9

False

<

Менше

8<9

True

>=

Більше або дорівнює

5>=5

True

<=

Менше або дорівнює

5<=2

False

!=

Не дорівнює

2!=5

True

11 of 35

Команда if

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

Складена умова — це кілька простих умов, з’єднаних логічними операціями:

AND

OR

NOT

(логічне і, інакше — логічний добуток)

(логічне або, інакше —

логічна сума)

(логічне заперечення – не)

12 of 35

Команда if

Визначимо, чи належить точка з координатою х відрізку [10; 20]

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

if х >= 10 and х <= 20:

print('Точка належить відрізку від 10 до 20')

13 of 35

Команда if

Визначити за назвою дня тижня, чи є цей день вихідним:

day = input()

if day == 'Субота' or day == 'Неділя':

print('Вихідний')

14 of 35

Приклади використання неповного розгалуження у програмах

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

Приклад 1. Після виконання цієї програми у вікні консолі отримаємо результат Правильно.

books = 10

if books == 10:

print('Правильно!')

Програмний код

Результат

Правильно!

15 of 35

Приклади використання неповного розгалуження у програмах

Приклад 2. Вітання Вітаю! виводиться, якщо користувач уводить літеру «у».

answer = input('Сьогодні твій

день народження? (y/n)')

if answer == 'y':

print('Вітаю!')

print('Гарного дня!')

16 of 35

Приклади використання неповного розгалуження у програмах

Приклад виконання команди:

Сьогодні твій день народження? (y/n) y

Вітаю!

Гарного дня!

Сьогодні твій день народження? (y/n) n

Гарного дня!

Уведено 'y', умова answer == 'y' істина

Виконується оператор print('Вітаю!')

Уведено 'n', умова answer == 'y' хиба

Виконується наступний за if оператор

17 of 35

Команда if

Перевіримо, чи є значення змінної х додатним,

18 of 35

Приклади використання неповного розгалуження у програмах

Приклад 3. Нехай потрібно збільшити значення змінної a на одиницю, якщо її поточне значення менше 5. Оператор розгалуження має вигляд:

if a<5:

a = a+1

19 of 35

Приклади використання неповного розгалуження у програмах

Оператор a = a+1 виконується тільки в тому випадку, коли істинна умова a < 5:

Початкове

значення a

Значення

умови

Оператор

a = a+1

Значення a після

виконання оператора if

a = 1

True

Виконується

2

a = 5

False

Пропускається

5

a = 10

False

Пропускається

10

20 of 35

Приклади використання неповного розгалуження у програмах

Приклад 4. Визначити, чи є число n кратним

2, 3 або 5.

n = int(input("n =? "))

if n%2 == 0:

print(n, "парне число")

if n%3 == 0:

print(n, "кратне 3")

if n%5 == 0:

print(n, "кратне 5")

Програмний код

Результат

n =? 27

27 кратне 3

21 of 35

Приклади використання неповного розгалуження у програмах

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

Перевірка наступної умови розгалуження не залежить від результату попередньої.

розгалуження, і, якщо умова істинна, виконує блок <оператор> і після цього переходить до перевірки умови наступного розгалуження та подальших операцій.

іf <Умова>:

___ <Оператор>

<Оператор>

___ <Оператор>

<Оператор>

22 of 35

Команда if ... else

Команда if ... else відповідає конструкції «повне розгалуження».

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

23 of 35

Команда if ... else

Синтаксис умовної команди в повній формі::

if <Умова> :

<Оператор 1>

else:

<Оператор 2>

Якщо умова істинна (True)

Якщо умова хибна (False)

програма виконає блок дій <Оператор 1>

виконується блок дій <Оператор 2>, який міститься після службового слова еlse

24 of 35

Команда if ... else

З’ясуємо, чи є значення змінної х додатним числом.

x = int(input())

if x >= 0: print("Число додатне")

else: print("Число від'ємне")

25 of 35

Команда if ... else

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

 

Запишемо код для знаходження модуля числа х:

x = int(input())

if x >= 0: y = x

else: y = -x

print(y)

26 of 35

Команда if ... else

Запишемо команду розгалуження для визначення, чи пройде м’яч діаметром d у кватирку заввишки х і завширшки у

if d<x and d<y:

print('TaK, пройде')

else: print('Hi, не пройде')

27 of 35

Команда if ... else

У програмі можуть послідовно виконуватись команди повного і неповного розгалуження.

28 of 35

Команда if ... else

Складемо програму пошуку найбільшого з трьох чисел а, b, с. Фрагмент блок-схеми алгоритму наведено на рисунку.

29 of 35

Команда 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

30 of 35

Команда if ... else

Складемо програму, яка за введеним віком дитини визначає, який мультфільм запропонувати для перегляду,

vik = int(input('Скільки дитині років?'))

if vik<=3: print('Жирафа Афа')

if vik>3 and vik<=6: print('Котигорошко')

if vik>6: print('Як козаки сіль купували?')

У цьому коді використано три команди неповного розгалуження. Кожна наступна умова перевіряється незалежно від того, чи істинна умова в попередній команді.

31 of 35

Команда if ... else

У випадку ж, коли виконується умова, наприклад, у першій команді if, перевірки умов в інших командах виконуються марно.

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

32 of 35

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

  1. Як записується й виконується умовний оператор у неповній формі?
  1. Запишіть оператори розгалуження, які реалізують такі дії:

а) якщо а більше b, замінити а нулем;

б) якщо ціле число a парне, поділити його на 2;

в) якщо числа а і b не рівні, змінній а надати значення b.

  1. Скласти програму, яка запитує значення числа n, 1 < n < 10000, і повідомляє кількість цифр у числі n.

33 of 35

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

  1. Як записується і виконується команда розгалуження у повній і неповній формі?
  1. Яких значень набуде змінна а після виконання команд розгалуження для початкових значень:

а) а = З, b = 5; б) а = 8, b = 2?

1)if а != b : 2) if а%3 == 0: 3) if а<b:

а = b а = а//3 а = 2*а

  1. Запишіть команди, що реалізують такі дії. Вводять число. Якщо воно менше 40, то виводиться повідомлення ВЛУЧИВ, якщо більше 40 — повідомлення ПЕРЕЛІТ.

34 of 35

Домашнє завдання

Проаналізувати

§2.3 (ст. 78-87)

35 of 35

Дякую за увагу!

Нова українська школа

Джерела:

https://youtu.be/CbO7YzbgBQs?list=PLFyjfgeBHG78hxoxv67xuPwVL8L9cLkxB

https://kuard.net/inf/5/