- •Функції
- •Int swap(int, int) ;
- •Void func() ;
- •Int main()
- •Int main()
- •Int main()
- •Void func1(void); void func2(void); main() { func1(); func2(); return 0; } void func1(void) { /* тіло */ } void func2(void) { /* тіло */ }
- •Void fn(int I) { ... Fn(I); ... }
- •Void f(int I, int* j, int& k);
- •Int main()
- •Void f(int і, int* j, int& k)
- •Int anyfunc(void) { char item; ........ }
Функції
Розробка програмного забезпечення на практиці є досить непростим процесом. Програмісту потрібно врахувати всі тонкощі і нюанси як всього програмного комплексу в цілому, так і окремих його частин. Системний підхід до програмування ґрунтується на тому, що поставлена перед розробником завдання попередньо розбивається на пару-трійку менших питань, які, в свою чергу, діляться ще на дещо менш складні завдання, і так до тих пір, поки самі дрібні завдання не будуть вирішені за допомогою стандартних процедур. Таким чином здійснюється так звана функціональна декомпозиція.
Ключовим елементом даної моделі для рішення конкретної задачі в С++ виступає функція. Функцію можна представити як підпрограму або якусь процедуру, що несе закінчене смислове навантаження.
Функція – поіменована послідовність описів і операторів, яка виконує деяку закінчену послідовність дій.
Функція може приймати параметри і повертати значення.
Оголошення, визначення та виклик функцій
Кожна функція, яку передбачається використовувати в програмі, повинна бути в ній оголошена. Зазвичай оголошення функцій розміщують в заголовних файлах, які потім підключаються до вихідного тексту програми за допомогою директиви # - включити.
Оголошення функції описує її прототип (іноді кажуть "сигнатура").
Прототип функції оголошується наступним чином:
ТипПовернення Ім’яФункції (СписокОголошенихПараметрів);
Тут ТипПовернення - тип даних, що повертається функцією. Якщо повернутий тип даних не зазначений, то за замовчуванням компілятор вважає, що повертається функцією тип є іnt.
СписокОголошенихПараметрів задає тип і ім'я кожного з параметрів функції, розділених комами (ім'я параметра можна опускати). Список параметрів функції може бути порожнім. Наведемо приклади прототипів функцій:
double мах (double parl, double par2);
Int swap(int, int) ;
Void func() ;
Прототип функції може бути пропущений, якщо визначення функції слідує до першого її виклику з будь-якої іншої функції. Останній варіант вважається поганим стилем програмування, так як бувають випадки перехресних викликів, тобто коли дві або кілька функцій викликають один одного, в результаті чого неможливо викликати одну функцію без попереднього визначення іншої.
Визначення функції складається з її заголовка і власне тіла, вкладеного у фігурні дужки і такого, що має смислове навантаження. Якщо функція повертає значення, відмінне від типу порожнечу, в тілі функції обов'язково повинен бути присутнім оператор повернення з параметром того ж типу, що і повернуте значення. У разі, якщо повернене значення не буде використовуватися надалі в програмі (недійсними), оператор повернення слід без параметра або взагалі може бути опущений, тоді повернення з функції здійснюється по досягненні закриваючої дужки.
ТипПоверн Ім’яФункції (Список Оголошених Параметрів)
{
// тіло функції
}
Для того щоб функція виконала певні дії, вона повинна бути викликана в програмі. При зверненні до функції вона виконує поставлене завдання, а по закінченні роботи повертає в якості результату деяке значення.
Виклик функції являє собою вказівку ідентифікатора функції (її імені), за яким в круглих дужках слід список аргументів, розділених комами:
double maxValue = мах (2.5, 1235.2);
int j = swap(10, 2);
func();
Кожна програма на С/С++ обов’язково включає в себе головну функцію main(). Саме з цієї функції починається виконання програми.
Схематичний порядок виклику функцій:
!!! Будь-яка невідповідність між прототипом (оголошенням) функції та її визначенням (заголовком) призведе до помилки компіляції.
!!! В середині функцій можливий виклик будь-яких інших функцій, але неможливо оголосити функцію в середині тіла іншої функції.
Параметри і аргументи функцій
Кожен аргумент функції являє собою змінну, вираз або константу, передані в тіло функції для подальшого використання в обчислювальному процесі. Список аргументів функції може бути порожнім. Функція може викликати інші функції (одну або кілька), а ті, в свою чергу, викликати треті і т.д.
Передача параметрів функції:
Місце функції у програмі може бути різним.
Приклад 1.
long MySquare(int x)
{
return x * x;
}