лр 11 по дисциплине программирование. отчет по лр11программирование. Лабораторная работа 11 по дисциплине Программирование на тему Файлы Студент гр. Ивт222 Сарсенбаев М. С
Скачать 238.54 Kb.
|
Министерство науки и высшего образования РФ Федеральное государственное автономное образовательное учреждение высшего образования «Омский государственный технический университет» Кафедра «Информатика и вычислительная техника» Отчёт Лабораторная работа № 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: Результаты выполнения программы, выводы: |