1 of 24

Розв'язування задач з використанням розгалуження

За навчальною програмою 2017 року

Урок 55

8

teach-inf.com.ua

2 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

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

 

Задача 1. Обчислити значення виразу

довільні числа

a, b

Побудуємо математичну модель для цієї задачі:

два довільних числа а та b

вхідні дані:

значення виразу z

кінцеві результати:

z = (а + 2 * b) / (а – 3 * b)

формули:

8

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

3 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

Цей вираз містить дію ділення на вираз:

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

Дільник а - 3 * b може дорівнювати нулю

Дільник а - 3 * b може й не дорівнювати нулю

а - 3 * b

наприклад, при а = 3 і b = 1

наприклад, при а = 5 і b = 2

значення дільника а - 3 * b дорівнює 0

значення дільника а - 3 * b не дорівнює 0

8

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

4 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

Блок-схему алгоритму розв'язування цієї задачі

8

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

5 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

Алгоритм, мовою програмування можна записати так:

а = float(input('Уведіть а: '))

b = float(input('Уведіть b: '))

х = а - 3 * b

if х == 0:

print('Вираз значення не має: ділення на 0')

else:

у = а + 2 * b

z = у / х

print(z)

8

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

6 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

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

Звертаємо вашу увагу, що обчислення значення дільника а - 3 * b можна було б не здійснювати в окремій команді і не запам'ятовувати як значення змінної х. а здійснити безпосередньо в команді розгалуження.

if а - 3 * b == 0:

(а + 2 * b) / (а - 3 * b)

8

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

7 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

Тоді цей фрагмент проєкту матиме такий вигляд:

а = float(input('Уведіть а: '))

b = float(input('Уведіть b: '))

if а - 3 * b == 0:

print('Вираз значення не має: ділення на 0')

else:

z = (а + 2 * b) / (а - 3 * b)

print(z)

8

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

8 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

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

 

Задача 2. Обчислити значення функції

Побудуємо математичну модель для цієї задачі:

довільне число x

вхідні дані:

значення виразу y

кінцеві результати:

 

формули:

8

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

9 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

Фрагмент проєкту для розв'язування цієї задачі має такий вигляд:

x = float(input('Уведіть x: '))

if x > -3 and x <5:

y = 2 * x - 12

else:

y = 7 - 8 * x

print(y)

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

х = -4

х = 0

х = 7

8

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

10 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

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

Задача 3. Дано два числа. Визначити, чи рівні вони. Якщо ні, то яке з них більше.

Число №1

Число №2

8

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

11 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

Побудуємо математичну модель для цього проєкту:

два довільних числа х та у

вхідні дані:

висновок: числа рівні, або перше число більше, або друге число більше

кінцеві результати:

 

формули:

8

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

12 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

Блок-схему алгоритму розв’язування цієї задачі

8

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

13 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

Ось як виглядає фрагмент відповідного проєкту:

x = float(input('Уведіть x: '))

y = float(input('Уведіть y: '))

if x == y: print('Числа рівні')

elif x > y: print('Перше число більше')

else:

print('Друге число більше')

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

х = 3, у = 3

х = 5, у = 2

х = 4, у = 10

8

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

14 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

Задача 4. Дано чотири нерівних між собою числа. Визначити найбільше з них.

Побудуємо математичну модель для цієї задачі:

чотири довільних числа

х1, х2, хЗ, х4

вхідні дані:

найбільше із цих чисел

кінцеві результати:

8

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

15 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

Для розв'язування цієї задачі визначимо спочатку більше з перших двох чисел і присвоїмо це значення деякій змінній, наприклад змінній max.

А далі порівняємо кожне наступне число (третє і четверте) зі значенням цієї змінної. І якщо якесь число виявиться більше, ніж значення змінної max, замінимо значення цієї змінної на це число.

8

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

16 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

Блок-схему алгоритму розв’язування цієї задачі

8

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

17 of 24

Розв'язування задач�з використанням розгалуження

Розділ 6 § 6.8

Відповідний проєкт має такий вигляд:

x1 = float(input('Уведіть x1: '))

x2 = float(input('Уведіть x2: '))

x3 = float(input('Уведіть x3: '))

x4 = float(input('Уведіть x4: '))

if x1 > x2: max = x1

else: max = x2

if x3 > max: max = x3

if x4 > max: max = x4

print(max)

Створений проєкт працюватиме правильно і в тому разі, коли серед цих чотирьох чисел будуть рівні між собою числа. Перевірте це для чисел: 4, 4, 8, 2.

8

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

18 of 24

Тестування проєкту з розгалуженням

Розділ 6 § 6.8

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

Містить команду розгалуження, бо його виконання залежить від того, дорівнює знаменник нулю чи не дорівнює. Тому його потрібно тестувати для значень х, при яких знаменник дорівнює нулю, тобто 3 і —3, і при яких знаменник не дорівнює нулю, наприклад 5 і 2.

 

Так, наприклад, проєкт для обчислення значення виразу:

8

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

19 of 24

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

Послідовність

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

Розділ 6 § 6.8

8

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

20 of 24

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

Кон'юнкція

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

Розділ 6 § 6.8

8

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

21 of 24

Дайте відповіді на запитання

Розділ 6 § 6.8

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

8

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

22 of 24

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

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

§ 6.8, ст. 217-224

Розділ 6 § 6.8

8

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

23 of 24

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

Розділ 6 § 6.8

Сторінка

221

8

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

24 of 24

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

За навчальною програмою 2017 року

Урок 55

8

teach-inf.com.ua