1 of 34

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

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

Урок 40

Інформатика 7

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.

2 of 34

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

Логічними є вирази, при обчисленні яких одержується логічне значення:

Результат їх обчислення можна зберігати в змінну, яка буде мати тип bool.

або

True

False

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

3 of 34

Прості і складені вирази

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

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

Значення

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

Результат

==

Дорівнює

8==9

False

>

Більше

8>9

False

<

Менше

8<9

True

>=

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

5>=5

True

<=

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

5<=2

False

!=

Не дорівнює

2!=5

True

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

4 of 34

Прості і складені вирази

Проаналізуємо результати обчислення логічних виразів:

Оскільки

2*2 = 4 — істинна рівність, то значення відповідного логічного виразу дорівнює True

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

5 of 34

Прості і складені вирази

Проаналізуємо результати обчислення логічних виразів:

Оскільки остача від ділення 10 на 3 не дорівнює 0, значення логічного виразу дорівнює False

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

6 of 34

Прості і складені вирази

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

AND

OR

NOT

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

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

7 of 34

Прості і складені вирази

Розглянемо приклади складених умов.

Операція

Назва

Приклади

Значення

or

або

логічна сума

2*2 == 7 or 4 <= 5

3>8 or 12<5 or 9 == 1

True False

and

і

логічний добуток

2*2 == 7 and 4 <= 5

3 <= 8 and 12>5 and 9 != 1

True False

not

не

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

not 2*2 == 4

not 8<3

True False

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

8 of 34

Прості і складені вирази

Перевіримо, чи належить значення NUM проміжку [7; 20]:

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

9 of 34

Прості і складені вирази

Якщо змінній присвоїти логічне значення, вона належатиме до типу bool:

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

10 of 34

Вбудовані функції all і any

Одночасну перевірку декількох умов можна записати коротше за допомогою вбудованих функцій:

Функція:

all(<список логічних виразів>)

повертає True, якщо істинні всі перелічені в списку умови

all

(англ. всі)

any

(англ. хоч одна)

Функція:

any(<список логічних виразів>)

повертає True, якщо хоча б один елемент списку дорівнює True

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

11 of 34

Вбудовані функції all і any

З’ясуємо, чи є значення NUM парним числом із проміжку

від 7 до 20.

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

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

12 of 34

Вбудовані функції all і any

Перевіримо, чи дорівнює 0 хоча б одне зі значень

х, у, z:

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

13 of 34

Алгоритмічна структура розгалуження

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

Пригадаймо синтаксис та семантику команд розгалуження мови Python, призначених для програмування розгалужень.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

14 of 34

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

Виконання команди if (англ. якщо) можна описати так:

«якщо умова істинна,

то виконати дії»

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

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

15 of 34

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

Синтаксис команди:

іf <умова>:

___ <Оператори>

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

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

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

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

16 of 34

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

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

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

17 of 34

Команда розгалуження if...else

Алгоритмічній конструкції повне розгалуження відповідає команда розгалуження if...else (англ. якщо...інакше).

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

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

18 of 34

Команда розгалуження if...else

Синтаксис команди if...else:

if <Умова> :

<Дії 1>

else:

<Дії 2>

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

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

програма виконає блок дій <Дії 1>

виконується блок дій

<Дії 2>, який міститься після службового слова еlse

Команди, вкладені в гілки if і else, записують з однаковим відступом

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

19 of 34

Вкладення розгалужень

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

Якщо після перевірки деякої умови для прийняття рішення потрібно знову перевіряти умову, утворюються

вкладені розгалуження.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

20 of 34

Вкладення розгалужень

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

Проаналізувавши форми слова «рік», помічаємо, що форма слова залежить від останньої цифри числа.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

21 of 34

Вкладення розгалужень

Проте значення від 11 до 14 слід опрацювати окремо.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

22 of 34

Вкладення розгалужень

Цей алгоритм реалізує така програма:

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

23 of 34

Багатоваріантне розгалуження

Вкладені розгалуження можна записати у більш компактному вигляді, скориставшись командою if...elif...else (англ. else if — інакше, якщо).

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

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

24 of 34

Багатоваріантне розгалуження

Синтаксис команди

Приклад

if <умова1>:

<Дії 1>

elif <умова2>:

<Дії 2>

……………………..

else: <3апасний блок дій >

if a>b:

print("a>b")

elif a<b:

print("a<b")

else:

print("a = b")

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

25 of 34

Багатоваріантне розгалуження

Якщо <умова 1> істинна

if <умова1>:

<команда 1>

elif <умова2>:

<команда 2>

elif <умоваЗ>:

<команда 3>

То виконується <команда 1>

І керування передається команді, наступній за if-elif.

Якщо <умова 1> хибна

То гілки elif перебираються послідовно до першої істинної умови.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

26 of 34

Багатоваріантне розгалуження

Після виконання відповідних їй вказівок, решта гілок elif пропускаються

if <умова1>:

<команда 1>

elif <умова2>:

<команда 2>

elif <умоваЗ>:

<команда 3>

і керування передається команді, записаній після if-elif.

Якщо умови у всіх гілках if-elif хибні, жодна з гілок виконана не буде.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

27 of 34

Багатоваріантне розгалуження

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

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

28 of 34

Багатоваріантне розгалуження

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

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

29 of 34

Ознайомтеся з цікавою інформацією

Олександр Летичевський — видатний український учений у галузі кібернетики та інформатики (рис. 31.6). Результати, отримані ним у галузі теорії автоматів і алгоритмів, комп’ютерної алгебри, штучного інтелекту та теорії проектування обчислювальних систем, широко відомі світовій науковій спільноті.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

30 of 34

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

  1. Початкові значення змінних а = -3; b = 5. Визначте, чому дорівнюють а і b після виконання таких команд:

а) if a>b: a = a-b

else: b = b-a

г) if а<0:

if a>b: a = b

else: b = a

else:

if a>b: b = a

else: a = b

б) if a<0:

a = -a

в) if a != b:

a = b

д) if a<5:

b = a+1

else:

if a<10:

b := a*2

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

31 of 34

Розгадайте ребус

«Ребуси українською» © rebus1.com

Розгалуження

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

32 of 34

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

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

с. 185-191

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

33 of 34

Працюємо за комп’ютером

Сторінка

191

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 31

34 of 34

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

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

Урок 40

Інформатика 7

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.