2-мисол. Берилган x, y, z сонлари ичидан энг кичиги аниқлансин. Берилган x, y, z сонлардан энг кичигини m-деб белгилайлик. Агар х<у бўлиб, хшарт бажарилса, m=х бўлади, аксинча х>z шарт бажарилса, m= z бўлади. Агар х>у бўлиб, уz шарт бажарилса, m=z бўлади. Бу фикрлар қуйидаги блок - схемада ўз аксини топган. Бу блок–схемада тармоқланиш ёки айри структурасидан 3 марта фойдаланилган.
Кўпгина масалаларни ечишда, шарт асосида тармоқланувчи алгоритмларнинг иккита тармоғидан биттасининг яъни ёки «ҳа» еки «йўқ» нинг бажарилиши етарли бўлади. Бу ҳолат тармоқланувчи алгоритмнинг хусусий ҳоли сифатида айланиш структураси деб аташ мумкин. Айланиш структураси қўйидаги кўринишга эга:
Мустақил бажариш учун топшириқлар:
1. Айлананинг юзаси S ва квадратнинг юзаси Р берилган. Квадратнинг айланага сиғиш ёки сиғмаслиги аниқлансин.
2.
3. Берилаган учта а, в, с- сонлардан фойдаланиб томонларининг узунликлари шу сонларга тенг бўлган учбурчакнинг мавжудлигини аниқланг ва шундай учбурчакни қуриш мумкин бўлса унинг юзасини аниқланг.
Агар бирор масалани ечиш учун тузилган зарур бўлган амаллар кетма-кетлигининг маълум бир қисми бирор параметрга боғлик кўп марта қайта бажарилса, бундай алгоритм такрорланувчи алгоритм ёки циклик алгоритмлар дейилади. Такрорланувчи алгоритмларга типик мисол сифатида одатда қаторларнинг йиғиндиси ёки кўпатмасини ҳисоблаш жараёнларини қараш мумкин. Қуйидаги йиғиндини ҳисоблаш алгоритмини тузайлик.
Бу йиғиндини ҳисоблаш учун i0 да S0 деб оламиз ва ii1 да SSi ни ҳисоблаймиз. Бу ерда биринчи ва иккинчи қадамлар учун йиғинди ҳисобланди ва кейинги қадамда i параметр яна биттага орттирилади ва навбатдаги рақам аввалги йиғинди S нинг устига қўшилади ва бу жараён шу тартибда то I
N
–берилган бўлсин,
i0 берилсин,
S0 берилсин,
ii1 ҳисоблансин,
SSi ҳисоблансин,
I
бажарилса, 4-сатрга қайтилсин,
акс ҳолда кейинги қаторга ўтилсин,
S нинг қиймати чоп этилсин.
Юқорида келтирилган алгоритм ва блок схемадан кўриниб турибдики амаллар кетма-кетлигининг маълум қисми параметр i га нисбатан N марта такрорланяпти.
Энди қуйидаги кўпайтманинг алгоритмини ва блок схемасини тузиб кўрайлик.(1 дан N бўлган сонларнинг кўпайтмасини одатда P! каби белгиланади ва факториал деб аталади)
P = 1 N= P!
P! - факториални қуйидаги кўринишда ҳам ёзиш мумкин P =
Кўпайтмани ҳосил қилиш алгоритми ҳам йиғиндини ҳосил қилиш алгоритмига жуда ўхшаш, фақат кўпайтмани ҳосил қилиш учун i1 да P1 деб оламиз ва кейин ii1 да PP i ни ҳисоблаймиз. Кейинги қадамда i параметр яна биттага орттирилади ва навбатдаги рақам аввалги ҳосил бўлган кўпайтма P га кўпайтирилади ва бу жараён шу тартибда то I
N–берилган бўлсин,
i1 берилсин,
P1 берилсин,
ii1 ҳисоблансин,
PP* i ҳисоблансин,
I
шарт бажарилса, 4-сатрга
қайтилсин, акс ҳолда кейинги
қаторга ўтилсин,
P нинг қиймати чоп этилсин.
Юқорида кўрилган йиғинди ва кўпайтмаларнинг блок схемаларидаги такрорланувчи қисмларига (айлана ичига олинган) қуйидаги шарти кейин берилган циклик структура мос келишини кўриш мумкин.
Юқоридаги блок схемаларда шартни олдин текшириладиган ҳолдатда чизиш мумкин эди. Масалан, йиғиндининг алгоритмини қарайлик.
Бу блок схеманинг такрорланувчи қисмига қуйидаги, шарти олдин берилган циклик структуранинг мос қилишини кўриш мумкин.
Б
лок схемаларининг такрорланувчи қисмларини, қуйидаги параметрик циклик структураси кўринишида ҳам ифодалаш мумкин.
Параметрик цикл структурасига мисол сифатида берилган х1,2,3,.....10 ларда функциясининг қийматларини ҳисоблаш блок схемасини қараш мумкин.
Мустақил бажариш учун топшириқлар:
Йиғиндининг S алгоритми ва блок схемаси тузилсин.
Кўпайтманинг алгоритми ва блок схемаси тузилсин
4. Берилган a , a , a ,...,a сонларнинг энг каттасини топадиган алгоритм ва блок-схема тузилсин.
5. Р(х-2)(х-4)(х-8)...(х-64) ҳисоблансин (х-ҳақиқий сон).
6. Иккита n ва m натурал соннинг энг катта умумий бўлувчисини топиш алгоритми (Евклид алгоритми) тузилсин.
Do'stlaringiz bilan baham: |