Національний технічний університет України
«КПІ імені Ігоря Сікорського»
Кафедра автоматизації проектування енергетичних процесів і систем
ЗВІТ
з лабораторної роботи № 1
з дисципліни «Алгоритмізація та Програмування 2»
Тема «Файли: створення, запис, читання»
Варіант: 18
Завдання на лабораторну роботу
1. Ознайомитись з основними функціями для роботи з файлами.2. У якості індивідуального завдання необхідно написати програмний код, що реалізує створення двовимірного квадратного масиву розмірністю SIZE; виконання початкової ініціалізації всіх елементів масиву; запис у файл початкових даних і значень всіх елементів двовимірного квадратного масиву; створює копію цього файлу з новим розширенням *.bak.3. Роздрукувати (вивести на екран) протокол виконання програмного коду.4. Вихідні дані вибрати за індивідуальними варіантами (див. Додаток B-1).
Мій варіант 5:
Теоретичні відомості:
Указатель на файл (переменная-указатель типа FILE *) – это указатель на
информацию, определяющую различные параметры файла, включая его имя, состояние и
текущую позицию. Указатель на файл идентифицирует конкретный дисковый файл и
используется потоком для выполнения операций ввода/вывода. Для чтения или записи файла
программа использует указатель на файл. Файловая переменная (например, file) создается
следующим оператором:
FILE *file;
Операция, при помощи которой программа впервые запрашивает доступ к файлу,
называется открытием файла. Освобождение файла в конце работы обычно называется
закрытием файла.
Функция fopen() открывает поток. Этой функцией управляют три основных параметра:
имя файла, который следует открыть, вид применения файла и указатель на файл,
возвращаемый функцией. Синтаксис: FILE * fopen(char *filename, char *mode); Описание:
функция fopen() открывает файл, именованный параметром filename и связывает его с
соответствующим потоком stream. Функция fopen() возвращает в качестве результата
адресный указатель, который будет идентифицировать поток stream в последующих
операциях.
Код програми:
#include <stdio.h>
#define SIZE 4
int main(void) {
int arr[SIZE][SIZE];
char university[] = "NTUU \"KPI\"";
char cathedra[] = "APEPS";
char group[] = "TR-15";
char surname[] = "Cherevatyi";
int variant = 5;
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
arr[i][j] = 9 + rand() % (99 + 1 - 9);
}
}
FILE *output;
output = fopen("dir\\Cherevatyi\\output.bak", "w+");
fprintf(output, "University = %s\nCathedra = %s\nGroup name = %s\nStudent's surname = %s\nLaboratory work variant = %d\n", university, cathedra, group, surname, variant);
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
fprintf(output, "[%d]", arr[i][j]);
}
fprintf(output, "\n");
}
fclose(output);
return 0;
}
Посилання на програму в repl.it: https://replit.com/join/nlvguncrsg-dolphiedude
Приклад результату кода:
Висновок:
Я ознайомився з основними функціями для роботи з файлами. Дослідив особливості їхнього застосування. Це мені дозволило написати програму, що створює новий файл та записує у нього дані, починаючи з чисел, закінчуючи табличними відображеннями масивів. Тобто реалізував ініціалізацію та заповнення змінних, заповнив двовимірний масив випадковими числами, створив новий output.bak файл та записав у нього значення цих змінних. Особливих труднощів при виконанні не зустрів