Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Інститут комп’ютерних технологій,
автоматики та метрології
кафедра “Захист інформації”
Звіт
до лабораторної роботи № 4
з курсу алгоритмічні мови та програмування
на тему :
“Робота з файлами”
Варіант № 16
Львів 2007
Завдання
Скласти програму на мові С, яка буде заміняти всі символи у файлі lab3.c, крім літер, на символ “0”. Результат записати у новий файл.
Блок-схема алгоритму
Список ідентифікаторів констант, змінних та функцій, використаних в програмі та блок-схемі алгоритму та їх пояснення
f - змінна, якій присвоюється значення символу, що зчитується
main () – головна функція
fopen () – функція, яка відкриває файл
fgetc(файл) – функція, яка зчитує з файлу символ
fputc(номер місця символу, файл) – функція, яка записує символ у файл у вказаному місці
fclose (файл) – закрити файл
EOF (End of file) – символ кінця файлу
Текст програми
#include <stdio.h>
#include <string.h>
int main()
{
int f;
FILE *fr;
FILE *fw;
fr = fopen ("LAB3.C","r");
fw = fopen ("REZULTAT.TXT","w");
f = fgetc(fr);
while (f != EOF)
{
f = fgetc(fr);
if ( f >= 'a' && f <= 'z' || f == '\n' || f == ' ')
fputc (f,fw);
else
{
f = '0';
fputc (f,fw);
}
}
fclose (fr);
fclose (fw);
return(1);
}
Файл lab3.c
#include <stdio.h>
#include <stdlib.h>
#define n 5
void sort(int a[n][n]);
void suma(int a[n][n]);
void main(void)
{
int i,j,k;
int a[n][n];
system("cls");
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
printf("a[%d][%d] = ", i+1, j+1);
scanf("%d", & a[i][j]);
}
}
system("cls");
printf("Old array :\n");
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
printf("%5d", a[i][j]);
printf("\n");
}
sort(a);
printf("New array :\n");
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
printf("%5d", a[i][j]);
}
printf("\n");
}
printf("\n");
suma(a);
}
void sort(int a[n][n])
{
int i,j,x,k;
for (i=0; i<n; i++)
{
for (j=1; j<n; j++)
{
x=a[i][j];
k=j-1;
while (a[i][k] < x && k>=0)
{
a[i][k+1] = a[i][k];
k--;
}
a[i][k+1] = x;
}
}
}
void suma(int a[n][n])
{
int i,j,k;
double sum, geom;
geom=1;
k=1;
for (j=0; j<(n-1); j++)
{
sum=0;
for (i=k; i<n; i++)
{
sum = sum + a[i][j];
}
printf("Suma elementiv u stovpci %d pid golov. diagon. e = %.0lf; \n", j+1, sum);
geom=geom*sum;
k++;
}
geom=geom/j;
printf(" Seredne geometrichne znach = %.2lf . \n", geom);
}
Результат роботи програми, файл rezultat.txt
include 0stdio0h0
0include 0stdlib0h0
0define n 0
void sort0int a0n00n000
void suma0int a0n00n000
void main0void0
0
int i0j0k0
int a0n00n00
system00cls000
for 0i000 i0n0 i000
0
for 0j000 j0n0 j000
0
printf00a00d000d0 0 00 i000 j0000
scanf000d00 0 a0i00j000
0
0
system00cls000
printf000ld array 00n000
for 0i000 i0n0 i000
0
for 0j000 j0n0 j000
printf0000d00 a0i00j000
printf000n000
0
sort0a00
printf000ew array 00n000
for 0i000 i0n0 i000
0
for 0j000 j0n0 j000
0
printf0000d00 a0i00j000
0
printf000n000
0
printf000n000
suma0a00
0
void sort0int a0n00n00
0
int i0j0x0k0
for 0i000 i0n0 i000
0
for 0j000 j0n0 j000
0
x0a0i00j00
k0j000
while 0a0i00k0 0 x 00 k0000
0
0 a0i00k000 0 a0i00k00
0 k000
0
a0i00k000 0 x0
0
0
0
void suma0int a0n00n00
0
int i0j0k0
double sum0 geom0
geom000
k000
for 0j000 j00n0000 j000
0
sum000
for 0i0k0 i0n0 i000
0
sum 0 sum 0 a0i00j00
0
printf000uma elementiv u stovpci 0d pid golov0 diagon0 e 0 000lf0 0n00 j000 sum00
geom0geom0sum0
k000
0
geom0geom0j0
printf00 0eredne geometrichne znach 0 000lf 0 0n00 geom00
0