FILESIZE( f ) функциясы файлдағы элементтер санын анықтайды. Егер көрсеткіш файл соңында тұрса, логикалық типті EOF(f) функциясы ақиқат мән қабылдайды.
EOF (End OF File )- көрсеткіштің файл соңына жетуін тексеретін стандарт функция.
While Not EOF(f) do – көрсеткіш файл соңына жеткенге дейін орындау циклі.
Мысал67. Компоненттері нақты сандар болатын f1 файлы берілген. Барлық компоненттердің квадратттарының қосындысын тауып, нәтижені f2 файлында шығарыңдар. Кіру файлының аты Esep1.txt, шығу файлының аты out1.txt.
Файл жасау үшін Турбо Паскаль редакторының мәзірінен
1) File DOS SHELL командасы таңдалады.
Сонан соң
2) C:\> copy con Esep1.txt
7.17 3.56 4.5……….
3) C:\> EXIT
командалар тізбегін орындау қажет. Нәтижеде С дискісінің түпкі каталогында нақты сандардан тұратын Esep1.txt файлы жасалады. Ол 7.17 3.56 4.5………. нақты сандардан тұрады.
Есептің программасы:
Program pr1;
Var f1,f2:text;
x, S: integer;
begin
Assign(f1, ’c:\ Esep1.txt’); Reset(f1); {дискіде бар файлды ашу}
Assign(f2, ’c:\ out1.txt’); Rewrite(f2); {жаңа файл жасау}
While not eof(f1) do
Begin
Read(f1,x);
S:=S+sqr(x);
end;
Write(f2,’S=’,S);
close(f1);
close(f2);
end.
Нәтижені қарау үшін File DOS SHELL командасы арқылы MS-DOS операциялық жүйесіне өтіп, TYPE файл аты командасын теру қажет.
С:\> TYPE out1.txt
TYPE - MS-DOS-тың экранға файл мазмұнын шығару командасы.
Мысал68. Бүтін сандардан тұратын f файлыберілген. Оның 3-ке бөлінетін және 7-ге бөлінбейтін барлық компоненттерін g файлына жазыңдар.
Program pr2;
Var f1,f2:text;
x: integer;
begin
Assign(f, ’c:\ Esep2.txt’); Reset(f);
Assign(g, ’c:\ out2.txt’); Rewrite(g);
While not eof(f) do
Begin
Read(f,x);
If (x mod 3=0) and (x mod 7<>0 )then Write(g, ’x=’,x);
end;
close(f); close(g);
end.
Мысал69. А(5х5) квадрат матрица f1 файлында берілген. Матрицаның негізгі және қосалқы диагонал элементтерінің орындарын алмастырып, пайда болған матрицаны f2 файлына шығарыңдар. Кіру файлы- esep3.in, шығу файлы esep3.out текстік файлдары.
Program pr3;
Var f1,f2:text;
A:array[1..5, 1..5] of integer; n, k, i, j : integer;
begin
Assign(f1, ’c:\ Esep3.in’); Reset(f1);
Assign(f2, ’c:\ Esep3.out’); Rewrite(f2);
For i:=1 to 5 do For j:=1 to 5 do
Read(f1,A[i, j]);
n:=5;
For i:=1 to 5 do
begin
k:=A[i, i]; A[i, i]:=A[i, n]; A[i, n]:=k;
n:=n-1;
end;
For i:=1 to 5 do
begin
For j:=1 to 5 do
Write(f2, A[i, j]); writeln;
end;
close(f1);
close(f2);
end.
Достарыңызбен бөлісу: |