Текстік файлдар

Скачать



Мазмұны
Кіріспе.................................................................................................................4
1.Турбо Паскаль программалау тілі
1.1 Турбо Паскаль тілінің шығу тарихы.....................................................6
1.2 Турбо Паскальда жұмысты бастау........................................................7
1.3 Паскаль тілінің альфавиті......................................................................9
1.4 Программа құрылымы..........................................................................12
1.5 Стандартты типтер…............................................................................14
1.6 Стандартты функциялар.......................................................................15
2.Турбо Паскальда файлдармен жұмыс
2.1 Файл........................................................................................................16
2.1 Текстік файлдар.....................................................................................17
2.2 Типтік файлдар......................................................................................23
2.3 Типсіз файлдар......................................................................................28
Қорытынды.....................................................................................................29
Пайдаланылған әдебиеттер тізімі...............................................................30
Кіріспе
Қазіргі әлемнің ғылыми бейнесінің негізгі сипаттамасы қоғамдағы және
Бұл жағдай әлемнің бейнесін жаңаша тұжырымдайтын идеяның тууына
Информатиканың компьютердің көмегімен информацияны іздеу, сақтау, жинақтау, тарату,
Қазіргі информацияның өте үлкен ағымын компьютер көмегі арқылы
Программалау тілдері – жасанды тілдер. Олардың табиғи тілден
Берілген курстық жұмысымның негізгі мақсаты – Турбо Паскальда
Курстық жұмысым кіріспеден, екі бөлімнен, қорытындыдан және пайдаланылған
1-ші бөлімде – Турбо Паскаль программалау тілімен таныстыру
2-ші бөлімде – Турбо Паскальда файлдармен жұмыс істеу
Турбо Паскаль тілі
Турбо Паскаль тілінің шығу тарихы.
Қазіргі кезде Паскаль аты программалау тілдерінде – тіл
Блез Паскаль 1623 жылы Франция мемлекетінің Клермон –
Осы жоғарғы деңгейлі программалау тілдерінің бірі – Паскаль
Паскаль тілі жөніндегі алғашқы дерек 1971 жылы пайда
Қазіргі кезде Паскаль тілінің кеңейтілген ондаған диалектісі бар.
Бейсик тілі сияқты Паскаль тілі оқып үйренуге жеңіл,
Паскаль тілінің мынадай ерекшеліктері бар:
Тілдің қарапайымдылығы оны тез арада жете меңгеруге мүмкіндік
Тіл алгоритмді сақтап құрылған. Мұнда программаны бірте –
Деректердің құрылысына қарай сандық, белгілік және екілік информациямен
Тілге дамытылған берілгендер типтері енгізілген. Олар өңделетін берілгендер
Жүйелік бағдарламалауда кеңінен қолдануына оның өте тиімді бағдарламалау
Мұнда кішігірім жеңіл программалармен бірге күрделі құрылымды программаларды
Турбо Паскальда жұмысты бастау.
Турбо Паскальдың интегралдық ортасы пайдаланушының сұраныстарын операциялық жүйесіз-ақ
Интегралдық ортаға кіру. DOS-тың командалық қатарында C:\TP\TURBO EXAMPLE1.PAS
Редактордың терезеде терілетін программа мәтінін қабылдауға немесе бұрынғы
Белсенді терезе. ТР интегралдық ортасы бірнеше тереземен жұмыс
Белсенді терезеде программа мәтінін көру. Егер терезеге программа
Программаны сақтау. Терілген (редакцияланған) программа белсенді терезеден F2
Программаны компиляциялау. F9 не ALT+F9 пернесін басылғанда компилятор
Программаны орындау. Программаны орындау командасы Ctrl+F9 пернелер комбинациясымен
Көшірме алу. Жұмыс соңында дискіде файл көшірмесін алған
Файлды ашу. ТР-да дискіде сақталған программа мәтінін редактор
Жаңа экранды ашу. ALT+F пернелерін басып, File мәзірінен
Тексті баспаға шығару. Принтерді іске қосып, “File” мәзіріндегі
Турбо Паскальдан шығу. ALT+Х пернелерін басу арқылы орындалады.
Паскаль тілінің алфавиті.
Паскаль тілінде қолданылатын символдар:
26 үлкен және кіші латын әріптері;
0, 1, ..., 9 – араб цифрлары;
арнайы символдар (1-кесте);
Кілттік сөздер (2-кесте).
1-кесте
Арнайы символдар Мағынасы

=
<
>
=
:=
-
*
/
(,)
[,]
:
.
,
;
+ Дәйекше (апостроф)
Тең
Кіші
Үлкен
Кіші немесе тең
Үлкен немесе тең
Меншіктеу
Азайту
Көбейту
Бөлу
Жай жақшалар
Тік жақшалар
Қос нүкте
Нүкте
Үтір
Нүктелі үтір
Қосу
Паскаль тілінде программа – сипаттау және операторлар бөлімдерінен
Мысалы:
Const k=100; n=50; Pi=3.141592; Lmp=’p’;
Программалауда айнымалы деп мәлімет үшін жадтан бөлінген орынды
Идентификатор ретінде кілт сөздерді қолдануға болмайды. Айнымалылар жай
Мысалы:
Тор, Х, Z56 Vol, F[1]6 B[2,1], A[I], B
2-кесте. Паскаль тілінде қолданылатын кілттік (қызметші) сөздер
Кілттік сөздер Аудармасы
AND
ARRAY
BEGIN
CASE
CONST
DO
END
FILE
FOR
FUNCTION
IF
OR
ELSE
PROCEDURE
PROGRAM
RECORD
REPEAT
THEN
TYPE
VAR Және
Массив
Басы
Таңдау
Тұрақты
Орынды
Соңы
Файл
Үшін
Функция
Егер
Немесе
Әйтпесе
Процедура
Программа
Жазу
Қайталау
Онда
Тип
Айнымалы
Программа құрылымы.
Программа мәтіні: Program ; - деп аталатын, міндетті
Label (белгілер)
Const (тұрақтылар)
Type (типтер)
Var (айнымалылар)
Function, Procedure (функция, процедура).
Сипаттау бөлімінен соң Begin, End –операторлық жақшаларына алынған
Var:< тип>;
– стандартты тип атауы не сипатталған тип
Type=< типтің сипаты>;
Тұрақтының сипатталынуы : Const=< мәні>;
Белгілердің сипатталынуы: Label; Белгі – ең көбі
Мысалы, радиусы –ге тең шеңбердің ауданын есептейтін қарапайым
Program Example1;
Const PI=3.14; {тұрақтыны сипаттау}
Var R:real; {R-айнымалысын сипаттау}
Begin {операторлық жақшаның басы}
Write (‘радиусты енгіз’); {тексті экранға шығару}
Readln (R); {R-дің мәнін клавиатурадан
Writeln (‘шеңбер ауданы:’,PI*sgr(R)){нәтижені экранға шығару}
End.
Түсініктемелер фигуралық жақшаға алынып жазылады. Символдық мәндер дәйекшеге
Оператор – белгілі-бір іс-әрекет орындау үшін жазылатын нұсқау
Паскаль тілі операторларын жай және күрделі деп жіктеуге
Меншіктеу – Паскаль программалау тілінің негізгі операторы. Оператордың
Мысалы:
Im:=im+2; P:=p*im;
1.5 Стандартты типтер.
Паскальда анықталған стандартты типтер:
Бүтін типтер – Shortint, Integer, Longint, Byte, Word;
Нақты типтер – Real, Single, Double, Extended, Comp;
Логикалық тип – Boolean;
Символдық тип – Char;
Жолдық (қатарлық) тип – String;
ASCII - қатарлық тип – Pchar;
Мәтіндік файл – Text;
Нұсқағыш тип – Pointer.
Бұлардан басқа типтер Type бөлімінде не Var бөлімінде
Бүтін типтер:
Shortint – 128 .. 127
Integer – 32768 .. 32767
Longint – 2147483648 .. 2147483647
Byte – 0 .. 255
Word – 0 .. 65535
Нақты типтер:
Real 2.9*10-39 .. 1.7*1038
Single 1.5*10-45 .. 3.4*1038
Double 5.0*10-324 .. 1.7*10308
Extended 3.4*10-4932 .. 1.1*104932
Comp -263+1 .. 263-1.
Boolean – логикалық тип (мәндері: True – ақиқат,
Char – символдық тип (мәні Паскаль алфавитіндегі дәйекшеге
1.6 Стандартты функциялар.
Abs(x) – х-тің абсолют шамасы.
Sqr(x) – х-тің квадраты.
Sqrt(x) – х-тің квадрат түбірі.
Exp(x) – ех-тің мәні.
Ln(x) – х-тің натурал логарифмі.
Sin(x) – х-тің синусы.
Arctan(x) – х-тің арктангенсі.
Round(x) – х-ті жақын бүтінге дөңгелектеу.
Trunc(x) – х-тің бүтін бөлігі.
Int(x) – х-тің бүтін бөлігі.
Frac(x) – х-тің бөлшек бөлігі.
Odd(x) – х-жұп болса мәні ‘False’, тақ болса
Random(x) – [0, x] аралығынан таңдалынатын кездейсоқ сан.
Randomize операторы әдетте Random операторының алдына қойылады. Ол
Succ(x) – бүтін х – тен кейінгі санды
Pred(x) – бүтін х – тің алдындағы санды
Паскаль тіліндегі арифметикалық өрнек – тұрақтылар мен айнымалылардың
Таңбалық типтерге қолданылатын функциялар:
UpCase(s) – латын алфавитінің кіші әріпін бас әріпке
Ord(s) – реттелген символдар жиынындағы s-тің рет нөмірі.
Chr(i) – керісінше, i – нөмірлі символ.
Succ(s) – s-тен кейінгі символ.
Pred(s) – s-тің алдындағы символ.
2. Турбо Паскальда файлдармен жұмыс
2.1 Файл.
Файл – бір типті компоненттер тізбегі. Файл компоненті
сыртқы тасығыштарға; яғни магниттік дискіге тиеледі;
компоненттер саны бастапқыда анықталмайды.
Турбо Паскальда файлдар үш түрге бөлінеді: текстік
типтік файлдар
типсіз файлдар
Файлдармен жұмыстағы негізгі ұғым – файлдық айнымалы. Файлдық
VAR < ФА – аты >:text;
VAR < ФА – аты >: File of
VAR < ФА – аты >: File;
Файлды жазу не оқу үшін мынадай процедуралар пайдаланылады:
2.2 Текстік файлдар.
Текстік файлдардың әр компоненті қатар соңын білдіретін Еoln
Бір уақытта текстік файлды оқуға және жазуға болмайды,
Текстік файлмен жұмыста енгізу, шығару тізімінде тек жолдық
1-мысал. Тестік файлда Ank.dat жолдық қатар түрінде студенттердің
1 20 24 25
Байттар мазмұны: Айтбаев Т.
Абдураимов В. 1980 өзбек
Шаджиков Ш. 1979 Әзірбайжан
Файлдағы қазақтар саны анықтау керек. әр жолдық қатардағы
Var Fam: String[20]; Ut: string[9]; X: string[1];
N,TJ:Word; F: text;
Begin n:=0; Assign(f,’c:\tp7\ank.dat’);
Reset(f); {файлды оқу
While not eof(f) do {файл біткенше
Begin
Readln(f,Fam, TJ, X, Ult); {анкетаның 3 өрісінің
{х-ке 25-ші байт оқылады}
If ult=’қазақ’ then N:=N+1 end;
Close(f); Writeln(‘қазақтар саны:’ N:4) End.
Программада файлдың әр қатарының 3 өрісінің мәні енгізіледі
2-мысал. Kitap – деп аталатын текстік файлдағы тексті
Әдеттегідей кітап бетіндегі текстің әр қатарында шамамен 57-60
Program Example2;
Var f,k:integer; F1,F2:текст {екі файлдық айнымалы анықталады}
S: string[60];
Bet: string[5];
Begin
Assign (f1,’c:\Kitap’); Assign(f2,’c:\x’);
Reset(f1); Rewrite(f2);
While Not Eof(f1) do
Begin j:=1; k:=1;
{файлдан файлға қатар көшіру циклі}
Repeat Readln(f1,s); Writeln(f2,s); j:=j+1;
Until(j>40) or EOF(f1);
If Not Eof(f1) Then begin for j:=1 to
Writeln(f2);
{бос 5 қатар}
k:=k+1; Bet:=Str(K);
For I:=1 to 60 do s[i]:=’’;
Instr(Bet,s,55); {55
Writeln(f2,s);
End; Close (f1); Close (f2); Erase(f1);
Rename(f2,’kitap’);
End.
3-мысал. Текстік файлды оқып, ондағы тыныс белілерді жою
Program esep3;
Label 1;
Var F,F1:Text;
S,S1,par1,par2: String;
N,I,l: Integer;
Begin writeln(‘:’); readln(par1);
Writeln(‘:’); readln(par2);
Assign(F,par1); Assign(F1,par2);
Reset(F); Rewrite(F1);
s1:=”; clrscr; gotoxy(15,2);
While not eof(F) do
Begin
Readln(f,S);
for i:=1 to length(s) do
if s[i] in [‘-‘,’,’,’:’,’:’,’?’,’!’,’.’] then delete(s,I,1);
writeln(f1,s); writeln(s);
end;
close(f); close(f1); end.
4-мысал. Текстік файлды оқып, артық бос орындарды жойып,
Program sjatie;
Label 1;
Var F,F1,F2:Text;
S,S1,par1:String;
K,N,i,l: integer;
Begin Writeln(‘өнделетін файл атын енгіз:’); Readln(par);
Writeln(‘нәтиже-файл атын енгіз:’); Readln(par1);
Assign(F,par); Assign(F1,par1);
Reset(f); Rewrite(F1);
I:=0; s1:=”;l:=0; clrscr; gotoxy(15,2);
While not Eof(f) do
Begin Readln(f,S);
Repeat
N:=Pos(‘ ‘,S);
If n1 then begin i:=i+1; s1:=s1+copy(s,1,n); end;
Delete(s,1,n);
Until n=0; s1:=s1+s+’ ‘;
Writeln(f1,s1); Writeln(s1); l:=l+1; s1:=”;
End; Writeln(‘текстегі сөз саны = ‘,i);
Close(f); close(f1);
End.
5-мысал. Текстік файлды оқып, сөздер жиілігін экранга шығар
Program juilik_sozdik;
Label 1,2;
Var
F,f1,f2: Text; c:char;
S,S1,slov,n2,par1,par2: String;
K,N,I,l,n1,m: Integer;
Begin Writeln(‘өнделетін файл атын енгіз:’); Readln(par1);
Writeln(‘нәтиже-файл атын енгіз:’); Readln)par2);
Assign(F,par1); Assign(F1,par2); Assign(F2,’nn2.TXT’);
Rewrite(f1); rewrite(f2); c reset(f);
M:=0;
While not eof(f) do
Begin
Slov:=”; readln(f,S); n:=pos(‘ ‘,s); slov:=copy(s,1,n-1);
Delete(s,1,n); l:=length(slov);
Repeat
1:n1:=pos(slov,s);
If n10 then begin k:=k+1; delete(s,n1,l+1); goto 1;
If s” then writeln(f2,s); readln(f,s);
Until (eof(f)) and (s=”);
Str(k,n2); s1:=slov+’ ‘+n2; writeln(f1,s1); gotoxy(12,3+m);
Writeln(slov,n2:10-length(n2)); m:=m+1;
Close(f); close(f2);
Erase(f); rename(f1,par1);
Assign(f,par1); Assign(f2,’nn2.txt’);
Reset(f); rewrite(f2); end; end.
6-мысал. Текстік файл түрінде сөздік берілген. Сөздікті пайдаланып,
Program audarma;
Label 1;
Var f:text;
S,s1,slov:string;
C,C1:char; kk,n:integer;
Procedure delprobel(var s:string);
{қатардың басы мен соңындағы бос орындарды жояды}
Var k:byte;
Begin
Repeat
k:=length(s);
if s[k]=’ ‘ then delete(s,k,1);
k:=length(s);
until (s[1]’ ‘) and (s[k]’ ‘);
end;
begin
assign(f,’s1.txt’); reset(f); clrscr;
write(‘қандай тілде сөз енгізесіз?’);
write(‘a-ағылшынша, к-қазақша: ‘); readln©;
write(‘сөзді енгіз:’); read(slov); kk:=0;
while not eof(f) do
begin Readln(f,s); n:=pos(‘#’,s);
{“#”-белгісі сөздікте сөз бен оның аудармасы арасындағы белгі}
If c=’a’ then begin s1:=copy(s,1,n-1); delete(s,1,n); end
Else
Begin s1:=copy(s,n+1,length(s)); delete(s,n,length(s)); end;
Delprobel(s1);
If slov=s1 then begin writeln(‘ ‘,s); kk:=kk+1 end;
End;
If kk=0 then writeln(‘Сөздікте мұндай сөз жоқ ‘);
End; end.
2.3 Типтік файлдар.
Тізбекті ену файлы.
Паскаль тілінде программа көмегімен сыртқы есте сақтау
Type=file of ;
Var=;
Жоғарыдағы мысалдағы файлдың сипатталуы:
Type abit=Record
Fam: string [15];
TJ: integer;
Shifr: integer;
Ball: integer;
End;
Varv:abit; f:
Мұндағы abit- жазу типі атауы. Fam,TJ, Shifr, Ball-
Файлды жазу, оқу үшін bf – берілгендер файлының
Турбо Паскальда берілгендер файлын жазу үшін мынадай процедуралар
Rewrite(f)- атауы Assign процедурасындағы анықталған файлды жазу мақсатында
Write(f,V)- f үшін бөлінген сыртқы файлдағы орынға V
While not eof (f) do – файл элементтерін
7-мысал. Құрылымы – Fam, Tj, Shifr, ball болатын
Program Example3;
Label 1, 2;
Type abit=Record
Fam: string [5];
Shifr: integer;
Ball: integer;
End;
Var f:file of abit; v:abit; bf:string [6];
Begin Write (‘Құрылатын файл аты-?’);
Readln (bf); Assign (f,bf); Rewrite (f);
With v do
Begin
2: Write(‘Фам:’); Readln(Fam); If Fam=’****’ Then Goto 1;
Write(‘Шифрб балл:’); Readln (Shifr, ball); Write (f,v); goto
End;
1:Close(f);
{файлды оқу};
Reset(f);
While noteof (f) Do
Begin
If v.ball>45 Then Writeln(V.fam,’ ‘,15-length(V.Fam),v.Shifr:5, V.ball:3)
End; Close(f) End.
8-мысал. Алдыңғы тақырыптағы 1-мысал қарастырылсын. Ондағы ANK.dat типтік
Pogram Example4;
Type jaz=Record Fam: String[20] {аты-жөні өрісі}
Tj:Word;
Ult: string[9]
End;
Var f:File of Jaz;
Stud:Jaz; {компонент оқылатын айнымалы}
Begin
N:=0; Assign (f,’c:\Ank1.dat’);
Reset(f); {файлды оқу үшін}
Repeat
Read(f,stud); {файлдың ағымдық компонент мәнін Stud-қа берілуі}
If Stud.ult=’қазақ’ Then n:=n+1
Until Eof(f);
Close (f); Writeln(‘қаақтар саны’,N=4);
End.
9-мысал. 1-мысалдағы файл компонентін қатар түрінде сипаттап қарастыратын
Type Katar=string[10];
Var f:file of katar;
N:word; S:katar;
Begin N:=0; Assign (f,’c:\Ank2.dat’);
Repeat
Read(f,s); {файл компонентінің s–ке енгізу}
If Copy (s,26,9)=’қазақ’
Then N:=N+1;
Until Eof(f);
Close (f); writeln (‘қатар саны’,N=4);
End.
Программада 1980 жылғы туғандардың санын есептеу керек болса,
Еркін ену файлдары.
Типтік файлда компоненттер ұзындықтары бірдей болғандықтан, әрбір компоненттің
Тізбекті ену тәсілімен файлды жазу, оқу файл элементтерін
10-мысал. 3-мысалдағы құрылыммен берілген файл дискіде жазулы болса,
Program Example6;
Label 1,2;
Type abit=Record
Fam: string [15];
Shifr: integer;
Ball: integer;
End;
Var f: file of abit;
v: abit; bf: string [6]; k: integer;
Begin Write (‘Жалғастырылатын файл аты-?’);
Readln (bf); Assign (f,bf); Reset(f);
K:=filesize(f); {компоненттер санын анықтау}
Seek(f,k); {k+1 компонентке өту}
2: Write(‘Фам:’); readln(v.Fam);
If v.Fam=’****’ Then Goto 1;
Write(‘Шифр, балл:’); Readln (v.Shifr, v.ball); Write (f,v); goto
1:Close(f); end.
11-мысал. 3-мысалдағы құрылыммен берілген файл дискіде жазулы болса,
Program Example7; {файлды өзгерту}
Label 1,2;
Type abit=Record
Fam: string [15];
Shifr: integer;
Ball: integer;
End;
Var f: file of abit;
v: abit; bf: string [6]; k: integer;
Begin Write (‘редакцияланатын файл аты-?’);
Readln (bf); Assign (f,bf); reset(f);
Writeln(‘өзгертілетін компонент нөмерін енгіз:’); Readln(k);
seek(f,k-1); {компонентке өту}
Write(‘Фам:’); Readln(v.Fam); {К-шы компоненттің жаңа}
Write(‘Шифр балы:’); Readln (v.Shifr, v.ball); {мәнін енгізу}
Write (f,v); Close(f);
End.
2.4 Типсіз файлдар.
Типсіз файлдар информацияны көп өлшемде оқу (жазу) қажет
Физикалық жазу өлшемі екі тәсілмен есептелінеді:
а) КБ * SizeOf() өрнегі арқылы;
b) Физикалық жазу өлшемі арқылы логикалық жазу санын
Шындығында программаға берілгендер бөліктерінің оқылатын не жазылатын өлшемі
Типсіз файлдармен жұмыста екі тәсіл де қолданылады. Reset
BlockRead(, , , ) соңғы параметрдің болуы
BlockWrite процедурасының құрылымы да осындай. Файлдың соңғы позициясы
Типтік файлдармен жұмыстағы басқа процедуралар типсіз файлдарға да
12-мысал. Логикалық жазу өлшемін 35, ал оқылған жазу
Program Example8;
Type Str=String[35];
Var i,n,m: integer;
S:array [1..39] of str;
fp : file;
Begin
n:=0; Assign `fp,’c:\ank.dat’); Reset(fp,35);
While not eof(fp) do
Begin
Blockread (fp,S,39,M); {M=39}
For i:=1 to M do
If copy(s[i],26,9)=’қазақ’ then n:=n+1;
End;
Writeln (‘қазақтар саны’,n:4)
Қорытынды
Қазіргі уақытта адам іс әрекетінің барлық салаларына компьютерлік
Адамның компьютермен табиғи тілде тілдесуі келешектің ісі, ал
Курстық жұмысты орындау барысында келесі жұмыстар қарастырылды: бұл
Пайдаланылған әдебиеттер:
1. О. Камардинов. Паскаль тілінде программалау. Алматы: Республикалық
2. Е. Б. Шаметов. Паскаль тілін үйренейік. Шымкент,
3. Калинин А. Г., Мацкевич И.В. Универсальные фзыки
4. Федоров А.Г. Особенности программирования на Borland Pascal
5. Васюкова Н.Д., Туляева В.В. Практикум по основам
6. О. Камардинов Паскаль шымкент 2000ж.
7. Кауфман В. Ш. Языки программирования. Концепций и
8. О. Камардинов, С. Азаматов. Информатика негіздері. Алматы,
9. Ж. Джонсон. К. Харрау. Решение задач в
10. Фаронов В.В. Программирование на персональных ЭВМ в
11. А. В. Дәулетқұлов, С. С. Алғазы. Паскаль
12. Таукенов В. Ш. Паскаль тілінде программалау. Алматы.
13. Нұрмұханбетова Г. К., Әмірбекұлы А., Сүлейменова Л.,
14. О. Камардинов Паскаль тілінде программалау. Алматы –
4




Скачать


zharar.kz