Міністерство освіти і науки, молоді та спорту України
Національний університет “Львівська політехніка”
Кафедра ЕОМ
ЗВІТ
з лабораторної роботи №8
з дисципліни: “Основи алгоритмізації та програмування”
на тему: “Розробка на С багатофайлових проектів”
Мета роботи
познайомитися із засадами розробки багатофайлових проектів в мові програмування С;
познайомитися із прийомами розробки багатофайлових проектів в інтегрованому середовищі Visual C++ 6.0.
Порядок виконання роботи
Використовуючи вище приведений опис, познайомитися із засобами створення багатофайлових проектів в інтегрованому середовищі Visual C++ 2005.
Навчитися користуватися цими засобами.
Створити багатофайловий проект в мові програмування С згідно із індивідуальним завданням.
З допомогою вбудованого текстового редактора підготувати тексти програм багатофайлового проекту, відлагодити програму та отримати результати роботи програм.
Хід виконання роботи
Короткий опис засобів та прийомів створення багатофайлового проекту інтегрованого середовища Visual C++ 2005.
Спочатку створюємо новий проект таким самим чином як ми це робили у лабораторній роботі № 2 (створюємо порожній проект, потім файл для вхідного тексту програми) і поміщаємо в нього текст функції main.
Для створення другого файлу повторюємо тi самi кроки, що i для першого: в деревi пiдвiкна Solution Explorer наводимо курсор на теку Source Files i натискаємо на праву клавiшу мишки, у випадаючому вiкнi вибираємо пункт Add, а пiсля цього пункт New Item; у вiкнi Add New Item задаємо iм'я файла, який буде мi стити текст наступної функцiї - (на цей раз bisec.c). З'являється нове вiкно текстового редактора iз закладкою bisec.c. В нього помiщаємо текст функцiї bisec.c.
Так само створюється третій файл. Четвертий файл із заголовочним файлом створюється дещо по іншому. Курсор мишки наводимо не на теку Source Files, а на теку Header Files. Розшиненя iменi файла у цьому випадку має бути .h.
Після завершення створення проекту запускаємо його на компіляцію. Компілюються всі функціЇ, лінкуються і створюється виконавчий файл.
Якщо тепер внести зміни лише в деякі із файлів багатофайлового проекту, то при новому запуску на компіляцію, компілюватися будуть лише змінені файли, незмінені файли не компілюються, а для лінкування використовуються їх раніше відкомпільовані об'єктні модулі. Такийпідхід дає значну економію часу для великих проектів.
Індивідуальне завдання:
Індивідуальні завдання 9 ті ж самі що і індивідуальні завдання 6 чи індивідуальні завдання 5 (узгодити з викладачем), які виконувалися у лабораторній роботі №5. Відмінність полягає у тому, що обчислення, які вимагає індивідуальне завдання, необхідно оформити у вигляді багатофайлового проекту, якому є декілька файлів з функціями програми та заголовочні файли. Задача, яка задана в індивідуальному завданні має бути реалізована у вигляді окремої функції (чи функцій) і розміщатися в окремому файлі (чи файлах). Функція main має демонструвати працездатність основної задачі. Тобто, задавати вхідні параметри, звертатися до підпрограми тестованої задачі та виводити результати. Якщо задача буде себе по різному вести при різних вхідних параметрах, то функція main має тестувати всі можливі варіанти.Ввід даних можна виконувати так само як і у лабораторній роботі 7 - із (текстового) файлу.
Використаю програму 4-6 із лабораторної роботи №5:
/
Текст програми:
#include <stdio.h>
#include <math.h>
double h(double a, double b);
double max(double a,double b);
int main()
{
double s, t, res;
printf("Input s: \n");
scanf("%lf", &s);
printf("Input t: \n");
scanf("%lf", &t);
return printf("%10.3f\n",h(s,t) + max(pow(h(s-t,s*t),4),pow(h(s-t,s+t),4))+h(1,1));
}
double h(double a, double b)
{
return (a / (1 + pow(b,2))) + (b / (1 + pow(a,2))) - (pow(a,3)-3*pow(a,2)*b+3*a*pow(b,2)-pow(b,3));
}
double max(double a, double b)
{
double res;
if(a > b) res = a;
else res = b;
return res;
}
/
Рис1. Ескіз вікна з результатом роботи програми
Програма, розбита на файли:
/
Рис2. Ескіз вікна файла із функцією main
/
Рис3. Ескіз вікна файла із функцією h
/
Рис4. Ескіз вікна файла із функцією max
/
Рис5. Ескіз заголовочного файла header.h із прототипами функцій h та max
/
Рис6. Ескіз заголовочного файла match.h, який містить прототип бібліотеки <match.h>
/
Рис7. Ескіз вікна з результатом роботи програми
Висновок:
На цій лабораторній роботі я навчився писати програми в окремих файлах та створювати пртотипи функцій і біблотек.