Міністерство освіти і науки, молоді та спорту України
Національний університет „Львівська політехніка”
Кафедра ЕОМ
Звіт
з лабораторної роботи №8
з дисципліни: “ Основи алгоритмізації та програмування”
на тему: “Розробка на С багатофайлових проектів”
Мета роботи:
познайомитися із засадами розробки багатофайлових проектів в мові програмування С;
познайомитися із прийомами розробки багатофайлових проектів в інтегрованому середовищі Visual C++ 6.0.
Теоретичні відомості:
Великі прграми на мові С (особливо ті, які складаються з тисяч, десятків тисяч чи більше рядків вхідного тексту) як правило розбивають на окремі функції, які, в свою чергу, можуть розбиватися на на ще дрібніші функції і так дальше. Таке структурування (при грамотному розбитті) значно спрощує завдання кодування та відлагодження програми. Але відлагодження всіх функцій ніколи не виконується одночасно. Крім того, зберігати всі функції програми в одному файлі незручно і недоцільно. Тому системи розробки програм (в тому числі і Visual C++ 6.0) передбачають засоби розробки, в яких окремі функції (чи група функцій) зберігаються в окремих файлах.
Файл із функцію main. Функція main є тестуючою. В ній задаються вхідні lfys до тестованої функції, виконується звернення до тестованої функції та вивід результатів тестування.
Файл із функцію bisec. Власне в цій функції реалізований метод бісекції.
В третьому файлі знаходяться функції на яких перевіряється правильність роботи методу бісекції
Четвертий файл bisec.h є заголовочним і містить опис типу функції func і прототип функції.
Тепер розглянемо яким чином створюється багатофайловий проект.
Спочатку створюємо новий порожній проект, потім файл для вхідного тексту програми і поміщаємо в нього текст функції 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.
Знову повторюємо ті самі дії і створюємо третій файл tagets.c і поміщаємо туди відповідний текст.
Четвертий файл із заголовочним файлом створюється дещо по іншому. Курсор мишки наводимо не на теку Source Files, а на теку Header Files. Розшиненя iменi файла у цьому випадку має бути .h. У цьому конкретному прикладi bisec.h.
Створення багатофайлового проектау завершено.
Порядок створення файлів багатофайлового проекту може бути довільним, а не обов'язково таким як описано вище.
Після завершення створення проекту запускаємо його на компіляцію. Компілюються всі функціЇ, лінкуються і створюється виконавчий файл.
Якщо тепер внести зміни лише в деякі із файлів багатофайлового проекту, то при новому запуску на компіляцію, компілюватися будуть лише змінені файли, незмінені файли не компілюються, а для лінкування використовуються їх раніше відкомпільовані об'єктні модулі. Такий підхід дає значну економію часу для великих проектів.
Індивiдуальнi завдання:
/
Текст програми:
#include <stdio.h>
#include <conio.h>
double q(double n);
double g(double a, double b);
int main()
{
double s;
double t;
double res;
printf("Vvedit s:\n");
scanf("%lf", &s);
printf("vvedit t:\n");
scanf("%lf", &t);
res = q;//g(1.2,s)+ g(t,s)+g(2*s,s*t);
printf("%lf", res);
getch();
return 0;
}
double q(double n)
{
n = g;
return n;
}
double g(double a, double b)
{
return (a*a+b*b)/(a*a+2*a*b+3*b*b+4);
}
Хід роботи:
Завдання: створити багатофайловий проект на мові програмування С в середовищі Visual Studio.
Функцію, яка є частиною даної програми поміщаємо в окремий файл з розширенням ".с", а також створюємо заголовочний файл з розширенням ".h"
Файл «main.c» містить:
#include <stdio.h>
#include <conio.h>
double g(double a, double b);
int main()
{
double s;
double t;
double res;
printf("Vvedit s:\n");
scanf("%lf", &s);
printf("vvedit t:\n");
scanf("%lf", &t);
res = g(1.2,s)+ g(t,s)+g(2*s,s*t);
printf("%lf", res);
getch();
return 0;
}
Файл «bisec.c» містить:
#include <math.h>
#include "bisec.h"
double g(double a, double b)
{
return (a*a+b*b)/(a*a+2*a*b+3*b*b+4);
}
Файл «bisec.h» містить:
#include <stdio.h>
#include <conio.h>
#include <math.h>
double g(double a, double b);
Результат:
Vvedit s:
3
vvedit t:
5
0.950339
Висновок:
На цій лабораторній роботі я навчився створювати багато файлові проекти на мові С в середовищі Visual Studio. Розбиття проекту на багато файлів полегшує розробку програм великих обсягів.