МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
Кафедра БІТ
З В І Т
до лабораторної роботи №4
з курсу: «Технології програмування»
на тему: «Обробка символьних рядків. Робота з файлами»
Варіант № 6
Мета роботи – вивчити елементи мови Сі, рядки, рядкові константи, принципи потокового вводу-виводу, стандартні файли і функції для роботи з ними.
Завдання
Ознайомитися з організацією роботи вводу-виводу в мові Cі.
Ознайомитися з потоковим вводом, відкриттям і закриттям потоку в мові Cі.
Ознайомитися з стандартними функціями для роботи з файлами в мові Cі.
Дано текстовий файл, в якому міститься програма мовою С (Лабораторна робота №3). Скласти блок-схеми алгоритмів та програму мовою С для обробки текстового файлу з використанням розроблених функцій для роботи зі стрічками. Словами є слова в коментарях, назви ідентифікаторів, зарезервовані слова, які розділяються між собою згідно із синтаксисом мови С. Дані для роботи беруться з табл.1 за вказівкою викладача.
Блок-схема алгоритму програми
/
/
/
Список ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення
FILE – структурний тип, що ініціалізує потік;
line[n][n] – матриця розмірності n на n;
i(j) – змінна дійсного типу, яка є індексом рядків(стовпців).
n(p) – розмірність масиву, кількість рядків(стовпців).
main( ) – головна функція;
fopen – відкриття потоку для подальшої роботи з ним;
if( ) – умовний оператор;
perror – функція, що виводить помилку, описану користувчем;
exit – функція, що завершує роботу програми;
fgetc() – функція, що здійснює ввід(читання) одного символу з файлу;
fputc() – функція, що здійснює запис одного символу в файл;
printf( ) – функція, що здійснює форматований вивід даних;
fclose() – функція, що закриває потік;
goto – оператор безумовного переходу.
Текст програми
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
FILE *lab3, *lab;
int i,j,n=14,p=94,a,b;
char line[n][p];
lab3=fopen("C:\\Users\\sasha\\Desktop\\lab3.txt","r");
lab=fopen("C:\\Users\\sasha\\Desktop\\lab4.txt","w+");
if(lab3==NULL)
{
perror("could not find the file");
exit (0);
}
i=1;
for(i;i<n;i++)
{
j=1;
for (j;j<p;j++)
{
line[i][j]=fgetc(lab3);
if (line[i][j]=='=')
{
fputc('==',lab);
}
fputc(line[i][j],lab);
}
}
i=1;
for(i;i<n;i++)
{
j=1;
for (j;j<p;j++)
{
if ((line[i][j-3]=='f') && (line[i][j-2]=='o') && (line[i][j-1]=='r') && ((line[i][j]=='(') || (line[i][j]==' ')))
{
printf("for \n");
goto A;
}
}
}
A: {
i=1;
for(i;i<n;i++)
{
j=1;
for (j;j<p;j++)
{
if ((line[i][j-5]=='w') && (line[i][j-4]=='h') && (line[i][j-3]=='i') && (line[i][j-2]=='l') && (line[i][j-1]=='e') && ((line[i][j]=='(' ) || (line[i][j]==' ')))
{
printf("while \n");
goto B;
}
}
}
}
B: {
i=1;
for(i;i<n;i++)
{
j=1;
for (j;j<p;j++)
{
if ((line[i][j-2]=='d') && (line[i][j-1]=='o') && (line[i][j]==' '))
{
printf("do \n");
}
}
}
}
fclose ( lab );
fclose ( lab3 );
return 0;
}
Результати роботи програми