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

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

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

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

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

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

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

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

Рік:
2005
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Засоби системного програмування
Група:
КІ
Коротко про документ

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

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

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

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

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

  1. Тема роботи
  2. Мета роботи
  3. Завдання на лабораторну роботу
  4. Індивідуальне завдання
  5. Текст програми
  6. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів
Викладачі:Не вказано

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

текстові файлидинамічна пам'ятьматрицяаргументи функції mainмодулі програмимокровказівникифункція fopenструктура данихмову Сі

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

Міністерство освіти і науки України НУ ”Львівська політехніка” Кафедра ЕОМ Звіт про виконання лабораторної роботи №10 з курсу: „Засоби системного програмування” на тему Опрацювання файлів з текстовою інформацією Тема роботи: Опрацювання файлів з текстовою інформацією. Мета роботи: Закріпити теоретичні знання та оволодіти практичними навиками в створенні програм для опрацювання текстової інформації, що міститься в дискових файлах. Засвоїти основні методи читання, запису даних з дискових файлів текстового типу. Завдання на лабораторну роботу Розробити програмне забезпечення зі застосуванням техніки роботи з дисковими файлами відповідно до заданого варіанту. Програмне забезпечення повинно складатися з декількох модулів. Основна програма вводить та виводить дані які опрацьовуються функціями, що реалізовані як окремі модулі. Назву текстового файлу, в якому містяться дані для опрацювання, передавати через аргументи функції main(). Розміри та значення елементів матриць (в загальному не квадратних) вводити з текстового файлу. Параметри, що задають кількість рядків та стовпців повинні бути іменованими. Пам’ять під матриці виділяти динамічно. Для трикутних матриць (опираючись на їх структуру) виділяти мінімальні об’єми пам’яті. Обмін даними з функцією, що опрацьовує матрицю, виконувати через її аргументи. Результати обчислень записувати в текстовий файл. Назву файлу для запису результатів формувати на основі назви файлу з вхідними даними шляхом заміни розширення. Звернути особливу увагу на обробку помилок, які користувач може зробити при створені текстового файлу з вхідними даними. При вирішенні задач забезпечити дружній інтерфейс з користувачем. Індивідуальне завдання: Перестановка заданих (за запитом) рядків матриці Результати виконання роботи. Текст програми: int input(char *filename,char *filetmp); int output(char *filename,char *filetmp); int sort(char *filetmp); # include <stdio.h> # include <conio.h> # include <string.h> # include "labst_10.h" FILE *fp,*fq,*ftmp; int m,n,*Matrix[100][100]; int main(int argc, char *argv[]) { int j,i; char *filename,*filetmp; clrscr(); n=0;m=0; if (argc!=2) {printf("Eror read file..."); return 0;} else strcpy(filename,argv[1]); strcpy(filetmp,filename); *(filetmp+strlen(filetmp)-4)='\0'; strcat(filetmp,".bin"); if (input(filename,filetmp)==1) { sort(filetmp); printf("\n Output results.."); for(i=0;i<n;i++) { printf("\n"); for(j=0;j<m;j++) printf("M[%d][%d]=%d ",i,j,*Matrix[i][j]); } *(filename+strlen(filename)-4)='\0'; strcat(filename,".out"); output(filename,filetmp); } return 0; } # include <stdlib.h> # include <stdio.h> # include <string.h> # include <io.h> extern FILE *fp,*ftmp; int input(char *filename,char *filetmp) { char *tmp; extern int n,m,*Matrix[100][100]; int i,j; fp=fopen(filename,"rt"); ftmp=fopen(filetmp,"wb"); fscanf(fp,"%s",tmp); if (strstr(tmp,"n=")!=NULL) sscanf((tmp+2),"%d",&n); else if (strstr(tmp,"m=")!=NULL) sscanf((tmp+2),"%d",&m); fscanf(fp,"%s",tmp); if (strstr(tmp,"n=")!=NULL) sscanf((tmp+2),"%d",&n); else if (strstr(tmp,"m=")!=NULL) sscanf((tmp+2),"%d",&m); for(i=0;i<n;i++) for(j=0;j<m;j++) if ((Matrix[i][j]=(int *)malloc(sizeof(int)))==NULL) { printf("Not enought memory!!!"); return 0; } for(i=0;i<n;i++) for(j=0;j<m;j++) { fscanf(fp,"%s",tmp); sscanf(tmp,"%d",Matrix[i][j]); } write(ftmp->fd,Matrix,n*m); fclose(fp); fclose(ftmp); if (n==0 || m==0) {printf("Eror..."); return 0;} else return 1; } # include <stdio.h> # include <io.h> extern FILE *fq,*ftmp; int output(char *filename,char *filetmp) { extern int n,m,*Matrix[100][100]; int i,j; fq=fopen(filename,"wt"); ftmp=fopen(filetmp,"rb"); read(ftmp->fd,Matrix,n*m); if (fq==NULL) {puts("\nEror create output file!!!");return 0; } for(i=0;i<n;i++) { for(j=0;j<m;j++) { fprintf(fq,"%d",*Matrix[i][j]); fprintf(fq,"%s"," "); } fprintf(fq,"%s","\n"); } fclose(fq); fclose(ftmp); return 1; } # include <stdio.h> # include <io.h> extern FILE *ftmp; void sort(char *filetmp) { int line[10],l1,l2,j,i; extern const int n,m; int *Matrix[100][100]; ftmp=fopen(filetmp,"rb"); read(ftmp->fd,Matrix,n*m); do { printf("\nEnter number of line1 to change line2"); scanf("%d %d",&l1,&l2); } while ((l1>=n)||(l2>=n)); for(i=0;i<n;i++) for(j=0;j<m;j++) printf("\n Matrix[%d][%d]=%d",i,j,*Matrix[i][j]); for(j=0;j<m;j++) { line[j]=*Matrix[l1][j]; *Matrix[l1][j]=*Matrix[l2][j]; *Matrix[l2][j]=line[j]; } for(i=0;i<n;i++) for(j=0;j<m;j++) printf("\n Matrix[%d][%d]=%d",i,j,*Matrix[i][j]); ftmp=fopen(filetmp,"wb"); write(ftmp->fd,Matrix,n*m); } Внаслідок виконання програми на екрані отримаємо: ..\labst_10.exe Висновок: на даній лабораторній роботі я оволодів практичними навиками роботи з текстовими файлами на мові Сі.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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