- •План:
- •Приклад
- •Приклад1:
- •Формат визначення функції наступний:
- •Оператором повернення з функції в точку її виклику являється оператор return. Він може
- •Формат звернення до функції (виклику функції) традиційний:
- •Прототип функції
- •Тут використаний прототип функції.
- •Прототипом називається попередній опис функції, в якому містяться усі необхідні відомості для правильного
- •Приклад 3
- •Приклад 4
- •Якщо основна частина програми є функцією, то хто (чи що) її викликає? Програму
- •Використання бібліотечних функцій
- •Розглянемо програму рішення наступної задачі: знаючи декартові координати вершин опуклого чотирикутника, вичислити його
- •Математичне рішення цієї задачі наступне.
- •Аналогічно обчислюються довжини інших відрізків. Для вирішення основного завдання — обчислення площі чотирикутника
- •Приклад 5
- •У цій програмі використовуються функції з трьох стандартних бібліотек із заголовними файлами iostream.h,
- •Ще одним новим елементом в приведеній програмі є рядок
- •У функції Geron є звернення до функції Line, а в основній функції —
- •Рекурсивні визначення функцій
- •Передача значень через глобальні змінні
- •Наприклад:
- •При зверненні до функції передача значень можлива як через параметри, так і через
- •Результат виконання функції MAX заноситься в глобальну змінну z, яка «видно» також і
- •Класи пам'яті
- •Під глобальні змінні виділяється місце в зовнішній пам'яті (це оперативна пам'ять класу extern).
- •Приклад 7
- •Локальні змінні, оголошені усередині блоків, розподіляються в автоматичній пам'яті, працюючій за принципом стека.
- •Ініціалізація статичної змінної відбувається тільки при першому входженні у блок. Якщо ініціалізація явно
- •Приклад 8
Мова Сі++
Функції в Сі++
План:
•Функції в Сі (визначення функції, звернення до функції)
•Прототип функції
•Використання бібліотечних функцій
•Рекурсивні визначення функцій
•Передача значень через глобальні змінні
•Класи пам'яті
Приклад
Потрібно скласти програму знаходження найбільшого значення з трьох величин — 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 зірочок.