Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_Лаб_Гриф.doc
Скачиваний:
7
Добавлен:
14.11.2019
Размер:
2.81 Mб
Скачать

6.4 Питання для контролю і самостійної роботи

  1. Які операції називаються унарними, бінарними, тернарними ?

  2. Скільки груп пріоритетів операцій прийнято в С ?

  3. Які операції мають самий високий пріоритет, самий низький ?

  4. У якій послідовності виконуються операції з однаковим пріоритетом ?

  5. Що означає властивість комутативності ?

  6. Які операції гарантують порядок обчислення своїх операндів ?

  7. Для чого застосовують первинні операції ?

  8. Який тип операндів допустимо використовувати для різних операцій ?

  9. Чи всі операнди обчислюються у виразах, що містять логічні операції?

  10. Для чого застосовують перетворення типів ?

  11. Назвіть правила неявного перетворення типів.

  12. У яких випадках можлива втрата інформації при перетворенні типів і чому ?

  13. У якому порядку буде виконуватися конструкція f(x) && g(y) і як буде інтерпретуватися результат виклику функцій, результат виразу в цілому ?

  14. Чи завжди можливе перетворення типів, приведене в таблиці 6.3, в яких випадках результати будуть невірними ?

  15. Поясніть приклади, приведені в теоретичній частині.

7 Заняття № 7

Розробка програм з функціями. Оголошення, визначення і виклик функцій

(2 години)

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

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

Кожна функція в С має назву (ім'я), клас пам'яті, тип значення, що повертається, необов'язковий список параметрів, а також тіло функції. У функціях можна оголошувати локальні константи і перемінні. Усі функції, за винятком функції main( ), необхідно оголошувати (створювати прототип, декларувати) до використання (виклику).

Оголошення функцій (створення прототипів)

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

Загальний синтаксис оголошення для функції має вигляд

[Клас_пам'яті] Тип_значення_що_повертається Ім'я

([ Список_типів_параметрів ])

Функції мають тільки глобальні класи пам'яті: extern і static. За умовчанням клас пам'яті функції – extern, її можна визвати з будь-якої іншої функції. Функції з класом пам'яті static можна визвати тільки в тому модулі, де вони оголошені.

Кожна функція має Тип_значення_що_повертається, який вказується перед назвою (Ім'ям) функції. Список_параметрів вказують за назвою функції і розміщають в круглих дужках.

Крапка з комою наприкінці цього запису необхідна для оголошення функції, але не потрібна у визначенні функції. Імена формальних параметрів можуть бути відсутніми чи не співпадати з іменами у визначенні функції, але типи повинні збігатися обов'язково. За умовчанням тип значення, що повертається, int. Для визначення того значення, що повертається, використовується оператор return.

Приклад оголошення функції

dоuble summa(float a, float b); //Два формальних параметри типу float,

// повертається значення типу dоuble

С використовує спеціальний тип void, щоб указати, що функція не вимагає параметрів чи не повертає значення. Використання оператора return у void -функції не потрібно.

Приклади оголошень функцій:

update( ); //Без параметрів,

//повертається int за умовчанням

void min(void); //Без параметрів

void redate(int a); //Один

// параметр з типом int

void sum(float d); //Один

// параметр з типом float