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