Міністерство освіти і науки
Національний університет “Львівська політехніка”
Кафедра ЕОМ
/
Звіт
з лабораторної роботи № 8
з дисципліни: “Основи алгоритмізації та програмування”
на тему: “Розробка на С багатофайлових проектів”
Мета лабораторної роботи
Познайомитися із засобами розробки багатофайлових проектів в мові програмування С.
Познайомитися із прийомами розробки багатофайлових проектів в інтегрованому середовищі Visual C++ 6.0.
Теоретичні відомості
Великі прграми на мові С (особливо ті, які складаються з тисяч, десятків тисяч чи більше рядків вхідного тексту) як правило розбивають на окремі функції, які, в свою чергу, можуть розбиватися на на ще дрібніші функції і так дальше. Таке структурування (при грамотному розбитті) значно спрощує завдання кодування та відлагодження програми. Але відлагодження всіх функцій ніколи не виконується одночасно. Крім того, зберігати всі функції програми в одному файлі незручно і недоцільно. Тому системи розробки програм (в тому числі і Visual C++ 6.0) передбачають засоби розробки, в яких окремі функції (чи група функцій) зберігаються в окремих файлах.
Порядок створення файлів багатофайлового проекту може бути довільним.
Після завершення створення проекту запускаємо його на компіляцію. Компілюються всі функції, лінкуються і створюється виконавчий файл.
Якщо тепер внести зміни лише в деякі із файлів багатофайлового проекту, то при новому запуску на компіляцію, компілюватися будуть лише змінені файли, незмінені файли не компілюються, а для лінкування використовуються їх раніше відкомпільовані об'єктні модулі. Такий підхід дає значну економію часу для великих проектів.
Індивідуальне завдання
6-19. Заповнити матрицю значеннями вектора b1, b2, ... , b81 вiд центра по спiралi: вниз - влiво - вверх - вправо. (Примiтка. На малюнку вказанi iндекси елементiв вектора b.)
Хід виконання роботи
Використовуючи вище приведений опис, познайомитися із засобами створення багатофайлових проектів в інтегрованому середовищі Visual C++ 2005.
Навчитися користуватися цими засобами.
Створити багатофайловий проект в мові програмування С згідно із індивідуальним завданням.
З допомогою вбудованого текстового редактора підготувати тексти програм багатофайлового проекту, відлагодити програму та отримати результати роботи програм.
Текст програми
6-19
functions.h
void MakeMatrix(int **matrix, int sizei, int sizej);
void PrintMatrix(int **matrix, int sizei, int sizej);
main.c
#include "functions.h"
int main()
{
int *matrix[9];
for (int i = 0; i < 9; i++)
matrix[i] = malloc(9 * sizeof(int));
MakeMatrix(matrix, 9, 9);
PrintMatrix(matrix, 9, 9);
getch();
return 0;
}
make matrix.c
void MakeMatrix(int **matrix, int sizei, int sizej)
{
int x = sizei - 1, y = 0, k = sizei * sizej;
while (k > 0)
{
for (int i = x; y < i + 1; i--)
matrix[i][x] = k--;
for (int i = x - 1; y < i + 1; i--)
matrix[y][i] = k--;
for (int i = y + 1; i < x + 1; i++)
matrix[i][y] = k--;
for (int i = y + 1; i < x; i++)
matrix[x][i] = k--;
x--;
y++;
}
}
print matrix.c
#include <stdio.h>
void PrintMatrix(int **matrix, int sizei, int sizej)
{
FILE *out;
fopen_s(&out, "../Debug/matrix.txt", "wt");
for (int i = 0; i < sizei; i++)
{
for (int j = 0; j < sizej; j++)
{
printf("%2d ", matrix[i][j]);
fprintf(out, "%2d ", matrix[i][j]);
}
printf("\n");
fprintf(out, "\n");
}
fclose(out);
}
Результат роботи програми
6-19
/
/
Висновок
Я познайомився із засобами розробки багатофайлових проектів в мові програмування С та із прийомами розробки багатофайлових проектів в інтегрованому середовищі Visual Studio, а також написав програму, розробивши багатофайловий проект.