Файл: Лабораторная работа 11 по дисциплине Программирование на тему Файлы Студент гр. Ивт222 Сарсенбаев М. С.odt
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.12.2023
Просмотров: 16
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство науки и высшего образования РФ
Федеральное государственное автономное образовательное учреждение
высшего образования
«Омский государственный технический университет»
Кафедра «Информатика и вычислительная техника»
Отчёт
Лабораторная работа № 11
по дисциплине «Программирование»
на тему:
«Файлы»
Выполнил:
Студент гр.ИВТ-222
Сарсенбаев М.С. _____________
(подпись, дата)
Проверил:
Ассистент
Горшенин А.Ю. ______________
(подпись, дата)
Омск 2023
Задание 1 (программа 11_1)
Условие задачи: Выполнить задачу из лабораторной работы 9, считывая исходные данные из одного файла и записывая полученные результаты в другой текстовый файл. Файл с исходными данными должен быть подготовлен предварительно.
Схема алгоритма:
Текст программы:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#define stroka 3
#define stolbec 3
#define stroka2 4
#define stolbec2 4
int stepen(int x[stroka][stolbec], int y[stroka][stolbec], int* q, int* w, int* e);
int stepen2(int x[stroka2][stolbec2], int y[stroka2][stolbec2], int* q, int* w, int* e);
int main()
{
setlocale(0, "");
int a[stroka][stolbec], a2[stroka][stolbec], a3[stroka][stolbec];
int b[stroka2][stolbec2], b2[stroka2][stolbec2], b3[stroka2][stolbec2];
int res, sum, sr;
FILE* f1, * f2, * F1, * F2;
printf("Забор элементов из первого файла для первой матрицы а[3][3]\n");
f1 = fopen("C:/Users/maksa/OneDrive/Рабочий стол/ОТЧЕТЫ ПРОГРАММИРОВАНИЕ/fileone.txt.txt", "r");
for (int i = 0; i < stroka; i++) {
for (int j = 0; j < stolbec; j++) {
fscanf_s(f1, "%d", &a[i][j]);
}
}fclose(f1);
printf("Забор элементов из второго файла для второй матрицы b[4][4]\n");
f2 = fopen("C:/Users/maksa/OneDrive/Рабочий стол/ОТЧЕТЫ ПРОГРАММИРОВАНИЕ/filetwo.txt.txt", "r");
for (int i = 0; i < stroka2; i++) {
for (int j = 0; j < stolbec2; j++) {
fscanf_s(f2, "%d", &b[i][j]);
}
}fclose(f2);
F1 = fopen("C:/Users/maksa/OneDrive/Рабочий стол/ОТЧЕТЫ ПРОГРАММИРОВАНИЕ/resultone.txt.txt", "w");
fprintf(F1, "2-степень первой матрицы \n");
for (int i = 0; i < stroka; i++) {
for (int j = 0; j < stolbec; j++) {
stepen(a, a, &res, &sum, &sr);
a2[i][j] = res;
fprintf(F1, "%4.d", res);
}
fprintf(F1, "\n");
}
fprintf(F1, "\n");
fprintf(F1, "Cумма элементов = %d\nСреднее арифметическое = %d", sum, sr);
fprintf(F1, "\n");
fprintf(F1, "3-степень первой матрицы\n");
for (int i = 0; i < stroka; i++) {
for (int j = 0; j < stolbec; j++) {
stepen(a, a2, &res, &sum, &sr);
a3[i][j] = res;
fprintf(F1, "%4.d", res);
}
fprintf(F1, "\n");
}
fprintf(F1, "\n");
fprintf(F1, "Cумма элементов = %d\nСреднее арифметическое = %d", sum, sr);
fprintf(F1, "\n");
fprintf(F1, "4-степень первой матрицы\n");
for (int i = 0; i < stroka; i++) {
for (int j = 0; j < stolbec; j++) {
stepen(a, a3, &res, &sum, &sr);
fprintf(F1, "%4.d", res);
}
fprintf(F1, "\n");
}
fprintf(F1, "\n");
fprintf(F1, "Cумма элементов = %d\nСреднее арифметическое = %d", sum, sr);
fprintf(F1, "\n");
fprintf(F1, "2-степень второй матрицы\n");
for (int i = 0; i < stroka2; i++) {
for (int j = 0; j < stolbec2; j++) {
stepen2(b, b, &res, &sum, &sr);
b2[i][j] = res;
fprintf(F1, "%4.d", res);
}
fprintf(F1, "\n");
}
fprintf(F1, "\n");
fprintf(F1, "Cумма элементов = %d\nСреднее арифметическое = %d", sum, sr);
fprintf(F1, "\n");
fprintf(F1, "3-степень второй матрицы\n");
for (int i = 0; i < stroka2; i++) {
for (int j = 0; j < stolbec2; j++) {
stepen2(b, b2, &res, &sum, &sr);
b3[i][j] = res;
fprintf(F1, "%8.d", res);
}
fprintf(F1, "\n");
}
fprintf(F1, "\n");
fprintf(F1, "Cумма элементов = %d\nСреднее арифметическое = %d", sum, sr);
fprintf(F1, "\n");
fprintf(F1, "4-степень второй матрицы\n");
for (int i = 0; i < stroka2; i++) {
for (int j = 0; j < stolbec2; j++) {
stepen2(b, b3, &res, &sum, &sr);
fprintf(F1, "%8.d", res);
}
fprintf(F1, "\n");
}
fprintf(F1, "\n");
fprintf(F1, "Cумма элементов = %d\nСреднее арифметическое = %d", sum, sr);
fprintf(F1, "\n");
fclose(F1);
}
int stepen(int x[stroka][stolbec], int y[stroka][stolbec], int* q, int* w, int* e)
{
int A[stroka][stolbec];
int sum = 0;
for (int i = 0; i < stroka; i++) {
for (int j = 0; j < stolbec; j++) {
int s = 0;
for (int f = 0; f < stolbec; f++) {
s += y[i][f] * x[f][j];
}
A[i][j] = s;
sum += s;
*q = A[i][j];
}
}
*w = sum;
*e = sum / (stroka * stolbec);
return 0;
}
int stepen2(int x[stroka2][stolbec2], int y[stroka2][stolbec2], int* q, int* w, int* e) {
int B[stroka2][stolbec2];
int sum = 0;
for (int i = 0; i < stroka2; i++) {
for (int j = 0; j < stolbec2; j++) {
int s = 0;
for (int f = 0; f < stolbec2; f++) {
s += x[i][f] * y[f][j];
}
B[i][j] = s;
sum += s;
*q = B[i][j];
}
}
*w = sum;
*e = sum / (stroka2 * stolbec2);
return 0;
}
Исходные файлы для программы 11_1:
Результаты выполнения программы, выводы:
Задание2(программа 11_2)
Условие задачи:
Даны два файла F1, F2. Сформировать третий файл F, в который сначала записать все элементы файла F1, а затем – элементы файла F2.
Схема алгоритма:
Текст программы:
#include
#include
#define _CRT_SECURE_NO_WARNINGS
using namespace std;
int main()
{
FILE* f1, * f2, * f;
char a[100], c[100];
int i, k, j;
f1 = fopen("C:/Users/maksa/OneDrive/Рабочий стол/ОТЧЕТЫ ПРОГРАММИРОВАНИЕ/file1.txt", "r");
i = 0;
while (!feof(f1))
{
fgets(&a[i], 100, f1);
i++;
}fclose(f1);
f2 = fopen("C:/Users/maksa/OneDrive/Рабочий стол/ОТЧЕТЫ ПРОГРАММИРОВАНИЕ/file2.txt", "r");
j = 0;
while (!feof(f2))
{
fgets(&c[j], 100, f2);
j++;
}fclose(f2);
f = fopen("C:/Users/maksa/OneDrive/Рабочий стол/ОТЧЕТЫ ПРОГРАММИРОВАНИЕ/result1.txt", "w");
for (k = 0; k < strlen(a); k++)
{
fprintf(f, "%c", a[k]);
}fprintf(f, " ");
for (k = 0; k < strlen(c); k++)
{
fprintf(f, "%c", c[k]);
}
fclose(f);
}
Исходные файлы для программы 11_1:
Результаты выполнения программы, выводы: