Бейсик дастурлаш тили такрорлаш операторини тахлил қилувчи дастурни тузиш

Бейсик дастурлаш тили такрорлаш операторини тахлил қ илувчи дастурни тузиш Мундарижа Кириш 1. Visual Basic дастурлаш тилидаги такрорлаш операторини тахлили масаласининг куйилиши 2. Назарий кисм 2.1. Visual Basicнинг мавжуд версиялари 2.2. Биринчи илова дастурни ѐзиш 2.3. For ….Next цикллари 2.4. Do While….Loop циклининг тахлили 3.1. For ….Next цикл операторининг лексик тахлили 3.2.Цикл операторининг тахлили алгоритми 3.3.Лексик тахлилнинг вазифалари 4. Курс ишида фойдаланилган дастурлаш тили хакида Хулоса Фойдаланилган адабиѐтлар Иловалар 1 Кириш Visual Basic- Windows асосида ишлайдиган дастурлар тузиш учун кулай восита хисобланади. Дастурларни мустакил тузишдан максад, компьютерга мутлак хокимлик килиш, яъни иш давомида юзага келадиган муаммоларни тезрок хал этиш имконини яратишдир. Компьютер дастурлари сермехнат ишларни автоматлаштиради, хатоларни камайтиради ва мехнат унумдорлигини оширади. Basic (БЕЙСИК) сузи Beginner`s All-purpose Sumbolic Instruction Code дан хосил булган (бошловчилар учун умум йуналишдаги дастурлаш тили). Бу тилнинг мазкур дастур версиясидаги Visual сузи дастур тузиш жараѐнида куплаб операциялар визуал воситалар ѐрдамида, яъни бевосита кодларни ѐзмасдан бажарилишини англатади. Дастурлар тузиш сермашаккат жараѐн, лекин Visual Basic бу ишни сезиларли соддалаштиради ва сизга уни осонрок бажаришга имкон бе иловаларни ишлаб чикаришнинг кенгайтирилган курилмалари имкониятларини кушди. Visual Basic.NETни Visual Basicнинг янги версияси деб караш керакми ѐки умуман янги тил деб караш керакми деган масала тортишувларга сабаб булмокда. Тилнинг асосий синтаксисига жуда катта узгартиришлар киритилмаган, янги хусусиятларни амалга ошириш учун турли кенгайтиришлар кушилган. Маълумотлар турларини икки мухим узгартиришлари амалга оширилган. VB6 билан таккослаганда Integer тури 16 битдан 32 битгача, Long тури 32 битдан 64 битгача кенгайтирилган. Ушбу узгартиришлари VB.NET нинг барча версияларида мавжуд. Эски бутунсонли тур Short исми билан сакланган. Графика интерфейси тахрирчиси узгартиришсиз колган. Тил семантикасига анчагина узгартишлар киритилган. Ушбу курс ишида Visual Basic дастурлаш тилининг такрорл 1. Visual Basic дастурлаш тилидаги такрорлаш операторини тахлили масаласининг куйилиши Ушбу курс ишида Visual Basic дастурлаш тилининг такрорлаш операторини тахлили масаласи кўрилади. If Then бошкариш структуралари кодни ташкилий кисмларга –тармокларга ажратиш имконини беради. For Next – бу цикл булиб, бир мартадан ортик бажариладиган код блокини тузиш имконини беради. Демак, бу курс ишида ана шу такрорлаш оператори иштирокидаги масалаларни тахлили билан шугулланамиз. 4 2. Назарий кисм For Next цикллари узгарувчи-хисоблагичга эга булиб, унда бажарилган цикллар сони сакланади. Бу узгарувчига цикл ичида хеч кандай киймат берилмайди, акс холда у ишламайди. Циклларнинг 3 хил тури мавжуд: 1. For Next цикллари; 2.Do Whil Loop цикллари ; 3.Do Until Loop цикллари . 2.1. Visual Basic нинг мавжуд версиялари Visual Basic бир неча версияда ишлаб чикарилади . 1. Learning Edition ( Укув тахрири ). Бу версия бошловчилар учун жуда мос булиб , Windows да ишловчи дастурлар тузиш учун зарур булган барча элементларни узида жамлайди . 2. Professional Edition ( Профессионал – касбий тахрири ). Компилятор дастурлари ишини тезлаштирувчи Active X кушимча компонентларини ва маълумотлар базаларини бошкаришнинг кенгайтирилган воситаларини уз ичига олади . Бу версия жиддий иловаларни 2.2. Биринчи илова дастурни ёзиш Visual Basic билан ишлашга дархол киришиш учун куйида учта оддий кадам билан иловани яратиш кетма - кетлиги келтирилган . Visual Basic нинг сиз яратадиган шаклни ( формани ) ишлашга мажбур киладиган характга келтирувчи механизми ходисалар , хоссалар ва услублардир . Visual Basic ни ишга туширинг ва очилаѐтган диалогда « Стандарт ехе » файл танланганлигини текширинг . Сунг « Очиш » тугмасини босинг . Сунгра « Хоссалар » номли кичик ойнани топинг ва « Сарлавха » хоссасидан унгда жойлашган майдонда сичкончани босинг . Бу ерда «Менинг биринчи дастурим» деб ѐзинг ва Return тугмасини босинг. Шакл сарлавхаси сатридаги матн кандай узгаришини кузатинг. Агар хоссалар ойнасини ѐки Visual Basic нинг бирор бошка асосий ойнасини топа олмасангиз, уни View менюсидан танлаб 2.3. For Next цикллари Куйидаги дастур фойдаланувчи томонидан киритилган пул маблаги учун йиллик даромадни хисоблайди.: Юкорида айтилганидек, For Next цикллари узгарувчи-хисоблагичга эга булиб, унда бажарилган цикллар сони сакланади. Бу узгарувчига цикл ичида хеч кандай киймат берилмайди, акс холда у ишламайди. Шаклга ѐзув, матн ойнаси ва руйхат ойнасини киритинг. Тугмани икки марта босинг ва Босиш ходисаси учун куйидаги кодни ѐзинг. Dim curA: mount A.s Currency Dim iCountvar A.s Integer List 1. Clear curAmount=Vai(text1.Text) if curAmount<>0 Then For iCoutvar=3 To 15 List 1. Additem(« да »+Str(iCoutvar) + “% йиллик фоиз S даромад келтиради”- +Str/curAmount*iCountvar/100)) Next iCountvar Else MsgBax(“ Сон хакикий эмас ”) End if Бу код For Next циклини if …. Then оператори ичига кандай кили 2.4. Do While Loop циклининг тахлили Хамма цикллар хам For Next дан фойдаланавермайди. Бошка яна иккита имконият мавжуд. Do While Loop ва Do Until Loop цикллари. Do WhileLoop циклни берилагн шартли ифода False кийматга эга булганда, Do Until Loop эса берилган шартли ифода True кийматга эга булганда бажарилади. Шаклга тугмани жойлаштиринг. 1. Тугмани икки марта босинг ва Босиш ходисаси учун куйидаги кодни киритинг: Dim answer A.s Integer Do Until answer=vbYes Answer-MsgBox (“Yes- Чикиш , NO – давом эттириш ”, vbYesNO Loop 2. Дастурни ишга туширинг ва тугмани босинг. Диалог панели пайдо булади. Агар сиз Yes тугмасини боссангиз, диалог ѐпилади ва йикл тугайди, чунки answer= vbYes шарти бажарилади. Агар сиз NO тугмасини боссангиз, диалог ѐпилади ва дархол яна пайдо булади. 8 3.Асосий кисм 3.1. For Next цикл операторининг лексик тахлили Компиляция жараѐнининг биринчи фазаси бу –лексик тахлил боскичи булиб, унда идентификаторларни, константаларни ва тил сузларини ягона белгиларга (лексемаларга) ифодаловчи белгилар каторларини гурухлаш бажарилади. Бу жараѐн компиляциянинг бошка фазалари билан параллел бориши (масалан, бир утишли компиляторларда) мумкин. Аммо, хар кандай холда хам компиляторни конструкциясини ифодалаш ва куришда лексик тахлилни мустакил фаза сифатида тассавур килиш мумкин. Сканерлаш блоки хар бир лексемани у ѐки бу синфга тегишли эканлигини аниклаган холда бериши керак. Синфларни танлови трансляция килинаѐтган тилнинг хусусиятларидан боглик булади. Купинча узгарувчилар исми, константалар, калит сузлар, арифметик амаллар ва мантикий амаллар, махсу 6- Ажраткич ишораси; 3.2. Цикл операторининг тахлили алгоритми 1.Бошланиши. 2.Бейсик тили такрорлаш оператори белгиларини киритиш. 3.Текшириш: агар кирувчи белги 0 сони булса, у холда дастур уз ишини тугатиш учун 10 кадамга утади, акс холда 4 кадамга утилади. 4.Текшириш: агар кирувчи файл элементи калит суз, яъни For, Do While, Loop, Until, To ѐки Next булса, у холда «такрорлаш оператори» деган жавоб монитор экранида чикади ва яъна кейинги элементни укишга 2 кадамга утилади, акс холда 5 кадамга утилади. 5. Текшириш: агар кирувчи белги = яъни, узлаштириш белгиси булса , у холда «узлаштириш» деган жавоб монитор экранида чикади ва яъна кейинги элементни укишга 2 кадамга утилади, акс холда 6 кадамга утилади. 6.Текшириш: агар кирувчи белги i, j булса, яъни хисоблагичлардан бири булса у холда «х 3.3. Лексик тахлилнинг вазифалари Ҳар бир компилятор оддий командаларнинг чекланган тўпламини бажариш қобилиятига эга. Ихтиѐрий мураккаб харакатлар ушбу командаларнинг кетма-кетлиги кўринишида тасвирланади. Юқори даража дастурлаш тилида ѐзилган дастурни бажариш учун, уни авваломбор машина кодларидаги командалар кетма-кетлигига ўтказилади. Бошланғич берилган дастур (қандайдир дастурлаш тилида ѐзилган) белгилар кетма-кетлигидан иборат бўлиб, улар компьютерга киритилади ва бажарилиш учун керак бўлган кўринишга айлантирилади. Компилятор бу шундай, аниқ бир кўринишдаги белгилар қаторини (яъни берилган дастурлаш тилидаги дастур матнини) қабул қиладиган ва бошка белгилар қаторини (машина тилидаги дастурни) чиқарадиган дастурдир. Компиляторларга бир қатор умумий хусусиятлар хоски, улар компиляция таҳлил фазаси келади. Мисол учун, «IF ифода THEN гап» кўринишига эга IF гапи учун грамматик таҳлил қуйидагича: IF лексемасидан кейин тўғри ифода келади, ушбу ифодадан кейин THEN лексемаси келади, ундан сўнг яна тўғри ифода келади ва у «;» белгиси билан тугайди. Охирида кодни генерациялаш жараѐни бажарилади ва синтаксис таҳлил натижаларидан фойдаланилиб бажаришга тайѐр машина тилидаги дастур ташкил этилади. Ихтиѐрий компилятор таркибига юқорида айтиб ўтилган учта компонента кирса хам, уларнинг ўзаро харакати турли усуллар орқали амалга оширилади. Ушбу компоненталар орасидаги ўзаро харакатларнинг кенг тарқалган вариантларини қараб чиқамиз. Сканерлаш блоки бошланғич дастурни ўқийди ва лексемалар файли сифатида ифодалайди. Синтаксис таҳлилчи эса бу файлни ўқийди ва дастурни янги ифодасини чиқа 1.Кетма-кет. Лексик тахлилчи кирувчи дастур матнини бошидан охиригача қараб чиқади ва лексемаларнинг структураланган жадвалини ҳосил этади, бу жадвалда инедтификаторнинг калит сўзларини махсус келишилган кодларга ўзгартирилади ва бундан ташқари идентификаторлар жадвали билан алоқа ўрнатилади. 2.Параллел. Кирувчи дастур матнининг лексик тахлили босқичма – боскич бажариладики, синтаксис тахлилчи тилнинг навбатдаги конструкциясини тахлилини бажаришда лексик тахлилчига кейинги белгини ўқиш учун мурожаат қилади ва шу билан бирга ҳар бирини кутиб туришини кўрсатади. Ушбу холатда хатоликлар юз берганда «рад этиш» бўлиши мумкин ва лексемаларни тахлилини тўғри бажарилганида лексема лексемалар жадвалига ѐзилади. Лексик тахлил ўз ичига қуйидаги масалаларни ечишни олади: дастурнинг берилиш матнини қар Биринчи йўналиш: лексик ва синтаксис тахлилчиларнинг ўзаро харакатларини амалга оширишнинг охирги чизмаси. Лексик тахлилчи барча дастурни қараб чиқади ва барча лексемалар учун кодлар жадвалини тузади ва натижаларни синтаксис тахлилчига узатади. Бу холатда лексик ва синтаксис тахлилчилар бўлакланган ҳисобланадилар ва компилятор босқичида бир биридан кейин бажариладилар. 14 4. Курс ишида фойдаланилган дастурлаш тили хакида Си++ - бу ифодаларнинг ѐзилишининг кулай усули, берилганлар структурасининг замонавий бошкарув механизми ва бой операторлар тўпламига эга бўлган дастурлашнинг универсал тилидир. Си++ дастурлаш тили „жуда хам юкори даража тили хам, катта„ тил хам эмас, бирон бир аник сохага фойдаланишга махсуслаштирилган хам эмас. Лекин унга кўйилган чегараларнинг йўклиги ва универсаллиги бу дастурлаш тилининг баъзи кучли тилларга кўра кўпгина масалаларни кулай ва фойдалирок ечилишига имкон беради. Тажрибаларимиздан келиб чиккан холда шуни айтишимиз мумкинки, Си++ дастурлаш тили –кулай, ифодали ва кенг масалалар синфи учун керак бўладиган дастурлаш тилидир. Хотира синфи типни спецификацияси олдидан ўзгарувчини эълон килаѐтганимизда аник кўрсатилиши мумкин. Си++ тилида ихтиѐрий программа бу ташки объектлар тўплами – яъни ўзгарувчилар ѐки функциялар тўпламидир. Ташки ўзгарувчилар ихтиѐрий функциядан ташкарида аникланган ва кўп функциялар учун фойдаланиши мумкин. функцияларнинг ўзи хар доим ташкидир, чунки тилнинг ўзи функцияни бошка функция ичида аниклашга имкон бермайди. Кўп алгоритмик тилларда маълумотлар бериладиган параметрлар, массивлар статистик объектлар деб аникланарди, чунки уларга олдиндан канча микдорда кийматлар берилиши маълум хисобланарди. Шу сабаб хар бир программада маълумотлар хотиранинг кай кисмини эгаллашини аввалданок билиш мумкин эди. Си тилида динамик объектлар тушунчаси киритилган. Бундай объектлар ўлчови программа ишлаш шароитига караб ўзгаради ва программа динамик объектларга бажарилиш фаолиятида керагича (сўрокка кар Хулоса Ушбу курс ишидан олинган асосий натижа ва хулосалар қуйидагича: 1) Замонавий Visual Basic дастурлаш тилида такрорлаш операторларининг таҳлили келтирилган. 2) Таҳлил қилинган имкониятлар бўйича назорат мисолларининг натижалари келтирилган. 3) Курс ишини бажаришда фойдаланилган объектларга мўлжалланган дастурлаш тили С++ ҳақида асосий маълумотлар берилган. 17