Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Алгоритмізація та програмування 1: Базові концепції програмування
ЗВІТ
до лабораторної роботи №1
«Файли: створення, запис, читання»
(ТЕМА)
Варіант № 7
Дата «8» квітня 2022
Завдання
Ознайомитись з основними функціями для роботи з файлами.
2. У якості індивідуального завдання необхідно написати програмний код, що реалізує створення двовимірного квадратного масиву розмірністю SIZE; виконання початкової ініціалізації всіх елементів масиву; запис у файл початкових даних і значень всіх елементів двовимірного квадратного масиву; створює копію цього файлу з новим розширенням *.bak.
3. Роздрукувати (вивести на екран) протокол виконання програмного коду.
4. Вихідні дані вибрати за індивідуальними варіантами (див. Додаток B-1).
Вхідні дані до програми
Початкові дані для запису в файл – КПІ ім. Ігоря Сікорського, кафедра АПЕПС, індекс академічної групи, прізвище студента, номер варіанту.
Основні дані – значення усіх елементів двовимірного квадратного масиву розмірністю SIZE.
Дивитися Додаток B-1 для вибору варіанту.
/
Теоритичні відомості
На початку програми ініціалізуються змінні с даними студента та створення масиву через командну строку. Після цього створю’ється два файли. Далі через fopen відкривається перший файл з можливостями редугування (завдяки аргументу "w+t") та йому надається назва і розширення .txt.
Нижче перевіряється чи відкритий файл, для того, щоб повідомити про помилку. Потім у файл записуються дані про студента та масив чисел типу float. Після цього роботу з файлом завершено завдяки fclose.
Далі знову відкривається перший файл, але вже з аргументом "r+t", що означає читання файлу, а потім другий з аргументом "w+t".
Створено цикл, який використовує функуцію feof, що використовується для знаходження кінця файла. У циклі перемінній типу char надається значення fgetc(original), котре повертає наступне за позицією значення першого файлу. Далі знову перевіряється чи дійшли до кінця файлу. Потім використовується функція fputc, яка записує у другий файл значення перемінної. Два файли закриваються з fclose.
Блок схема
/
Результат програми
/
//
Висновок: було написано код на мові програмування С, який створює файл розширення .txt, записує туди інформацію(дані про студента та масив чисел), а потім створює копію цього файла з росширенням .bak. Було використано багато функцій для роботи з файлами, такими як fopen(), fclose(), feof(), fprintf(), fputc() та іншими.
Посилання на repl.it: https://replit.com/join/brxhatcmui-vladsosiedskii
Код програми
// 08.04.2022 lab_1 Sosisedskyi TR-15
#include <stdio.h>
#include <stdlib.h>
#define SIZE 4
int main(void) {
float arr[SIZE][SIZE] = {
{1.1, 2.2, 3.3, 4.4},
{5.5, 6.6, 7.7, 8.8},
{9.9,10.1,11.11,12.12},
{13.13,14.14,15.15,16.16}};
char temp;
char university[] = "КПІ ім. Ігоря Сікорського";
char department[] = "АПЕПС";
char group[] = "ТР-15";
char student[] = "Сосєдський";
int variant = 1;
FILE *original, *copy;
printf("Створення файлу з розширенням .txt\n");
original = fopen("dir\\original.txt", "w+t");
fprintf(original,"%s\nКафедра %s\nГрупа %s\n%s\nВаріант %d\n\nДані масиву:\n",university, department, group, student, variant);
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
fprintf(original, "%.2f\t", arr[i][j]);
}
fprintf(original, "\n");
}
printf("Дані занесено до файлу\n");
fclose(original);
original = fopen("dir\\original.txt", "r+t");
copy = fopen("dir\\copy.bak", "w+t");
if (copy == NULL || original == NULL) {
printf("Файл не був відкритий");
return 1;
}
while(!feof(original)){
temp = fgetc(original);
if(feof(original)==0)
fputc(temp, copy);
}
fclose(original);
fclose(copy);
printf("Створено копію файла з роширенням .bak");
return 0;
}