Автор: Пользователь скрыл имя, 20 Апреля 2012 в 12:22, реферат
Осыған дейін, біз мәліметтерді пернетақтадан енгізіп, оларды экранға шығардық, программа жұмысы кезінде олар компьютердің оперативті жадында сақталатын да, есептеулер біткеннен кейін бұл мәліметтер жоғалып кететін. Жұмыс нәтижесін келешекте пайдалана алу үшін, мысалы, оларды есептеулерге пайдалану үшін немесе жаңа мәліметтерді алу үшін, оларды есте сақтап қалу керОсыған дейін, біз мәліметтерді пернетақтадан енгізіп, оларды экранға шығардық, программа жұмысы кезінде олар компьютердің оперативті жадында сақталатын да, есептеулер біткеннен кейін бұл мәліметтер жоғалып кететін.
1. Файлдар.
2. Мәтіндік файлға мәліметтер жазу.
а) Бір өлшемді массив
б) Екі өлшемді массив
3. Мәтіндік файлдан мәліметтерді оқу.
4. Құрылымдылық программаның жеке бөліктерімен жұмыс жасау.
1. Файлдар.
2. Мәтіндік файлға мәліметтер жазу.
а) Бір өлшемді массив
б) Екі өлшемді массив
3. Мәтіндік файлдан мәліметтерді оқу.
4. Құрылымдылық программаның жеке бөліктерімен жұмыс жасау.
Осыған дейін, біз мәліметтерді пернетақтадан енгізіп, оларды экранға шығардық, программа жұмысы кезінде олар компьютердің оперативті жадында сақталатын да, есептеулер біткеннен кейін бұл мәліметтер жоғалып кететін. Жұмыс нәтижесін келешекте пайдалана алу үшін, мысалы, оларды есептеулерге пайдалану үшін немесе жаңа мәліметтерді алу үшін, оларды есте сақтап қалу керек. Ондай тәсілдердің бірі мынадай: нәтиже экранға шыққан соң қолға қаламсап (қарындаш) және бір бет қағаз алып, бұл мәліметтерді жазып алу. “Дербес компьютерлер” дәуірінің басында оларды “үй тапсырмасы” деп атаған да, шын мәнінде солай болған. Қазіргі кездегі дербес компьютерлердің барлығы ақпаратты сақтауға арналған арнайы құрылғылармен жабдықталған. Қызметтеріне қарай оларды: магниттік ақпарат тасымалдаушылар немесе жазылатын CD- дискілер деп атайды. Ақпаратты сақтау осы тасымалдаушыларда ұйымдастырылады, бұл жағдайда біз алған нәтижелерді солардың жадында сақтаймыз. Барлық мәліметтер осы тасымалдаушыларда файлдар түрінде сақталады.
Файл дегеніміз – мәліметтер сақтауға арналған сыртқы тасымалдаушыдағы жадының ат қойылған аймағы (бөлігі).
File(ағылшын тілінен аударылғанда) -бума, іс қағаздар жинағы, сонымен қатар ақпаратты сақтау деген мағынаны білдіреді.
BorlandPascal-да файлдарды екі негізгі белгісі бойынша топтастыруға болады:
файлдың типі бойынша (оның логикалық құрылымына )
файл элементтеріне қатынау тәсілі бойынша.
Типтері бойынша файлдар шартты түрде үш түрге бөлінеді:
мәтіндік файл;
типтік файл;
типтік емес файл.
Біз көбінесе мәтіндік және типтік файлдармен жұмыс істейміз.
Қатынау тәсілі бойынша файлдар келесідей бөлінеді:
Тікелей қатынау файлдары
Кезекпен қатынау файлдары.
Олардың айырмашылығы тікелей қатынау файлдарында арнайы
процедуралар және функцияларды пайдалана отырып, мәліметтерді, олардың файлдағы орнына тәуелсіз, оқуға немесе жазуға болады, ал кезекпен қатынау файлында оның ортасында немесе соңында тұрған мәліметті оқу үшін, оның алдындағы мәліметтердің барлығын оқуға тура келеді. Мәтіндік файлдар кезекпен қатынау файлдарына жатады, ал типтік файлдар тікелей қатынау файлдарына жатады.
Мәтіндік файлға мәліметтер жазу.
Бір өлшемді массив.
Ең қарапайым файл типі мәтіндік файл болып табылады. Бұл файлдағы мәліметтер типтік және типтік емес файлдардағыдай машиналық кодта емес, сан, әріп және басқа пернетақта символдары түрінде (ASCIIкодында) беріледі. Сондықтан мұндай файлдар мазмұны оңай қаралады, оңай өзгереді және оларды кез келген мәтіндік редактордың, соның ішінде BorlandPascal ортасының да көмегімен өзгертуге болады. Мәтінді теру кезінде жаңа жолды енгізу үшін “Enter” пернесін басу керек, осы кезде арнайы код гинерацияланады—ол жол соңы коды, ал файлды сыртқы сақтау құрылғысына жазған кезде де арнайы код гинерацияланады—ол файл соңы коды.Мәтіндік файлды оқығанда бұл кодтар көрінбейді.
Келесі есепті шешіп көрейік: Пернетақтадан бірнеше сандар енгізіп, оларды “mayFile.in” атты мәтіндік типтегі файлға жазу керек.
Есепті кезеңдерге бөлейік:
пернетақтадан мәліметтерді енгізу
оларды “mayFile.in” атты файлға жазу керек.
Бірінші кезеңді орындау үшін:
пернетақтадан енгізілетін сандардың мөлшерін (массив өлшемін) көрсету керек.
Сан мөлшерін білген соң, параметрлі циклді қолдану арқылы массив элементтеріне осы сандардың нақты мәндерін меншіктейміз.
Осы әрекеттерді орындау үшін қолданылатын айнымалыларды сипаттаймыз. Айталық, санымыз 100-ден көп емес және олар басқа да процедураларда қолданылатындықтан, оларды ауқымды айнымалыларды баяндау блогында сипаттаймыз.
рrogram Misal_F1;
Мәліметтерді енгізу процедурасы келесі түрде болады:
Procedure inti;
Begin
readln (SanMolcheri);
begin
write (“San[“,i,”]=’);
readln(San[i]);
Мәліметтерді өңдеу процедурасы әзірге бізге қажет емес, сондықтан ол қызмет атқармай-ақ қойсын.
procedure work ;
begin
end;
Енді екіншісі кезеңді қарастырайық, яғни мәліметтерді «mayFile.in»атты мәтіндік типтегі файлға жазу керек.Алдымен өз файлмызды байланыстыратын, айналымның атауын беру керек.Айталық, ол айналымның атауы FileOut болсын, содан кейін біз оны мәтіндік файл ретінде сипаттаумыз керек.Бұл айнымалыны шығару процедурасында пайдаланатын болғандықтан, оны жергілікті айнымалы ретінде сипаттаймыз:
Var
FileOut: text;
Одан кейін біз программаға, “мәтіндік” типтегі FileOut атты айнымалының, біздің “mayFile. in” атты нақты файлмызды белгілейтінін көрсетуіміз керек.Ол үшін assign(NameVar, NameFile) процедурасы қолданылады. NameVar-бұл файлды белгілеу үшін берілген айнымалы аты, біздің жағдайда NameVar—дың орнына FileOut сөзін жазасыз.NameFile-бұл біз жұмыс істейтін файлдың аты, біздің жағдайда”mayFile.in”.
Файл аты мен оның кеңейтілуінен басқа орналасқан орнына қарай сипатталатыны да белгілі. Мысалы,”c,bpbinMyFile.in”.Ал егер толық аты берілмеген жағдайда,үнсіз келісім бойынша сіздің программаңыз орналасқан ағымдағы каталог қолданылады.Енді сіз берілген файлды ашып, оған мәліметтер жазылатындығын көрсетуіңіз керек.Ол үшін rewrite(NameVar)процедурасы қолданылады. Мұндағы, NameVar-бұл файлды белгілеу үшін берілген айнымалы аты, біздің жағдайда NameVar—дың орнына FileOut атауы жазылады. rewrite(NameVar) процедурасы—файлды жазу үшін ашады және көрсеткішті файлдың басына орналастырады.
Енді мәліметтерді файлға жазуға бәрі дайын. Ол үшін бұрынан белгілі Write() және Write() процедураларын қолданамыз. Жазулар экранға емес файлға жазылуы үшін, мәліметтерді шығару бағытын көрсетеміз. Яғни, жақшаның ішіндегі мәліметтерді жазатын айнымалы атауының алдында, бізді файлмен байланыстыратын assign() процедурасындағы айнымалы атуын көрсетеміз. Айталық, берілгендерді шығыс файлына бір жолға жазу керек болсын, бұл жағдайда бірінші мән ол енгізілетін сандардың мөлшері болады. Жаңа жолға көшу болмайтындықтан,Write() процедурасын қолданып, бастапқыда файлға SanMolcheri айнымалысын мәнін жазамыз да, содан кейін параметрлі циклді пайдаланып енгізу процедурасында енгізілген сандарды жазамыз. Барлық мәліметтер файлға жазылып болған соң, файлды жазу керек. Ол Close() процедурасының көмегімен орындалады.
Close(NameVar) процедурасы-файлдың соңына, файл соңы белгісін жазып, оны жабады. Егер файл Close() процедурасымен жабылмаған болса, онда мәліметтер сақталынбайды.
Мәліметтерді файлға жазу процедурасы қандай болатынын қарастырып көрелік:
procedure exi;
for i=1 to SanMolcheri do
write(FileOut,San[i]);
end;
негізі программаның мәтіні өзгеріссіз қалады
begin
Осы программаны ‘Misal_F1’ атымен дискіге жазып, оны орындауға жіберіңіз. Программа жұмысын аяқтағаннан кейін, BP редакторының көмегімен біздің программамыз құрған `mayFile.in` файлын ашып, оның мазмұнын көріңіз.Өкінішке орай сандар файлда бос орынсыз тіркесіп жазылған болып шығады.Мұндай жазбадан қандай сандар жазылғанын анықтау қиындық тудырады.Бұл жағдайды қалай түзетуге болады?
Ол үшін, сандары бір бірінен дәл ажыратудың екі мүмкіндігі бар:
а.әрбір мәнді бос орын (``)белгісі арқылы бөліп жазу
в.әрбір мәнді жаңа жолға жазу (баған бойынша).
Бірінші жағдайда енгізілетін айнымалы атауынан кейін бос орын (``) белгісін қоямыз.
write(FileOut, SanMolcheri,``);
for i:= to SanMolcheri do
write(FileOut,San[i],``);
екінші жағдай үшін, writeln() процедурасын қолданамыз:
writeln(FileOut,SanMolcheri);
for i=1 to SanMolcheri do
writeln(FileOut, San[i] );
Мәтіндік файлға мәліметтер жазу.
Екі өлшемді массив.
Алдыңғы тақырыпта сіз мәтіндік файлдарды ашуды, оған ақпараттарды жазуды үйреніңіздер.Write()- процедурасын пайдаланып мәліметтерді бір жолға, ал writeln()—процедурасын пайдаланып оларды бағанға жазуды көрдік. Осы білгендерімізді пайдаланып, келесі есепті шешіп көрелік:
Пернетақтадан, өлшемі 100х100, элементтері бүтін сан болатын, екі өлшемді массив енгізіледі.Осы массивті элементтерінің орналасу реті бойынша, `МayFile5.in` атымен, мәтіндік файл түрінде жазатын, программа жазу керек.
Бұл есеп те, алдыңғы тақырыпта қарастырылған есепке ұқсас, екі негізгі кезеңнен тұрады:
1.Пернетақтадан мәліметтерді енгізу
2.Оларды атауы `МayFile5.in`болатын, файлға жазу керек.
Бірінші кезеңді орындау үшін :
Пернетақтадан енгізілетін, массив өлшемдерінің нақты мәндерін кіргізу;
Массив өлшемдерін біле отырып параметрлі цикл операторын қолданып массив элементтеріне нақты мәндерді меншіктеу.
Мәліметтерді енгізу процедурасының мәтінін Misal_8 программасынан алуға болады.Ал мәліметтерді өңдеу процедурасы өзгеріссіз қалатындықтан, Misal_F1программасындағыдай болады.
Массив элементтерін `МayFile5.in`файлына жазу процедурасының қандай болатындығын қарастыралық:
procedure exi;
assing(FileOut,`mayFile.in`);
{файлды жазуға дайындау}
rewrite(FileOut);
{массив өлшемдерiн жазу және курсорды жаңа жолға көшiру}
writeln(FileOut, JolSany,``, BaganSany);
for i=1 to JolSany do