Міністерство освіти і науки,
Національний університет «Львівська Політехніка»
Кафедра ЕОМ
/
Лабораторна робота №7
з дисципліни «Програмування, частина 1(Основи алгоритмізації та програмування)»
на тему:
«Розв'язування на С задач, які використовують файли для вводу та виводу даних»
Мета роботи: Познайомитися iз засобами файлового вводу та виводу в мовi програмування С.
Хід роботи:
2) Індивiдуальне завдання (Варіант 11).
Заповнити матрицю випадковими числами. Розмiстити на головнiй дiагоналi
суми елементiв, котрi лежать на дiагоналях, перпендикулярних до головної.
Тексти програм:
а) Текстовий файл:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include "math.h"
#define S 9
void main()
{
int A[S][S];
int t = 0, s = 0;
int i, j, k;
srand(time(NULL));
FILE *f, *f1;
f = fopen("in.txt", "r");
f1 = fopen("out.txt", "w");
printf("\nRezultat zchytuvannia z failu\n\n\n");
for (i = 0; i<S; i++)
{
printf("\n");
for (j = 0; j<S; j++)
{
fscanf(f, "%d ", &A[i][j]);
printf("%2d ", A[i][j]);
}
}
for (k = 1; k <= floor(S / 2); k++)
{
j = k; t = 0; s = 0;
for (i = k - 1; i >= 0; i--)
{
j++;
t = t + A[i][j] + A[j][i];
s = s + A[S - 1 - i][S - 1 - j] + A[S - 1 - j][S - 1 - i];
}
A[k][k] = t;
A[S - 1 - k][S - 1 - k] = s;
}
printf("\n\n\n\n\n\n");
for (i = 0; i<S; i++)
{
for (j = 0; j<S; j++)
fprintf(f1, "%2d ", A[i][j]);
fprintf(f1, "\n");
}
fclose(f);
fclose(f1);
system("pause");
}
/
Рис. 1. Вхідний файл.
/
Рис. 2.Результат роботи програми для текстового файлу.
/
Рис. 3. Вихідний файл.
б) Бінарний файл:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include "math.h"
#define S 9
void main()
{
int A[S][S];
int t = 0, s = 0;
int i, j, k;
srand(time(NULL));
FILE *f, *f1;
f = fopen("inb.bin", "r");
f1 = fopen("outb.bin", "w");
printf("\nRezultat zchytuvannia z vhidnogo failu\n\n\n");
for (i = 0; i<S; i++)
{
printf("\n");
for (j = 0; j<S; j++)
{
fscanf(f, "%d ", &A[i][j]);
printf("%2d ", A[i][j]);
}
}
for (k = 1; k <= floor(S / 2); k++)
{
j = k; t = 0; s = 0;
for (i = k - 1; i >= 0; i--)
{
j++;
t = t + A[i][j] + A[j][i];
s = s + A[S - 1 - i][S - 1 - j] + A[S - 1 - j][S - 1 - i];
}
A[k][k] = t;
A[S - 1 - k][S - 1 - k] = s;
}
printf("\n\n\n\n\n\n");
for (i = 0; i<S; i++)
{
for (j = 0; j<S; j++)
fprintf(f1, "%2d ", A[i][j]);
fprintf(f1, "\n");
}
fclose(f1);
f1 = fopen("outb.bin", "r");
printf("\nRezultat zchytuvannia z vyhidnogo failu failu\n\n\n");
for (i = 0; i<S; i++)
{
printf("\n");
for (j = 0; j<S; j++)
{
fscanf(f1, "%d ", &A[i][j]);
printf("%2d ", A[i][j]);
}
}
printf("\n");
fclose(f);
fclose(f1);
system("pause");
}
/
Рис. 4. Вхідний файл.
/
Рис. 5. Результат роботи програми для бінарного файлу.
/
Рис. 6. Вихідний файл.
Висновок: Я познайомитися з засобами файлового вводу та виводу в мовi програмування С.