DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Файли: створення, запис, читання

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2023
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Алгоритмізація та програмування

Частина тексту файла (без зображень, графіків і формул):

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Алгоритмізація та програмування 2: Процедурне програмування ЗВІТ до лабораторної роботи № 1 «Файли: створення, запис, читання» Варіант 16 Дата «23» лютого 2022 ЗАВДАННЯ: 1. Ознайомитись з основними функціями для роботи з файлами. 2. У якості індивідуального завдання необхідно написати програмний код, що реалізує створення двовимірного квадратного масиву розмірністю SIZE; виконання початкової ініціалізації всіх елементів масиву; запис у файл початкових даних і значень всіх елементів двовимірного квадратного масиву; створює копію цього файлу з новим розширенням *.bak. 3. Роздрукувати (вивести на екран) протокол виконання програмного коду. 4. Вихідні дані вибрати за індивідуальними варіантами (див. Додаток B-1). Варіант завданнь: Лабораторна робота №7: За варінатом 16 – з таблиці з рисунка 1 варіант 4. / Рисунок 1. Теоритичні відомості: Покажчик на файл (змінна-покажчик типу FILE *) – це покажчик на інформацію, що визначає різні параметри файлу, включаючи його ім'я, стан та поточну позицію. Вказівник на файл ідентифікує конкретний дисковий файл та використовується потоком для виконання операцій введення/виводу. Для читання або запису файлу програма використовує вказівник на файл. Файлова змінна (наприклад, файл) створюється наступним оператором: FILE *file; Операція, за допомогою якої програма вперше запитує доступ до файлу, називається відкриттям файлу. Звільнення файлу в кінці роботи зазвичай називається закриттям файлу. Функція fopen() відкриває потік. Цією функцією керують три основні параметри: ім'я файлу, який слід відкрити, вид застосування файлу та вказівник на файл, повертається функцією. Синтаксис: FILE * fopen (char * filename, char * mode); Опис: функція fopen() відкриває файл, іменований параметром filename і пов'язує його з відповідним потоком stream. Функція fopen() повертає як результат адресний покажчик, який ідентифікуватиме потік stream у наступних операціях. Файл може бути відкритий у таких режимах (mode): r відкриття файлу лише для читання; w створення файлу для запису; а приєднання, відкриття для запису в кінець файлу або створення запису, якщо файл не існує; r+ відкриття існуючого файлу для оновлення (читання та запису); w+ створення нового файлу для зміни; a+ відкриття для приєднання; відкриття (або створення, якщо файл не існує) для оновлення на кінець файлу. Якщо файл відкривається або створюється в текстовому режимі, можна додати символ t до значення параметра mode (rt, w+t тощо); аналогічно, для специфікації бінарного режиму можна до значення параметра mode додати символ b (wb, a+b тощо). Важливо: Функція exit() використовується для припинення роботи програми з появою помилки. Якщо exit() звернулися з функції, викликаної головною програмою, то припиняє роботу вся програма, а не лише ця функція. Особливістю exit() те, що вона закриває будь-які файли, відкриті функцією fopen(). Це робить вихід із програми коректним. Аргументом exit() є номер коду помилки, він може передаватися іншій програмі, якщо вихідна припинила роботу. Існує угода, що 0 вказує на нормальне завершення, а будь-яке інше значення сигналізує про помилки. Блок копіювання даних: while(feof(infile) == 0) { ch = getc(infile); if(feof(infile) == 0) putc(ch, outfile); } Блок-схеми Повна програма: / Рисунок 2. Вивід програми: / Рисунок 3. / Рисунок 4. / Рисунок 5. / Рисунок 6. Код програми: Посилання на Repl.it: https://replit.com/join/obofrnarer-tr-15khavkin #include<stdio.h> #include <stdlib.h> //Зчитування вхідних данних з командної строки int main(int argc, char *argv[]){ if(argc != 50) { printf("За варіантом потрібно 49 елементів, помилка, зупинка програми\n"); exit(1); } printf("Зчитування с командного рядка було успішним, продовження роботи програми"); //Створення, ініціалізація та присвоення массива його значень з командної строки float arr[7][7]; int count=1; printf("\nІніціалізація вхідного двовимірного массиву\n"); for(int i=0; i<7; i++){ for(int j=0; j<7; j++){ arr[i][j]=atof(argv[count]); printf("\t%.2f\t", arr[i][j]); count++; } printf("\n"); } FILE *stream, *infile, *outfile; char ind[128]; char name[128]; int var; //Ввод початкових данних printf("\n\nВведіть початкові дані\n"); printf("Індекс академіної групи: "); scanf("%s", ind); printf("Прізвище студента: "); scanf("%s", name); printf("Варіант: "); scanf("%d", &var); stream = fopen("dir/Lab1.txt","w+"); //Запис данних у створений файл fprintf(stream,"Початкові дані:\nКПІ ім. Ігоря сікорського\nКафедра АПЕПС\nІндекс группи: %s\nПрізвище студента: %s\nНомер варіанту: %d\n", ind, name, var); fprintf(stream, "Вхідний масив:\n"); for(int i=0; i<7; i++){ for(int j=0; j<7; j++){ fprintf(stream, "%f ", arr[i][j]); } } fclose(stream);//Збереження та закритя файлу printf("Дані збережені успішно"); //Відкриття файлу який копіюють і файла який копіює if((infile = fopen("dir/Lab1.txt", "rb")) == NULL) { printf("Вихідний файл не був відкрит"); return 1; } if((outfile = fopen("dir/Lab1.bak", "wb")) == NULL) { printf("Вхідний файл не був відкрит"); return 1; } char ch; //Копіювання файлу while(feof(infile) == 0) { ch = getc(infile); if(feof(infile) == 0) putc(ch, outfile); } printf("\nДані скопійовані успішно"); fclose(outfile); fclose(infile); return 0; } Висновок: У цій лабораторної роботі ознайомилися з основними функціями для роботи з файлами, а також основний блок для копіювання файлу посимвольно. Було створено програмний код для створення, ініціалізації двовимірного квадратного масиву, створення файлу та запис у файл початкових даних і значень всіх елементів. Також код створює додатковий файл з розширенням *bak, у який попередній файл. Створенні блок-схема до коду. Зроблено звіт з лабораторної роботи та вчасно надіслано викладачу на перевірку.
Антиботан аватар за замовчуванням

19.06.2023 18:33

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!