Бібліотека програміста

Розглянемо варіант організації власної бібліотеки, коли кожна бібліотечна функція у своєму окремному програмному файлі записана в SUBPROG (рис. 3). Ім’я файлу і ім’я записаної в нього функції послідовно одна за одниною «з точки зору компілятора» ніяк не пов’язані, але для зручності програміста їх імена повинні співпадати або бути близькими по напису.

Розширення цих файлів -.cpp, як й в інших програмах С++. Наприклад, функція fact записана у файл SUBPROG\fact.cpp.

Файли типу roll (список) є за призначенням аналогами заголовочих файлів компілятора та містять прототипи відповідних функцій, константи і так далі. Крім того, у них включені директиви на включення у програму функцій, що описані.

Усі бібліотечні функції доцільно поділити на групи:

• Функції, що найчастіше використовуються у програмах, файл roll.h,

• Функції текстової графіки, файл roll_txt.h,

• Функції точкової графіки, файл roll_gr.h,

• Інші функції, що використовуються порівняно рідко, спеціалізовані й т.п.

Вміст списку SUBPROG\roll.h у наступній програмі файлу SUBPROG\roll.h.

У файлі rull.h розміщені глобальні змінні, котрі об’являються поза будь-якої функції та області дії котрих розповсюджується на усю програму, включаючи функції-підпрограми. У нашому випадку ідентифікатори i, j, k, l, m, n, num пропонуються використовувати для цілих чисел. Глобальна змінна mn об’явлена адресно для певної функції.

Введенні глобальні константи – змінні, які оснащені атрибутом const й тому ініціалізовані безпосередньо при об’яві (PI, C, C_). Такі константи змінювати до кінця програми неможливо.

Заголовочні файли оформлюються наступними директивами препроцесора:

#ifndef ROLL

#define ROLL

………………

#endif

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

Застосуємо для розрахунку алгебраїчних сполук (перестановки, розміщення Amn, поєднання Cmn із m елементів по n) перетворену у бібліотечну функцію fact, записану у файл SUBPROG\fact.cpp, з прототипом double fact(int), який об’явлений у файлі SUBPROG\roll.h.

AMN=m(m-1)(m-2)…(m-(n-1))=m!/(m-n)!

Cmn=m!/n!/(m-n)!

Оглядові запитання

1. З яких двох частин складаються бібліотечні функцій, що вбудовані в компілятор С++?

2. На що вказує прототип функції?

3. Як виглядають директиви препроцесору поперед функції main?

4. Що визначає функція main?

5. Що таке функція-підпрограма? Для чого вона застосовується?

6. Яку роль грає прототип функції?

7. З чого складається опис функції?

8. Чи ставиться після фігурних дужок, які оточують тіло функції, крапка з комою?

9. Опішити деякі особливості функції-підпрограми?

10. Як перетворити підпрограму у функцію?

11. Що таке.cpp?

12. На які групи доцільно поділити бібліотечні функції?

13. Що таке глобальні змінні та константи?



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: