Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота №5(Функції).docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
59.73 Кб
Скачать

8

Інструкція для проведення лабораторного заняття №5

з дисципліни «Алгоритми та методи обчислень»

Тема: Створення та використання функцій користувача.

Мета: набути практичних навиків створення та використання функцій користувача, вивчення особливостей передачі параметрів.

Робоче місце: лабораторія інформатики та обчислювальної техніки.

Тривалість заняття: 80 хв.

Матеріально-технічне оснащення робочого місця: персональний комп’ютер, середовище програмування С++ Builder.

Правила охорони праці:

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

СУВОРО ЗАБОРОНЕНО:

  • вмикати і вимикати апаратуру без вказівки викладача;

  • доторкатись до роз'ємів з'єднувальних кабелів та самих кабелів;

  • доторкатись до екрану та тильної частини монітора;

  • переміщувати увімкнені складові обчислювальної системи (системних блок, монітор тощо),;

  • класти будь-які предмети на системний блок, монітор, клавіатуру;

  • приносити та використовувати носії даних (дискети, компакт-диски) без дозволу викладача.

Теоретичні відомості

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

1) стандартні убудовані функції, які є складовою частиною мови програмування, наприклад: sin(), pow() тощо;

2) функції, які створюються безпосередньо користувачем для власних потреб.

Оголошення функції складається з прототипу (чи заголовка) і має форму:

<тип ф-ії> <ім’я ф-ії> (<формальні параметри із зазначенням типу>);

Наприклад оголошення функції обчислення середньоарифметичного двох цілих чисел може мати вигляд:

float seredne (int a, int b);

де seredne – ім‟я функції;

a і b – формальні вхідні аргументи (параметри), які за виклику набувають значень фактичних параметрів;

float – тип функції, який безпосередньо є типом результату виконання операторів функції.

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

Визначення функції, окрім заголовку, містить тіло функції (команди, які виконує функція) і команду повертання результату return:

<тип функції><імя функції> (<перелік аргументів>)

{

<тіло функції>

return <результат обчислень>

}

Наприклад, визначення функції seredne може бути таким:

float seredne (int a, int b)

{ float sr;

sr=(a+b)/2.0;

return sr;

}

Якщо функції виконують певні обчислення й дії, які не потребують повертання результатів, за їхній тип вказують тип void (тобто порожній, без типу).

У таких функціях оператор return може бути відсутнім чи записуватись без значення, яке повертається.

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

Правила організації функцій

1) Фактичними параметрами можуть бути константи, змінні чи вирази. В останньому разі спочатку обчислюється значення виразу, а потім результат передається у функцію.

2) Імена змінних, які є фактичними параметрами, можуть не збігатися з іменами формальних параметрів.

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

4) Якщо кількість чи типи фактичних параметрів не збігаються з формальними параметрами, це призведе до помилки з відповідним повідомленням.

5) Послідовність змінних, які є фактичними параметрами, має збігатися з послідовністю формальних параметрів.

6) У прототипі функції необов’язково задавати імена формальних параметрів, достатньо їх оголосити, наприклад у такий спосіб: float seredne(int, int);

7) Якщо функція не отримує жодного параметра, слід у заголовку функції ставити порожні дужки (опустити дужки не можна) чи записати у дужках void:

double func();

double func(void);

8) Тип значення, яке повертає функція, може бути яким-завгодно, але не може бути масивом чи функцією. Наприклад, таке оголошення є помилкове:

int [10] func(); // Помилка!

9) С++ дозволяє існування у програмі функцій з однаковим ім’ям, але різними параметрами, так ситуація називається перевантаженням функцій.

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

Компілятор визначає, яку саме функцію слід викликати, за типом фактичних параметрів. Цей процес називається дозволом перевантаження (переклад з англійського слова “resolution”). Тип значення, яке повертає функція, у дозволі не бере участі.

Правила опису перевантажених функцій:

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

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