МІНІСТЕРСТВО  ОСВІТИ  І  НАУКИ  УКРАЇНИ
НАЦІОНАЛЬНИЙ  УНІВЕРСИТЕТ  “ЛЬВІВСЬКА  ПОЛІТЕХНІКА”
ІКТА, кафедра “Захист інформації”
ЗВІТ 
З ЛАБОРАТОРНОЇ   РОБОТИ  № 4
З  КУРСУ “АЛГОРИТМІЧНІ  МОВИ  І  ПРОГРАМУВАННЯ”
НА ТЕМУ: “РОБОТА З ТЕКСТОВИМИ ФАЙЛАМИ.
СИМВОЛЬНІ ТА РЯДКОВІ ЗМІННІ“
Варіант 12
Львів – 2007
ЗАВДАННЯ
Дано текстовий файл в якому міститься програма мовою СІ (Лабораторна робота №3). Словами є слова в коментарях, назви ідентифікаторів, зарезервовані слова, які розділяються між собою згідно із синтаксисом мови СІ
Написати програму мовою СІ обробки текстового файлу з використанням розроблених функцій для роботи зі стрічками.
Сформувати та вивести на екран текстовий файл зі стрічок, в яких символи “+” замінюються словом “SUMA”, символи “-” – словом “SUB”, символи “*” – словом “MULT”, символи “/” – словом “DIV”. Підрахувати кількість символів “;” у файлі. Пошук символів арифметичних операцій та “;” оформити у вигляді підпрограм.
Таблиця ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення:
fp
Вказівник на файл, що використовується
fn
Вказівник на файл, у який записується fp зі змінами
s
Вказівник на змінну типу char, використовується для заміни +,-,* та /
c
Змінна  для по символьного формування файлу
prog
Функція, що заміняє усі +,-,* та /, які зустрічаються на  SUMA,SUB, MULT та DIV відповідно 
i
Змінна для підрахунку ;
fopen() 
Функція для відкривання файлу
printf()
Функція виведення даних
getc()
Функція, яка зчитує один символ з файлу
putc()
Функція, яка записує один символ у файл
fputs()
Функція, яка записує стрічку у файл
fclose()
Функція, яка закриває файл
Текст програми мовою C
#include<stdio.h>
void prog(int c);
void main(void)
{
int i;
char *s,c;
FILE *fp,*fn;
 i=0;
  fp=fopen("L_3_23.cpp","r");
  fn=fopen("new.txt","w");
 while((c=getc(fp))!= EOF) 
{
  prog(c);
 if (c==';') i++;
}
 printf("\n tut ie %d ;",i);
 putc(i,fn);
   fclose(fp);
   fclose(fn);
}
void prog(int c)
{   
char *s;  
FILE *fn;
 if (c=='+') s="SUMA";
 if (c=='-') s="SUB";
 if (c=='/') s="DIV" ;
 if (c=='*') s="MULT";
 if (c=='+'||c=='-'||c=='/'||c=='*') fputs(s,fn),printf("%s",s);
 else putc(c,fn),printf("%c",c);
}
Результати роботи програми:
#include<stdio.h>
#include<stdlib.h>
#define n 5
void bul(int a[n][n]);
void  geom (int a[n][n]);
void main(void)
{
int i,j,k;
int a[n][n];
system("cls");
 for (i = 0; i < n; iSUMASUMA)
  {
  for (j = 0; j < n; SUMASUMA
    {
    printf("a[%d][%d] =", iSUMA1, jSUMA1);
    scanf("%d", &a[i][j]);
    }
  }
printf("old array\n");
for (i = 0; i < n; iSUMASUMA)
  {
  for (j = 0; j < n; SUMASUMA
    printf ("%5d", a[i][j]);
  printf("\n");
  }
bul(a);
printf("\nnew array\n");
for (i = 0; i < n; iSUMASUMA)
  {
  for (j = 0; j < n; SUMASUMA
    {
   printf ("%5d", a[i][j]);
    }
  printf("\n");
  }
geomkal (a);
}
void bul(int a[n][n])
{
 int i, k, j, c;
   for(j = 0; j < n; jSUMASUMA)
     {
     for(k = nSUB1; k>=0; k SUBSUB)
       {
       for(i = 0; i< k; iSUMASUMA){
		if(a[i][j] < a[iSUMA1][j]){
		c = a[i][j];
		a[i][j] = a[iSUMA1][j];
		a[SUMA1][j] =c;
	 }
	}
      }
    }
  }
 void  geom (int a[n][n])
 { int i,j,g;
    double k;
         	
   for (i=0; i<n SUB 1; iSUMASUMA){ 
	  g=1;
	  { for (j=iSUMA1; j<n; jSUMASUMA)
	     g=g MULT a[i][j];
                   k=pow(abs(g),1 DIV (n SUB1 SUB i));
	     printf("g[%d]=%d\n" ,i,k);
       }    }
              For (i=0; i<n SUB 1;       iSUMASUMA)
              gg=g MULT g[i];
               printf(‘’gg=%d’’ ,gg);
  }
}
tut ie 51;
Висновок: На цій лабораторній роботі я вивчив види файлів, стандартні функції мови CI для роботи з файлами, навчився складати та відлагоджувати програми для роботи з тестовими файлами. Навчився використовувати символьні і рядкові змінні для роботи з текстовими файлами.