Алгоритм — бирор вазифани бажариш ёки масалани ечиш учун белгиланган аниқ қадамлар тартиби. Алгоритм нима эканини мактабга тайёрланиш, мисол ечиш ва буюмларни саралаш орқали осон тушуниш мумкин. Кундалик мисоллар ёрдамида қадамларни қандай тузиш, текшириш ва хатосини топишни ҳам ўрганасиз.
Алгоритм нима ва у оддий маслаҳатдан қандай фарқ қилади?
Маслаҳат умумий йўл кўрсатади, алгоритм эса нима қилишни аниқ айтади. Масалан, «Дарсга яхши тайёрланинг» деган гап маслаҳат бўлиши мумкин. Лекин ундан қайси ишни олдин бажариш кераклигини билиб бўлмайди. «Жадвални очинг, эртанги фанларни аниқланг, керакли китобларни сумкага жойланг» дейилса, бажариладиган ишлар равшанлашади.
Қадамни бажарадиган одам ёки қурилма ижрочи деб аталади. Ижрочи кўрсатмани тушуниши ва бажара олиши керак. Мактаб ўқувчисига «Дафтарингизни очинг» дейиш тушунарли, лекин компьютер бундай гапни ўзича англаб, стол устидаги дафтарни очмайди. Унга ўзи бажара оладиган буйруқлар керак.
Яхши тузилган алгоритмнинг бошланиши, бажариладиган амаллари ва тугаш нуқтаси равшан бўлади. Ҳар бир қадам бир маънони билдиради. «Керакли нарсани олинг» ўрнига «Математика дафтарини олинг» дейиш аниқроқ. Кўрсатмани бошқа одам ўқиганда ҳам нимани назарда тутганингизни тахмин қилишга мажбур бўлмасин.
Кундалик ишни қандай қилиб алгоритмга айлантириш мумкин?
Аввал мақсадни белгиланг: иш тугагач, қандай натижа керак? Кейин сизда нималар борлигини аниқланг. Алгоритмга берилган дастлабки маълумотлар кириш маълумотлари, ундан олинган якун эса натижа дейилади. Масалан, икки сонни қўшишда берилган сонлар — кириш маълумотлари, уларнинг йиғиндиси эса натижадир.
Мактаб сумкасини тайёрлашни олайлик. Сизга дарс жадвали, китоблар, дафтарлар ва сумка керак бўлади. Мақсад барча буюмларни жойлаш эмас, эртанги дарсларга кераклиларини йиғишдир. Шу фарқ қадамларни ортиқча ишлардан тозалайди.
- Эртанги куннинг дарс жадвалини очинг.
- Жадвалдаги ҳар бир фан учун керакли китоб ва дафтарни ажратинг.
- Ажратилган буюмларни сумкага жойланг.
- Қаламдонингизда керакли ёзув қуроллари борлигини текширинг.
- Жадвалга яна қараб, бирор нарса қолиб кетмаганини текширинг.
- Сумкани ёпинг.
Бу мисолда қадамларнинг тартиби бежиз танланмаган. Жадвалга қарамасдан китоб йиғсангиз, кераксизини олиб, кераклисини унутишингиз мумкин. Бироқ айрим ишларнинг ўрни алмашиши натижага таъсир қилмайди: қаламдонни китоблардан олдин ҳам текширса бўлади. Муҳими, бир қадам учун зарур тайёргарлик ундан олдин бажарилсин.
Шарт ва такрорлаш қачон керак бўлади?
Ҳамма вазифа фақат кетма-кет буйруқлардан иборат эмас. Баъзан кейинги ҳаракат бирор шартга боғлиқ бўлади. Масалан: «Агар эртага расм дарси бўлса, рангли қаламларни сумкага солинг; акс ҳолда, кейинги фанга ўтинг». Шартга қараб турли йўлдан давом этиш тармоқланиш дейилади. Бунда ижрочи тахмин қилмайди, берилган шартни текширади.
Бир хил амал қайта-қайта керак бўлса, такрорлаш қўлланади. Унинг бошқа номи — сикл. Масалан, жавондаги китобларни тартиблашда ҳар бир китобни олиб, тегишли жойига қўясиз. Ҳар бир китоб учун кўрсатмани янгидан ёзиш ўрнига, «Китоб қолмагунча шу амални такрорланг» дейиш қулай.
- Кетма-кетлик: дафтарни очинг, топшириқни ўқинг, жавобни ёзинг.
- Тармоқланиш: қаламнинг учи синган бўлса, бошқа тайёр қаламни олинг; синмаган бўлса, шу қалам билан ёзинг.
- Такрорлаш: рўйхатдаги ҳар бир буюмни текшириб, борларига белги қўйинг.
Такрорлашнинг қачон тугаши ҳам аниқ бўлсин. «Китобларни жойлайверинг» деган буйруқ етарли эмас: қайси китоблар ва қачонгача? «Стол устида китоб қолмагунча, биттадан олиб жавонга қўйинг» дейилса, тўхташ шарти равшанлашади. Шу шарт бажарилгач, бошқа китоб қидириш керак эмас.
Алгоритмни қандай ёзиш ва текшириш керак?
Алгоритмни оддий гаплар билан ёзиш мумкин. Мураккаброқ вазифада блок-схема, яъни қадамларни шакллар ва йўналиш кўрсатувчи чизиқлар билан тасвирлаш усули ёрдам беради. Шартдан кейин йўл қаерда ажралишини шу тарзда кўриш осонлашади. Бошлаш учун эса дафтар ва тушунарли жумлалар етарли.
Текширишда ҳар бир қадамни ёзилганидек бажаринг. Масалан, «Соннинг жуфт ёки тоқлигини аниқланг» вазифаси учун соннинг охирги рақамига қараш мумкин. Охирги рақам 0, 2, 4, 6 ёки 8 бўлса, сон жуфт; бошқа рақам бўлса, тоқ бўлади. Бу қоида бутун сонлар учун ишлайди. Шунинг учун топшириқда қандай сон берилишини ҳам аниқлаштириш керак.
Фақат қулай мисол билан чекланманг. Жуфт сонни ҳам, тоқ сонни ҳам текширинг; нолни ҳам синаб кўринг. Агар натижа нотўғри чиқса, бутун ечимни дарҳол алмаштирманг. Дастлаб хато қайси қадамдан бошланганини топинг: шарт нотўғри ёзилганми, амал тушиб қолганми ёки тартиб бузилганми?
Компьютер дастури билан алгоритмнинг фарқи нимада?
Алгоритм — ечимнинг қадамлари, дастур эса шу қадамларнинг компьютер бажарадиган тилда ёзилган кўринишидир. Дастурлаш тили компьютерга буйруқ бериш учун ишлатиладиган қоидалар тизимидир. Бир хил вазифанинг алгоритмини турли дастурлаш тилларида ифодалаш мумкин. Демак, алгоритм тузиш учун дарҳол дастурлашни билиш шарт эмас.
Компьютер сиз айтмаган қадамни ўзича қўшиб қўяди деб кутманг. Масалан, сонларни ўсиш тартибида жойлаш топшириғида қайси қийматларни таққослаш ва уларнинг ўрнини қачон алмаштириш кераклиги белгиланиши лозим. Одамга «Буларни тартибланг» дейиш етиши мумкин, чунки у олдинги билимидан фойдаланади. Дастурда эса керакли амаллар аниқ ифодаланади.
Баъзан бир вазифани турли алгоритмлар билан бажариш мумкин. Керакли дафтарни топиш учун дафтарларни биттадан кўриб чиқасиз ёки улар фанлар бўйича ажратилган бўлса, дарҳол тегишли бўлимга қарайсиз. Қайси йўл қулайлиги бошланғич тартибга боғлиқ. Алгоритм танлашда натижа билан бирга ортиқча қадамлар бор-йўқлигини ҳам текширинг.
Қизиқарли фактлар
- Ёзма кўпайтириш ва устун шаклида қўшиш ҳам белгиланган қадамлар асосида бажарилади.
- Битта алгоритм турли бошланғич маълумотлар билан ишлаши мумкин: қўшиш қоидаси сонлар алмашганда ҳам сақланади.
- Қадамлар ўрнини алмаштириш баъзан натижани ўзгартиради. Сонни аввал кўпайтириб, кейин қўшиш билан шу амалларни тескари бажариш ҳар доим бир хил натижа бермайди.
- Шарт ва такрорлаш битта алгоритм ичида бирга келиши мумкин. Масалан, ҳар бир дафтарни текшириб, фақат математика дафтарларини алоҳида ажратиш мумкин.
- Тўғри тузилган алгоритмни текширишда кутилган натижа билан олинган натижа солиштирилади.
Алгоритм нима деган саволга ўз мисолингизни топиш учун столни тартиблаш қадамларини ёзинг. Сўнг яқинларингиздан кўрсатмани айнан ёзилганидек бажаришни сўранг. Улар бирор жойда савол берса, ўша қадамни аниқлаштиринг: буюмнинг номини, қўйиладиган жойини ёки ишнинг тугаш шартини қўшинг.
Кўп бериладиган саволлар
Ҳар қандай ишлар рўйхати алгоритм бўладими?
Йўқ, ишлар рўйхати ҳар доим ҳам алгоритм бўлавермайди. Алгоритмда қадамлар тушунарли бўлиши, вазифага мос тартибда келиши ва натижага олиб бориши керак. «Ўқиш, ёзиш, йиғиштириш» каби умумий рўйхат эса аниқ кўрсатма бермайди.
Алгоритм фақат математика ва информатика учун керакми?
Йўқ, ундан кундалик вазифаларни тартибга солишда ҳам фойдаланасиз. Сумка тайёрлаш, ўйин қоидаларига амал қилиш ёки буюмларни белгисига қараб ажратишда ҳам аниқ қадамлар ёрдам беради.
Алгоритмни ёзмасдан, оғзаки айтса бўладими?
Ҳа, алгоритмни оғзаки ҳам ифодалаш мумкин. Қадамлар кўпайса ёки шартлар қўшилса, ёзиб қўйиш уларни эсдан чиқармаслик ва хатони текшириш учун қулайроқ.
Тўғри алгоритм ҳар сафар бир хил натижа берадими?
Бир хил бошланғич маълумот ва бир хил аниқ қоидалар билан бажарилган оддий алгоритм бир хил натижа беради. Бошланғич маълумот ўзгарса, натижа ҳам ўзгариши мумкин: қўшиладиган сонлар бошқа бўлса, йиғинди ҳам бошқа чиқади.