Файлдардың түрлері

Жоспары:

І. Кіріспе

ІІ. Негізгі бөлім
ІІ. 1. Файлдардың түрлері
ІІ. 2.Мәтіндік файлға мәліметтер жазу. Бір өлшемді массив.
ІІ. 3.Мәтіндік файлға мәліметтер жазу. Екі өлшемді массив
ІІ. 4.Мәтiндiк файлдан мәлiметтердi оқу
ІІ. 5. Мәтiндiк файлдан мэлiметтердi оку (жалғасы)
ІІ. 6. Типті файл. Типті файлдарға мәліметті жазу
ІІ. 7. Типті файлдан мәліметтерді оқу
ІІ. 8. Әртүрлі базалық типтерді біріктіру. Жазба типі
ІІ. 9. Сыртқы кітапханалар. Модульдер
ІІ. 10. Модуль құрылымы

Қорытынды

Пайдаланылған әдебиеттер
Кіріспе
Turbo Pascal – жоғарғы деңгейлі программалау жүйесі. Оның тұңғыш нұсқасын 1970 жылы швейцрия физигі Niklaus Wirth ұсынған.Автор тілді алғашқы арифметикалық есептеу машинасын жасаған француздың ұлы ғалымы Блез Паскальдің құрметіне Паскаль деп атап , тіл атауын үнемі бас әріппен жазылуын сұраған.Кейінен тілдің көптеген нұсқалары жарық көреді. Кейінен тілдің көптеген нұсқалары жарық көреді.Солардың ішінде 1983 жылы Борланд корпорациясының талантты қызметкері Андерсон Хейлсбергтің жасаған жаңа үлгісі Turbo Pascal программалаушылар арасында жоғарғы сұранысқа ие болды.
Бейсик тілі сияқты, Паскаль оқып-үйренуге жеңіл, түрлі салалық информациямен жұмыс істеуде нәтижелі болғандықтан, дүние жүзінде көп тараған тілдердің бірі
Turbo Pascal программалау тілінің басқа тілдер сияқты өзіне тән алфавиті бар.
Жоғарғы деңгейлі программалау тілдерінің бірі − Паскаль. Қазіргі кезде Паскаль тілінің кеңейтілген ондаған диалектісі бар, оның ішінде IBM PC-ге үйлесімді дербес компьютерлер жұмыс істей алатын Турбо Паскаль диалектісінің варианттары да жеткілікті.
Turbo Pascal жүйесінде қарапайым есептерді шешудің программасынан бастап, күрделі мәліметтер қорын құрудың сан қырлы жұмыстары жүргізіледі.
Паскаль тілі бұрын құрылған (Фортран, Алгол және т.б.) программалау тілдерінен маңызды ерекшелігі ол құрылымдық программалау идеясын өмірге біртіндеп енгізу.
Қосымша әдебиеттер тізімі

1. Вирт Н.Алгоритмы и структуры данных. М.; Мир, 1982.
2. Бондарев В.М., Рублинейкий В.И., Качко Е.Г: Основы программирование. Харьков. Фолио. 1997.
3. Дал У., ДейскстраЭ., Хоор К. Структурное прогрммированием М; Мир. 1975.
4. Даулеткулов А.Б. Олимпиады по информатике. Алматы. ИНТ. 2004 .
5. Марченко А.И., Марченко Л.А. Программирование в среде Turbo Pascal. М.; Бином Универсал, 1997.
6. Федоренко Ю. Алгоритмы и программы на Turbo Pascal. М.; Питер. 2001.
7. Балапанов Е.Қ. Бөрібаев Б.Б. Дәулетқұлов А.Б. Жаңа информациялық технологиялар: информатикадан 30 сабақ. Алматы, ЖТИ, 2004.
        
        Жоспары:
І. Кіріспе
ІІ. Негізгі бөлім
ІІ. 1. Файлдардың түрлері
ІІ. 2.Мәтіндік файлға ... ... Бір ... ... ... файлға мәліметтер жазу. Екі өлшемді массив
ІІ. 4.Мәтiндiк ... ... ... 5. Мәтiндiк файлдан мэлiметтердi оку (жалғасы)
ІІ. 6. Типті файл. Типті файлдарға ... ... 7. ... ... ... оқу
ІІ. 8. Әртүрлі базалық типтерді біріктіру. Жазба типі
ІІ. 9. Сыртқы кітапханалар. Модульдер
ІІ. 10. Модуль құрылымы
Қорытынды
Пайдаланылған әдебиеттер
Кіріспе
Turbo Pascal – ... ... ... ... Оның ... 1970 жылы ... физигі Niklaus Wirth ұсынған.Автор тілді
алғашқы арифметикалық есептеу машинасын жасаған француздың ұлы ғалымы Блез
Паскальдің ... ... деп атап , тіл ... ... бас ... ... тілдің көптеген нұсқалары жарық көреді. Кейінен
тілдің көптеген ... ... ... ... 1983 жылы ... ... қызметкері Андерсон Хейлсбергтің жасаған жаңа
үлгісі Turbo Pascal программалаушылар арасында жоғарғы сұранысқа ие болды.
Бейсик тілі ... ... ... жеңіл, түрлі салалық
информациямен жұмыс істеуде нәтижелі болғандықтан, дүние жүзінде көп
тараған тілдердің бірі
Turbo Pascal программалау тілінің басқа тілдер сияқты өзіне тән ... ... ... ... бірі − ... Қазіргі
кезде Паскаль тілінің кеңейтілген ондаған диалектісі бар, оның ішінде IBM
PC-ге үйлесімді ... ... ... ... ... ... ... варианттары да жеткілікті.
Turbo Pascal жүйесінде қарапайым есептерді шешудің программасынан бастап,
күрделі мәліметтер қорын құрудың сан ... ... ... тілі ... ... ... ... және т.б.) программалау
тілдерінен маңызды ерекшелігі ол құрылымдық программалау идеясын өмірге
біртіндеп енгізу.
Файлдармен ... ... ... ... біз ... ... негізіп, оларды экранға
шығардық, программа жұмысы кезінде олар компьютердің оперативті ... да, ... ... кейін бұл мәліметтер жоғалып ... ... ... пайдалана алу үшін, мысалы, оларды ... үшін ... жңа ... алу ... оларды есте сақтап қалу
керек. Ондай тәсілдердің ьірі мынадай: нәтиже экранға ... соң ... ... және бір бет қағаз алып, бұл мәліметтерді ... ... ... дәуірінің басында оларды “үй тапсырмасы” деп атаған
да, шын мәнінде солай ... ... ... ... компьютерлердің
барлығы ақпаратты сақтауға арналған арнайы құрылғылармен ... ... ... ... ақпарат тасымалдаушылар немесе
жазылатын CD- дискілер деп атайды. Ақпаратты сақтау осы ... бұл ... біз ... ... ... ... ... мәліметтер осы ... ... ... ...... ... ... сыртқы тасымалдаушыдағы
жадының ат қойылған аймағы (бөлігі).
File (ағылшын тілінен аударылғанда) бума, іс қағаздар жинағы, сонымен
қатар ақпаратты сақтау ... ... ... Pascal-да файлдарды екі негізгі белгісі бойынша топтастыруға
болады:
a) файлдың типі ... ... ... құрылымына )
b) файл элементтеріне қатынау тәсілі бойынша
Типтері бойынша файлдар шартты тұрде үш түрге бөлінеді:
... ... ... файл;
← типтік емес файл.
Біз көбінесе мәтіндік және типтік ... ... ... ... бойынша файлдар келесідей бөлінеді:
← Тікелей қатынау файлдары
← Кезекпен қатынау файлдары
Олардың айырмашылығы тікелей қатынау файлдарында арнайы
процедуралар және функцияларды ... ... ... ... ... ... оқуға немесе жазуға болады, ал кезекпен қатынау
файлында оның ... ... ... ... ... оқу ... оның
алдындағы мәліметтердің барлығын оқуға тура ... ... ... ... ... ... ал ... файлдар тікелей қатынау
файлдарыа жатады.
2. Мәтіндік файлға мәліметтер жазу.
Бір өлшемді массив.
Ең қарапайым файл типі ... файл ... ... Бұл файлдағы
мәліметтер типтік және типтік емес ... ... ... емес,
сан, әріп және басқа пернетақта символдары түрінде (ASCII кодында)
беріледі. ... ... ... ... оңай ... оңай ... ... кез келген мәтіндік редактордың, соның ішінде Borland Pascal
ортасының да көмегімен өзгертуге болады. ... ... ... ... теру ... жаңа ... ... үшін “Enter” пернесін басу
керек, осы ... ... код ... жол соңы коды, ал файлды
сыртқы ... ... ... кезде де арнайы код гинерацияланады—ол
файл соңы коды. Мәтіндік файлды оқығанда бұл кодтар көрінбейді.
Келесі есепті шешіп ... ... ... ... ... ... атты ... типтегі файлға жазу керек.
Есепті кезеңдерге бөлейік:
1) пернетақтадан мәліметтерді ... ... ... атты ... жазу ... кезеңді орындау үшін:
← пернетақтадан енгізілетін сандардың мөлшерін (массив өлшемін) көрсету
керек
← Сан ... ... соң, ... циклді қолдану арқылы массив
элементтеріне осы сандардың нақты мәндерін меншіктейміз
Осы ... ... үшін ... ... ... санымыз 100-ден көп емес және олар басқа да ... ... ... ... ... блогында
сипаттаймыз.
рrogram Misal_F1;
var
San: array [1..100] of
integer;
i,
SanMolcher: integer;
Мәліметтерді енгізу процедурасы келесі түрде болады:
procedure init; begin readln (SanMolcheri);
for i:=1 to ... ... ... ... ... ... бізге қажет емес, сондықтан ол қызмет
атқармай-ақ қойсын.
procedure work ;
begin
end;
Енді ... ... ... яғни ... ... мәтіндік типтегі файлға жазу керек. Алдымен өз ... ... ... беру ... ол ... ... ... содан кейін біз оны мәтіндік файл ретінде сипаттаумыз
керек. Бұл айнымалыны шығару процедурасында пайдаланатын болғандықтан, оны
жергілікті айнымалы ретінде сипаттаймыз:
var
FileOut: text;
Одан ... біз ... ... ... FileOut атты ... ... in” атты ... файлмызды белгілейтінін көрсетуіміз керек.
Ол үшін assign(Name Var, Name ... ... Name ... ... үшін ... ... аты, ... жағдайда Name Var—дың
орнына File Out сөзін жазасыз. NameFile—бұл біз жұмыс істейтін файлдың аты,
біздің жағдайда”mayFile.in”.
Файл аты мен оның ... ... ... орнына қарай
сипатталатыны да белгілі. Мысалы,”c,\bp\bin\MyFile.in”. Ал егер толық аты
берілмеген жағдайда, үнсіз келісім бойынша сіздің ... ... ... қолданылады. Енді сіз берілген файлды ашып, оған
мәліметтер жазылатындығын көрсетуіңіз керек. Ол үшін rewrite (Name
Var)процедурасы ... ... Name ... ... ... ... ... аты, біздің жағдайда Name Var—дың орнына FileOut атауы
жазылады. rewrite(
Name Var) процедурасы—файлды жазу үшін ашады және ... ... ... ... ... ... бәрі ... Ол үшін бұрынан белгілі
Write() және Write() процедураларын қолданамыз. Жазулар экранға емес файлға
жазылуы үшін, мәліметтерді шығару бағытын көрсетеміз. Яғни, ... ... ... ... ... ... ... файлмен
байланыстыратын assign() процедурасындағы айнымалы атуын көрсетеміз.
Айталық, берілгендерді шығыс файлына бір жолға жазу керек ... ... ... мән ол ... ... ... болады. Жаңа жолға
көшу болмайтындықтан,Write() процедурасын қолданып, бастапқыда файлға
SanMolcheri айнымалысын мәнін жазамыз да, содан кейін ... ... ... ... ... ... жазамыз. Барлық
мәліметтер файлға жазылып болған соң, файлды жазу керек. Ол ... ... ... Var) ... ... файл соңы белгісін жазып,
оны жабады. Егер файл Close() процедурасымен жабылмаған болса, онда
мәліметтер сақталынбайды.
Мәліметтерді файлға жазу ... ... ... ... ... i=1 to
SanMolcheri do
write(FileOut,San[i]);
close(FileOut);
end;
негізі программаның мәтіні өзгеріссіз қалады
begin
init;
work;
exi;
end.
Осы программаны ‘Misal_F1’ атымен дискіге жазып, оны ... ... ... аяқтағаннан кейін, BP редакторының көмегімен
біздің программамыз құрған `mayFile.in` файлын ашып, оның мазмұнын көріңіз.
Өкінішке орай сандар файлда бос ... ... ... ... ... ... қандай сандар жазылғанын анықтау қиындық тудырады. Бұл
жағдайды қалай түзетуге болады?
Ол үшін, сандары бір ... дәл ... екі ... ... ... бос орын (``)белгісі арқылы бөліп жазу
в.әрбір мәнді жаңа жолға жазу (баған бойынша).
Бірінші жағдайда енгізілетін айнымалы атауынан кейін бос орын (``)
белгісін ... ... i:= to ... ... ... үшін, writeln() процедурасын қолданамыз:
writeln(FileOut,SanMolcheri);
for i=1 to SanMolcheri do
writeln(FileOut, San[i] );
Тапсырма
1.Енгізілетін мәліметтер `mayFile1.in` атауымен берілген файлға, бір жолға
және бос орын ... ... етіп , Misal_F1 ... ... Жаңа программаны Misal_F2 атымен сақтаңыз.
2. Misal_F1 программасында берілген мәліметтер `mayFile2.in` файлына ... жаңа ... ... ... ... ... Жаңа програманы
Misal_F3 атымен сақтаңыз.
3.Пернетақтадан 20 жол мәтін енгізіп, оны шығу ... ... ... ... программа жазыңыз.
3. Мәтіндік файлға мәліметтер жазу.
Екі өлшемді массив.
Алдыңғы тақырыпта сіз мәтіндік файлдарды ашуды, оған ақпараттарды
жазуды ... Write()- ... ... мәліметтерді бір
жолға, ал writeln()—процедурасын пайдаланып оларды ... ... ... білгендерімізді пайдаланып, келесі есепті шешіп көрелік:
Пернетақтадан, өлшемі 100х100, ... ... сан ... екі
өлшемді массив енгізіледі. Осы массивті элементтерінің ... ... ... ... ... файл ... ... программа
жазу керек.
Бұл есеп те, алдыңғы тақырыпта қарастырылған есепке ұқсас, екі негізгі
кезеңнен ... ... ... ... `МayFile5.in` болатын, файлға жазу керек.
Бірінші кезеңді орындау үшін :
□ Пернетақтадан енгізілетін, массив өлшемдерінің нақты мәндерін кіргізу;
□ Массив өлшемдерін біле ... ... цикл ... қолданып
массив элементтеріне нақты мәндерді меншіктеу.
Мәліметтерді енгізу процедурасының мәтінін Misal_8 программасынан алуға
болады. Ал мәліметтерді өңдеу процедурасы ... ... ... ... ... файлына жазу процедурасының қандай
болатындығын қарастыралық:
procedure exi;
var
FileOut: text;
begin
{нақтылы ... ... ... ... ... ... өлшемдерiн жазу және курсорды жаңа жолға көшiру}
writeln(FileOut, ... ... i=1 to JolSany ... элементтерiн бос орын арқылы жолға жазу}
for j=1 to BaganSany do
write(FileOut,San[i,j],``);
{j-циклiн аяақтаған соң, курсорды жаңа жолға көшiру}
writeln(Fileout);
end;
{файлды жабу}
close(FileOut);
end;
Негiзгi программа ... ... ... ... да ... ... Misal_F5 атымен сактаңыз. Программаны iске қосудың алдымен,
келесi әрекеттердi:
... ... ... ... ... ... ... менюдi Debug iшкi менюiн ашыңыз;
□ Add brekpoint… әрекетiн тандаңыз;
□ Enter пернесiн ... Add ... ... ... ... сұхбат терезесi шығады (2.8-
сурет).”Line number” (жол нөмері)өрісінде, курсор ... ... ... ... ол Exi ... ... ... басын көрсетеді.
“Ok” батырмасын (сұхбат терезесіндегі) немесе “Enter” пернесін басыңыз.
Редактор терезесіндегі бұл жол ... ... ... Енді ... басу арқылы программаны іске қосыңыз. Пернетақтадан бастапқы
мәндерді енгізіңіз. Мәліметтерді енгізген соң программа жұмысын ... ... ... ... ... терезесі шығады. Яғни, біз
өзіміздің әрекеттеріміз арқылы программа жұмысын көрсетілген ... ... ... Жұмысты қайтадан жалғастырву үшін “Ctrl+F9”
пернелерін басуымыз керек немесе F7 пернесін пайдаланған тиімді және Exi
процедурасының қалай жұмыс істейтінін ... көре ... ... ... жеке ... ... жасағанда (жүріп
өткенде) тиімді, себебі үлкен өлшемді программаларды толығымен жүріп өту
жалықтырады және ... ... Олай ... ... құрылымдылық
тәсілін (1.5 тақырып) қолдай отырып бізде бары:
1. Жеке модульдермен “жұмыс істеу” (программалау) мүмкіндігі.
2. Бір деңгейдегі ... ... ... программаның
жекеленген бөліктерін, программаш\ның басқа бөліктеріне әсер етпей
тәуелсіз жетілдіруге мүмкіндік береді. Э. Дейкстр атап өткендей: “...
программаны жетілдіру, бір ... ... ... ... ... ауысуынан туындайды”.
3. Құрылымдылық программаның жеке бөліктерімен жұмыс жасау.
Процедура мәтінімен ... ... ... ... ... ... ... бос орын аркылы
жолга жазу}
forj:=1 to BaganSany do
write (FileOut, San[i,j],``);
{j-цикл аякталган сон, курсорды жана
жолга кошiру}
writeln(FileOut);
end;
Тоқтату нүктесін алып тастау үшін, келесі әрекеттерді ... ... ... ... ... ... Debug ішкі ... ашыңыз;
□ Breakpoints пернесін басыңыз.
□ Enter пернесін басыңыз.
Экранда программаға қойылған ... ... ... ... ... ... ... сұхбат терезесі (2.9-сурет)
шығады.
□ Қажетті элементті белгілеңіз;
□ “Delete” (сұхбат терезесінен) батырмасын немесе “D” (пернетақтадан)
пернесін басыңыз.
Белгіленген ... ... ... ... ... Егер сіз
барлық тоқтату нүктесін алып тастағыңыз келсе-- “Clear ... басу ... Егер exi ішкі ... write және ... ... ... FileOut көрсетілмесе San массиві
қайда жазылған болар ... Егер осы ... тек writeln ... ... болса не
өзгереді?
4. Мәтiндiк файлдан мәлiметтердi оқу
Өткен ... ... ... ... ... жазуды
үйреніңіздер. Енді оларды қайтадан ... ... ... ... үшін ... ... пайдаланамыз. Мәліметтерді файлға жазу
кезіндегідей, біздің файлмызды байланыстыратын айнымалыға атау ... ... ол атау Fileln ... ... ... біз оны ... ... сипаттауымыз керек. Бұл айнымалыны біз енгізу ... ... сол ... ... ... ... ... біз программада, “мәтіндік типті ” Fileln айнымалысы, біздің
`mayFile1.in` ... ... ... ... ... ... Ол үшін ... қолданады.
Енді файлдан мәліметтерді оқу үшін, берілген файлды ашуымыз керек. Ол
үшін, reset(NameVar)—процедурасында ... ... ... ... ... ... атауы, біздің жағдайымызда, ол
NameVar-Fileln. Reset(NameVar)-процедурасы, ... ... ... ... курсорды файлдың басына орналастырадв. Егер ондай жоқ ... ... ... ... Енді ... ... ... барлығы
дайын болды. Ол үшін өзімізге ... ... Read() және ... ... ... оқу ... ... файлдан
жүзеге асу үшін, мәліметтерді оқудың жолын көсетеміз. Яғни, жақшалардың
ішіне, assing()- процедурасының көмегімен ... ... ... ... ... ... ... сан, файлдағы ... ... ... ... ... файлдан
Sanau айнымалысының мәнін оқытамыз,содан кейін параметрлі циклді қолданып,
файлдағы сандардың мәндерін оқимыз. ... ... ... болған соң,
өзімізге таныс Close() процедурасын пайдаланып, файлды жабу керек.
Енді, ... ... оқу ... ... ... ... i:=1 to Sanau do
read(Fileln,San[i]);
close(Fileln);
end;
Дәл осындай, егер өлшемдері белгілі болса, мәліметтерді екі өлшемді
массивтен оқу да онша қиыншылық туғызбайды. `MayFile.in5` файлынан
мәліметтерді оқитын ... ... ... келтірейік:
procedure lnit;
var
i,j:byte;
{айнымалы атауын
мәтiндiк файл түрiнде сипаттау}
Fileln :text;
begin
{айнымалыны нақтылы файл
атымен байланыстыру}
assing(Fileln,`mayFile5.in`);
{файлды ... ... ... ... жаңа ... ... элементтерiн жол
және баған бойынша оқу}
for:=1 to JolSany do
read(Fileln,San[i,j]);
{файлды жабу}
close(Fileln);
end;
Мынаған ... ... ... ... оқу ... ... ... тек қана Read() процедурасы қолданылды. Бұл мүмкін
еді, себебі массив ... оқу үшін оның ... ... ала ... Егер ... ... ... жазбалар саны алдын ала белгісіз
болса, онда қайталану саны белгісіз цикл операторларын қолдануға тура
келеді.
Тапсырма
1. Бір өлшемді массивті құрайтын `MayFile.in` файлынан ... ... ... ... ... ... ... және оны
`MayFile6.pas` атымен сақтаңыз.
2. Екі өлшемді массивті құрайтын `MayFile5.in` файлынан мәліметтерді оқып,
оларды компьютер экранына программа жазып және оны ... ... ... ... ... ... файлынан
мәліметерді оқыңыз. Алынған нәтижені 1 тапсырма нәтижесімен
салыстырыңыз. Нәтижені түсіндіріңіз.
4. BP ... ... ... ... ... ... файлдарындағы массив өлшемдерін немесе жазбалар саные
көрсететін жолды алып тастаңыз.
5. Мәтiндiк файлдан мэлiметтердi оку
(жалғасы)
Егер мәтіндік файлдардағы жазбалар саны ... ... онда ... онша қиын ... Ал, егер ... ... ... саны белгісіз болса
ше, онда не істейміз? Егер сізге орындалатын әрекеттердің саны ... онда ... саны ... цикл ... ... ... ... мәтіндік файлдардың қасиеттерін
сипаттаған болатынбыз, онда ... ... файл ... ... белгі код
қойылатыны жайлы айтылған. Олай болса, мәліметтерді оқу ... ... ... ... Егер файл бос ... яғни онда ешқандай жазба
жоқ, онда одан ... ... ... Осы ... ... алғы шарт циклін қолдану керек екеніне көзіміз ... Файл ... ... ... EOF(Name ... ... ағылшын тілінде
EndOf File—файл соңы деген сөзден қысқартылып алынған. ... ... ... ... ... ... ... байланыстыратын
айнымалы атауы жазылады. EOF(Name Var)-процедурасының мәні, ... егер файл ... ... болса Ture(ақиқат)-болады, егер файлдың
соңы анықталған болса. Олай болса, алғы шарт ... ... ... ... ... ... онда цикл ... береді, яғни файл
соңы анықталғанша. Бұл жағдайда мәліметтерді енгізу процедурасы келесідей
болады:
procdure lnit;
var
{айнымалы атауын
мәтiдiк файл түрiнде сипаттау}
Fileln:text;
Begin
{айнымалыны ... ... ... ... ... бастапқы
мәнi}
Sanau:=0;
While Not EOF(Fileln)
do
Begin
{санауыштын мәнiн бiрге
арттыру}
inc(Sanau);
{массивтен
элементтердi оқу}
read(Fileln,San[i]);
end;
{файлды жабу}
close(Fileln);
end.
Sanau-айнымалысы файлдағы жазбалардың санын анықтауға қызмет атқарады. Бұл
айнымалыны ... ... ... ... ... Сол ... массиві де ауқымды айнымалылар бөлімінде сипатталады:
Var
San: arry[1…100] of integer;
Sanau: byte;
Жазбалар саны белгісіз файлдан мәліметтерді оқу жұмысының дұрыстығын
тексеру үшін, ... ... ... ... баған түрінде шығарамыз:
procedure exi;
var
i: byte;
begin
for i:=1 to Sanau do
begin
writeln(San[i]);
end;
end;
Егер сіз программа мәтінінің қалған ... ... ... ... саны 100-ден аспайтын мәтіндік файлдан мәліметтерді және жазбалар
санын оқитын программа аласыз. Сонымен қатар бұл ... ... ... ... анықтап, оны экранда жазады.
Енді екі өлшемді массив мәліметтерін файлдан қалай оқуға болатындығын
қарастырыралық. Жоғарыда ... ... ... оқу, оның ... анықтайтын белгісіне байланысты екен. Бірақ екі өлшемді массивтерді
жазғанда оның элементтері жол бойынша және баған бойынша ... ... ... оқығанда, алдымен алғашқы жол бойынша файл
соңы белгісі анықталады. Жолдағы мәліметтер толығымен оқылып ... ... ... оқуды бастау керек. Мәтіндік файлдар қасиеттерін қарастырғанда
айтылғандай, онда әрбір жол, жол соңы белгісімен ... ... ... ... үшін ... ... Var) процедурасын қолданады.
EOLn(), ағылшын тілінде End of length жол соңы сөзінің қысқартылған түрі.
Жақшаның ішіне assing() процедурасында көрсетілген файлдың нақтылы ... ... ... ... ... Var)-процедурасының
мәні, False(жалған)-болады, егер жолдың соңына жетпеген болса,
Ture(ақиқат)-болады егер жолдың соңы анықталған болса. Олай болса
мәліметтерді оқу жалғаса береді егер Not ... ... ... ... жол соңы ... Бұл ... мәліметтерді оқу процедурасының
түрі келесідей болады:
procedure lnit;
var
i: byte;
{айнымалы атауын
мәтiндiк файл түрiнде сипаттау}
Fileln:text;
Begin
{айнымалыны нақтылы
файл ... ... ... санауыштың
бастапқы мәнi}
Sanau Jol:=0;
{массив элементтерiн
жол бойынша оқу}
while Not EOF (Fileln)do
begin
{санауыштың мәнiн ... ... ... ... ... жол
бойынша оқу}
while Not EOF (Fileln)do
begin
{санауыштың мәнiн бiрге
арттыру}
inc(Sanau Bagan);
{массив элементтерiн оқу}
read(Fileln, San[i,j]);
end;
{курсорды жаңа ... ... ... ... ... өлшемді массивті құрайтын `MayFile.in` файлынан мәліметтерді оқып,
оларды компьютре экранына шығаратын программа жазыңыз және оны
`MayFile6.pas` атымен сақтаңыз
6. Типті файл. Типті ... ... ... ... қарастырып көрелік:
Мәтіндік файлға төрт таңбалы 50 сан жазу керек. Әрбір сан жеке жолдарға
жазылатын болсын. Нәтижесіндегі файлдың ... ... ... ... ... көрелік. Әрбір таңба 1 байт орын алады. ... саны ... ... ... ... анықтама бойынша әрбір
жолдың соңында файл соңы белгісі болғандықтан, файл өлшемі 250 байттан асып
кетеді.
Бұл мәліметтерді кіші өлшемдегі ... ... бола ... ... ... өңдей алуы үшін, біз оған алдын ала
оперативті жадыдан белгілі бір орын бөлуіміз ... ... ... өлшемі мәліметтердің типіне байланысты болғандықтан, бір ... ... integer ... ... 2 байт, byte типті бір элементке 1
байт орын бөлінеді.
Мұндай амалдарды ... ... ... кезінде қолдануға бола ма?
Болады екен. Типті файл деп ... ... ... типтер бар.
Типті файл – барлық элементтері бір типті мәліметтер болып келетін файл
түрі. Типті файл элементтері ... ... ... ... тип ... элементті файлға жазу үшін, мәліметтердің типіне ... ... ... орын ... ... ... ... ашу үшін, мәтіндік файлды смпаттағандай, файл мәліметтерді
смпаттайтын тип жазылады.
:file of
Біздің ... of ... ... ... ... мәліметтер – 32768-ден 32767 аралығында
жататын бүтін сандар екенін көрсетеді.
Сонымен ... ... ... ... істегенде де, assign( ) -
процедурассының көмегімен нақтылы файл аты мен ... ... ... ,’may.dat’)
Типті файлдармен жұмыс жасағанда мәтіндік файлдардағы секілді
оларды жазуға және оқуға ... ... Ол үшін ... функциялар
қолданады:
Rewrite() – процедурасын файлды жазуға ашады және курсорды
файлдың басына орналастырады.
Типті файлдарға мәліметтерді жазу write() ... ... ... Ол ... ... write() процедурасына ұқсас. Алайда
write() процедурасын типті файлдарда ... ... ... ... ... ... көрсеткіш келесі жазу блогына ... ... ... ... ... қателік көрсетеді.
Типті файлдарға writeln() процедурасын қолдануға болмайды.
Типті файлдармен жұмыс аяқталған соң Close) – ... файл ... ... ... ... ... шешуді жалғастырайық. 2.8.2
тақырыбындағы Мisal_F1 мәліметтерді шығару программасына ... ... ... :File of integer;
I ... ... ... i:=1 to Sanau ... (FileOut, San[i]);
Close(f);
End;
Программаны толықтырып жазып Мisal_F8 атымен сақтаңыз. Программа
орындалғаннан кейін "mayFile.in" файлын ашып ... Не ... ... ... ... ... файлдар тікелей қатынау файлдарына жатады, ол оның ... ... ... ... ... ... файлдың
компоненттері біркелкі, қатаң тәртіптегі көлемде орын алады. Сонымен тұтас
блок бар делік және оған қатынауды ұйымдастырғанда, оған ... ... ... ... ... қажет емес.
Типті файлдардан мәліметтерді оқуға арналған негізгі проуедураларды
қарастырамыз.
Типті файлдармен жұмыс жасар алдында, ... ... ... ... және ... мәліметтердің типін көрсету керек, нақтылы
файл атауын ... ... ... ... ... ... ... – процедурасы файлдф оқуға ашады және көрсеткішті
файлдың ... ... ... ... оқу үшін read( ) ... қолданады.
Берілген процедураның жұмысы кезінде, блоктан мәліметті оқыған соң,
көрсеткіш автоматтты түрде ... ... ... Егер ... ... ... тұрса, онда программа орындалуында қателік болады.
Бұл қиындықтан шығу үшін FileSize( ) функциясын қолдануға болады.
FileSize():longint – функциясы файлдағы компоненттер санын
анықтайды. ... ... ... ... ... оқу керек болса, оқу
процедурасын FileSize( ) рет ... ... ... ... ... файлдан мәліметтерді оқудың программасының мәтінінен үзінді
келтіреміз:
Procedure Init;
Var
FileInput : file of integer;
I, Sanau : integer;
San:array[1..100] of integer;
begin
assign(FileInput, ‘mayFile.in’);
reset (FileInput);
Sanau ... i:=1 to Sanau ... San ... ... ... файлдар – тікелей қатынау файлдарына жататынын
айтып кеткенбіз. Яғни, файлдың кез-келген бөлігіндегі мәліметтерді ... оның ... ... ... ... ... етпейтін файлдар
кездеседі.
Көрсеткішті қажетті мәліметті оқуға қою үшін, Seek() – ... Оның түрі ... ... ... ... ... файлдарда нөмірлеу нөлден басталатыны есте
ұстау керек, яғни бірінші лементтің нөмері "Нөл". Олай болса, біз
көрсеткішті үшінші ... ... ... үшін, Seek( ) - процедурасын
қолдануды ескеруіміз керек. ... ... ... Әртүрлі базалық типтерді біріктіру. Жазба типі
Массив анықтамасында айтылғандай, массив дегеніміз құрылымына ... ... ... бір ... ... ... Егер ... мәліметтер берілген болсын. Осы тізімнен белгілі бір жлыдар
аралығында туған ... ... ... алу ... ... ... үшін оған екі массмвке орын бөлуімізге болатын еді.
Бірінші массив (snring типті) оқушылардың аты ... ... ... арналған. Егер бізге қосымша мәліметтер (мысалы: сыныбы, ұлты,
т.б.) енгізу ... ... онда ... тура келеді. Бір мезгілде бірнеше
массивпен жұмыс істеу және оларды смпаттамалары бойынша ... ... ... ... ... ... ... Сонымен қатар бұл мәліметтерді
файлда сақтау керек болса не істейміз?
Файлдар туралы сұрақтарды талдағанда айтылғандай, файл ... ... ... ... ... келеді. Олай болса әр түрлі типтегі элементтерді
әрбір ...... ... ... мәтіндік файлдармен жұмыс істеуіміз
керек.
Мәліметтерді сақтай аламыз, бірақ ... бұл ... ... жеткілікті қиындық туғызады.
Бұл қиындықтан шығу үшін мәліметтердің құрама типі ... бұл типі ... деп ... ... әр ... типтегі
элементтер жиынтығынан тұрады. Жазба элелменттерін құраушыларды өріс деп
атайды да, ... ... ... ... ... Әрбір жазбаның бірегей атауы
болады.
|Жазба атауы |Тізім ... ... ... |Аты ... жылы ... мәні ... |Алдияр |1980 ... ... ... ... ... шығады. Мұндай объект типі –
record (жазба) деп аталады. Олай болса, мәліметтердің типтеріне ... ... ... ... ... оның ... ... өрісте сақталатын
мәліметтердің атауы және типі ... ... ... жалпы түрде
сипатталуы келесідегідей:
Type=Record
:;
:;
……………………
:;
end;
9. Сыртқы кітапханалар. Модульдер
Модульдер және олардың қолданылуы туралы айтпастан ... ... ... ... ... ... ... оқиық. Алисаның Ақ
Серімен әңгімесі:
• Иә бұл өте жақсы ара ұясы, - деп Сері ... ... – Ең ... ... ол ... бір ... ... Менде бұнда тағы
тышқан қақпаны бар. Тышқандар араларды ... ... ...... ... Ал мен ... ... қақпаны не үшін керек екенін ойлап тұрғам –
деді Алиса. – Аттарда тышқанның өмір ... ... ... Қиын, бірақ болады, - деп Сері жауап берді. – Мен ... ... ... ... ... ... ... бе, - деп жалғастырды ол, үндемей ... - ... ... ... Міне ... ... атымның аяғында білезіктер
тағылған.
• Ал ол не үшін? – деп ... ... ... ... алмауы үшін, - деді Ақ Сері.
• Бұны мен өзім ойлап таптым. Атқа шығуға көмектесші. Мен сені шетке
шығарамын. Ал мына ыдыс неге ... ... ... - деді ... Онда оны ... ... ала кетейік, - деп ұсынды Сері. – Егер біз
бәліш тауып алсақ, ол ... ... ... ... ... тұр, - ... осыған салайын…
Бұл оңай болмады. Алиса дорбаны қатты ұстап тұрды, бірақ Ақ ... ... ... ол ... ... ... ... оған өзі құлай берді.
Ақырында ыдыс әрең салынады.
- Әрине онда оған орын аз, - деп ... ...... ... лық толы, бірақ басқа не істейсің!
Ол дорбаны ер ... іліп ... одан ... ... ... және әр ... ... салбырап тұрды.
Ақ Серінің аты және қаруы қалай көрінгенін ... ... ... Pascal ... ... саннан құралған тұрақтыларға, мәліметтер
типіне, айнымалыларға, ... және ... ... ... Олардың ішіндегі кейбіреулері Borland Pascal үшін
ерекше, ал кейбіреулері Windows ... Dos ... үшін ... программалауда ерекше. Олардың саны өте көп, дегенмен, ... ... ... бір ... аз ... Сондықтан олар
модульдер деп аталатын өзара байланысты топтарға бөлінген. Бұл жағдайда тек
программаға қажетті ... ... ... ... (Unit) тұрақтылар, мәліметтер типі, айнымалылар,
процедуралар және функциялар жиынтығы болып табылады. Әр ... ... ... ... сіз ... орындаңға жіберместен
бұрын, оның шақырылатын және қажетті инициализацияны жүзеге ... ... ... ... ... ... ... программаға қоюға
болатын және программаны жеке компилиаланатын бөлшектерге бөлуге болатын,
сипаттамалар кітапханасы болып табылады.
Модуль құрамына кіретін, ... және ... ... ... ... ... ... жиынтығын қамтамасыз етеді. Бірақ та
бұл тәсілдерді нақтылы жүзеге асыру ... және ... ... Егер ... модуьді пайдаланса, модульдің барлық
сипттамалары бұл программаға, оның өзінде ... ашық ... ... ... құрылымына ұқсас. Модульдің ішіндегі барлық
сипаттамалар бір-бірімен байланысты. Мысалығы, Strings ... ... ... ... ... ішкі ... қажетті
сипаттамалардан тұрады. Сонымен қатар іщкі ... ... ... ... және ... емес ... ... модулі, яғни,
програмалаушылар өздері құрастыратын бола алады. Стандартты және стандартты
емес ... ... ... ... ... ... ... құрылған.
Модульдер программаға оның атын uses компилятор нұсқауында сипаттаудың
көмегімен қосылады. Мысалы, былай сипатталғанда:
Uses Dos, ... ... ... ... ішкі ... ... және тұрақтыларды программада қолдануға болады.
Ескерту. Модульдердің аттары оларды ... ... ... ... ... кейін үтірлі нүкте қойылады!
System модулі
System модулі барлық құралдар үшін, төменгі ... ... ... ... ... ... жолдық айнымалылармен
жұмыс, ауыспалы нүктемен жасалынатын ... және ... ... ... Borland ... ... ... және құрылған
процедураларынан және функцияларынан тұрады. Стандартты Паскальдің бөлігі
болмайтын және басқа модульдерде орналаспаған Borland ... ... ... System ... ... ... System модулі программаға автоматты қосылады (үнсіз ... және оны Uses ... ... ... ... емес модуьдерді пайдалану программаларды ... ... ... ... бұл программаларды өңдеуді
жылдамдатады, олардың түсініктілігін және ... ... ... Мұндай кітапханада, мысалға, жиі пайдаланылатын
массивтерді (енгізу процедуралары, ... ... ... ... т.б.) ... операцияларды сипаттағандай, бөлек программаға көп
көңілді тек ... ... тән ... ... ... сондықтан
стандартты және стандартты емес модульдерде іске асырылмайды. Бұл тек
программаны өңдеу ... ... қана ... оның ... де ... ... программалар арнайы сегментте орналасады, оның көлемі
компьютердің оперативті ... ... ... ... ... ... аса алмайд. Әрине, бұл үшін оны үлкейтуге қажеттілік туады. Бұл
мақсатқа жетуде модульдер бағаланбайтын қызмет көрсетеді. Әр ... ... ... ... модульдеррі және программалары бар барлық
сегменттердің қосындысы, компьютердің оперативті жадысының көлемін ғана
шектелген (640 ... алғы ... ... оқушының стандартты емес модульдерді
пайдалануда ... ... ... ... жоқ екеніне сенімдіміз. Оларды
өңдеудің өнеріне үйренуде жеңе ... ... ... ... ... ... және өңдеу технологиясымен танысайық.
1. Модуль құрылымы
Модуль (unit) келесі бөліктерден тұрады:
- аты немесе ... ... unit ... ... ... ... бөлімі (Interfase);
- орындаушы бөлігі немесе іске асыру бөлімі (Implementation);
Бұнда көрсетілген модуль бөлімдерінің тізбегі міндетті болып
табылады, дегенмен осы бөлімді ... ... ... тек ... ... немесе толығымен болмауы мүмкін (бұрынғыдай осындай элементтерді
сипаттағанда тік жақшалар пайдаланылады). Одан кейін модуль ішіндегі
бөлімдерін сипаттаймыз.
Модуль тақырыбы
Модуль тақырыбы unit түйінді ... және ... ... ... ... ... ... оның кез-келеген атау сияқты 64-ке дейін
белгісі бола алады.
Модуль интерфейсі
Interface {бұл ... ... ... ... объектілері, мәліметтер
сегментінде орналасады}
[Uses … {Берілген модуль ... ... ... ... … {Осы ... қосқан программаға немесе ... ... ... тиіс ... ...... көрінетін немесе ... ... ... ... ... сипаттамасымен толық процедураның атауы
келтіріледі}]
…{Осы моудьді іске қосқан программа немесе басқа модуьдерден қол жеткізе
алатын ... ... ... мен модульдер функцияларының
толық тақырыптары сипатталады}
Модульдің орындаушы бөлігі
[Uses … {Берілген ... ... ... және ... ... атауы көрсетіледу}]
[Lаbel… {Берілген модуль бөліміндегі, ішкі программаларда пайдаланылған
таңбалар аттары ... ... ... ... ішкі ... ... ... аталмаған тұрақтылар сипатталады}]
[Var … {Берілген модуль ... ішкі ... және ... ... ... сипатталған процедураның қысқаша немесе толық аты
келтіріледі}]
{Процедура денесі}
[Function{Interface-те сипатталған функцияның қысқаша немесе
толық аты ... ... ... бұл ... ... сипатталған модульдің
барлық ішкі программаларын сипаттау берілген. Онда сонымен қатар, ... ... ішкі ... ... және ... ... мен ... сипатталуы мүмкін, онда
пайдаланылатын, жергілікті таңбалар тізімі болуы ... ... ... ... ... сипатталған процедуралар мен
функциялардың жұмысына қатынасушы, бірақ өздері онда сипатталмаған ... ... ... ... қосушы модуль олар ашуға
болмайтын программаларға ... ... ... ... Бұл ... ... ... тұрақтылар, типтер және ... үшін ... Бұл ... ... соns-дан басқасы стек
сегментінде орналасқан. Тұрақтылар мәні мәліметтер сегментінде болады бірақ
та олар көрінбейді.
Инициализация ... ... Assign ... көмегімен сол немесе басқа файлдардың
байланысын іске асыруды қамтамасыз етеді, қандай да бір ... ... S:=0; Р:=1; қою), ... (типті
тұрақтылар), әрқашан программаның басында орындалатын қандай да бір реттік
әрекетті орындау, ... ... ... көмегімен
экранда хабарды басу.
Бөлім Веgin сөзімен басталып, одан кейін атқарушы операторлар тұрауы
мүмкін, ал соңы end. ... ... ... программада да және оның модулінде де айнымалы бір ... ... онда ... ... айнымалы
программада көрінбейді. Оған программада қатынауды, осындай ... ... ... ... жазылатын квалификатордың көмегімен жүзеге
асуруға болады. Квалификатор ретінде модуль атауын ... ... ... ... My_Model ... ... болуы мүмкін.
Егер модуль айнымалыса мен ішкі программаның жергілкті айнымалысы мен
сәйкес ... ... ... оның ... кшкі ... ... ... программада көрінуін қамтамасыз етуді ... ... ... ... ... көмегімен ішкі программалардың ауқымды
айнымалыларын Көрінетін етуге болады. Аттас айнымалылы ішкі ... ... ... модуль қосылған, ал интерфейсте басқа модуль
хабарланған болса, онда модульдің барлық ... ... ... ... олардың барлық атауларын тікелей uses ... ... ... ... ... ... ... екі мақсатты атаңыз.
- Модуль бөлімдерін ата және ... ... ... ... ... ... сиптталған және интерфейсте хабарланбаған
ішкі программаны, программада ... ... ... ... ... ... хабарланған, модуль
интерфейсінде сипатталған тұрақтыны, программада қолдануға бола ма?
Прогрммада және оның модулінде бір атпен (аттас) сипатталған
айнымалыларды пгограммада ... ... ... ... Файл ...... ... арналған сыртқы
тасымалдаушыдағы жадының ат қойылған аймағы (бөлігі).
Ең қарапайым файл типі ... файл ... ... Бұл ... типтік және типтік емес файлдардағыдай машиналық кодта емес,
сан, әріп және басқа ... ... ... (ASCII ... ... ... ... мазмұны оңай қаралады, оңай өзгереді
және оларды кез келген мәтіндік редактордың, соның ішінде Borland Pascal
ортасының да көмегімен өзгертуге болады.
Алдыңғы тақырыпта сіз ... ... ... оған ... жазуды
үйрендім. Write()- процедурасын пайдаланып мәліметтерді бір жолға, ал
writeln()—процедурасын пайдаланып оларды бағанға ... ... ... ... оқу үшін, берілген файлды ашуымыз керек. Ол үшін,
reset(NameVar)—процедурасында қолданады, мұндағы NameVar-сіздің файлды
белгілеуге берген айнымалыңыздың атауы, біздің жағдайымызда, ол ... ... ... ... ... ... және
курсорды файлдың басына орналастырады.
Егер мәтіндік файлдардағы жазбалар саны белгілі болса, онда мәліметтерді
оқу онша қиын ... ... ... ... ... файлдан оқу,
оның файл соңын анықтайтын белгісіне байланысты ... ... екі ... ... оның ... жол бойынша және баған бойынша
жазылады. Сондықтан файлдан мәліметтерді оқығанда, алдымен алғашқы жол
бойынша файл соңы ... ... ... ... ... оқылып
болған соң келесі жолды оқуды бастау керек. ... ... ... ... онда ... жол, жол соңы ... кодымен
аяақталады.
Біздің программамыз мәліметтерді өңдей алуы үшін, біз оған алдын ала
оперативті жадыдан белгілі бір орын бөлуіміз керек. Жадыдан бөлінетін
орынның ... ... ... ... ... бір элементті
сақтау үшін, integer типті элементтерге 2 байт, byte типті бір элементке ... орын ... ... файл – ... элементтері бір типті мәліметтер
болып келетін файл түрі. Типті файл элементтері файлдық типетен басқа кез-
келген тип бола алады.
Сонымен қатар, типті файлдармен ... ... де, assign( ) ... ... ... файл аты мен байланыстыратын атауды
көрсетеміз.
Типті файлдарға мәліметтерді жазу write() ... ... ... Ол ... ... write() процедурасына ұқсас. Алайда
write() процедурасын типті файлдарда қолдануында біршама өзгешелік ... ... ... қатынау файлдарына жатады, ол оның қатал
ұйымдастырылғанына байланысты. Бұрында айтып өткеніміздей, типті файлдың
компоненттері біркелкі, қатаң тәртіптегі көлемде орын алады. Сонымен ... бар ... және оған ... ... оған ... ... қосымша ақпараттарды сақтау қажет емес.
Типті файлдан мәліметтерді оқу үшін read( ) ... ... ... ... ... ... ... оқыған соң,
көрсеткіш автоматтты түрде келесі жазбаға ауысады. Егер ... ... ... ... онда ... ... ... болады.
Массив анықтамасында айтылғандай, массив дегеніміз ... ... ... ... бір типті нөмірленген тізімдідер. Файлдар
туралы сұрақтарды талдағанда ... файл ... тек бір ... болып келеді. Олай болса әр түрлі типтегі ... ...... ... ... мәтіндік файлдармен жұмыс істеуіміз керек.
Сонымен біз осы курстық жұмыста файлдардың түрлерін толық қарастырдым.
Турбо ... ... ... жасау өте маңызды.
Қосымша әдебиеттер тізімі
1. Вирт Н.Алгоритмы и структуры данных. М.; Мир, 1982.
2. Бондарев В.М., Рублинейкий В.И., ... Е.Г: ... ... ... ... Дал У., ... Хоор К. Структурное прогрммированием М; Мир. 1975.
4. Даулеткулов А.Б. Олимпиады по информатике. Алматы. ИНТ. 2004 .
5. Марченко А.И., Марченко Л.А. ... в ... Turbo Pascal. ... Универсал, 1997.
6. Федоренко Ю. Алгоритмы и программы на Turbo Pascal. М.; Питер. 2001.
7. Балапанов Е.Қ. ... Б.Б. ... А.Б. Жаңа ... информатикадан 30 сабақ. Алматы, ЖТИ, 2004.

Пән: Информатика
Жұмыс түрі: Реферат
Көлемі: 25 бет
Бұл жұмыстың бағасы: 500 теңге









Ұқсас жұмыстар
Тақырыб Бет саны
Delphi бағдарламасындағы массивтер12 бет
MoneyОnСards программасы4 бет
Paint графикалық редакторы8 бет
Turbo Pascal - жоғары деңгейлі программалау жүйесі22 бет
Айнымалылар, файлдар атауларын таңдау және оларға берілетін түсініктеме. Программалау стилі, деректерді енгізу және шығару18 бет
Ақпаратты кодтау. Ақпараттың өлшем бірліетері. Санау жүйелері10 бет
Вирустың түрлері4 бет
Желіні құрудың негізгі есептері7 бет
Компьютерлік вирустарға түсініктеме23 бет
Мультимедиалық файлдармен жұмыс істеу9 бет


Исходниктер
Пәндер
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить


Зарабатывайте вместе с нами

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Сіз үшін аптасына 5 күн жұмыс істейміз.
Жұмыс уақыты 09:00 - 18:00

Мы работаем для Вас 5 дней в неделю.
Время работы 09:00 - 18:00

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь