Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.О.П / ооп / 11. 9. Об'єктно-орієнтоване програмування, л.2.5.ppt
Скачиваний:
18
Добавлен:
30.05.2020
Размер:
953.34 Кб
Скачать

Мова Сі++

Функції в Сі++

План:

Функції в Сі (визначення функції, звернення до функції)

Прототип функції

Використання бібліотечних функцій

Рекурсивні визначення функцій

Передача значень через глобальні змінні

Класи пам'яті

Приклад

Потрібно скласти програму знаходження найбільшого значення з трьох величин — max (a, b, с). Для її вирішення можна використовувати допоміжний алгоритм знаходження максимального значення з двох, оскільки справедлива рівність: max (а, b, с) = max (max (a, b) с).

Приклад1:

Формат визначення функції наступний:

тип ім'я_функції (специфікація_параметрів) {тіло_ функції}

Тип функції — це тип повертаного функцією результату. Якщо функція не повертає ніякого результату, то для неї вказується тип void.

Ім'я функції — ідентифікатор, що задається програмістом або main для основної функції.

Специфікації параметрів — це або «порожньо», або список імен формальних параметрів функції з вказівкою типу для кожного з них.

Тіло функції — це або складений оператор, або блок.

Оператором повернення з функції в точку її виклику являється оператор return. Він може

використовуватися у функціях в двох формах: return; чи return вираз;

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

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

Формат звернення до функції (виклику функції) традиційний:

ім'я_функції(список_фактичних_параметрів)

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

Прототип функції

Не обов'язково було в попередньому прикладі поміщати повне визначення функції МАХ() перед основною частиною програми. Ось інший варіант програми, що вирішує ту ж саму задачу.

Тут використаний прототип функції.

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

ім'я і тип функції, типи формальних параметрів. У прототипі імена формальних параметрів вказувати необов'язково (як це зроблено в прикладі 2), хоча їх вказівка не є помилковою. Можна було написати і так, як в заголовку визначення функції:

int MAX(int x, int у);

Крапка з комою у кінці прототипу ставиться обов'язково!

Приклад 3

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