Мова С++ дає можливість реалізувати концепцію структурного аналізу алгоритмів. Структурний аналіз полягає у попередньому опрацюванні складної задачі чи громіздкого алгоритму та поділі його на окремі простіші частини. У С++ це реалізується за допомогою функцій. Окремі функції об’єднують у спільну програму. У відкомпільованому вигляді така програма утворює модуль. Крім того, функції можна багаторазово використовувати та переносити в інші програми.
Розрізняють стандартні функції та функції користувача.
Стандартні функції описані в бібліотеках. Щоб скористатися стандартною функцією, треба підключити відповідну бібліотеку. Для підключення бібліотеки необхідно оголосити директуиву #include
та після написати назву бібліотеки в дужках <>.
Якщо бібліотека підключена, то в тілі програми можна викликати функцію.
Наприклад, щоб скористатися стандартною функцією піднесення до степеню необхідно підключити бібліотеку math.h
та запустити функцію pow ()
у тілі програми:
1 2 3 4 5 6 7 8 9 10 |
#include <iostream> #include <math.h> // підключення стандартної бібліотеки math.h using namespace std; int main() { int a = 5; int b = pow(a, 3); // виклик функції pow () cout << "b = " << b; return 0; } |
Функції користувача існують двох типів:
- Функції, що не повертають значень.
- Функції, що повертають значення.
Функції, що не повертають значення, після завершення своєї роботи ніякої відповіді програмі не дають. Розглянему структуру такої функції:
1 2 3 4 5 |
void назва_функції (список параметрів функції) // заголовок функції { тіло функції; return; } |
void
– зарезервоване слово, тип даних, який не може зберігати дані. void
ніяк більше не використовується і потрібен тільки для того, щоб компілятор міг визначити тип функції. Після слова void
пишеться назва функції. Одразу за назвою в круглих дужках через кому перераховуються параметри функції, зазначаючи їхні типи. Тип необхідно зазначати для кожної змінної окремо. Якщо функції не передається жодних значень, то список параметрів може біти відсутній, але круглі дужки опускати не можна. Після заголовку функції в фігурних дужках пишеться тіло функції. Необов’язковий оператор return
визначає кінець функії. При його відсутності функція завершується на замикаючій фігурній дужці.
Щоб викликати функцію необхідно звернутися до неї в розділі команд основної програми (функції main()) або в іншій функції:
1 |
назва_функції (список параметрів функції); |
Список параметрів функції може містити сталі, змінні, посилання, вказівники, вирази. Списки параметрів повинні бути узгодженими за типами та кількістю елементів.
Наприклад, розробимо програму, яка виводить на екран суму чисел 5 і 3:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <iostream> using namespace std; void Sum(int a, int b) // заголовок функції знаходження суми цілих чисел a i b { cout << "a + b = " << a + b; } int main() { Sum(5, 3); // виклик функції, в якості параметрів сталі числа return 0; } |
Функції, що повертають значення, після завершення своєї роботи повертають результат. Такі функції можуть повертати значення будь-якого типу. Розглянему структуру такої функці:
1 2 3 4 5 |
тип_функції назва_функції(список параметрів функції) // заголовок функції { тіло функції; return значення; // значення, яке повертає функція в основну програму } |
В заголовку функції необхідно визначити тип даних, що поверне функція, а також після команди return вказати значення, яке буде повертатися. Значення може бути констатою, змінною або виразом, але тип цього значення повинен співпадати з типом функції.
Розробимо програму, яка виводить на екран суму чисел 5 і 3 за допомогою функії, що повертає значення:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <iostream> using namespace std; // Функція, яка повертає значення суми двох чисел int Sum(int a, int b) { int S = a + b; return S; } int main() { cout << "a + b = " << Sum(3, 5); // виводимо результат виконання функції return 0; } |