DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Опрацювання файлів з текстовою інформацією

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
КН
Кафедра:
Кафедра програмного забезпечення

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

Рік:
2005
Тип роботи:
Лабораторна робота
Предмет:
Програмування
Група:
КН-11
Коротко про документ

Про що ця робота

Лабораторна робота присвячена опрацюванню текстових файлів та динамічних масивів мовою програмування Сі. У роботі реалізовано зчитування даних із файлу, динамічний виділ пам'яті для трикутних матриць та запис результатів обчислень.

У роботі розглядаються

  • Опрацювання файлів
  • Динамічна пам'ять
  • Мова програмування Сі
  • Двовимірні масиви
  • Трикутні матриці
  • Обробка помилок
  • Модульне програмування

Зміст і розділи

  1. Мета роботи
  2. Завдання на лабораторну роботу
  3. Текст laba9.c
  4. Текст laba9fn.h
  5. Текст laba9fn.c
  6. Результат роботи програми
  7. Алгоритм програми
  8. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів
Викладачі:Викладач кафедри

Ключові поняття

текстовий файлдинамічна пам'ятьмасивтрикутна матрицяфункція mainфайловий потікаргументи командного рядкаобробка помилоксереднє арифметичнемодуль

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

Міністерство освіти та науки України НУ “Львівська політехніка” Лабораторна робота №9 “Опрацювання файлів з текстовою інформацією” Львів 2005 Назва роботи: Опрацювання файлів з текстовою інформацією. Мета роботи: Закріпити теоретичні знання та оволодіти практичними навиками в створенні програм для опрацювання текстової інформації, що міститься в дискових файлах. Засвоїти основні методи читання, запису даних з дискових файлів текстового типу. Завдання на лабораторну роботу. Розробити програмне забезпечення зі застосуванням техніки роботи з дисковими файлами відповідно до заданого варіанту. Програмне забезпечення повинно складатися з декількох модулів. Основна програма вводить та виводить дані які опрацьовуються функціями, що реалізовані як окремі модулі. Назву текстового файлу, в якому містяться дані для опрацювання, передавати через аргументи функції main(). Розміри та значення елементів матриць (в загальному не квадратних) вводити з текстового файлу. Параметри, що задають кількість рядків та стовпців повинні бути іменованими. Пам’ять під матриці виділяти динамічно. Для трикутних матриць (опираючись на їх структуру) виділяти мінімальні об’єми пам’яті. Обмін даними з функцією, що опрацьовує матрицю, виконувати через її аргументи. Результати обчислень записувати в текстовий файл. Назву файлу для запису результатів формувати на основі назви файлу з вхідними даними шляхом заміни розширення. Звернути особливу увагу на обробку помилок, які користувач може зробити при створені текстового файлу з вхідними даними. При вирішенні задач забезпечити дружній інтерфейс з користувачем. Текст laba9.c: #include <stdio.h> #include <conio.h> #include <alloc.h> #include <string.h> #include <dir.h> #include "laba9fn.h" //підключення власного заготовочного файлу int main(int argc,char* argv[]) { char file_in[20],file_out[20],drive[5],dir[10],name[10],ext[5]; int num,width,j,i; int sum; float ser; FILE *f1,*f2; //файлові потоки int **masiv; //вказівка на двохвимірний масив clrscr(); //очистка екрану if(argc!=2) //перевірка кількості параметрів {printf("Error in arguments");return 1;} sscanf(argv[1],"%s",file_in); //зчитування імені файлу fnsplit(file_in,drive,dir,name,ext); //розбивання імені на складові fnmerge(file_out,drive,dir,name,"out"); //зміна розширення імені файлу if(!(f1=fopen(file_in,"r"))) //відкриття файлу для читання {printf("Error: cannot open input file");return 1;} if(!(f2=fopen(file_out,"w"))) //відкриття файлу для запису {printf("Error: cannot create output file");return 1;} //перевірка чи файл пустий if(feof(f1)){printf("Error: input file is empty");return 1;} if(!(fscanf(f1,"%d",&width))){printf("Error: not number in input file");return 1;} for(i=1,num=0;i<width+1;num+=i++); masiv=(int **)calloc(width,sizeof(int*));//виділення памяті під масив for(i=0;i<width;i++) masiv[i]=(int*)calloc(i+1,sizeof(int)); //зчитування вхідних даних з файлу for(i=0;i<width;i++) for(j=0;j<i+1;j++) { if(feof(f1)){printf("Error: input file is not complete");return 1;} if(!fscanf(f1,"%d",&masiv[i][j])){printf("Error: not number in input file");return 1;} } //підрахунок суми та середнього арифметичного всіх елементів sum=sum_el(masiv,width); ser=ser_el(masiv,width); //вивід результатів fprintf(f2,"Summary of elements: %d\n",sum); fprintf(f2,"Seredne arifmet of elements: %.4f\n",ser); //закриття файлів fclose(f1); fclose(f2); free(masiv); return 0; } Текст laba9fn.h //прототипи функцій int sum_el(int** mas,int count); float ser_el(int** mas,int count); Текст laba9fn.c: #include "laba9fn.h" int sum_el(int** mas,int count) {//підрахунок суми елементів int i,j,sum=0; for(i=0;i<count;i++) for(j=0;j<i+1;j++)sum+=mas[i][j]; return sum; } float ser_el(int** mas,int count) {//підрахунок середнього арифметичного значення всіх елементів int i,j,num=0,sum=0; for(i=0;i<count;i++) for(j=0;j<i+1;j++){sum+=mas[i][j];num++;} return (float)(sum)/num; } Результат роботи програми: Вхідний файл: 4 1 2 3 4 5 6 7 8 9 10 Вихідний файл :Summa= 551 Seredn= 5.5000 Алгоритм програми Висновок: Ознайомились з масивами та основними прийомами створення та опрацювання динамічних масивів. Організували зчитування вхідної інформації з текстового файлу.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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