Файлдарға қолданылатын функциялар мен процедуралар turbo pascal
МАЗМҰНЫ
КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..3
1. TURBO PASCAL ОРТАСЫНДАҒЫ ФАЙЛДАРМЕН ЖҰМЫС ... ... ... ... 4
1.1 Файл ұғымы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4
1.2 Текстік файл ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...5
1.3 Типтелген файл ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..10
1.4 Типтелмеген файл ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...13
2. ФАЙЛДАРҒА ҚОЛДАНЫЛАТЫН ФУНКЦИЯЛАР МЕН ПРОЦЕДУРАЛАР ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...15
2.1 Файлға жазу функциясы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...15
2.2 Файлдан мәлімет оқу функциясы ... ... ... ... ... ... ... ... ... ... ... ... 16
2.3 Файлдарға қолданылатын жалпы функциялар мен процедуралар ... ... 17
ПРАКТИКАЛЫҚ БӨЛІМ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .22
ҚОРЫТЫНДЫ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 29
ПАЙДАЛАНЫЛҒАН ДЕРЕК КӨЗДЕРІ ТІЗІМІ. ... ... ... ... ... ... ... ... ... ..30
КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..3
1. TURBO PASCAL ОРТАСЫНДАҒЫ ФАЙЛДАРМЕН ЖҰМЫС ... ... ... ... 4
1.1 Файл ұғымы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4
1.2 Текстік файл ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...5
1.3 Типтелген файл ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..10
1.4 Типтелмеген файл ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...13
2. ФАЙЛДАРҒА ҚОЛДАНЫЛАТЫН ФУНКЦИЯЛАР МЕН ПРОЦЕДУРАЛАР ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...15
2.1 Файлға жазу функциясы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...15
2.2 Файлдан мәлімет оқу функциясы ... ... ... ... ... ... ... ... ... ... ... ... 16
2.3 Файлдарға қолданылатын жалпы функциялар мен процедуралар ... ... 17
ПРАКТИКАЛЫҚ БӨЛІМ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .22
ҚОРЫТЫНДЫ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 29
ПАЙДАЛАНЫЛҒАН ДЕРЕК КӨЗДЕРІ ТІЗІМІ. ... ... ... ... ... ... ... ... ... ..30
Пән: Информатика, Программалау, Мәліметтер қоры
Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 28 бет
Таңдаулыға:
Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 28 бет
Таңдаулыға:
КІРІСПЕ
Паскаль тілі қарапайым программалармен қатар, күрделі өндірістік
мәселелерді шеше алатын құрылымды тіл болып табылады. Ол Бейсик тіліне
қарағанда аздап күрделі болғанымен, компьютер үшін ыңғайлы, программа құру
реттілігін алгоритмдік тәртіппен қарастыратын, оқушыларды іс - әрекет
тәртібіне тәрбиелейтін тіл болып табылады.
Менің бұл курстық жұмысымның тақырыбы: Файлдарға қолданылатын
функциялар мен процедуралар. Бұл тақырыпта Turbo Pascal программалау
тілінде қолданылатын файлдар және олардың түрлері туралы толығырақ түсініп,
осы курстық жоба тақырыбын толық ашып көрсету мақсатында таңдалынған. Мен
курстық жобамды мысалдармен түсіндіру арқылы мүмкіндіктерін көрсеттім.
Курстық жұмыс тақырыбымда айтылғандай жұмыс жасау барысында Turbo
Pascal программалау тілі қолданылады. Турбо Паскальдағы файлдарға
қолданылатын функциялар мен процедуралар және олардың түрлері туралы
айтылған. Оның ішінде функциялар мен процедуралар және олардың атқаратын
қызметі. Тақырып негізінде қызметші сөздері жайлы қамтылған. Сонымен қатар
тақырыпқа сәйкес мысалдарды қарастырып, файлдарға қолданылатын функциялар
мен процедуралардың мүмкіндіктерін ашып көрсеттім.
Тақырыптың өзектілігі: Бұл тақырыпта TURBO PASСAL тілінде
қолданылатын файлдардың түрлері және оларға қолданылатын процедуралар мен
функциялардың программалау барысындағы қызметтерінің ерекшелігінде.
Зерттеу мақсаты: Файлдарға қолданылатын процедуралар мен
функциялардың программада қолданылу ерекшеліктерін дәлелдеу, яғни олардың
қазметтік сөздерін пайдаланып программаны орындау, жоба тақырыбын толық
ашу. Бұл тақырыпты программада пайдаланылатын мәліметтер мен шамалардың
мәндерін Турбо Паскаль мәліметтер типтерінің түрлеріне салып есептер шығару
және типтер туралы толығырақ түсініп, осы курстық жұмыс тақырыбын толық
ашып көрсету мақсатында таңдалынған.
Зерттеу міндеті: Файлдарға қолданылатын процедралар мен
функциялардың қызметші сөздерін пайдалану ережелері бойынша программаны
орындау.
Курыстық жұмыс мазмұны: кіріспеден, екі тараудан,
қорытындыдан, және пайдаланылған әдебиеттер тізімінен, қосымшадан тұрады.
Зерттеу объектісі: TURBO PASСAL программалау ортасы.
Ғылыми болжамы: Программалау дағдыларын жас кезінен
қалыптастыруға болатын, миллиондаған қолданушыға түсінікті болатын
программалау тілдері ерекше қызығушылық таныту.
Зерттеу әдістері: Файлдарды жеке-жеке зерттеу арқылы олардың
байланыстылығын және ерекшіліктерін анықтап қорытындылау.
1. TURBO PASCAL ОРТАСЫНДАҒЫ ФАЙЛДАРМЕН ЖҰМЫС
1.1 Файл ұғымы
Көптеген мәліметтердің жиынын, мысалы: шаруашылық, сауда оқушылар
туралы, телефондық т.б сыртқы жадыға сигналдар тізбегі ретінде жазып
пайдалану. Паскальда ол үшін арнайы объект – файл қаралған. Файл деп,
белгілі бір атпен сыртқы жадыға жазылған мәліметтер жиынын айтамыз.
Файлдарды пайдалану төмендегідей мүмкіншіліктерге себеп болады:
1. Өңдеуге жататын үлкен көлемді мәліметтерді бірден енгізу көп уақытты,
шаршауды керек етеді. Сондықтан, күні бұрын дайындалған мәліемет
файлдарын кез келген уақытта шақырып, пайдалана қарастырылған.
2. Мәліметтер файылы басқа программада дайындалып, әртүрлі екі есепті,
мақсатты программа арқылы, сыртқы ортамен құрылғыда байланыстырады.
3. Файлдан алынатын мәліметтері бар программа өзін пайдалану үшін
қолданушының қатысуын қажет етпейді.
Турбо Паскальдағы құрылғылар. Компьютер құрамына енетін жеке бөліктерді
құрылғылар деп атайды. Бұлардың басқа, кейбір құрылғылар файл ретінде де
пайдаланылады. Мысалы: A:,B:-иілгіш магниттік дискі жинағышы. C:,D:,E:-
винчестр. CON-(консоль) басқарушы тетік(пульт), шығаруда – бұл құрылғы
монитор экраны, кіргізуде – клавиатура болады. LPT1,LPT2,LPT3-1,2,3
параллель портқа қосылған құрылғылар (порт дегеніміз, құрылғыдағы көп
разрядты кіріс немесе шығыс, оның ішінде LPT1 портына принтер қосылған).
PRN-принтер.
Файл өлшемі оған енетін байт санымен анықталады. Файл өзгерген сайын оның
құрылған мезгілі өзгеріп тұрады. Файлдың аты магниттік дискідегі каталгта
тіркеледі. Каталог – файлдың аты, өлшемі, қалпына келтірілген мезгілі
атрибуттар (қасиеттері) көрсетілетін магниттік дискідегі әдейі орын.
Бір магниттік дискіде бірнеше каталог болуы мүмкін, файл сияқты олардың
аты, толық мәліметтері болады. Бірақ, кеңейткіш пайдаланылмайды. Егер, Х
каталогі Y каталоогінде тіркелсе, онда Х-енгізілген, ал Y-түпкілікті
каталог деп, негізгі каталогтан файлды табуды - жол деп атайды.
Файлдық тип сипаттамасы, файлдар көп жағдайларда текстік жолдан немесе
жазудан тұрады. Файлды сипаттауға fill of сөз тіркестері қолданылады.
Файлдармен қатысу үшін Паскаль – программалау тілін де әдейі, файлдық
айнымалы F қолданылады, яғни F пен сипатталады. Егер файл жазбадан тұрса,
онда жазу өрісіне бару үшін, қосымша айнымалымен (R деп белгілейік)
сипатталады.
Формат:
type
тип аты=құрамдар типі
var
F:file of тип аты;
R:тип аты;
Файлдың барлық элементтері нөмерленген болып есептеледі, бастапқы
элемент нөмері 0 ль болады.
Файл.
Элем 1 Элем 2 элем 3 элем 4 ... ..
ағымдағы көрсеткіш
Кез келген мезгілде программадағы бір ғана элементпен байланысуға болады.
Файлмен орындалатын барлық амал (файлдан оқу, файлға жазу) элементпен
(түйірлеп) орындалады, әрі бұл амалға ағымдағы көрсеткіш
белгіленген файл элементі қатысады. Ағымдағы амалдардың аяқталуы
нәтижесінде көрсеткіш, файлдың әрбір элементіне бейімделіп, орын ауыстырып
тұрады. Элементтерге қатысуға байланысты, файлдарды сатылап немесе тікелей
байланысу файлдары деп атайды. Сатылап байланысу файлы деп, жазуларына
байланысты, элементтеріне біртіндеп байланысуды қамтамасыз етуді айтады.
Тікелей байланысу файлы деп, элементтеріне байланысу адрес арқылы болуын
айтады. Мысалы, керек элементті сатылаған файлдан іздеу үшін, нөлдіктен
бастап, өңдеуіш көрсеткішті, іздеген элемент көрсеткішіне дейін жылжыту
керек, ал, керек элементті тікелей байланысу файлынан іздеу үшін, оның
(позиция) орын нөмірін көрсету жеткілкті. Біртіндеп байланысу файлында,
мәліметтерді ұйымдастыруда файлдан мәліметтерді оқуды және жазуды бір
мезгілде орындауға болмайды., себебі, біртіндеп байланысу файлында
элементті оқу үшін өңдеу көрсеткіші сол элемент үстінде болуы керек, ал
жаңа элементті жазуда, осы көрсеткіш бір мезгілде файлдың соңында болуы
керек.
2. Текстік файл
Бұл бөлімде стандартты TEXT типіндегі файлдық айнымалысын пайдаланатын
енгізушығару операциялары сипатталады. Бір айта кететін жай, Пас кальда
TEXT типі FILE OF CHAR типінен өзгеше.
TEXT стандартты файлдық типі жолдарға реттелген символдардан тұратын
файлды анықтайды. Текстік файлдар төменде сипатталған енгізушығарудың
арнайы процедураларын қолданады.
Текстік файл ашылған кезде ол ерекше түрде интерпретацияланады: ол қатар
соңы символымен аяқталатын қатарларға топталған символдар тізбегінен тұрады
деп есептеледі. Текстік файлдар үшін, типі CHAR типінен өзгеше мәндерді
оқуға мүмкіндік беретін оқу және READ және WRITE жазу операцияларының
арнайы түрі бар. Мұндай мәндер автоматты түрде символдық түрге және
керісінше көшіріледі. Мысалы: READ(F,I), интерпретациясы ондық сан болатын
сандар тізбегін оқиды, мұндағы F текстік файл, I бүтін типті айнымалы.
Бұрын айтып кеткеніміздей текст типті стандартты INPUT және OUTPUT екі
айнымалысы бар (мысал-1). Стандартты INPUT файлдық айнымалысы – бұл
операциялық жүйенің стандартты енгізу файлымен байланысқан оқуға ғана
мүмкін файл (әдетте бұл пернелік), ал стандартты OUTPUT файлдық айнымалысы
– бұл операциялық жүйенің стандартты шығару файлымен байланысқан жазуға
ғана мүмкін файл (әдетте бұл дисплей). Программа орындалу алдында INPUT
және OUTPUT файлдары RESET (INPUT) және REWRITE (OUTPUT) операторлары
орындалғандай автоматты түрде ашылады. Дәл осылай программа орындалып
біткеннен кейін бұл файлдар автоматты түрде жабылады.Тізімі осы бөлімде
көрсетілген кейбір стандартты процедуралары үшін параметр ретінде файлдық
айнымалыны айқын көрсету қажет емес. Егер бұл параметр қалдырылып кетілген
болса, онда өздігінен процедура немесе функция енгізу немесе шығаруға
бағдарланған болуына сәйкес INPUT және OUTPUT қарастырылады.
Мысалы-1:
READ(X) READ(INPUTE,X) – ке сәйкес келеді және
WRITE(X) WRITE(OUTPUTE,X) – ке сәйкес келеді.
1-кесте. Текстік файлдарға қолданылатын функциялар
READ Текстік файлдан бір енмесе бірнеше мәнді бірнеше
айнымалыға оқиды.
READLN READ жасайтын әрекеттерді орындайды, кейіннен келесі
қатардың басына дейін өткізу жасайды.
WRITE Текстік файлға бір немесе бірнеше мәнді жазады.
WRITELN WRITE жасайтын әрекеттері орындайды кейіннен файлға
қатар соңы маркерін қосады.
EOLN Файл үшін END-OF-LINE қатар соңы жағдайын қайтаратын
функция.
Шығару.
Сіздер паскальдың көбірек тараған функциясы – қосалқы программасын
пайдаланыңыздар. Оның қызметі ақпаратты экранға жазу (шығару). Оның форматы
қарапайым және қолдануы бейімделгіш:
Writeln (элемент, элемент,...);
Әрбір элемент бұл сіздің экранға шығарғыңыз келгіңіз және бүтін немесе
нақты сан (3,42 – 1732.3), символ (‘A’ – ‘Z’,’A’- ’Я’), қатар (‘сәлем
адамзат’), бульдік мән (TRUE) сияқты мәндер бола алады. Бұдан басқа ол
атаулы тұрақты (тұрақты аты), айнымалы, көрсеткіш функцияның шақырылуы,
егер ол бүтін типі мән, нақты сан, символ, қатар немесе бульдік тип
қайтарса бола алады. Барлық элементтер қатарға көрсетілген реті бойынша
басылады. Шығарудан кейін күймеше келесі қатардың басына орнатылады (1-
кесте). Егер күймешенің осы қатардағы соңғы элементтен кейін қалуы қажет
болса, онда:
Write (элемент, элемент,...);
пайдаланылады.
Элементтерді шығарғанда олардың арасында автоматты түрде бос орын
қойылмайды. Қажеттілік болса, оларды ескере кеткен жөн:
Writeln (элемент, элемент,...);
Шығару келесі операторлармен сипатталады:
A:=1; B:=2; C:=3;
Name:=’Мұрат’;
Writeln(A,B,C); 123
Writeln(A,’ ‘,B,’ ‘,C); 1 2 3
Writeln(‘Ол-’Name); Ол-Мұрат
Writeln(‘Ол, ’,Name,’.’); Ол, Мұрат.
Сондай-ақ берілген элементтің анықтайтын параметрлерді пайдалануға
болады. Бұл жағдайда оператордың форматы:
Writeln(элемент:ұзындық, . . .);
болады, мұндағы ұзындық – элементті шығаруға арналған өрістің жалпы
мөлшерін анықтайтын бүтін өрнек (литер, тұрақты, айнымалы, фуекцияның
шақырылуы).
Келесі программа және оның орындалу нәтижесіндегі шығаруды
қарастырайық:
A:=10; B:=2; C:=100;
Writeln(A,B,C);
102100
Writeln(A:2,B:2,C:2);
10 2100
WRITELN(A:3,B:3,C:3);
10 2100
Writeln(A,B:2,C:4);
10 2 100
Айта кететін жай элементтің алдында көрсетілген ұзындық бойынша бос
орындар қойылады. Мәннің өзі оң жағы бойынша түзетіледі.
Ал егер өрістің мөлшері қажеттіден кем болмаса ше? Жоғарыда
көрсетілген мысалдың екінші операторында С=100 үшін өрістің мөлшері
керектен аз, басқаша айтсақ берілгені 2, керегі 3. шығаруда Паскаль
мөлшерді қажетті минимумға дейін өсіреді.
Бұл әдіс барлық мүмкін болатын элементтер: бүтін тип, нақты сан,
символдар, қатарлар және бульдік типтер үшін қолданылады.
Барлық нақты сандар үшін өрістің кеңдігін (мөлшерін) көрсеткен кезде
сол жақтан бастап түзетіледі және экспонентті формада басылып шығарылады.
X:=421.53;
Writeln(X);
4.2153000000E+02
Writeln(X:8);
4.2E+02
Сондықтан Паскаль ұзындықтың екінші операндысын қосуға мүмкін береді:
Элемент:ұзындық:цифрлар саны.
Екінші сан бекітілген нүктесі бар сандар үшін үтірден кейін қанша сан
бар екенін корсетеді.
X:=421.53;
Writeln(X:6:2);
421.53
Writeln(X:8:4);
421.53
Writeln(X:8:4);
421.5300
Енгізу.
Стандартта Паскальда деректерді пернеліктен оқуға пайдаланылатын
ақпаратты енгізудің екі негізгі READ және READLN функциялары бар (1-
кесте).
Олардың форматы:
Read(элемет,элемент,. . . );
Readln(элемент,элемент,. . .);
мұндағы әрбір элемент бүтін, нақты, символдық типті айнымалы және қатар.
Сандар бір-бірінен бос орынмен немесе Enter-ді басумен бөлінуі кеерк.
Мысал-2. Төменде көрсетілген программада Ғ1 текстік файлынан 1 –
ші курс студенттерінің тізімі енгізіледі және ол алфавиті реті бойынша
сұрыпталып, терминалдың экранына шығарылады. Ғ1 файлының компоненттері
студенттің фамилиясфн (20 символдан тұратын) және 4 пән бойынша
(математикалық анализ, физика, тарих және алгебра) бағаларды білдіреді. Ғ1
Файлына сәйкес келетін бастапқы деректер жиыны кез келген текстік
редактордың көмегімен дайындала алады, себебі фамилиялар, бағалар бос
орынмен бөлінген символдар тізбегін білдіреді.
Программасы:
Program Fil_TEXT;
Const M=20;
Type
Predmet=(Matan, Fiz, Ist, Alg);
Ozenki=Array[Predmet] of Integer;
Var
F1 : Text;
St : Array[1..100] of String[M];
R : String[M];
Oz : Array[1..100] of Ozenki;
Rr : Ozenki;
I,N,K : Integer;
J : Predmet;
FileName : String[20];
Begin
If ParamCount=1 Then
FileName:=ParamStr(1)
Else
FileName:=’predmet.dat’;
Assign(F1, FileName);
Reset(F1);
N:=0;
While Not Eof(F1) Do
BEGIN
N:=N+1;
Read(F1,St[N]);
For J:=Matan To Alg Do
Read(F1,Oz[N,J]);
Readln(F1);
End;
Close(F1);
For I:=1 To N-1 Do
For K:=T+1 To N Do
If St[I]St[K] Then
Begin
R:=St[K];
St[K]:=St[I];
St[I]:=R;
Rr:=Oz[K];
Oz[K]:=Oz[I];
Oz[I]:=Rr;
End;
Writeln (‘1-ші курс студенттері:’);
For I:=1 To N Do
Begin
Write(I:3,’:’);
For K:=1 To M Do
Write(St [I,K]);
For J:=Matan To alg Do
Wriete(Oz[I,J]:2);
Writeln;
End;
End.
Айнымалылардың сипаттаудың VAR операторында Ғ1 файлы текстік деп
анықталған және компоненттер саны 100-ден аспайды деп жорамалданып, ST және
OZ массивтері анықталған. Файл компоненттерінің нақты саны EOF функциясын
пайдаланып WHILE циклінің орындалу процесі кезінде анықталады (мысал-1).
16, 17 жолдарда PARAMCOUT және PARAMSTR стандартты функциялары
пайдаланылған. PARAMCOUT функциясы командалық жол немесе альтернативті
түрде программалық ортаның RUNPARAMETERS пункті арқылы берілетін
параметрлердің жалпы санын қайтарады. PARAMETR(K) функциясы K-шы параметр
болатын жолды қайтарады. Сонымен 16-19 жолдарда FILENAME айнымалысына
командалық жол арқылы берілетін сыртқы файлдың аты меншіктеледі (осы
жағдайда PARAMCOUT функциясының мәні 1-ге тең). Кері жағдайда FILENAME
айнымалысына сыртқы ’predmet.dat’ файлының аты меншіктеледі.
20-шы жолда Ғ1 айнымалысы аты FILENAME айнымалысы арқылы сипатталатын
сыртқы файлымен байланыстырылады. RESET(F) функциясы Ғ1 файлын ашады және
Ғ файлының бірінші коьпонентін оқуға мүмкіндік береді. 20-30 жолдарда
тұрған цикл операторлары сыртқы файлдағы ақпараттарды St[I] (I –ші
студенттің фамилиясын) және Oz[I,J] (I-ші студенттің J-ші пән бойынша
бағасы) массивтеріне жазады. 32-42 жолдардағы операторларда студенттердің
фамилиясын алфавит реті бойынша сұрыптау ұйымдастырылған. Сұрыптаудың
нәтижесі 43-52 жолдардағы операторлардың көмегімен экранға беріледі.
1.3 Типтелген файл
Барлық типтелген файлдардың элементтері бірдей типті болуы керек, ал
типтелген файл әр түрлі болуы мүмкін. Мүмкін емес хабарламаның мысалы.
Tupe TF1=file of file;
TFR=record
A:Integer;
F:File of Real;
End;
TF2:fileof TFR;
Типтелген файлдармен жұмыс жасайтын процедуралар және функциялар.
Типтелген файлдардан оқу тек Read процедурасымен, ал жазу-Write
процедурасымен орындалады .
Типтелген файл үшін Read және Write процедурасы келесі форматпен
көрсетіледі.
Read (файл аты және тізімі)
Write (файл аты және тізімі)
Тікелей қосу жұмысына келесі процедуралар және функциялар белгіленген.
FilePos-файлда көрсетілген позицияның ағымдағы номерін қайтарады
(позиция нолден бастап номерленеді).
FileSize- файлдың ағымдағы өлшемін қайтарады (санау кезінде файл
элементтерінің саны бірден бастап номерленеді).
Seek-файлдағы ағымдық позицияны көрсеткіш берілген номердегі
элементпен алмастырады.
Truncate- файл өлшемі ағымдағы позицияға дейін қысқарады.Файлда
ағымдағы позициядан кейін орналасқан барлық элементтер өшіріледі, ал
ағымдық позиция файлдың соңы болып қалады. (Eof(f)=True).
Типтелген файлдың элементтеріне тікелей қосу жұмысында файлды електен
өткізу программасын қарастырайық.
Типтелген файлдың ''шаблоны'', (''терезе'') болады.
Мысал-3. Біз физикалық файлға енетін символдар ''енгіземіз '', содан
кейін физикалық файл BYTE типінің файлы ретінде ашылады, нәтижесінде
символдар жазылған ASCII кодына экранға шығады.
Программасы:
Program CharToByte;
Uses Crt;
Var
FC:file of Char;
FB:file of Byte;
Ch: Char;
B:Byte;
Begin
ClrScr;
Assign (FC,’Test.Dat’);
Rewrite (FC);
For Ch:='0' to '9' do Write (FC,Ch);
For Ch:='A' to 'J' do Write (FC,Ch);
Close (FC);
Assign (FB,’Test.Dat’);
Reset (FB);
While not Eof (FB) do
Begin
Read (FB,B);
Write (B:8);
End;
Close (FB);
End.
Нәтиже.
48 49 50 51 52 53 54 55 56 57
65 66 67 68 69 70 71 72 73 74
Бұл бөлімде типтелген типті файл айнымалылары пайдаланылатын
енгізушығару операторлары сипатталады.
Типтелген файлды ашқан кезде сыртқы файл төмендегіше
интерпретацияланады, ол бірдей структуралы (әдетте жазудың көмегімен
сипатталатын) компоненттер тізбегін білдіреді деп есептеледі. Арифметикалық
типті деректер қабылдаған мәндері тәуелсіз бекітілген байттар санын алып
жатады.
Типтелген файлдар үшін форматтары келесі түрде болатын оқудың READ
және жазудың WRITE процедуралары бар.
READ (F1,X);
WRITE (F1,X);
мұндағы Х айнымалысы F1 файлының компонентіне сәйкес типте болуы керек.
Типтелген файлдар үшін алмасу операцияларынан басқа да келесі функциялар
мен процедуралар қолданылады. SEEK, TRUNCATE, FILES FILEPOS.
1.SEEK процедурасы файлдың көрсеткішін берілген позицияға жылжытуға
арналған және форматы төмендегідей.
SEEK (F,NUM);
мұндағы F- файлдық айнымалының аты, NUM- файлдың көрсеткіші орнатылуы қажет
элементтің реттік номерін көрсететін LONGINT типті өрнек.
2.TRUNCATE процедурасы файлдың көрсеткішін тұрған иозициядан бастап
файлдың соңына дейін алып тастауға арналған және форматы төмендегідей.
TRUNCATE (F);
мұндағы F-файлдық айнымалының аты.
3.FILESIZE функциясы файлдың көрсеткішінің ағымдағы позициясын анықтайды
және форматы төмендегідей.
FILESIZE (F);
мұндағы F- файлдық айнымалының аты.
Мысал-4. F2 файлда студенттерінің математика, физика, алгоритм,
тарих пәндерінен алған бағалары көрсетілген. Студенттердің фамилиясын өсу
ретімен сұрыптап, экранға фамилясын және пәндерден алған бағаларын ретімен
шығаратын программа құру.
Программасы:
Program Fil_Typ_Sort;
Type
Stud=Record
Fam:Array [1..10] of Char;
Matan,Fiz, Ist, Alg, :Integer;
End;
Var
F2:File of Stud;
R:Stud;
St:Array [1..100] of Stud;
N,I,J;Integer;
BEGIN
Reset (F2);
N:=0;
While not Eof (F2);
BEGIN
N:=N+1;
Read (F2, St [N]);
End;
For I:=1 To N-1 Do
For J:=I+1 To N Do
If St [I]. FamSt [J]. Fam Then
BEGIN
R:=St [J];
St [J]:=St [I];
End;
Writeln ('1-ші курстың студенттері:’);
For I:=1 TO N DO
With St [I] DO
Begin
Write (I,':', Fam,' :', Matan:2);
Writeln (Fiz:2, Ist:2, Alg:2);
End;
End.
4. Типтелмеген файл
Типтелмеген файлдар негізінен кез келген сыртқы файлға оның типі мен
құрылымына тәуелсіз тура қатынау үшін қолданылады. Бұл жағдайда файл кез
келген типті элементтер тізбегі ретінде көрсетіледі; тек қана көрсетілетіні
– элементтер мөлшері. Кез келген типтелмейтін файл FILE (OF-сыз) кілттік
сөзінің көмегімен сипатталады.
Мысалы:
Var F: File;
Типтелмейтін файлдар екінші RECSIZE параметрі ретінде файл
элементінің мөлшері байтпен көрсетілетін RESET және REWRITE
процедураларының көмегімен ашылады. Егер екінші параметр көрсетілмесе, онда
ол өздігінен 128 байтқа тең деп есептеледі.
Типтелмейтін файлдан оқу үшін форматының екі нұсқасы бар BLOCKREAD
процедурасы қолданылады.
BlocRead(Var F:File; Var Buf; Count: Word);
BlocRead(Var F:File; Var Buf; Count: Word; Var Res:Word);
мұндағы Ғ – Assign және Reset процедураларының көмегі арқылы типтелмеген
файлмен байланысқан файлдық айнымалының аты; BUF – алмасудың буфер-
айнымалысы; COUNT – бір шақырғанда оқылатын жазулар саны; RES нақты
оқылған элементтер саны.
Типтелмейтін файлға жазу үшін форматының екі нұсқасы бар BLOCKWRITE
процедурасы қолданылады.
BlocкWrite(Var F:File; Var Buf; Count: Word);
BlocкWrite(Var F:File; Var Buf; Count: Word; Var Res:Word);
мұндағы Ғ- Assign және Reset процедураларының көмегі арқылы типтелмеген
файлмен байланысқан файлдық айнымалының аты; BUF – алмасудың буфер-
айнымалысы; COUNT – бір айнымалыда жазылатын жазулар саны; RES нақты
жазылған элементтер саны.
Егер файлға жазған кезде дискте бос орын жоқ болса, онда егер RES
параметрі берілмесе, онда енгізу-шығару қатесі пайда болады; егер RES
параметрі берілсе, онда оған нақты жазылған элементтердің саны
меншіктеледі.
Мысал-5. Бір файлда берілген мәліметтерді екінші файлға көшіру
программасын құру. Программада қолданылатын файлдар типтелген файлдарда
жүргізілсін.
Программасы:
Program Fil_NeTyp;
Const M=128;
Var
F1, F2: File;
Buf: Array [1..m] of Char;
FilNamIsx, FilNameRez: String[20];
CountR, CountW:Integer;
Begin
If ParamCout2 Then
Writeln (‘файлдардың аттары берілмеген’);
Else
Begin
failNameIsx
Reset(F1, 1);
FilNameRez:=ParamStr(2);
Assign(F2,FilNameRez);
Rewrite(F2, 1);
Repeat
Read(F1,Buf,M,CountR);
ReadWrite(F2, Buf,M,CountR,CountW);
Until((CountR=0) Or (CountR CountW ));
Writeln (FilNamIsx,’файлдар’,FilNameRez,’фа йлына көшірілді’);
Close(F1);
Close(F2);
End;
End.
2. ФАЙЛДАРҒА ҚОЛДАНЫЛАТЫН ФУНКЦИЯЛАР МЕН ПРОЦЕДУРАЛАР
Файлға жазу функциясы
Паскальдың көбірек тараған функциясы – қосалқы программасын
пайдаланады. Оның қызметі ақпаратты экранға жазу(шығару).Оның форматы
қарапайым және қолдануы бейімделгіш
WRITELN (элемент,элемент,...);
Әрбір элемент бұл сіздің экранға шығарғыңыз келгеніңіз және бүтін
немесе нақты сан (3,42-1732,3), символ (“A”-“Z”,”A”-“Я”), қатар (“сәлем
адамзат”),бульдік мән (TRUE) сияқты мәндер бола алады.Бұдан басқа ол атаулы
тұрақты (тұрақты аты), айнымалы, көрсеткіш функцияның шақырылуы,егер ол
бүтін типі мән,нақты сан,символ,қатар немесе бульдік тип қайтарса,бола
алады.Барлық элементтер қатарға кәрсетілген ... жалғасы
Паскаль тілі қарапайым программалармен қатар, күрделі өндірістік
мәселелерді шеше алатын құрылымды тіл болып табылады. Ол Бейсик тіліне
қарағанда аздап күрделі болғанымен, компьютер үшін ыңғайлы, программа құру
реттілігін алгоритмдік тәртіппен қарастыратын, оқушыларды іс - әрекет
тәртібіне тәрбиелейтін тіл болып табылады.
Менің бұл курстық жұмысымның тақырыбы: Файлдарға қолданылатын
функциялар мен процедуралар. Бұл тақырыпта Turbo Pascal программалау
тілінде қолданылатын файлдар және олардың түрлері туралы толығырақ түсініп,
осы курстық жоба тақырыбын толық ашып көрсету мақсатында таңдалынған. Мен
курстық жобамды мысалдармен түсіндіру арқылы мүмкіндіктерін көрсеттім.
Курстық жұмыс тақырыбымда айтылғандай жұмыс жасау барысында Turbo
Pascal программалау тілі қолданылады. Турбо Паскальдағы файлдарға
қолданылатын функциялар мен процедуралар және олардың түрлері туралы
айтылған. Оның ішінде функциялар мен процедуралар және олардың атқаратын
қызметі. Тақырып негізінде қызметші сөздері жайлы қамтылған. Сонымен қатар
тақырыпқа сәйкес мысалдарды қарастырып, файлдарға қолданылатын функциялар
мен процедуралардың мүмкіндіктерін ашып көрсеттім.
Тақырыптың өзектілігі: Бұл тақырыпта TURBO PASСAL тілінде
қолданылатын файлдардың түрлері және оларға қолданылатын процедуралар мен
функциялардың программалау барысындағы қызметтерінің ерекшелігінде.
Зерттеу мақсаты: Файлдарға қолданылатын процедуралар мен
функциялардың программада қолданылу ерекшеліктерін дәлелдеу, яғни олардың
қазметтік сөздерін пайдаланып программаны орындау, жоба тақырыбын толық
ашу. Бұл тақырыпты программада пайдаланылатын мәліметтер мен шамалардың
мәндерін Турбо Паскаль мәліметтер типтерінің түрлеріне салып есептер шығару
және типтер туралы толығырақ түсініп, осы курстық жұмыс тақырыбын толық
ашып көрсету мақсатында таңдалынған.
Зерттеу міндеті: Файлдарға қолданылатын процедралар мен
функциялардың қызметші сөздерін пайдалану ережелері бойынша программаны
орындау.
Курыстық жұмыс мазмұны: кіріспеден, екі тараудан,
қорытындыдан, және пайдаланылған әдебиеттер тізімінен, қосымшадан тұрады.
Зерттеу объектісі: TURBO PASСAL программалау ортасы.
Ғылыми болжамы: Программалау дағдыларын жас кезінен
қалыптастыруға болатын, миллиондаған қолданушыға түсінікті болатын
программалау тілдері ерекше қызығушылық таныту.
Зерттеу әдістері: Файлдарды жеке-жеке зерттеу арқылы олардың
байланыстылығын және ерекшіліктерін анықтап қорытындылау.
1. TURBO PASCAL ОРТАСЫНДАҒЫ ФАЙЛДАРМЕН ЖҰМЫС
1.1 Файл ұғымы
Көптеген мәліметтердің жиынын, мысалы: шаруашылық, сауда оқушылар
туралы, телефондық т.б сыртқы жадыға сигналдар тізбегі ретінде жазып
пайдалану. Паскальда ол үшін арнайы объект – файл қаралған. Файл деп,
белгілі бір атпен сыртқы жадыға жазылған мәліметтер жиынын айтамыз.
Файлдарды пайдалану төмендегідей мүмкіншіліктерге себеп болады:
1. Өңдеуге жататын үлкен көлемді мәліметтерді бірден енгізу көп уақытты,
шаршауды керек етеді. Сондықтан, күні бұрын дайындалған мәліемет
файлдарын кез келген уақытта шақырып, пайдалана қарастырылған.
2. Мәліметтер файылы басқа программада дайындалып, әртүрлі екі есепті,
мақсатты программа арқылы, сыртқы ортамен құрылғыда байланыстырады.
3. Файлдан алынатын мәліметтері бар программа өзін пайдалану үшін
қолданушының қатысуын қажет етпейді.
Турбо Паскальдағы құрылғылар. Компьютер құрамына енетін жеке бөліктерді
құрылғылар деп атайды. Бұлардың басқа, кейбір құрылғылар файл ретінде де
пайдаланылады. Мысалы: A:,B:-иілгіш магниттік дискі жинағышы. C:,D:,E:-
винчестр. CON-(консоль) басқарушы тетік(пульт), шығаруда – бұл құрылғы
монитор экраны, кіргізуде – клавиатура болады. LPT1,LPT2,LPT3-1,2,3
параллель портқа қосылған құрылғылар (порт дегеніміз, құрылғыдағы көп
разрядты кіріс немесе шығыс, оның ішінде LPT1 портына принтер қосылған).
PRN-принтер.
Файл өлшемі оған енетін байт санымен анықталады. Файл өзгерген сайын оның
құрылған мезгілі өзгеріп тұрады. Файлдың аты магниттік дискідегі каталгта
тіркеледі. Каталог – файлдың аты, өлшемі, қалпына келтірілген мезгілі
атрибуттар (қасиеттері) көрсетілетін магниттік дискідегі әдейі орын.
Бір магниттік дискіде бірнеше каталог болуы мүмкін, файл сияқты олардың
аты, толық мәліметтері болады. Бірақ, кеңейткіш пайдаланылмайды. Егер, Х
каталогі Y каталоогінде тіркелсе, онда Х-енгізілген, ал Y-түпкілікті
каталог деп, негізгі каталогтан файлды табуды - жол деп атайды.
Файлдық тип сипаттамасы, файлдар көп жағдайларда текстік жолдан немесе
жазудан тұрады. Файлды сипаттауға fill of сөз тіркестері қолданылады.
Файлдармен қатысу үшін Паскаль – программалау тілін де әдейі, файлдық
айнымалы F қолданылады, яғни F пен сипатталады. Егер файл жазбадан тұрса,
онда жазу өрісіне бару үшін, қосымша айнымалымен (R деп белгілейік)
сипатталады.
Формат:
type
тип аты=құрамдар типі
var
F:file of тип аты;
R:тип аты;
Файлдың барлық элементтері нөмерленген болып есептеледі, бастапқы
элемент нөмері 0 ль болады.
Файл.
Элем 1 Элем 2 элем 3 элем 4 ... ..
ағымдағы көрсеткіш
Кез келген мезгілде программадағы бір ғана элементпен байланысуға болады.
Файлмен орындалатын барлық амал (файлдан оқу, файлға жазу) элементпен
(түйірлеп) орындалады, әрі бұл амалға ағымдағы көрсеткіш
белгіленген файл элементі қатысады. Ағымдағы амалдардың аяқталуы
нәтижесінде көрсеткіш, файлдың әрбір элементіне бейімделіп, орын ауыстырып
тұрады. Элементтерге қатысуға байланысты, файлдарды сатылап немесе тікелей
байланысу файлдары деп атайды. Сатылап байланысу файлы деп, жазуларына
байланысты, элементтеріне біртіндеп байланысуды қамтамасыз етуді айтады.
Тікелей байланысу файлы деп, элементтеріне байланысу адрес арқылы болуын
айтады. Мысалы, керек элементті сатылаған файлдан іздеу үшін, нөлдіктен
бастап, өңдеуіш көрсеткішті, іздеген элемент көрсеткішіне дейін жылжыту
керек, ал, керек элементті тікелей байланысу файлынан іздеу үшін, оның
(позиция) орын нөмірін көрсету жеткілкті. Біртіндеп байланысу файлында,
мәліметтерді ұйымдастыруда файлдан мәліметтерді оқуды және жазуды бір
мезгілде орындауға болмайды., себебі, біртіндеп байланысу файлында
элементті оқу үшін өңдеу көрсеткіші сол элемент үстінде болуы керек, ал
жаңа элементті жазуда, осы көрсеткіш бір мезгілде файлдың соңында болуы
керек.
2. Текстік файл
Бұл бөлімде стандартты TEXT типіндегі файлдық айнымалысын пайдаланатын
енгізушығару операциялары сипатталады. Бір айта кететін жай, Пас кальда
TEXT типі FILE OF CHAR типінен өзгеше.
TEXT стандартты файлдық типі жолдарға реттелген символдардан тұратын
файлды анықтайды. Текстік файлдар төменде сипатталған енгізушығарудың
арнайы процедураларын қолданады.
Текстік файл ашылған кезде ол ерекше түрде интерпретацияланады: ол қатар
соңы символымен аяқталатын қатарларға топталған символдар тізбегінен тұрады
деп есептеледі. Текстік файлдар үшін, типі CHAR типінен өзгеше мәндерді
оқуға мүмкіндік беретін оқу және READ және WRITE жазу операцияларының
арнайы түрі бар. Мұндай мәндер автоматты түрде символдық түрге және
керісінше көшіріледі. Мысалы: READ(F,I), интерпретациясы ондық сан болатын
сандар тізбегін оқиды, мұндағы F текстік файл, I бүтін типті айнымалы.
Бұрын айтып кеткеніміздей текст типті стандартты INPUT және OUTPUT екі
айнымалысы бар (мысал-1). Стандартты INPUT файлдық айнымалысы – бұл
операциялық жүйенің стандартты енгізу файлымен байланысқан оқуға ғана
мүмкін файл (әдетте бұл пернелік), ал стандартты OUTPUT файлдық айнымалысы
– бұл операциялық жүйенің стандартты шығару файлымен байланысқан жазуға
ғана мүмкін файл (әдетте бұл дисплей). Программа орындалу алдында INPUT
және OUTPUT файлдары RESET (INPUT) және REWRITE (OUTPUT) операторлары
орындалғандай автоматты түрде ашылады. Дәл осылай программа орындалып
біткеннен кейін бұл файлдар автоматты түрде жабылады.Тізімі осы бөлімде
көрсетілген кейбір стандартты процедуралары үшін параметр ретінде файлдық
айнымалыны айқын көрсету қажет емес. Егер бұл параметр қалдырылып кетілген
болса, онда өздігінен процедура немесе функция енгізу немесе шығаруға
бағдарланған болуына сәйкес INPUT және OUTPUT қарастырылады.
Мысалы-1:
READ(X) READ(INPUTE,X) – ке сәйкес келеді және
WRITE(X) WRITE(OUTPUTE,X) – ке сәйкес келеді.
1-кесте. Текстік файлдарға қолданылатын функциялар
READ Текстік файлдан бір енмесе бірнеше мәнді бірнеше
айнымалыға оқиды.
READLN READ жасайтын әрекеттерді орындайды, кейіннен келесі
қатардың басына дейін өткізу жасайды.
WRITE Текстік файлға бір немесе бірнеше мәнді жазады.
WRITELN WRITE жасайтын әрекеттері орындайды кейіннен файлға
қатар соңы маркерін қосады.
EOLN Файл үшін END-OF-LINE қатар соңы жағдайын қайтаратын
функция.
Шығару.
Сіздер паскальдың көбірек тараған функциясы – қосалқы программасын
пайдаланыңыздар. Оның қызметі ақпаратты экранға жазу (шығару). Оның форматы
қарапайым және қолдануы бейімделгіш:
Writeln (элемент, элемент,...);
Әрбір элемент бұл сіздің экранға шығарғыңыз келгіңіз және бүтін немесе
нақты сан (3,42 – 1732.3), символ (‘A’ – ‘Z’,’A’- ’Я’), қатар (‘сәлем
адамзат’), бульдік мән (TRUE) сияқты мәндер бола алады. Бұдан басқа ол
атаулы тұрақты (тұрақты аты), айнымалы, көрсеткіш функцияның шақырылуы,
егер ол бүтін типі мән, нақты сан, символ, қатар немесе бульдік тип
қайтарса бола алады. Барлық элементтер қатарға көрсетілген реті бойынша
басылады. Шығарудан кейін күймеше келесі қатардың басына орнатылады (1-
кесте). Егер күймешенің осы қатардағы соңғы элементтен кейін қалуы қажет
болса, онда:
Write (элемент, элемент,...);
пайдаланылады.
Элементтерді шығарғанда олардың арасында автоматты түрде бос орын
қойылмайды. Қажеттілік болса, оларды ескере кеткен жөн:
Writeln (элемент, элемент,...);
Шығару келесі операторлармен сипатталады:
A:=1; B:=2; C:=3;
Name:=’Мұрат’;
Writeln(A,B,C); 123
Writeln(A,’ ‘,B,’ ‘,C); 1 2 3
Writeln(‘Ол-’Name); Ол-Мұрат
Writeln(‘Ол, ’,Name,’.’); Ол, Мұрат.
Сондай-ақ берілген элементтің анықтайтын параметрлерді пайдалануға
болады. Бұл жағдайда оператордың форматы:
Writeln(элемент:ұзындық, . . .);
болады, мұндағы ұзындық – элементті шығаруға арналған өрістің жалпы
мөлшерін анықтайтын бүтін өрнек (литер, тұрақты, айнымалы, фуекцияның
шақырылуы).
Келесі программа және оның орындалу нәтижесіндегі шығаруды
қарастырайық:
A:=10; B:=2; C:=100;
Writeln(A,B,C);
102100
Writeln(A:2,B:2,C:2);
10 2100
WRITELN(A:3,B:3,C:3);
10 2100
Writeln(A,B:2,C:4);
10 2 100
Айта кететін жай элементтің алдында көрсетілген ұзындық бойынша бос
орындар қойылады. Мәннің өзі оң жағы бойынша түзетіледі.
Ал егер өрістің мөлшері қажеттіден кем болмаса ше? Жоғарыда
көрсетілген мысалдың екінші операторында С=100 үшін өрістің мөлшері
керектен аз, басқаша айтсақ берілгені 2, керегі 3. шығаруда Паскаль
мөлшерді қажетті минимумға дейін өсіреді.
Бұл әдіс барлық мүмкін болатын элементтер: бүтін тип, нақты сан,
символдар, қатарлар және бульдік типтер үшін қолданылады.
Барлық нақты сандар үшін өрістің кеңдігін (мөлшерін) көрсеткен кезде
сол жақтан бастап түзетіледі және экспонентті формада басылып шығарылады.
X:=421.53;
Writeln(X);
4.2153000000E+02
Writeln(X:8);
4.2E+02
Сондықтан Паскаль ұзындықтың екінші операндысын қосуға мүмкін береді:
Элемент:ұзындық:цифрлар саны.
Екінші сан бекітілген нүктесі бар сандар үшін үтірден кейін қанша сан
бар екенін корсетеді.
X:=421.53;
Writeln(X:6:2);
421.53
Writeln(X:8:4);
421.53
Writeln(X:8:4);
421.5300
Енгізу.
Стандартта Паскальда деректерді пернеліктен оқуға пайдаланылатын
ақпаратты енгізудің екі негізгі READ және READLN функциялары бар (1-
кесте).
Олардың форматы:
Read(элемет,элемент,. . . );
Readln(элемент,элемент,. . .);
мұндағы әрбір элемент бүтін, нақты, символдық типті айнымалы және қатар.
Сандар бір-бірінен бос орынмен немесе Enter-ді басумен бөлінуі кеерк.
Мысал-2. Төменде көрсетілген программада Ғ1 текстік файлынан 1 –
ші курс студенттерінің тізімі енгізіледі және ол алфавиті реті бойынша
сұрыпталып, терминалдың экранына шығарылады. Ғ1 файлының компоненттері
студенттің фамилиясфн (20 символдан тұратын) және 4 пән бойынша
(математикалық анализ, физика, тарих және алгебра) бағаларды білдіреді. Ғ1
Файлына сәйкес келетін бастапқы деректер жиыны кез келген текстік
редактордың көмегімен дайындала алады, себебі фамилиялар, бағалар бос
орынмен бөлінген символдар тізбегін білдіреді.
Программасы:
Program Fil_TEXT;
Const M=20;
Type
Predmet=(Matan, Fiz, Ist, Alg);
Ozenki=Array[Predmet] of Integer;
Var
F1 : Text;
St : Array[1..100] of String[M];
R : String[M];
Oz : Array[1..100] of Ozenki;
Rr : Ozenki;
I,N,K : Integer;
J : Predmet;
FileName : String[20];
Begin
If ParamCount=1 Then
FileName:=ParamStr(1)
Else
FileName:=’predmet.dat’;
Assign(F1, FileName);
Reset(F1);
N:=0;
While Not Eof(F1) Do
BEGIN
N:=N+1;
Read(F1,St[N]);
For J:=Matan To Alg Do
Read(F1,Oz[N,J]);
Readln(F1);
End;
Close(F1);
For I:=1 To N-1 Do
For K:=T+1 To N Do
If St[I]St[K] Then
Begin
R:=St[K];
St[K]:=St[I];
St[I]:=R;
Rr:=Oz[K];
Oz[K]:=Oz[I];
Oz[I]:=Rr;
End;
Writeln (‘1-ші курс студенттері:’);
For I:=1 To N Do
Begin
Write(I:3,’:’);
For K:=1 To M Do
Write(St [I,K]);
For J:=Matan To alg Do
Wriete(Oz[I,J]:2);
Writeln;
End;
End.
Айнымалылардың сипаттаудың VAR операторында Ғ1 файлы текстік деп
анықталған және компоненттер саны 100-ден аспайды деп жорамалданып, ST және
OZ массивтері анықталған. Файл компоненттерінің нақты саны EOF функциясын
пайдаланып WHILE циклінің орындалу процесі кезінде анықталады (мысал-1).
16, 17 жолдарда PARAMCOUT және PARAMSTR стандартты функциялары
пайдаланылған. PARAMCOUT функциясы командалық жол немесе альтернативті
түрде программалық ортаның RUNPARAMETERS пункті арқылы берілетін
параметрлердің жалпы санын қайтарады. PARAMETR(K) функциясы K-шы параметр
болатын жолды қайтарады. Сонымен 16-19 жолдарда FILENAME айнымалысына
командалық жол арқылы берілетін сыртқы файлдың аты меншіктеледі (осы
жағдайда PARAMCOUT функциясының мәні 1-ге тең). Кері жағдайда FILENAME
айнымалысына сыртқы ’predmet.dat’ файлының аты меншіктеледі.
20-шы жолда Ғ1 айнымалысы аты FILENAME айнымалысы арқылы сипатталатын
сыртқы файлымен байланыстырылады. RESET(F) функциясы Ғ1 файлын ашады және
Ғ файлының бірінші коьпонентін оқуға мүмкіндік береді. 20-30 жолдарда
тұрған цикл операторлары сыртқы файлдағы ақпараттарды St[I] (I –ші
студенттің фамилиясын) және Oz[I,J] (I-ші студенттің J-ші пән бойынша
бағасы) массивтеріне жазады. 32-42 жолдардағы операторларда студенттердің
фамилиясын алфавит реті бойынша сұрыптау ұйымдастырылған. Сұрыптаудың
нәтижесі 43-52 жолдардағы операторлардың көмегімен экранға беріледі.
1.3 Типтелген файл
Барлық типтелген файлдардың элементтері бірдей типті болуы керек, ал
типтелген файл әр түрлі болуы мүмкін. Мүмкін емес хабарламаның мысалы.
Tupe TF1=file of file;
TFR=record
A:Integer;
F:File of Real;
End;
TF2:fileof TFR;
Типтелген файлдармен жұмыс жасайтын процедуралар және функциялар.
Типтелген файлдардан оқу тек Read процедурасымен, ал жазу-Write
процедурасымен орындалады .
Типтелген файл үшін Read және Write процедурасы келесі форматпен
көрсетіледі.
Read (файл аты және тізімі)
Write (файл аты және тізімі)
Тікелей қосу жұмысына келесі процедуралар және функциялар белгіленген.
FilePos-файлда көрсетілген позицияның ағымдағы номерін қайтарады
(позиция нолден бастап номерленеді).
FileSize- файлдың ағымдағы өлшемін қайтарады (санау кезінде файл
элементтерінің саны бірден бастап номерленеді).
Seek-файлдағы ағымдық позицияны көрсеткіш берілген номердегі
элементпен алмастырады.
Truncate- файл өлшемі ағымдағы позицияға дейін қысқарады.Файлда
ағымдағы позициядан кейін орналасқан барлық элементтер өшіріледі, ал
ағымдық позиция файлдың соңы болып қалады. (Eof(f)=True).
Типтелген файлдың элементтеріне тікелей қосу жұмысында файлды електен
өткізу программасын қарастырайық.
Типтелген файлдың ''шаблоны'', (''терезе'') болады.
Мысал-3. Біз физикалық файлға енетін символдар ''енгіземіз '', содан
кейін физикалық файл BYTE типінің файлы ретінде ашылады, нәтижесінде
символдар жазылған ASCII кодына экранға шығады.
Программасы:
Program CharToByte;
Uses Crt;
Var
FC:file of Char;
FB:file of Byte;
Ch: Char;
B:Byte;
Begin
ClrScr;
Assign (FC,’Test.Dat’);
Rewrite (FC);
For Ch:='0' to '9' do Write (FC,Ch);
For Ch:='A' to 'J' do Write (FC,Ch);
Close (FC);
Assign (FB,’Test.Dat’);
Reset (FB);
While not Eof (FB) do
Begin
Read (FB,B);
Write (B:8);
End;
Close (FB);
End.
Нәтиже.
48 49 50 51 52 53 54 55 56 57
65 66 67 68 69 70 71 72 73 74
Бұл бөлімде типтелген типті файл айнымалылары пайдаланылатын
енгізушығару операторлары сипатталады.
Типтелген файлды ашқан кезде сыртқы файл төмендегіше
интерпретацияланады, ол бірдей структуралы (әдетте жазудың көмегімен
сипатталатын) компоненттер тізбегін білдіреді деп есептеледі. Арифметикалық
типті деректер қабылдаған мәндері тәуелсіз бекітілген байттар санын алып
жатады.
Типтелген файлдар үшін форматтары келесі түрде болатын оқудың READ
және жазудың WRITE процедуралары бар.
READ (F1,X);
WRITE (F1,X);
мұндағы Х айнымалысы F1 файлының компонентіне сәйкес типте болуы керек.
Типтелген файлдар үшін алмасу операцияларынан басқа да келесі функциялар
мен процедуралар қолданылады. SEEK, TRUNCATE, FILES FILEPOS.
1.SEEK процедурасы файлдың көрсеткішін берілген позицияға жылжытуға
арналған және форматы төмендегідей.
SEEK (F,NUM);
мұндағы F- файлдық айнымалының аты, NUM- файлдың көрсеткіші орнатылуы қажет
элементтің реттік номерін көрсететін LONGINT типті өрнек.
2.TRUNCATE процедурасы файлдың көрсеткішін тұрған иозициядан бастап
файлдың соңына дейін алып тастауға арналған және форматы төмендегідей.
TRUNCATE (F);
мұндағы F-файлдық айнымалының аты.
3.FILESIZE функциясы файлдың көрсеткішінің ағымдағы позициясын анықтайды
және форматы төмендегідей.
FILESIZE (F);
мұндағы F- файлдық айнымалының аты.
Мысал-4. F2 файлда студенттерінің математика, физика, алгоритм,
тарих пәндерінен алған бағалары көрсетілген. Студенттердің фамилиясын өсу
ретімен сұрыптап, экранға фамилясын және пәндерден алған бағаларын ретімен
шығаратын программа құру.
Программасы:
Program Fil_Typ_Sort;
Type
Stud=Record
Fam:Array [1..10] of Char;
Matan,Fiz, Ist, Alg, :Integer;
End;
Var
F2:File of Stud;
R:Stud;
St:Array [1..100] of Stud;
N,I,J;Integer;
BEGIN
Reset (F2);
N:=0;
While not Eof (F2);
BEGIN
N:=N+1;
Read (F2, St [N]);
End;
For I:=1 To N-1 Do
For J:=I+1 To N Do
If St [I]. FamSt [J]. Fam Then
BEGIN
R:=St [J];
St [J]:=St [I];
End;
Writeln ('1-ші курстың студенттері:’);
For I:=1 TO N DO
With St [I] DO
Begin
Write (I,':', Fam,' :', Matan:2);
Writeln (Fiz:2, Ist:2, Alg:2);
End;
End.
4. Типтелмеген файл
Типтелмеген файлдар негізінен кез келген сыртқы файлға оның типі мен
құрылымына тәуелсіз тура қатынау үшін қолданылады. Бұл жағдайда файл кез
келген типті элементтер тізбегі ретінде көрсетіледі; тек қана көрсетілетіні
– элементтер мөлшері. Кез келген типтелмейтін файл FILE (OF-сыз) кілттік
сөзінің көмегімен сипатталады.
Мысалы:
Var F: File;
Типтелмейтін файлдар екінші RECSIZE параметрі ретінде файл
элементінің мөлшері байтпен көрсетілетін RESET және REWRITE
процедураларының көмегімен ашылады. Егер екінші параметр көрсетілмесе, онда
ол өздігінен 128 байтқа тең деп есептеледі.
Типтелмейтін файлдан оқу үшін форматының екі нұсқасы бар BLOCKREAD
процедурасы қолданылады.
BlocRead(Var F:File; Var Buf; Count: Word);
BlocRead(Var F:File; Var Buf; Count: Word; Var Res:Word);
мұндағы Ғ – Assign және Reset процедураларының көмегі арқылы типтелмеген
файлмен байланысқан файлдық айнымалының аты; BUF – алмасудың буфер-
айнымалысы; COUNT – бір шақырғанда оқылатын жазулар саны; RES нақты
оқылған элементтер саны.
Типтелмейтін файлға жазу үшін форматының екі нұсқасы бар BLOCKWRITE
процедурасы қолданылады.
BlocкWrite(Var F:File; Var Buf; Count: Word);
BlocкWrite(Var F:File; Var Buf; Count: Word; Var Res:Word);
мұндағы Ғ- Assign және Reset процедураларының көмегі арқылы типтелмеген
файлмен байланысқан файлдық айнымалының аты; BUF – алмасудың буфер-
айнымалысы; COUNT – бір айнымалыда жазылатын жазулар саны; RES нақты
жазылған элементтер саны.
Егер файлға жазған кезде дискте бос орын жоқ болса, онда егер RES
параметрі берілмесе, онда енгізу-шығару қатесі пайда болады; егер RES
параметрі берілсе, онда оған нақты жазылған элементтердің саны
меншіктеледі.
Мысал-5. Бір файлда берілген мәліметтерді екінші файлға көшіру
программасын құру. Программада қолданылатын файлдар типтелген файлдарда
жүргізілсін.
Программасы:
Program Fil_NeTyp;
Const M=128;
Var
F1, F2: File;
Buf: Array [1..m] of Char;
FilNamIsx, FilNameRez: String[20];
CountR, CountW:Integer;
Begin
If ParamCout2 Then
Writeln (‘файлдардың аттары берілмеген’);
Else
Begin
failNameIsx
Reset(F1, 1);
FilNameRez:=ParamStr(2);
Assign(F2,FilNameRez);
Rewrite(F2, 1);
Repeat
Read(F1,Buf,M,CountR);
ReadWrite(F2, Buf,M,CountR,CountW);
Until((CountR=0) Or (CountR CountW ));
Writeln (FilNamIsx,’файлдар’,FilNameRez,’фа йлына көшірілді’);
Close(F1);
Close(F2);
End;
End.
2. ФАЙЛДАРҒА ҚОЛДАНЫЛАТЫН ФУНКЦИЯЛАР МЕН ПРОЦЕДУРАЛАР
Файлға жазу функциясы
Паскальдың көбірек тараған функциясы – қосалқы программасын
пайдаланады. Оның қызметі ақпаратты экранға жазу(шығару).Оның форматы
қарапайым және қолдануы бейімделгіш
WRITELN (элемент,элемент,...);
Әрбір элемент бұл сіздің экранға шығарғыңыз келгеніңіз және бүтін
немесе нақты сан (3,42-1732,3), символ (“A”-“Z”,”A”-“Я”), қатар (“сәлем
адамзат”),бульдік мән (TRUE) сияқты мәндер бола алады.Бұдан басқа ол атаулы
тұрақты (тұрақты аты), айнымалы, көрсеткіш функцияның шақырылуы,егер ол
бүтін типі мән,нақты сан,символ,қатар немесе бульдік тип қайтарса,бола
алады.Барлық элементтер қатарға кәрсетілген ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz