1 of 23

Обчислення з використанням функцій користувача

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

Урок 51

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

teach-inf.com.ua

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

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

2 of 23

Обчислення з використанням�функцій користувача

Ви вже вмієте викликати функції, передаючи значення для їх формальних параметрів.

Щоб викликати функцію, що не повертає значення, слід ввести її ім’я й додати дужки зі списком значень, які треба присвоїти формальним параметрам.

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

Розділ 5

§ 40

3 of 23

Повернення результату виконання функції

Припустимо, що в тілі функції виконуються деякі обчислення. Якщо результат обчислень у подальшому треба використовувати в основній програмі, у тілі функції потрібно записати команду: return <вираз>.

Команда return припиняє виконання функції й повертає значення виразу у місце виклику функції.

def avr(c1,c2):

return (c1+c2)/2

sar1 = avr(x1,x2)

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

Розділ 5

§ 40

4 of 23

Повернення результату виконання функції

Ім’я і параметри функції записують у правій частині команди присвоювання. Можна також викликати функцію зі списку виведення команди print().

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

Розділ 5

§ 40

5 of 23

Повернення результату виконання функції

Складемо програму для розв’язування задачі.

Задача. У першому магазині мобільні телефони видів

А і Б коштують а1, b1 грн, а в другому а2, b2 грн. Визначимо, у якому магазині середня ціна телефонів нижча.

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

Розділ 5

§ 40

6 of 23

Повернення результату виконання функції

Дізнаймося, як проаналізувати програмний код.

У тілі функції avr() уводяться значення локальних змінних а, b

Обчислюється середнє арифметичне значень а, b

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

Розділ 5

§ 40

7 of 23

Повернення результату виконання функції

Команда return повертає значення змінної sar в основну програму

Змінним

sar1 і sar2 присвоюється результат, який повертає функція без параметрів avr()

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

Розділ 5

§ 40

8 of 23

Повернення результату виконання функції

Команда розгалуження порівнює значення змінних sar1 і sar2

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

Розділ 5

§ 40

9 of 23

Області видимості змінних

Не можна використати змінні, створені в тілі функції, після того, як ця функція завершить роботу. Ці змінні існують тільки під час її виконання. У таких випадках говорять, що обмежена область видимості змінних.

Змінні, створені всередині тіла функції, є локальними – їх «не видно» з інших функцій і з основної програми.

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

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

Розділ 5

§ 40

10 of 23

Області видимості змінних

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

Якщо потрібно змінити глобальну змінну всередині функції, то слід використовувати ключове слово global.

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

Розділ 5

§ 40

11 of 23

Області видимості змінних

У програмах, де потрібно підраховувати кількість деяких подій (кількість правильних відповідей у тестовій програмі, кількість влучань в ігровій програмі та ін.) зазвичай глобальна змінна-лічильник створюється в основній програмі. Проте зміна значення лічильника має відбуватися в тілі функції, яка аналізує подію, що відбулася (чи правильна відповідь, чи зроблено вдалий хід тощо). Тому потрібно командою:

global <назва глобальної змінної>

дозволити змінювати її значення в тілі функції.

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

Розділ 5

§ 40

12 of 23

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

Карен Спарк Джон — британська дослідниця, яка розробила технології пошуку, що дозволили працювати з комп'ютерами, використовуючи слова замість рівнянь і кодів.

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

Розділ 5

§ 40

13 of 23

Області видимості змінних

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

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

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

Розділ 5

§ 40

14 of 23

Області видимості змінних

У тілі функції значення лічильника збільшується, якщо уведене число дорівнює добутку випадкових чисел а і b.

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

Розділ 5

§ 40

15 of 23

Алгоритм створення функції в Python

Алгоритм знаходження найбільшого спільного дільника (НСД) двох чисел m і n НСД(m, n) описано в ІІІ ст. до н. е. в трактаті «Початки» грецького математика Евкліда: поки a ≠ b, від більшого числа віднімати менше.

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

Розділ 5

§ 40

16 of 23

Алгоритм створення функції в Python

Розгляньмо алгоритм створення функції для обчислення деякого значення на прикладі пошуку НСД двох чисел.

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

Розділ 5

§ 40

17 of 23

Алгоритм створення функції в Python

1. Визначити, що має робити функція, і дібрати належну назву

2. Написати тіло функції

3. Викликати функцію із зазначеними аргументами для перевірки роботи

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

Розділ 5

§ 40

18 of 23

Алгоритм створення функції в Python

Виконаємо програму для

n = 90; n = 54.

Варто супроводжувати функції коментарями: це полегшить подальшу роботу з програмою.

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

Розділ 5

§ 40

19 of 23

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

  1. У наведеному програмному коді назвіть заголовок функції, тіло функції, оператор виклику функції.
  1. Що надрукує програма, якщо

x = 123;

x = 54 321?

def f(x):

k = 0

while x>0:

x = x // 10

k += 1

return k

x = int(input('x = ?'))

print(f(x))

def sum(a, b):

return a+b

s = sum(3, 5)

  1. Створіть функцію, яка друкує добуток двох чисел.

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

Розділ 5

§ 40

20 of 23

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

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

Користувач

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

Розділ 5

§ 40

21 of 23

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

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

с. 240-245

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

Розділ 5

§ 40

22 of 23

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

Сторінка

244-245

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

Розділ 5

§ 40

23 of 23

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

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

Урок 51

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

teach-inf.com.ua

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

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