logo

Объектга йўналтирилган дастурлаш технологияларини ўқитишда турли типдаги маълумотлар билан ишлаш услубиёти

Yuklangan vaqt:

20.09.2019

Ko'chirishlar soni:

0

Hajmi:

114.5 KB
www.arxiv.uz О бъектга йўналтирилган дастурлаш технологияларини ўқитишда турли типдаги маълумотлар билан ишлаш услубиёти Биз ушбу мавзуни муҳокама қилишдан аввал DELPHI дастурлаш тилида ишлаш мумкин бўлган маълумотларнинг типларини эслайлик. Бутун тип. DELPHI тили еттита типдаги бутун сонли маълумотларни қабул қила олади: Shortint, Smailint, Longint, Int64, Byte, Word ҳамда Longword. Бутун типдаги сонлар 1 -жадвал типи Диапазони ўлчами Shortint -128 ... 127 8 бит Smallint -32 768 ... 32 767 16 бит Longint -2 147 483 648... 2 147 483 647 32 бит Int64 -2 63 ... 2 63 - 1 64 бит Byte 0...255 8 бит, ишорасиз Word 0...65 535 16 бит, www.arxiv.uz ишорасиз Longwor d 0 ... 4 294 967 295 32 бит, ишорасиз DELPHI тили энг универсал бутун типли маълумот ҳисобланадаиган ва longint типига эквивалент бўлган Integer типидаги маълумотларни ҳам қабул қилади. Ҳақиқий тип. DELPHI тилида олтита ҳақиқий типдаги маълумотлар мавжуд: real 48, single , double , extended , comp , currency . Бу типлар бир-биридан қабул қиладиган қийматларининг диапазони, ишончли рақамларининг сони ва компьютер хотирасидан эгаллайдиган хажмлари билан фарқланади. 1-жадвалда бу типлар улар ораидаги фарқ келтирилган. DELPHI тили Double типига эквивалент бўлган универсал ҳақиқий тип - Real типидаги маълумотларни ҳам қабул қилади. Ҳақиқий типдаги маълумотлар Жадвал-2 Диапазон Ишончли рақамлари байт Real48 2.9 x 10 -39 ... 1.7 x 10 38 11-12 06 Single 1.5 x 10 -45 ... 3.4 х 10 38 7-8 04 www.arxiv.uz Double 5.0 x 10 -324 ... 1.7 x 10 308 15-16 08 Extended 3.6 x 10 -4951 ... 1.1 х 10 4932 19-20 10 Comp 2 -63  1 ... 2 63 -1 19-20 08 Currency -922 337 203 685 477.5808 ... 922 337 203 685 477.5807 19-20 08 Турли типдаги маълумотлар билан ишлаганда талабалар йўл қўйиши мумкин бўлган ва энг кенг тарқалган ҳатолик Edit ойнасига киритилаётган маълумот билан боғлиқ. Ёш дастурчилар одатда компьютер билан фақат «ақлли» одамлар ишлайди, улар масала шартида кўрсатилган типдаги маълумотни киритишади деб ўйлашади. (1 ва 2-жадвалларга эътибор беринг) Ҳўш, бунинг акси бўлса-чи? деган савол одатда уларнинг ҳаёлларига ҳам келмайди. Шунинг учун, одатда улар ёзган дастлабки дастурларнинг таркибида бундай англашилмовчиликлар ва кутилмаган ҳолатлар умуман ҳисобга олинмайди. Ваҳолангки, ёш дастурчилар бундай вазиятларнинг юзага келиб қолиши мумкинлиги ва унинг www.arxiv.uz олдини олишга илк қадамлариданоқ кўникканлари маъқул. Талаб қилинган типдаги маълумотни киритиш масаласи ҳам DELPHI тилида ҳимояланган блок механизми try-except ёрдамида ҳал қилиниши мумкин. Шунинг учун, талабаларни, энг содда, чизиқли дастур ёзишни ўрганганларидан кейиноқ, бу механизм билан таништирилганлиги маъқул. Аммо, бу механизм ҳам дастурда вужудга келиши мумкин бўлган барча ҳатоликларни олишда етарли восита бўла олмайди. Демак, дастурчилар киритилаётган маълумотларни назорат қилишни дастурда ҳисобга олганлари мақсадга мувофиқ бўлади. Намуна тариқасида N! ни ҳисоблаш дастурини кўрамиз. Матнда натурал сонларни киритилишга эътибор беринг. procedure TForm1.Button1Click(Sender: TObject); var n, i, fak : integer; begin try n : strtoint(edit1.text); except www.arxiv.uz on econverterror do showmessage(&#39; Butun son kirirting&#39;&#39;); end; if n<1 then begin showmessage(&#39;Natural son kirirting&#39;&#39;); exit end else begin fak : 1; for i :  1 to n do fak :  fak*i; label1.caption :  inttostr(fak); end; end; Ушбу матнда econverterror методи edit1.text ойнасига киритилган сатрни бутун сонга айлантириш қай даражада амалга оширилганлигини аниқлайди . Сонли маълумотларни қайта ишлашда энг кўп учрайдиган навбатдаги муаммо - бу олинаётган натижаларнинг шу натижа мансуб бўлган тип диапазонидан четга чиқишидир (1 ва 2- жадвалларга қаранг ). Юқоридаги www.arxiv.uz дастур Edit1 ойнасига киритилган 12 сони учун 479 001 600 натижа бергани ҳолда , 13 сони учун 5447020800 ўрнига 1 932 053 504 натижани экранга чиқаради . Бундай катта сонлар билан ишлаш , айниқса олинган натижаларнинг тўғри ёки нотўғрилигини аниқлаш мушкул вазифа ҳисобланади . Бошловчи дастурчилар кўпинча бу кўринишдаги натижаларни тўғри деб қабул қилишади . Чунки , агар улар ёзган дастур нотўғри бўлганда эди , компьютер ҳатолик ҳақида ахборот берган бўлур эди . Компьютер дастурни бажариб , қандайдир натижа бердими , демак « дастур тўғри ёзилган » қабилидаги қарашлар ёш дастурчиларни кўпинча ҳушёрликдан бир оз чалғитади . Бутун сонлар билан ишлашда бу каби ҳатоликнинг юзага келишининг асосий сабаби – бу маълумотларнинг белгиланган диапазондан четга чиқишидир . Бундай ҳатоликнинг олдини Erangeerror класси ҳам ола олмайди . Олинган маълумот диапазондан четга чиқса , у ҳолда компьютер ҳатолик ҳақида ахборот бериш ўрнига , олинган натижани тўғридан тўғри [ юқори диапазон 1 ] га бўлиб , қолган қолдиқни натижа сифатида қабул қилади . www.arxiv.uz Дастурда fak ўзгарувчисини longword типида деб белгилаш ҳам вазиятни қутқара олмайди . Чунки , n сони етарлича катта бўлиши мумкин . Яна юқоридаги фикримизга қайтиб , дастурчиларга нафа = ат киритилаётган маълумотларни , балки олинаётган натижаларни ҳам дастурда назорат қилишни таъкидлаб ўтамиз . Факториалнинг ҳисоблаш дастурини қуйидагича ёзишга тавсия этамиз . procedure TForm1.Button1Click(Sender: TObject); var n,i, fak: integer; begin try n : strtoint(edit1.text); except on econverterror do showmessage(&#39;Butun son kirirting&#39;); end; if n<1 then begin showmessage(&#39;Natural son kirirting&#39;); exit www.arxiv.uz end else begin fak : 1; for i :  1 to n do begin if fak>(2147483647 div i) then begin showmessage (&#39;Bunday katta sonni yoza olmayman&#39;); exit end else begin fak :  fak*i; label1.caption :  inttostr(fak); end; end; end; end; Бу матнда 2147483647 сони longword типидаги энг катта сон . www.arxiv.uz Қиймати бутун сонлар диапазонидан четга чиқадиган маълумотлар билан ишлашга эҳтиёж пайдо бўлган , берилган масалани ҳал учун ( масалан катта соннинг факториалини ҳисоблаш учун ) сатрли маълумотлар билан ишлаш усулларидан фойдаланишни тавсия этиш мумкин . Ҳақиқий типдаги маълумотлар билан ишлаш бутун сонларга қараганда анча содда . Бунинг сабаби шуки , биринчидан , киритилган ихтиёрий сонни ҳақиқий сон сифатида қараш мумкин ; иккинчидан , 2- жадвалда кўрсатилган ҳақиқий типдаги ихтиёрий маълумот ўзи мансуб бўлган типнинг юқори диапазонидан четга чиқса , бу ҳақда Floating point overflow кўринишидаги ахборот чиқарилади . Қуйи диапазондан четга чиқадиган маълумотлар ўрнига эса нол қўйилади . Бу ҳолда ҳам , зарур бўлса , дастурни ҳақиқий ўрнига ҳақиқий бўлмаган маълумотларни киритишдан ҳимоялаш учун econverterror классидан фойдаланиш мумкин . Экспоненциал кўринишдаги сонларни киритишда эса соннинг мантиссаси учун битта майдон , тартиби учун www.arxiv.uz иккинчи майдон ташкил қилингани маъқул . Шундан кейин бу майдонлардаги маълумотларни c : edit1.text  &#39;e-&#39;  edit2.Text; a :  strtofloat(c); тарзида экспоненциал кўринишдаги сонга айлантириш мумкин. Белгили ва сатрли маълумотлар билан ишлаганда одатда, муаммолар кўп бўлмайди. Паскал тилида сатрли катталикларнинг узунлиги 256 тагача бўлиши мумкин эди. DELPHI тилида эса сатрли катталикларнинг узунлиги етарлича катта бўлиши мумкин. Чунки, DELPHI даги shortstring, longstring ва widestring каби сатрли типлар учун хотирадан статик ва динамик тарзда жой ажратилиши мумкин. Бу типлар бир-биридан ўзгарувчилар учун хотирадан жой ажратиш, белгиларнинг кодлаштириш усуллари щамда сатрларнинг узунлиги билан фарқланади. Сатрли ўзгарувчиларга статик жой ажратиш фақат дастур ишга туширилмасдан аввал содир бўлади. Дастур ишга туширилганидан ўзгарувчиларга хотирадан жой динамик тарзда ажратилади. Демак, старли маълумотлар учун ажратиладиган жой амалий жиҳатдан компьютернинг бўш www.arxiv.uz хотираси билан чегараланади. Сатрли маълумотлар билан ишлаганда универсал String сатрли типи билан ишлашни тавсия этамиз. Жуда ҳам узун бўлган сатрли катталикларни дастур ёрдамида қайта ишлашга фақат назарий жиҳатдан тўғри келиши мумкин, аммо амалиётда бундай масалалар жуда кам учрайди. Шунинг учун сатрли катталикларнинг узунлиги билан боғлиқ муаммони четга суриб қўйиш мумкин. DELPHI тилида консолли иловалар яратгиш имконияти мавжуд. Аммо, шуни ёдда тутиш керакки, консолли иловаларни Windows муҳитида яратилади ва бу иловалар одатда DOS дастури каби ишлатилади. Биламизки, DOS системасида ASCII кодлаш усули, Windows да эса ANSI усули қўлланади. Бу кодлаш усулларида кирилл алифбесининг харфлари турли кодларга эга. Шунинг сабабли, консолли иловалар дастури матнидаги кирилл алифбесида ёзилган изоҳлар ўрнига бошқа матн экран чиқарилади. Демак, консолли иловаларда турли матнларни чиқаришга зарурат бўлса, бу матнларни лотин алифбесида чиқариш тавсия қилинади. www.arxiv.uz Агар консолли иловаларда рус алибесидаги ахборотларни экранга чиқариш зарур бўлса, дастур матнида ANSI-сатрни ASCII-сатрига ўтказувчи қайта кодлаш амалини қўшимча ташкил қилишга тўғри келади. ANSI кодлаш усулида кириллча ҳарфлар 192 дан 255 гача кодланиши ҳамда ASCII да - 128 дан 175 гача (А..Яа..п) ва 224 дан 239 гача (р..я) кодланишини ҳисобга олсак, дастур матнига қуйидаги буйруқларни қўшиб қўйиш тавсия қилинади. for i : 1 to length(matn) do case matn[i] of &#39; А &#39;..&#39; п &#39; : matn[i] :  Chr(Ord(matn[i]) - 64); &#39; р &#39;..&#39; я &#39; : matn[i] :  Chr (Ord(matn[i] ) -16); end; Биз юқорида фақат энг кўп қўлланадиган бутун , ҳақиқий ва сатрли типларга оид типик маълумотларни келтирдик ҳалос . Қолган типлар билан DELPHI тилида назарий ёки амалий машғулотлар вақтида эҳтиёжга қараб талабаларни таништириш мумкин . www.arxiv.uz §-5. DELPHI дастурлаш тилида файллар билан ишлаш услубиёти Маълумки, компьютерларни операцион тизимларсиз, операцион тизимларни файлларсиз тасаввур этиш мумкин эмас. Файл, каталог, диск тушунчалари ихтиёрий тизимнинг ядросини ташкил қилади. Ҳар бир операцион система ўзига ҳос бўлган файллар тизимига эга. Одатда файллар бажарадиган функцияларига кўра бажариладиган ва бажарилмайдиган турларга бўлинади. Кенгайтмаси . exe , . com , . bat каби файллар бажариладиган файллар ҳисобланади. Бажарилмайдиган файлларнинг кенгайтмаси эса бошқача бўлади. Улар бажариладиган файлларнинг ишини тўлиқ бўлишини таъминлайди ёки улар ёрдамида яратилади. Биз ушбу мавзу ёрдамида бажарилмайдиган файллар гуруҳига кирувчи алоҳида файлларни ўқитиш услубиётини баён қиламиз Бу файллар маълумотлар омборидан иборат бўлиб, уларни массив тушунчасининг мантиқий давоми деб қараш мумкин. Чунки бу файллар ўзида элементларининг сони www.arxiv.uz олдиндан номаълум ёки чексиз бўлган массивларни сақлайди. Бундай файллар билан ишлашни билиш дастурчилар учун алоҳида аҳамият касб этади ва кейинги фаолиятларида жуда кучли воситага бўлиб хизмат қилади. Маъруза машғулотларида файл ҳақидаги умумий маълумотлар ҳамда файллар билан ишлашнинг назарий томонларини ўргатилади, амалий машғулотларда эса бу билимларни мустаҳкамлашга интилган ҳолда асосий эътиборни янги файлларни ташкил қилиш, мавжуд файлларнинг давомига янги маълумотларни қўшиш, илгари ташкил қилинган файллар устида турли масалаларни ҳал қилишга қаратилади. Мавзу бўйича мустақил машғулотларни индивидуал топшириқлар асосида ташкил қилиш тавсия қилинади. Ушбу мавзуни ёритишдан аввал мавзу бўйича бошланғич маълумот сифатида Файл нима? Файллар билан ишлашнинг афзалликлари нимада? Файллар билан ишлашга инсоннинг, айниқса компьютер фойдаланувчиларининг хаётидаги қандай ҳолатларда эхтиёж пайдо бўлиши мумкин? деган саволларга жавоб берилиши ҳеч бир www.arxiv.uz шубҳасиз назарий машғулот самарасини оширади. Бу ўринда намуна тариқасида, қуйидаги ҳолатларни эслатиб қўйиш мумкин. 1-ҳолат: Айрим ҳолларда битта дастурдан фойдаланиш жараёнида катта ҳажмдаги бошланғич маълумотларни киритишга тўғри келиб қолади. Одатда, бу маълумотларни киритиш жараёни бирор сабаб билан тўхтатиб қўйилса ёки узилиб қолса, дастур ўз ишини тўхтатади. Дастур қайта ишга туширилганда эса бошланғич маълумотларни компьютер хотирасига такроран киритиш лозим бўлади. Юзага келиши мумкин бўлган бундай вазият фойдаланувчиларга дастурдан фойдаланишда қийинчиликлар туғдириш мумкин. 2-ҳолат: Фараз қилайлик, компьютер ўз хотирасига киритилган дастурни тўла бажариши учун 1 ой давомида узлуксиз ишлаши керак бўлсин. Ва бу компьютерни қандайдир сабаб билан, айтайлик, 20 кундан кейин ўчиришга тўғри келсин (ёки электр таъминоти маълум бир муддатда узилиб қолсин). Вужудга келиши мумкин бўлган бундай ҳолатда дастурни яна ишга тушириб, www.arxiv.uz компьютернинг дастлабки 20 кунлик меҳнатини қайтадан тиклагандан кейингина дастур ўз ишини давом эттириш мумкин. Ана шу каби ҳолатларни олдини олиш учун янги иловаларни яратиш жа раёнида маълум бир муддат ишлагандан сўнг, дастур ёрдамида олинган натижаларини сақлаб қолиш ва юқоридаги каби кутилмаган узилишлардан кейин дастур ўз ишини келган жойидан давом эттириш имкониятларини назарда тутиш талаб қилинади. Бу ишни ташкил қилиш учун зарур бўлган восита сифатида файлдан фойдаланиш тавсия қилинади. Файллар маълумот сақлашнинг энг қулай усули эканлигининг сабаби қуйидагилардан иборат: 1) Одатда дастурни бажариб, олинган натижалар дастур ўз ишиии тугатгандан сўнг, ЭҲМ хотирасидан ўчиб кетади. Бу маълумотларга кейинчалик эҳтиёж пайдо бўлса, уларни қайта тиклаш учун дастурни янгидан ишга туширишга тўғри келади. Буни олдини олиш учун олинган натижаларни файлларга ёзиб қўйилиши мумкин; www.arxiv.uz 2) Битта файлда сақланаётган маълумотлар кўплаб масалалар (иловалар) учун асос бўлиш мумкин, бошқача айтганда сақлаб қўйилган маълумотлар доирасидаги бошқа масалалар учун бошланғич маълумот бўлиб хизмат қилиши мумкин; 3) Маълумотлар сони ЭҲМ нинг оператив хотирасига сиғмайдиган даражада кўп бўлиши мумкин. Бундай вақтда маълумотларнинг бир қисмини қандайдир файлда вақтинча сақлаб қўйиш тавсия қилинади. Бу маълумотлар тингловчиларнинг қизиқишларини орттириб, файл тушунчаси билан танишишга жисмонан ва руҳан тайёрлайди. Шундан кейин файл ҳақидаги умумий маълумотларни келтиришга ўтиш машғулот самарасини оширади.. Файл деб, хотира қурилмаларидан бирида сақланаётган (маълум бир ҳажмни эгаллаган) ва ўзининг номига эга бўлган маълумотлар тўпламига айтилади. Файл бўш бўлиши ҳам мумкин. www.arxiv.uz Ушбу маълумотлар келтирилгандан кейин файлнинг манзили ва номи ҳақидаги умумий тушунчаларни изоҳлашга ўтилади. Файллар ўзининг манзили ҳамда номига эга бўлади. Файлнинг номи одатда иккита қисмдан иборат бўлади: атамаси ва кенгайтмаси. Масалан: D: \ DELPHI \ alomat.pas ёзуви alomat.pas файлини англатади. бу ерда alomat- файлнинг номи, .pas-эса унинг кенгайтмаси. Бу файлнинг манзили бўлиб D дискдаги DELPHI папкаси ҳизмат қилади. Машғулотнинг навбатдаги босқичи файлларни ташкил қилиш ҳамда улардан фойдаланишга қаратилади. Дастлаб, файллар билан ишлаш жараёни икки босқичдан, яъни файлни ташкил қилиш ҳамда файлдан фойдаланиш босқичларидан иборат бўлиши уқтирилади. Одатда, файллар билан боғлиқ масалаларнинг шартларида шунчаки бирор файл берилганлиги таъкидланади ва бу файл устида қандайдир амални бажариш талаб қилинади. Масалан: f файлида 1000 гача бўлган туб сонлар сақланади. Шу файлдан фойдаланиб, 500 www.arxiv.uz дан катта бўлган туб сонлар миқдорини аниқланг. Бу каби масалалар тингловчиларни то улар файллар билан ишлаш мавзусини тўлиқ эгаллаб олмагунларича бир оз чалғитади. Оқибатда улар бирданига шундай файл бор экан деган нуқтаи назар билан, тўғридан-тўғри масалада қўйилган талабни бажаришга киришиб кетадилар ва бир оздан сўнг «нотўғри кўча» га кириб қолганларини англашлашади. Бунинг олдини олиш учун дастлаб масаланинг шартида келтирилган файлнинг бирор папкада мавжудлигини текшириш, мавжуд бўлмаганда эса бу файлни яратиш лозимлигини, шундан кейингина бу файл устида талаб қилинган шартни амалга ошириш лозимлигини алоҳида таъкидлаб ўтиш мақсадга мувофиқ. Юқори келтирилган маълумотларнинг ҳаммаси файллар мавзусини чуқур ўзлаштириш учун бошланғич маълумотлар ҳисобланади. Машғулот мобайнида бу маълумотлар етарлича изоҳланганидан сўнг, бевосита файллар устида бажариш мумкин бўлган амаллар ҳақидаги маълумотларга ўтишдан аввал файлли ўзгарувчилар тушунчасини тингловчилар онгига етказиш тавсия этилади. www.arxiv.uz Одатда файлларда бир ҳил типдаги маълумотлар сақланади ва улар билан ишлаш учун файлнинг манзили ва номини аниқ кўрсатиш талаб қилинади Файлларнинг манзили ва номини бир дастур матнида бир неча марта келиши дастурчига бир оз ноқулайлик туғдиради ва ушбу ҳолатнинг олдини олиш учун DELPHI тилида шу файл ва унинг манзилини бирор ўзгарувчи билан белгилаб қўйиш қабул қилинган. Бундай ўзгарувчиларни файлли ўзгарувчилар деб аталади. Файлли ўзгарувчиларни ҳам дастурда қатнашадиган бошқа ўзгарувчилар каби эълон қилиниши лозим. Эълон умумий кўринишда қуйидагича ёзилади: Var файлли ўзгарувчи: file of тип; Масалан : Var f : file of integer; g : file of string[20]; Бу ерда фақат бутун сонлар учун мўлжалланган f ҳамда ҳ ар бир элементи 20 тагача белгидан иборат бўлган матнли маълумотларнинг g – файлли ўзгарувчилари эълон қилинмоқда . www.arxiv.uz Тингловчиларда файлли ўзгарувчилар тўғрисидаги тасаввур пайдо бўлганидан кейин , бу ўзгарувчилар ёрдамида файлларнинг ном ива манзилини кўрсатиш учун мўлжалланган Assignfile процедураси ҳақидаги маълумотлар келтирилади . Бу процедура умумий кўринишда Assignfile( файлли ўзгарувчи , ‘ файлнинг манзили ва номи ’); тарзида ёзилади . Масалан : assignfile(f, ‘D:\ DELPHI \ alomat.pas’); Бундай эълондан кейин , компьютер f файли деганда D дискда жойлашган DELPHI папкасидаги alomat.pas файлини тушунади , яъни ҳар гал f файли устида бажарилиши лозим бўлган амалларни D:\DELPHI\ alomat.pas файли учун бажаради . Файлларни эълон қ илиш тушунтирилганидан сўнг , унинг устида бажариш мумкин бўлган амалларга ўтиш мумкин . Файллар устида бирор амални бажариш учун аввал уни очиш талаб қилинади. Файлларни очиш эса уч ҳил www.arxiv.uz мақсаддан фақат биттаси учун амалга оширилади. Файлларни очиш масаласи мақсадга кўра қуйидаги методлар ёрдамида ҳал қилинади: Rewrite ( f ) .- f файлидаги маълумотларни ўқиш; Reset ( f ) - f файлидаги маълумотларни ўқиш учун очиш; Append ( f ) - f файлининг охирига янги маълумотлар қўшиш учун очиш. Дастур матнининг охирида ёки зарурат пайдо бўлганда очилган файлларни албатта ёпиш талаб қилинади. Бунинг учун Close ( f ) - f файлини ёпиш методидан фойдаланилади. . Шундан кейин файллардаги маълумотларни ўқиш ва файлга маълумотларни ёзиш учун мўлжалланган методлар ҳақидаги маълумотларга ўтиш мумкин. Бу ўринда Write ( f , маълумот)- f файлига навбатдаги маълумотни ёзиб қўйиш ҳамда Read ( f , ўзгарувчилар)- f файлидан навбатдаги маълумотни ўқиш ва ўзгарувчиларга қиймат қилиб бериш методларини эслатиб ўтиш кифоя. www.arxiv.uz Энди очилган файллар бўйлаб курсор тушунчасини киритиш ҳамда унинг харакатини изоҳлаш лозим бўлади. Бунда қуйидаги маълумотларни келтириш фойдадан ҳоли бўлмайди. Файллар учун курсор-кўрсаткич мавжуд. У доимо қайсидир маълумотни кўрсатиб туради. Файл ўқиш учун очилган бўлса, ундан маълумотларни ўқишда, одатда компьютер курсор кўрсатиб турган маълумотни ўқийди. Ҳар гал белгиланган файлдан навбатдаги маълумот ўқилганидан сўнг, курсор ўз вазиятини ўзгартиради, яъни ўқилган маълумотдан кейинги маълумотга ўтади. Фараз қилайлик, f - файлида қуйидаги маълумотлар сақланаётган бўлсин . Агар файл ўқиш учун очилган бўлса, дастлаб кўрсаткич биринчи маълумотни кўрсатиб туради. Ҳамма маълумотлар ўқиб бўлингандан сўнг, кўрсаткич файлнинг охирига ўтади Файл ёзиш учун очилган бўлса, навбатдаги маълумотлар файлнинг охирига ёзилади. DELPHI дастурлаш тилига курсорнинг ҳолатини назорат қилувчи Eof(f) - f файлининг охирги ёзуви www.arxiv.uz ўқилганлигини текшириш ва Eoln(f) - f файлидаги жорий сатрнинг охирги маълумотини ўқилганлигини текшириш каби мантиқий методлар киритилган. Курсорнинг ҳолати, Eof(f) ва Eoln(f) каби методларини изоҳлашда анимацион эффектлардан фойдаланиш яхши самара беради. Шу билан назарий маълумотларни тугатиш мумкин. Навбатдаги вазифа - назарий маълумотларни амалиётга боғлаш масаласидир. Уни конкрет масала ёрдамида ҳал қилиш тавсия қилинади ва албатта файллар билан боғлиқ масалаларни ечиш жараёни одатда иккита босқичдан иборат бўлишини алоҳида эътиборга олиш талаб қилинади: 1. файлни ташкил қилиш; 2. шу файл устида масала шартида берилган амални бажариш. Кўп йиллик тажрибалар шуни кўрсатадики, тингловчилар масаланинг шартида берилган файлларни компьютерда мавжуд деб қарашади, ваҳолангки бу файл мавжуд бўлмаслиги мумкин. Шунинг учун қўйилган масалани ечишда энг аввало дастлабки шу файлнинг www.arxiv.uz мавжуд ёки мавжуд эмаслигини аниқлаш лозимлигини алоҳида уқтирган маъқул. Агар мавжуд бўлса тўғридан- тўғри масалани ечишга ўтиш мумкин, акс ҳолда дастлаб файлни ташкил қилиш ва шундан кейингина масалани ечишга ўтиш талаб қилинади. Намуна тариқасида келтириладиган масалалар учун иловалар яратишда файллар билан ишлаш жараёнида фойдаланувчилар дуч келиши мумкин бўлган файлни янгидан ташкил қилиш, унинг давомига янги маълумотларни қўшиш ҳамда қўйилган масала шартида талаб қилинган вазифани ҳал қилиш каби муаммоларнинг ҳар бирини алоҳида ҳал қилиш тавсия қилинади. Назарий машғулотлар самарасини ошириш маърузачидан анчагина куч вақт ва билимни талаб қилади. Бунинг сабаби шундаки, бу мавзу бўйича анъанавий усулда, яъни маъруза шаклида машғулотларни ташкил қилиш яхши натижа бермайди. Чунки, тингловчилар маълумотлар омборини файллар ёрдамида ташкил қилиш билан боғлиқ вазиятларга дуч келишмаган. Шунинг учун ҳам улар файллар ҳақидаги маълумотларни бир қарагандан мураккаб, www.arxiv.uz аммо энг янги, муҳим ва қизиқарли тушунчалардан бири сифатида қабул қиладилар. Тажрибалар шуни кўрсатдики, файлларни ташкил қилиш, қайта ишлаш, файлардан фойдаланиш, курсорнинг файлдаги ҳолати ҳақидаги дастлабки маълумотлар талабанинг онгига қийинлик билан етиб боради. Бу вазифани осонлаштириш учун маърузачи ўзи танлаган машғулот ўтказиш услубига мос келадиган файллар билан билан ишлашни намойиш қилувчи ёки анимацион характердаги ўргатувчи дастурлардан кенг фойдаланиши тавсия қилинади. Фойдаланилган адабиётлар рўйхати: 1. Арипов М. М., Отаханов Н. А. DELPHI дастурлаш тили. 492-бет. Наманган, 2007 й. 492 б. 2. Бабушкина И., С. Окулов. Практикум по объектно- ориентированному программированию. М., Бином, 2004. 366 б. 3. Буч Г. Объектно-ориентирванное программирование. М., Конкорд, www.arxiv.uz 4. Н. Вирт. 1989. Алгоритмы и структуры данных. Москва, Мир, 360 5. С. А. Немнюгин. TURBO PASCAL . Учебник. Москва, Питер, 2002 г. 6. Кнут Д. Искусство программирования. М., Мир, 1991.682 с. 7. Тутубалин Д. К.Объекто-ориентированное программирование в среде Delphi : Учеб. пособие .–Томск: Изд-во Том. гос. ун-та систем управл. и радиоэлектрон., 2004. – 112 с. 8. www.ziyonet.uz