В ходе выполнения работы изучил способы описания файлов и основные принципы работы с файлами в различных режимах: создания, модификации, добавления и чтения.
Министерство образования Российской Федерации
Пензенский государственный университет
Кафедра «Вычислительная техника»
ОТЧЕТ
по лабораторной работе №8
по курсу «Программирование»
на тему «ФУНКЦИИ»
Выполнил:
студенты группы 20ВВ1
DD
Принял:
к.т.н., доцент Юрова О.В.
Пенза 2020
Цель работы:
изучение способов описания файлов и основных принципов работы с файлами в различных режимах: создания, модификации, добавления и чтения.
Методические указания:
При составлении программы необходимо учитывать следующие положения:
- имена файлов исходных данных (в режимах начального формирования и добавления) и файлов результатов должны вводиться с клавиатуры;
- при отсутствии на диске указанного файла в режимах чтения и добавления на экран должно выдаваться предупреждающее сообщение и осуществляться повторный запрос имени файла.
Лабораторное задание
1. (Вариант №2)
а) Задан массив А(20). Вывести на экран сначала его неотрицательные элементы, затем отрицательные.
б) Вычислить среднее арифметическое элементов каждого столбца матрицы М(10,10).
2. В задание №6 лабораторной работы добавить работу с файлами:
а) в функции ввода исходные данные записывать в файл;
б) в функциях обработки и вывода данные читать из файла, результат сохранять в файл;
в) для второго задания лабораторной работы №6 данные дописывать в файл с исходными данными для первого задания;
|
|
г) результаты выполнения и первого, и второго задания тоже должны быть сохранены в одном файле.
3. Выполнить программу на компьютере и оценить правильность ее работы.
4. Вывести на печать содержимое файла исходных данных и результатов работы программы.
Листинг программы .
#define _CRT_SECURE_NO_WARNINGS
#define _CRT_NONSTDC_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <locale.h>
#include <time.h>
void main()
{
setlocale(0, "");
FILE* inp;
FILE* outp;
//Задание а
int A[20];
int* pA = A;
int tmp;
char finp[20]="inp.txt";
char foutp[20]= "outp.txt";
srand(time(NULL));
printf("Ведите имя файла начальных данных: ");
//gets_s(finp);
printf("Ведите имя файла результирующих данных: ");
//gets_s(foutp);
inp = fopen(finp, "w");
printf("Открытие файла %s: ", finp);
if (inp == NULL)
printf("ошибка\n");
else
printf("выполнено\n");
printf("Исходный массив: \n");
for (pA = A; pA < &A[20]; pA++)
{
*pA = rand() % 20 - 10;
printf("%4d", *pA);
fprintf(inp, "%4d", *pA);
}
printf("\n");
fprintf(inp, "\n");
fclose(inp);
inp = fopen(finp, "r");
outp = fopen(foutp, "w");
printf("Преобразованный массив: \n");
|
|
for (int i=0; i < 20; i++)
{
fscanf(inp, "%4d", &tmp);
if (tmp >= 0)
{
printf("%4d", tmp);
fprintf(outp, "%4d", tmp);
}
}
fseek(inp, 0, SEEK_SET);
for (int i = 0; i < 20; i++)
{
fscanf(inp, "%4d", &tmp);
if (tmp < 0)
{
printf("%4d", tmp);
fprintf(outp, "%4d", tmp);
}
}
printf("\n\n");
fprintf(outp, "\n");
fclose(inp);
fclose(outp);
//Задание б
int M[10][10];
int N[10][10];
int sum = 0;
inp = fopen(finp, "a");
printf("Исходная матрица: \n");
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
*(*(M + i) + j) = rand() % 20 - 10;
printf("%6d", *(*(M + i) + j));
fprintf(inp, "%6d", *(*(M + i) + j));
}
printf("\n");
fprintf(inp, "\n");
}
fclose(inp);
inp = fopen(finp, "r");
outp = fopen(foutp, "a");
fseek(inp, 20*4, SEEK_SET);
printf("\n\n\n");
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
fscanf(inp, "%6d", &N[i][j]);
}
}
printf("\n\n");
fprintf(outp, "\n");
printf("Суммы по столбцам: \n");
fprintf(outp, "Суммы по столбцам: \n");
for (int j = 0; j < 10; j++) {
sum = 0;
for (int i = 0; i < 10; i++) {
sum += *(*(N + i) + j);
}
printf("%6.1lf", double(sum) / 10);
fprintf(outp, "%6.1lf", double(sum) / 10);
}
printf("\n\n");
|
|
fclose(inp);
fclose(outp);
getchar();
}
Схема программы
Рисунок 1 – Схема программы
Результаты работы программы
Результаты работы программы в консоли показаны на рисунке 2.
Рисунок 2 – Результат работы программы.
Содержание файлов со входными данными и результатами работы программы представлены на рисунках 3 и 4.
Рисунок 3 – Содержание файла с начальными данными inp.txt
Рисунок 4 – Содержание файла с результатами работы программы outp.txt
На рисунке 5, 6, 7, 8 показан протокол трассировки после ввода переменных.
Рисунок 5 - Протокол трассировки.
Рисунок 6 - Протокол трассировки.
Рисунок 7 - Протокол трассировки.
Рисунок 8 - Протокол трассировки.
Вывод:
В ходе выполнения работы изучил способы описания файлов и основные принципы работы с файлами в различных режимах: создания, модификации, добавления и чтения.
Дата добавления: 2021-01-20; просмотров: 138; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!