МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра
З В І Т
до лабораторної роботи №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