1 of 24

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

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

Урок 30

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

teach-inf.com.ua

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

Ривкінд Й.Я. та ін.

2 of 24

Пригадайте

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

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

У яких випадках використовується команда багатоальтернативного розгалуження?

Розділ 4

§ 4.6

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

3 of 24

Проєкти з розгалуженнями

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

 

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

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

a, b

Створимо математичну модель для цієї задачі:

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

вхідні дані:

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

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

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

формули:

Розділ 4

§ 4.6

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

4 of 24

Проєкти з розгалуженнями

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

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

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

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

а - 3 * b

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

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

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

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

Розділ 4

§ 4.6

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

5 of 24

Проєкти з розгалуженнями

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

Розділ 4

§ 4.6

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

6 of 24

Проєкти з розгалуженнями

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

Розділ 4

§ 4.6

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

7 of 24

Проєкти з розгалуженнями

Текст проєкту буде такий:

from tkinter import*

from tkinter.messagebox import*

def click():

a = float(entry1.get())

b = float(entry2.get())

x = a - 3 * b

if x == 0:

showinfo('Результат', 'Вираз значення не має: ділення на нуль')

else:

y = a + 2 * b

z = y / x

showinfo('Результат', str(z))

Розділ 4

§ 4.6

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

8 of 24

Проєкти з розгалуженнями

Продовження…

root = Tk()

root.geometry('300x250')

label1 = Label(text = 'Значення a')

label1.pack(pady = 20)

entry1 = Entry()

entry1.pack()

entry1.focus_set()

label2 = Label(text = 'Значення b')

label2.pack(pady = 20)

entry2 = Entry()

entry2.pack()

button = Button(text = 'Обчислити', command = click)

button.pack(pady = 30)

Розділ 4

§ 4.6

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

9 of 24

Проєкти з розгалуженнями

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

a = 6

b = 2

Результати його виконання при цих значеннях вхідних даних:

Розділ 4

§ 4.6

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

10 of 24

Проєкти з розгалуженнями

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

a = 2

b = 1

Результати його виконання при цих значеннях вхідних даних:

Розділ 4

§ 4.6

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

11 of 24

Проєкти з розгалуженнями

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

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

if а - 3 * b == 0:

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

Розділ 4

§ 4.6

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

12 of 24

Проєкти з розгалуженнями

Тоді обробник події був би таким:

def click():

a = float(entry1.get())

b = float(entry2.get())

if a - 3 * b == 0:

showinfo('Результат', 'Вираз значення не має: ділення на нуль')

else:

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

showinfo('Результат', str(z))

Розділ 4

§ 4.6

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

13 of 24

Проєкти з розгалуженнями

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

 

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

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

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

вхідні дані:

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

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

 

формули:

Розділ 4

§ 4.6

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

14 of 24

Проєкти з розгалуженнями

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

Розділ 4

§ 4.6

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

15 of 24

Проєкти з розгалуженнями

Текст проєкту буде такий:

from tkinter import*

def click():

x = float(entry1.get())

if x < -3 or x > 5: y = 2 * x - 12

else: y = 7 - 8 * x

entry2.delete(0, END)

entry2.insert(0, str(y))

root = Tk()

root.geometry('300x250')

Розділ 4

§ 4.6

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

16 of 24

Проєкти з розгалуженнями

Продовження…

label1 = Label(text = 'Значення х')

label1.pack(pady = 10)

entry1 = Entry()

entry1.pack()

entry1.focus_set()

label2 = Label(text = 'Значення у')

label2.pack(pady = 10)

entry2 = Entry()

entry2.pack()

button = Button(text = 'Обчислити значення функції',

command = click)

button.pack(pady = 20)

Розділ 4

§ 4.6

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

17 of 24

Проєкти з розгалуженнями

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

х = –4

х = 0

х = 7

Розділ 4

§ 4.6

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

18 of 24

Проєкти з розгалуженнями

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

Розділ 4

§ 4.6

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

19 of 24

Проєкти з розгалуженнями

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

 

Містить команду розгалуження, оскільки його виконання залежить від того:

дорівнює знаменник нулю

не дорівнює знаменник нулю

чи

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

знаменник дорівнює нулю, тобто 3 і –3

знаменник не дорівнює нулю, наприклад 5 і 2

Розділ 4

§ 4.6

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

20 of 24

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

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

Розділ 4

§ 4.6

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

21 of 24

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

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

Розділ 4

§ 4.6

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

22 of 24

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

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

§ 4.6, с. 136-140

Розділ 4

§ 4.6

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

23 of 24

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

Сторінка

140

cutt.ly/ue2cFJWD

Розділ 4

§ 4.6

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

24 of 24

Успіхів�у навчанні!

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

Урок 30

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

teach-inf.com.ua

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

Ривкінд Й.Я. та ін.