logo

Программаларни созлаш. Масалаларни тавсифлаш, алгоритмни танлаш, тахминий хатоликлари. Умумий хатоликлар, хатосиз программалаштириш

Yuklangan vaqt:

20.09.2019

Ko'chirishlar soni:

0

Hajmi:

74 KB
www.arxiv.uz Программаларни созлаш. Масалаларни тавсифлаш, алгоритмни танлаш, тахминий хатоликлари. Умумий хатоликлар, хатосиз программалаштириш Режа: 1. Масалаларни тавсифлаш . Алгоритмни танлашдаги хато. Умумий хатоликлар. 2. Программаларни тўғрилаш . 3. Синтаксиз хатолар . www.arxiv.uz Дастурларни созлаш. Хатоларни борлигини аниқлаб уларни тўғрилаш - созлаш деб аталади. Дастурларни у еки бу хатоларда созлаш мажбурийдир. Акс холда биз уни тестдан ўтказишимиз керак бўлади. Жараённи созлаш дастурни ишлаш усулига боғлиқ, яoни фойдаланиладиган машинага, жараён системасига, дастурлаш тилига, бериладиган вазифа таркибига ва хаттоки дастурни муайян хусусиятига хам боулик бўлади. Яна шуни аниқ айтиш мумкинки, хар бирхил,қурилма ва машиналар дастур камчиликлари дастурлаш хатолари билан узлуксиз боғлиқ. Масалан: Синтаксис хатолар бўлганда дастурлашни аниқ тили оркали олдиндан билиб еки аниқлаб олинади. Хозирги вақтда дастурларни хажми катта ва мураккаб бўлиб бормокда, лекин хатолар ушалигича колмокда. Масалаларни тавсифлашдаги хатолар. Одатда дастур езиб булингандан сўнг фойдаланувчи олинаетган маoлумотларни керакли маoлумотлардан фарк қилишини билиб олади. Дастурга қуйиладиган талабни сифатсизлиги кейинчалик тайер дастурни нотўғри курсатилган ва берилган вазифаларни тўғри ишлашига олиб келади. Бирон бир буюрувчи учун лойихалашаетган дастурни унинг талабларига мос келмаслигини белгиларидан бири, Қуйиладиган вазифани тушунмаетганлигидандир. Шунинг учун бирон бир дастурни лойихалашдан олдин буюрувчидан қуйиладиган талабни езма равишда олишимиз керак. Бу эса буюрувчини фикрини бир жойга туплашга ва талабни аниқ, равшан ва тушунарли қилиб езиб беришига олиб келади. Алгоритмни танлашдаги хатолар. Вазифа охири аниқ бўлгандан сўнг, дастурчи унга мос келувчи www.arxiv.uz алгоритм еки ечиш дастурларини охтаради. Сифатсиз, нотўғри танланган алгоритм сифатида биз вазифани тўғри ечадиган лекин хисоблашга узок вақт сарфлайдиган мисолни кўрсатишимиз мумкин. Алгоритми нотўғрилигини уни синаб курилгандан сўнг аниқлаш мумкин. Шунинг учун дастурни бошқатдан текшириб чикиш олдини олиш учун алгоритмга алохида ахамият бериш керак. Тахлил қилишдаги хатолар. Бундай хатолар содир бўладиган хатоларни тулик хисобга олма ганлиги ва вазифани нотўғри ечилишида хосил бўлади. Биринчи холатга мисол тарикасида катта ва кичик катталикларни, ўзгарувчиларни манфий кийматда хосил бўлишига этиборсиз каралиши натижасида хосил бўлишидир. Иккинчи холатда одатда ирик ва кичик мантиқий хатолар хисобланади. Улардан: - Ўзгарувчиларни бошлангич кийматини вазифасини йуклиги. - Цикл якунини нотўғри шарти. - Циклни нотўғри индекцациялаш. - Иницирлашган циклни шартларини вазифасини йуклиги. - Вазифани ечиш жараёнини давом эттириш учун берилган алго ритмни шохларини нотўғри курсатилиши. Созлашни ташкиллаштиришни знг осон йўли созлашдан кам фойдаланишга харакат қилиш яoни хатоларга йўл куймасликка зришиш. Умумий кўринишдаги хатолар. Қанча уринманг барибир танланган тилга боглиг булмаган холда дастурлашда хатоларга йўл қуйилади.Буларга қуйидагилар киради: -Дастурчи томонидан машинани еки дастурлаш тилини билмаслиги сабабли бўладиган хатолар. -Алгоритмни лойихалашда,бунда дастурда фойдаланилган опера торлар алгоритм томонидан қуйилган кетма-кетликларни нотўғри бажаришда келиб чикадиган хатолар. www.arxiv.uz -Синтактик хатолар. -Снтактик тўғри операторларни бажаришда келиб чикадиган хатолар. Яoни нолга булиўда еки манфий сондан квадрат илдиз олишда ва нотўғри маoлумот беришда. Барча курсатилган хатолар синтактик хатодан ташкари тестдан ўтказиш оркали аниқланади. Бунинг натижасида дастур устида олиб бориладиган иш созлаш босқичига утади. Дастурдаги умумий хатолар. N% Хато тури Мисол 1. Вазифани нотўғри қўйилиши Нотўғри берилган вазифани тўғри ечиш. 2. Нотўғри алгоритм Вазифани нотўғри еки самарасиз ечишга олиб келувчи алгоритм. 3.Тахлилдаги хато. Алгоритмни нотўғри дастурлаш. 4.Семантиқ хато. Буйруқни тансифлаш тартибини ту- шунмаслик. 5.Синтактик хато. Дастурлаш тили ёрдамида аниқлан- ган қоидани бузиш. 6.Жараён бахсдаги хатолар. Хисоблашдаги чегараловчи шартларга кўрсатмаларнинг йуклиги. 7.Малумотдаги хатолар. Мълумотда хосил булувчи ўзгаришларни нотўғри аниқлаш. 8. Хужжатдаги хатолар. Фойдаланувчининг хужжатлари хақиқий дастурга мос келмаслиги. Содда дастурлаш. Дастурни коникарли созлашда кодлашни оддийлиги ва тўғрилиги катта таъсир кўрсатади. Шунинг учун хар хил символ белгию ва х.клардан фойдаланмаслик керак. Чунки улар дастурни созлашда катта тускинлар хосил қилади. Мураккаб дастурнинг бошлангич босқичларида оддий ва www.arxiv.uz кичкина блоклар,уни соддалаштириш учун кушиб езилади. Дастурни қулай ўқишлиги созлашни хам осонлаштиради. Дастурни тўғрилиги. Хамма дастурлар мантиқан олиб караганда айрим бир маoлумотлар таъсир курсатувчи худудларни аниқ кўрсатиши, яoни дастур иш бажариш кобилиятига эга бўлиши,малумотларни курсатилган чегараларда турганлигини аниқлаш учуи операторларни киритиш имконига эга бўлиши керак. Дастурни фойдаланишга беришдан олдин уни тўғрилигиги ишонч хосил қилиш керак.Нотўғриликни аниқлашни иккита усули бор: 1.Дастурни конструкцияси синтактик хато. 2.Дастур нотўғри натижалар кўрсатмоқда. Синтактик хато. Траслятор ёрдамида синтактик хатоларни аниқлаш дастурни созлашда энг керакли ва мухим уринларни эгаллайди. чунки қанча кўп хато бўлса шу босқичда аниқланиб тўғриланса,кейинчалик созлашда ва тестдан ўтказишда иш осон бўлади. Яъна бу хатоларни аниқлашнинг мухимлиги шкедаки, агар улар аниқланмаса.кейинчалик дастурни бажаришда катта қийинчиликларга олиб келади. Коммплятор учун бу хатолар дастурни синаш учун кўриб ўтиш- дан олдин бартараф этилиши лозим. Берилган операторлардаги синтаксис хатолар сифатида қуйидагиларни мисол қилиб кўрсатишимиз мумкин: -Тиниш белгиларини қўйишда керакли белгиларни ташлаб кетиш. -Келишилмаган холда қавсларни қўйиш. -Керакли қавсларни ташлаб кетиш. -Операторни тўғри шакллантириш. -Ўзгарувчилар номини нотўғри шакллаш. -Арифметик операторлардан нотўғри фойдаланиш. -Олиб қуйилган еки ажратиб қуйилган сўзларни нотўғри ёзиш. www.arxiv.uz Иккита еки ундан ортиқ операторларни эгаллаб олувчи синтактик хатоларга қуйидагилар киради: -Карамақарши буйруқ. -Цикл охирини курсатувчи шартлар йуклиги -Белгилар йуклиги. -Массвларни тавсифини йуклиги. -Такикланган ўтишлар. Агар комплятор иккита еки ундан ортиқ буйруқларни бирма-бир текшириб чикмаса унда юқорида курсатилган хатолар аниқланмай колиб кетади. Бир хилги вақтда яхши созловчи комплятор текширишга кетадиган вақтни тенг ярмини меёрлаб колади. Махсус созловчи кўрамалар оддийсига нисбатан синтактик хатоларни яхши аниқлайди. Чунки у ўзаро таъсир этувчи буйруқларни ва синтактик системани бирма- бир текшириб чикади. Созловчи кўрамалар ЭВМ билан биргаликда келтирилмайди. Уларни алохида сотиб олиш керак. Агар созлаш дастурчининг ишчи вақтини 70% ни ва машина вақтини кўп қисмни эгалласа, демак, созловчи зарур ва у тез орада ўз-ўзигани коплайди. Барча асосий дастурлаш тилларини созловчи комплятор билан таoминланган бўлади. Агар дастурда мос келувчи операторлар тўғри шакллантирилган бўлса,у холда комплятор айрим хатоларни аниқлай олмайди. Бир қатор комплятор дастур объектини ёрдамчи блокларини келтириб чиқаради.(Масалан, диапазонларни ва индексларни узлаштириш текширувчи блоклар). Бу блоклар дастурни бажаришда айрим тафсифга эга бўлган хатоларни нгазорат қилади. Бундай блоклар қанчалик кўп бўлса хатоларни угнаш жараёни шунча осон кечади. Программаларни созлаш. www.arxiv.uz Созлаш турлари. Созлаш воситалари. Умумий тавсиялар. Интерактив холатда созлаш. Программаларни текшириш учун созлаш модуллари. Программаловчига маслахатлар. Созлаш турлари. Синтактик хатолар хақида хабарлар тухташи биланок созлаш бошланади. Созлаш жараёни бошида оддий тест малумотларидан фойдаланиш керак. Агар бунда тўғри натижалар хосил бўлса унда жуда кўп мураккаб маoлумотлар билан ишлаб куриш керак. Агар натижалар нотўғри бўлса унда қуйидаги холлар бўлиши мумкин: 1. Синтактик хато йук, лекин дастур компиляция булмаган. 2. Дастур ишлаяпти, компиляция бўлган, лекин натижа чиқар- маяпти. 3. Дастур компиляция бўлган ишлаяпти, лекин қутилмаган узи- лишлар буляпти. 4. Дастур компиляция бўлган , ишлаяпти, лекин нотўғри нати- жа чиқаряпти. 5. Дастур цикл ичида ишлаб тухтаб колмокда. (зациклиласғ) Қуйидаги хар бир холатни кўриб чикамиз: 1 - холат. Бу холатларни тузатишда системани яхши биладиган ходимлардан масалахат сураши керак. 2 - холат. Бу холатлар қандайдир логик ва системали холатлар оркали бўлган бўлиши мумкин. Масалан, алгоритм бошланиши билан кийматига қараб кетиши мумкин. Тузатиш йўлларидан натижа хосил қилиш сегментини кайта дастурлаш усулидир. www.arxiv.uz 3 - холат. Программа кузда тутилгандан олдинроқ тухтаб колиши огитр холатлардан биридир. Бу холатларни топиш учун хатоларни топиш усулларидан фойдаланиш маoқул. 4 - холат. Бу холат программа тўғри тузилганлигини, лекин унда хатолик борлигини кўрсатади. 5- Бу холат қайси циклдан тухташ булмаганлигини топиш керак. Бунинг учун гумон қилинган циклдан олдин ва кейин чиқариш операторларини қуйиб текшириш керак. Юқоридагиларни хисобга олиб қуйидаги умумий таклифларни бериш мумкин: - Программа қанча кўп езилса шунча кўп хато бўлиши мумкин. - тузатиш жараёнини программани ёзиш этапида уйлаш керак. - Тузатиш жараёнида ишлатилаетган ўзгарувчи константалар- нинг рўйхати бўлиши керак. - Топилган хатоларни албатта кетма - кет тузатиш керак. - Хар доим чиқарилган натижаларни яхшилаб кўриб тахлил ки- лиш зарур. - Программа вариантларни санаси билан алохида саланишни тахлил қилиш керак. Созлаш воситалари. Дастурни ёзиш вақтида унинг ичига киритиладиган созлаш воси талари энг самарали хисобланади. Бу холатда дастурчи томонидан хатоларни аниқлаш тез ва аниқ бўлади. Дастурлашда қуйидаги созлаш воситалари куланилади: 1. Хотира таркибини тахлил қилиш. 2. Алгоритм бажарилишини назорат қилиш. 3. Ўзгарувчилардан фойдаланишни назорат қилиш. 4. Индексларни текшириш. 5. Кичик дастурлардан фойдаланиш ни назорат қилиш. 6. Ўзгарувчиларни белгиларини тасвирлаш. Хотира таркибидагиларни езувга чиқариш. www.arxiv.uz Дастурни хозирги холатини уни бажарилишига қадар хисобга олишга еки белгилашга ёрдам беради. Езувдаги маoлумотлар амалиетда фойдаланиладиган холатига умуман мос келмаслиги сабабли, созлаш мосламасига интилиш хосил бўлади ва бу мослама маoлумотни қулай холатга (ўқиш учун) келтириб боради. Алгоритмни бажариш йўлларини назорат қилиш. Дастурни бажарилишини мантиқий йўлини хисобга олади. Ундан дастурчилар томонидан берилган жараённи бажарилиш кетма-кетлигини ва ўзгарувчиларни хозирги вақтдаги белгисини бажарилишини ва хисобга олишини текширишда фойдаланилади. Бундай кузатишларнинг учта тури мавжуд: 1. Ўзгарувчиларни белгиларини назорат қилиш. 2. Кичик дастурларни чиқаришни хисобга олишни назорат қилиш. 3. Дастурдаги буйруқларни етказишни назорат қилиш. Иккинчи турдаги кузатиш асосан кичик дастурлардан фойдала- нилган пайтда созлашда кулланилади. Хар бир муомалада езувга кичик дастурни номи чикади, ундан чиқилганда-асосий дастурга кайтилганлиги хақида маoлумот чикади. Бу турдаги текшириш дастучига дастурий хатоларни аниқлашдаги барча керакли маoлумот билан таoминлаб туради. Унинг камчилиги машина вақтини кўп сарф бўлишидир, хамда берилаетган маoлумотлар бир неча минг қатордан иборат бўлишидадир. Шунинг учун юқоридаги камчиликлардан вокиф бўлиш учун дастурни кисимларга ажратиб белгиланган жойларда учириб -екиб текширилади. Ўзгарувчилардан фойдаланишда назорат қилиш мосламаси. Назорат мосламаси шундай тузилади-ки, унда ўзгарувчилар бирданига эмас, балки аниқ рўйхат буйича курсатилгандек тартиб билан езилади. Индексларни текшириш.Массивларни эълон қилинган чегараларни ва уларни индексларни солиштириш оркали номланган массивларни индексацияланганлигини тўғрилигини текшириш. www.arxiv.uz Ўзгарувчиларни мазмунини такрибий чиқариш. Display номли созловчи буйруқ оркали бажарилади. Чиқариладиган маoлумотни тулик чикишини таoминлаш учун ўзгарувчини номини ва уни хозирги холат мазмунини курсатилган буйруқ оркали берилади. Интерактив режимида созлаш. Жуда кўп холатларда, дастурлар дастурчини машина билан ўзаро таъсири остида бажарилади, шунинг учун бу холатларда қулайликлардан кенгроқ фойдаланиш маoқулроқ, яoни созлаш жараёнини самарадорлигини ошириш учун терминалдан кенгроқ фойдаланиш керак. Пакетли созлаш системасида кулланиладиган усулларни кўп қисмни вақти таксимланган системада хам фойдаланиш мумкин, лекин интерактив жараён харакатида қўшимча факторларни ва янги созловчи усулларга ендашишга хам ахамият бериш керак . Вақти таксимланган системаларда кўпинча махсус созловчи мосламалардан ташкил топган бўлади. Шунинг учун қуйида курсатилган қулайликларни уз ичига олган созловчи система терминалига эга бўлиш керак. 1. Тухтатиш еки учириш калити маoлум шароитларда дастурни бажарилишини тухтатиш, уни кейинги холатини кайд қилиш ва бошқарувчи фойдаланувчига узатиш. 2. Рухсат этилмаган жараёнларни бажариш учун харакат булаетган холатларда фойдаланувчига бошқарувчи узатиш учун хатолар хақидаги сигнал ёрдамида тухтатиб қўйиш. 3. Хар қандай ўзгарувчиларни мазмунини тартиблаш еки созлашни хатолик сигнали еки узуз калити оркали дастур узилганда, унга ўзгартириш киритиш ёки холатини анализ қилиш. 4. Кайта ишга тушириш, яoни узилиш содир этилган оператордан ёки хар қандай операторлардан бошлаб ишга тушириб дастур бажарилишини давом эттириш. www.arxiv.uz 5. Қўшимча еки алохида қаторларни ўзгартириш, учириш учун керак бўлган модифицирланган дастур: бу харакат созлаш жараёни давом эттирилиши учун зудлик билан ишга туширилиши керак. www.arxiv.uz Адабиётлар : 1.Ван Тассел Д. Стилғ, разработка, эффективностғ, отладка и испқтание программ. М., Мир, 1991. 2. Лингер Р.,Теория и практика структурного программирования М.,Мир,1985. 3.В.В. Липаев. “Проектирование программнқх средств”, М.:”ВШ”, 1991. 4. Фокс Дж. “Программное обеспечение и его разработка”. Пер. с англ. М.: Мир, 1985. 5. С.С. Гуломов. “Иктисодий информатика”. Тошкент 1999 й. 6. www . uzedu . uz