МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
Кафедра захисту інформації
З В І Т
До лабораторної роботи №4
з курсу:
„Алгоритмічні мови та програмування”
на тему:
„ Обробка символьних рядків. Робота з файлами ”
Варіант 6
Мета:
Вивчити елементи мови Сі, рядки, рядкові константи, принципи потокового вводу-виводу, стандартні файли і функції для роботи з ними.
Завдання:
Скласти блок-схему алгоритму та програму мовою Сі згідно з завданням. Сформувати і записати в текстовий файл, в якому символ «=» замінити символом «==». Вивести список всіх операторів циклу без повторень.
Забезпечити ввід аргументів з клавіатури та вивід результату на дисплей.
Список індентифікаторів, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення
i,w,d,f – змінні цілого типу, які є аргументами виразу;
b[n],W[n],F[n],D[n]- лінійний масив з n елементів типу int;
main() – головна функція;
FILE *f – об’єкт структурного типу.
ff=fopen(ім’я_файлу, режим відкриття) – функція відкриття потоку;
fclose(ff) – функція закриття потоку;
fputc(), fgetc() – ввід(читання) одного символу з файлу.
Блок-схема алгоритму
Текст програми:
#include <stdio.h>
#define n 6
void main (void)
{
int i,b[n],w,d,f,W[6],D[3],F[4];
FILE *read, *write;
read=fopen("laba_3_6.c","r");
write=fopen("REZ.txt","w");
for(i=0;i<n;i++) b[i]=fgetc(read);
do
{
if((w!=1)&&(b[0]==32)&&(b[1]==119)&&(b[2]==104)&&(b[3]==105)
&&(b[4]==108)&&(b[5]==101)){w=1;for(i=0;i<6;i++)W[i]=b[i];}
if((f!=1)&&(b[0]==32)&&(b[1]==102)&&(b[2]==111)
&&(b[3]==114)){f=1;for(i=0;i<4;i++)F[i]=b[i];}
if((d!=1)&&(b[0]==32)&&(b[1]==100)&&(b[2]==111))
{d=1;for(i=0;i<3;i++)D[i]=b[i];}
fputc (b[0],write);
if (b[0] == '=')fputc ('=',write);
for(i=1;i<n;i++)b[i-1]=b[i];
b[n-1]=fgetc(read);
}
while(b[0]!=EOF);
if(w==1) for(i=0;i<6;i++)fputc(W[i],write);
if(f==1) for(i=0;i<4;i++)fputc(F[i],write);
if(d==1) for(i=0;i<3;i++)fputc(D[i],write);
fclose(read);
fclose(write);
}
Результат виконання програми:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define n 5
void scan(int a[n][n]);
void print(int a[n][n]);
void fF(int a[n][n],double s[n],double F);
void sort(int a[n][n]);
void main(void)
{
int i,j, a[n][n];
double s[n],F;
system("cls");
scan(a);
printf("Print\n");print(a);
sort(a);
printf("Print_new\n");print(a);
fF(a,s,F);
}
void scan(int a[n][n])
{
int i,j;
printf("Scan\n");
for(i==0;i<n;i++)
{
for(j==0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
}
void print(int a[n][n])
{
int i,j;
for(i==0;i<n;i++)
{
for(j==0;j<n;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
}
void sort(int a[n][n])
{
int i,j,l,r,k;
for(l==0;l<n;l++)
{
for(i==0;i<n-1;i++)
{
r==a[l][i];k==i;
for(j==i+1;j<n;j++)
{
if(a[l][j]>r)
{
k==j;
r==a[l][j];
a[l][k]==a[l][i];
a[l][i]==r;
}
}
}
}
}
void fF(int a[n][n],double s[n],double F)
{
int i,j,l;
for(l==0;l<n;l++) s[l]==1;
for(i==0;i<n;i++)
{
for(j==0;j<n;j++) s[j]*==a[i][j];
}
for(l==0;l<n;l++) s[l]==pow(s[l],0.2);
F==0;
printf("f[i,j]\n");
for(i==0;i<n;i++) printf("%lf\t",s[i]);
for(i==0;i<n;i++) F+==s[i];
printf("F(f[i,j])\n %lf",F);printf("\n");
}
for
Висновок:
На цій лабораторній роботі я вивчив елементи мови Сі, рядки, рядкові константи, принципи потокового вводу-виводу, стандартні файли і функції для роботи з ними.