You are on page 1of 9

Лабораторна робота № 16

Тема: Розробка багатофайлових програм


Мета: Вивчення основних директив препроцесорної обробки програм.
Отримання практичних навиків у роботі зі структурами, функціями і
модульною структурою програм.
1. За результатами виконання лабораторних робіт № 10 та 14/15 розробити у
вигляді багатофайлового проекту програму, яка буде відповідати таким
вимогам: а) заповнення масиву (таблиці) даних повинно здійснюватись із
зовнішнього файлу; б) програма повинна забезпечувати роботу з даними
у різних режимах: - додавання нових рядків у таблицю; - видалення рядка
із заданим номером з таблиці; - виведення інформації, яка зберігається у
рядку із заданим номером; - виведення на екран усієї таблиці.
Контрольні питання

1. Що таке директиви препроцесора?


Директиви препроцесора - це спеціальні інструкції, які обробляються
препроцесором до фактичної компіляції програми.

2. Який синтаксис написання директив препроцесора?


Директиви препроцесора починаються з символу #, за яким слідує ключове
слово і параметри, які зазвичай розділені пробілами.

3. Коли здійснюється обробка програми препроцессором?


Обробка програми препроцесором відбувається перед фактичною
компіляцією. Препроцесор генерує модифікований вихідний код, який потім
використовується компілятором.

4. Наведіть основні директиви препроцесора і поясніть їх дію.


- #include: Вставка вмісту файлу у програму.
- #define: Визначення макросів або констант.
- #ifdef, #ifndef, #else, #endif: Умовна компіляція.
- #pragma: Вказівки для компілятора (наприклад, оптимізації).

5. Що таке "препроцесорна обгортка"? У яких випадках її використовують?


Препроцесорна обгортка (preprocessor wrapper) - це техніка, коли код
оточується умовними директивами (`#ifdef`, `#ifndef`) для управління
включенням чи виключенням коду залежно від умов. Це використовується для
запобігання подвійному включенню файлів заголовків.

6. Що таке макровизначення? Як вони працюють?


Макровизначення - це можливість визначати короткі фрагменти коду, які
можна використовувати як одиниці коду. Вони визначаються за допомогою
директиви #define. При звертанні до макровизначення, його ім'я замінюється
його визначеним тілом.
7. У чому переваги використання багатофайлових програм?
Багатофайловий підхід дозволяє розділити програму на логічні модулі, що
полегшує розробку та зберігання. Це дозволяє перевикористовувати код, сприяє
легшому супроводу та полегшує розділення роботи між різними членами
команди.

8. Які класи пам'яті ви знаєте?


- Регістр: Найшвидший та найменший обсяг пам'яті.
- Кеш: Швидка пам'ять, використовується для збереження копій часто
використовуваних даних.
- Оперативна пам'ять (RAM): Використовується для збереження даних, які
поточно використовуються програмою.
- Вторинна пам'ять (наприклад, жорсткий диск): Використовується для
збереження даних, які можуть бути збережені після вимкнення системи.

9. У яких випадках використовують регістровий тип даних?


Регістрові типи даних використовуються тоді, коли потрібно дуже швидкий
доступ до даних, наприклад, при роботі з регістрами процесора.

10. Що означають локальні змінні? До якого класу пам'яті вони належать?


Локальні змінні - це ті, які оголошуються всередині блока коду (функції або
іншого складового елемента) і видимі лише у межах цього блока. Вони
знаходяться в стековій пам'яті.

11. До якого класу пам'яті можна віднести формальні параметри функцій?


Формальні параметри функцій зазвичай також розташовуються в стековій
пам'яті, а отже, їх можна віднести до локальних змінних.

12. Як і для чого використовують зовнішні глобальні змінні?


Зовнішні глобальні змінні використовуються для забезпечення доступу до
даних з будь-якого місця в програмі. Вони оголошуються за межами будь-якої
функції та можуть бути використані в усій програмі.

13. Що таке роздільна компіляція?


Роздільна компіляція - це процес, коли програма розбивається на окремі
компільовані одиниці (зазвичай файли з розширенням .c або .cpp). Це полегшує
перевикористання коду та швидкість перекомпіляції.

14. Що рекомендується зберігати у заголовочних файлах, а що -у програмних


файлах?
Заголовочні файли (`*.h` або *.hpp`) містять інтерфейси, прототипи функцій,
макроси та декларації, які можуть бути використані у декількох файлах
програми. Програмні файли (наприклад, `*.c або `*.cpp`) містять реалізацію
функцій та інші деталі роботи програми.

You might also like