Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра інформаційних систем та мереж
Лабораторна робота №10
на тему
Функції мови Сі та багатофайлова організація програми
Виконав
студент
групи КН-1
Львів 2008
Мета роботи: Навчитися розробляти функції мови Сі, як основні
елементи структурного програмування; освоїти способи обміну даними між
функціями. Навчитися створювати проект багатофайлової програми з
використанням бібліотек функцій.
1. Написати функцію, яка виконує виділення полів рядка символів (наприклад,
прізвище студента, № залікової книжки, оцінки з п’яти предметів) та
переносить їх у відповідну структуру. На основі цієї функції виконати
перетворення масиву рядків у масив структур.
Текст програми №1:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#define n 3
struct tstudent
{
char pib[30];
int nzk;
int mova, mat, ist, fiz, oit;
};
void perenos(struct tstudent *a,char *b);
void main()
{
struct tstudent kn[n],tmp;
char s1[n][60];
int i;
puts(" pib[30], nzk[6], mova[6], mat[6], ist[6], fiz[6], oit[6];");
for(i=0;i<n;i++)
{
gets(s1[i]);
perenos(&kn[i],s1[i]);
}
clrscr();
printf("\n\n%-30s%-6s%-6s%-6s%-6s%-6s%-6s\n\n","pib","# zal","mova","mat","ist","fiz","oit");
for(i=0;i<n;i++)
printf("%-30s%-6d%-6d%-6d%-6d%-6d%-6d\n",kn[i].pib,kn[i].nzk,kn[i].mova,kn[i].mat,kn[i].ist,kn[i].fiz,kn[i].oit);
getch();
}
void perenos(struct tstudent *kn,char *b)
{
sscanf(b,"%s %d %d %d %d %d %d",kn->pib,&kn->nzk,&kn->mova,&kn->mat,&kn->ist,&kn->fiz,&kn->oit);
}
Блок-схема:
Результати виконання :
2. Написати функцію, яка знаходить мінімальний елемент одновимірного
масиву цілих чисел. На основі цієї функції знайти мінімальні елементи у
кожному рядку прямокутної матриці цілих чисел.
Текст програми №2:
2_1.c :
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include "my.h"
#define n 3
#define m 4
void main()
{
int a[n][m],i,j;
randomize();
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
a[i][j]=rand();
printf("%6d",a[i][j]);
}
puts("");
}
puts("minimal\'ni elementu riadkiv\n");
for(i=0;i<n;i++)
printf("%d riadok -- %d\n",i+1,minim(a[i]));
getch();
}
2_2.c :
#define m 4
int minim(int *a)
{
int i,min;
min=a[0];
for(i=1;i<m;i++)
if(min>a[i])
min=a[i];
return min;
}
my.h :
int minim(int *a);
Блок-схема:
Результат виконання :