Обробка символьних рядків. Робота з файлами

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра З В І Т до лабораторної роботи №4 з курсу: «Алгоритмічні мови та програмування» на тему: «Обробка символьних рядків. Робота з файлами» Варіант № 3 МЕТА РОБОТИ: вивчити елементи мови Сі, рядки, рядкові константи, принципи потокового вводу-виводу, стандартні файли і функції для роботи з ними. ЗАВДАННЯ Сформувати і вивести на екран текстовий файл, в якому містяться слова які починаються на голосні літери. Підрахувати кількість слів, в яких кількість символів більша трьох. СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ФУНКЦІЙ, ВИКОРИСТАНИХ У БЛОК-СХЕМІ АЛГОРИТМУ І ПРОГРАМІ, ТА ЇХ ПОЯСНЕННЯ i,k – змінні цілого типу; c – символьна змінна, яка в яку записується поточний символ вхідного файлу; main() – головна функція; isvowel() – функція перевірки на гласність букви isalpha() – функція перевірки чи є символ буквою fprintf() – функція виводу в файл; exit() – функція виходу з програми; fopen() – функція відкриття файлу; fclose() – функція закриття файлу; ТЕКСТ ПРОГРАМИ #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<ctype.h> bool isvowel(char ch); void main() { FILE *f, *fp; f=fopen("1.txt", "r"); if(f==NULL) { perror("1.txt is INCORRECT"); exit(0); } fp=fopen("2.txt", "w"); if(fp==NULL) { perror("2.txt is INCORRECT"); exit(0); } char c=NULL, x=NULL; while((c=fgetc(f))!=EOF) { if(!isalpha(x) && isalpha(c) && isvowel(c)) { fprintf(fp," %c",c); while((c=fgetc(f))!=EOF) { if(isalpha(c)) fprintf(fp,"%c",c); else break; } } x=c; } fseek(f, 0L, SEEK_SET); char a[5]; int count=0; int flag=0; while(!feof(f)) { if(flag==0) a[0]=getc(f); else a[0]=a[flag]; if(a[0]!=EOF && !isalpha(a[0])) { a[1]=getc(f); flag=1; if(isalpha(a[1])) { a[2]=getc(f); flag=2; if(isalpha(a[2])) { a[3]=getc(f); flag=3; if(isalpha(a[3])) { a[4]=getc(f); flag=4; if(isalpha(a[4])) { count++; flag=0; } } } } } } fprintf(fp,"\n Number of words : %d ",count); fclose(f); fclose(fp); } bool isvowel(char ch) { char vowels[] = "aeiouy"; bool flag; if(isupper(ch)) ch=tolower(ch); for(int i=0; i<6; i++) { flag=0; if(ch==vowels[i]) { flag=1; break; } } return flag; } РЕЗУЛЬТАТ РОБОТИ ПРОГРАМИ #include<stdio.h> #include<math.h> #define n 5 void sort(int a[n][n]); void sum(int a[n][n]); void main () { int a[n][n]; printf("Input elements of array:\n"); for (int i=0; i<n; i++) for (int j=0; j<n; j++) scanf("%d", &a[i][j]); printf("\n====== YOUR ARRAY ======= \n"); for (int i=0; i<n; i++) { for (int j=0; j<n; j++) printf ("%d\t", a[i][j]); printf("\n"); } sum(a); sort(a); printf("\n====== SORTED ARRAY ======\n"); for (int i=0; i<n; i++) { for (int j=0; j<n; j++) printf ("%d\t", a[i][j]); printf("\n"); } } void sort(int a[n][n]) { for (int j=0; j<n; j++) { int p,buf; for (int i=0; i<n; i++) { buf=a[i][j]; p=i-1; while(a[p][j] < buf && p>=0) { a[p+1][j] = a[p][j]; p--; } a[p+1][j] = buf; } } } void sum(int a[n][n]) { int max=0,suma=0; for (int i=0; i<n; i++) { max=a[i][0]; for(int j=0; j<n; j++) { if (a[i][j]>max) max=a[i][j]; } printf("Maximum element of %d line: %d \n", i+1, max); suma+=max; } printf("Sum of maximum : %d\n", suma); } include include int a int a int a Input elements of array int i i i int a i YOUR ARRAY int i i i int a i a a ARRAY int i i i int a i int a int int int i i i a i i a a a a int a int int i i i a i int if a i a i element of i of Number of words : 39
Антиботан аватар за замовчуванням

25.01.2014 19:01-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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