Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Інститут телекомунікацій, радіоелектроніки та електронної техніки
Кафедра теоретичної радіотехніки та радіовимірювань
Звіт з лабораторної роботи №12
«Робота з дисковими файлами»
з дисципліни «Інформатика та обчислювальна техніка»
ЛАБОРАТОРНА РОБОТА № 12
Робота з дисковими файлами
Мета роботи: вивчити способи та основні прийоми роботи з дисковими файлами. Дослідити роботу функцій потокового вводу-виводу стандартної бібліотеки мови С. Навчитися створювати проект багатофайлової програми.
Постановка задачі. Написати програму, яка здійснює опрацювання двовимірного масиву згідно заданого варіанту. Вхідний масив програма
повинна прочитати з файлу. Результат опрацювання масиву вивести у інший файл. Програма повинна видавати користувачу повідомлення про відкриття або не відкриття файлу із вхідними даними, про назву вихідного файлу, про створення чи не створення цього файлу, а також інформацію про результати запису результатів у файлу тощо.
Варіант індивідуального завдання 5
Обчислити добуток елементів під головною діагоналлю матриці та підрахуйте їх кількість
Граф-схема алгоритму програми
НІ ТАК
Код програми мовою С
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *in, *out;
int k,n,i,j;
double p,d;
if (argc<3){
printf("ne zadano vhidnyj chy rezultuyuchyj fajly\n");
printf("neobhidno vyklykaty programy tak:\n");
printf(" lab12 vhidnyj_fajl rezultuyuchyj_fajl\n");
system("PAUSE");
return 0;
}
printf("Vidkryvajemo fajl danyh %s\n",argv[1]);
in=fopen(argv[1],"rt");
if(!in){
printf("!!!!! POMYLKA: Ne mogu vidkryty vhidnyj fajl %s\n",argv[1]);
printf("mojlyvo vin ne isnuye abo vkazanyj nevirnyj shlyah\n");
system("PAUSE");
return 1;
}
printf("Fajl uspishno vidkryto\nStvoryujemo fajl rezultatu %s\n",argv[2]);
out=fopen(argv[2],"wt");
if(!out){
printf("!!!!! POMYLKA: Ne mogu vidkryty fajl rezultatu %s\n",argv[2]);
printf("mojlyvo nama miscya abo dysk zahyshchenyj vid zapysu\n");
system("PAUSE");
return 1;
}
printf("Fajl uspishno stvoreno\n");
fscanf(in,"%d",&n);
k=0;p=1;
printf("Propuskajemo pershyj ryadok\n");
for(i=0;i<n;i++)fscanf(in,"%lf",&d);
printf("Rahujemo dobutok ta kilkist\n");
for(i=1;i<n;i++){
for(j=0;j<i;j++){
fscanf(in,"%lf",&d);
p*=d;
k++;
}
// reshta propuskajemo
for(;j<n;j++)fscanf(in,"%lf",&d);
}
printf("Vyvodymo rezultat u fajl\n");
fprintf(out,"Kilkist elementiv pid golovnoju diagonallyu = %d\n",k);
fprintf(out,"Ih dobutok = %lf\n",p);
fclose(out);
fclose(in);
system("PAUSE");
return 0;
}
Результати виконання
Висновок: Вивчив способи та основні прийоми роботи з дисковими файлами. Дослідив роботу функцій потокового вводу-виводу стандартної бібліотеки мови С. Навчився створювати проект багатофайлової програми.