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

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

  1. Приведіть загальний формат оголошення функцій.

  2. Приведіть формат визначення функцій.

  3. Які класи пам'яті використовуються при оголошенні функцій.

  4. Охарактеризуйте формальні параметри приведених функцій.

  5. Що означає запис FILE* ?

  6. Що означає термін “потік” ?

  7. Скільки і які стандартні потоки відкриваються при виконанні програми ?

  8. Які існують режими роботи з файлами ?

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

  10. Які функції забезпечують форматизоване введення/виведення даних?

  11. Що таке буферизація і чи можна нею керувати ?

  12. Що таке дескриптор ? Які дескриптори мають стандартні потоки ?

  13. Як установити положення покажчика поточної позиції у файлі ?

Заняття№ 18

Розробка програм із багатофайловою структурою. Заголовочні файли. Класи пам'яті перемінних і функцій

(4 години)

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

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

Керування многофайловими проектами

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

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

  • імена усіх файлів, що входять у проект;

  • шляхи для пошуку файлів;

  • які файли залежать від інших файлів, які повинні бути відкомпільовані в першу чергу (зважуються питання, що стосуються залежностей, які автоматично відслідковуються);

  • які компілятори і параметри командного рядка повинні використовуватися при створенні кожної з частин програми;

  • куди варто помістити результуючу програму;

  • розмір коду, розмір даних і число рядків, отриманих у результаті останньої компіляції.

Використання адміністратора проектів

Використання адміністратора проектів не представляє утруднень. Для побудови проекту нелбхідно:

  • вибрати ім'я файлу проекту (за допомогою команди Project / Open Project);

  • додати до проекту імена вихідних файлів (за допомогою команди Project| Add Item);

  • задати системі Borland C компіляцію файлу (за допомогою команди Compile / Make EXE).

Потім, коли в меню Project стануть доступні команди ведення проекту, можна:

  • додавати імена файлів у проект чи видаляти їх з нього;

  • задавати параметри файлів, що входять у проект;

  • переглядати зміст файлів, включених у конкретний проект.

Приклад роботи з адміністратором проектів.

Мається програма, що складається з основного вихідного файлу з ім'ям mymain.c, додаткового файлу myfuncs.c, що містить визначення функції і дані, звертання до яких маються в основному файлі, і файлу myfuncs.h, де знаходяться оголошення функцій.

Файл mymain.c має наступний вигляд:

#include <stdio.h> // Заголовочний файл у стандартному каталозі

#include "myfuncs.h" // Заголовочний файл в активному каталозі

main (int argc, char *argv[ ]) // Передача у функцію main( ) параметрів з

//навколишнього середовища: argc – кількість параметрів,

// argv[ i ] - масив строкових параметрів, розділених пробілом,

//argv[0] – ім'я програми

{

char *s; // Клас пам'яті за умовчанням auto

if (argc > 1)

s = argv[ 1 ]; // Вибір другого строкового параметра з масиву

else

s = " Миру "; // Ініціалізація покажчика рядковою константою

printf("%s %s.\n", GetString( ), s); //Виведення результату роботи

// функції GetString( ) і рядка, зв'язаного з покажчиком s

}

Файл myfuncs.c має наступний вигляд:

char ss[ ] = "Притулок на границі"; //Масив ss[ ], ініціалізований

// рядковою константою

char * GetString(void); // Визначення функції GetString( )

{

return ss; // Доступ до масиву з функції дозволений,

// тому що клас пам'яті по умовчанню extern

}

А файл myfuncs.h має наступний вигляд:

extern char *GetString(void); // Оголошення функції з глобальним

// класом пам'яті - extern.