Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра інформаційних
систем та мереж
Лабораторна робота №10
на тему:
Функції мови Сі та багатофайлова
організація програми.
Назва роботи:
Функції мови Сі та багатофайлова організація програми.
Мета роботи:
Навчитися розробляти функції мови Сі, як основні елементи структурного програмування; освоїти способи обміну даними між функціями. Навчитися створювати проект багатофайлової програми з використанням бібліотек функцій.
Завдання лабораторної роботи:
У завданнях першої частини необхідно:
Розробити однофайлову програму з використанням функцій. У випадку багатофайлової програми забезпечити створення одного файлу за допомогою директив препроцесора #include. У зібраній програмі повинна бути тільки одна функція main().
На початку файла програми розмістити: 1) директиви препроцесора; 2) прототипи функцій; 3) глобальні оголошення; 4) функцію main(); 5) розроблені функції.
Усі дії (введення, перетворення, виведення даних) оформити у вигляді окремих функцій. У функції main() виконати локальні оголошення та розмістити виклики усіх потрібних для роботи програми функцій.
Передачу даних між функціями організувати за допомогою списку фактичних-формальних параметрів, або явного повернення результату функції. При необхідності у програмі бажано здійснювати глобальні оголошення типів, а не констант чи змінних.
Необхідно пам’ятати, що передача параметрів у функцію здійснюється “по значенню”, тобто у стек записуються копії фактичних параметрів. Для повернення даних з функції через список параметрів необхідно використати вказівники. Масиви та рядки завжди передаються/повертаються через вказівники.
У завданнях другої частини необхідно:
Розробити багатофайлову (не менше двох файлів) програму з використанням функцій. За допомогою ключового слова extern оголосити зовнішні глобальні дані, визначені в інших файлах. Усі функції є такими по замовчуванню.
Розробити файли включення з прототипами бібліотечних функцій та оголошеннями типів; під’єднати їх до файлів програми (де це потрібно).
Відкомпілювати файл, у якому відсутня функція main(). За допомогою програми tlib.exe утворити бібліотечний файл з розширенням .lib . Вивчити ключі програми tlib.exe.
Утворити проект програми, використавши меню інтегрованого середовища Project. У проект можна включати текстові файли програми на мові C/C++, об’єктні та бібліотечні файли. Проекти зберігаються як файли з розширеннями .prj. У проекті повинна бути тільки одна функція main().
Відкомпілювати проект програми та отримати результат. При відсутності помилок редактор зв’язків сформує з файлів проекту автономний exe-код програми.
Текст програми:
Програма 1
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define dec 10
long zvp(long int k);
void main()
{long int n;
clrscr();
printf("Введiть число:\n");
scanf("%ld",&n);
printf("Розвернене число число:\n");
printf("%ld",zvp(n));
getch();
}
long zvp(long int k)
{ int i; char s[12];
itoa(k,s,dec);
strrev(s);
k=atol(s);
return k;
}
Програма 2
#include <conio.h>
#include <stdio.h>
#include <string.h>
char *strzam(char *x, char *y, char *z);
void main()
{ char a[300], b[15],c[15], *d;
clrscr();
puts("Введiть речення:");
gets(a);
printf("Введiть слово яке потрiбно змiнити: "); gets(b);
printf("Введiть слово на яке потрiбно змiнити: "); gets(c);
d=strzam(a,b,c);
if (d==NULL)
printf("Заданого слова в реченнi немає!!!\n");
else {
printf("Модифiковане речення:\n");
printf("%s",d); }
getch();
}
Бібліотека lib
#include <stdio.h>
#include <string.h>
char *strzam(char *x, char *y, char *z)
{ char *p; int i,j;
if (strpbrk(x,y)!=NULL)
{
while(p!=NULL)
{p=strstr(x,y);
if(strlen(z)>=strlen(y))
for(i=strlen(p); i>strlen(y)-1; i--)
p[i+(strlen(z)-strlen(y))]=p[i];
else
for(i=0; i<strlen(p); i++)
p[i]=p[i+(strlen(y)-strlen(z))];
for(j=0; j<strlen(z); j++)
p[j]=z[j];
}
return x;
} else return NULL;
}
Результати виконання програми:
Програма 1
Програма 2
Висновки:
Я навчився розробляти функції мови Сі, як основні елементи структурного програмування; освоїв способи обміну даними між функціями. Навчився створювати проект багатофайлової програми з використанням бібліотек функцій.
Блок-схеми:
Програма 1
Програма 2