Ш. И. Раззоќов, М. Д. Юнусова turbo pascal алгоритмик тилида дастурлаш касб-ћунар коллеж талабалари учун ўќув ќўлланма
Download 1.74 Mb.
|
Turbo Pascal назария
type
digitChar=set of 0 .. 9; digit=set of 0 .. 9; var s1,s2,s3:digitchar; s4,s5,s6:digit; begin ………… s1:=[1,2,3]; s2:=[3,2,1]; s3:=[2,3]; s4:=[0 .. 3,6]; s5:=[4,5]; s6:=[3 .. 9]; ………… end. Бу мисолда s1 ва s2 тўпламлар тенг кучли, s3 тўплам эса s2 га киради, лекин унга тенг кучли эмас. Тўплам тури ќуйидаги кўринишда баён этилади: <тур исми> = set of <баз.тури> бу ерда <тур исми> - тўѓри идентификатор; set, of - резерв сўзлар (тўплам, … дан)ж <баз.тур> - элементларнинг тўпламдаги базавий тури, бу тур сифатида WORD, INTEGER, LONGINT турларидан бошќа ихтиёрий тартиб турини ишлатиш мумкин. Тўпламни бериш учун тўплам конструктори ишлатилади. Тўплам конструктори, бу бир-биридан вергуллар билан ажратилувчи тўплам элементлари хусусиятлари рўйхатидир, рўйхат тўртбурчакли ќавсларга олинади (юќоридаги мисолга ќаранг). Ўзгармаслар, базали турдаги ифодалар, шунингдек шу базали турдаги тур-соћа элементлар хусусияти бўлиши мумкин. Тўпламлар устида ќуйидаги амаллар аниќланган: * тўпламларнинг кесишиши; натижа иккала тўплам учун умумий бўлган элементларга эга бўлади; масалан, s4*s6 [3] га эга, s4*s5 - бўш тўплам (юќоридаги мисол); + тўпламларнинг бирлашиши; натижа биринчи тўпламнинг ћамма ва иккинчи тўпламнинг етишмаган элементларидан иборат бўлади: s4+s5 [0,1,2,3,4,5,6] га эга; s5+s6 [3,4,5,6,7,8,9] га эга; - тўпламлар фарќи, натижа биринчи тўпламнинг иккинчи тўпламда бўлмаган элементларидан иборат бўлади: s6-s5 [3,6,7,8,9] га эга; s4-s5 [0,1,2,3,6] га эга; = тенг кучлилигини текшириш, агар иккала тўплам тенг кучли бўлса, TRUE ни ќайтаради; <> тенг кучлимасликни текшириш; агар иккала тўплам тенг кучли бўлмаса, TRUE ни ќайтаради; <= киришни текшириш; агар биринчи тўплам иккинчисига киритилган бўлса, TRUE ни ќайтаради; >= киришни текшириш; агар иккинчи тўплам биринчисига киритилган бўлса, TRUE ни ќайтаради; IN тегишлиликни текшириш, бу бинар амалда биринчи элемент ифода, иккинчиси бир хил ўша турдаги тўплам, агар ифода тўпламга тегишли ќийматга эга бўлса. TRUE ни ќайтаради: 3 in s6 TRUE ни ќайтаради; 2*2 in s1 FALSE ни ќайтаради. Бу амалларга ќўшимча ќилиб иккита процедурани ишлатиш мумкин. INCLUDE – тўпламга янги элементни киритади. Процедурага мурожаат: INCLUDE (S, I) бу ерда: S – базали TSetBase туридаги элементлардан иборат тўплам, I – TSetBase туридаги, тўпламга киритилиши зарур бўлган элемент. EXCLUDE – тўпламдаги элементни ўчиради. Унга мурожаат: EXCLUDE (S,I) Мурожаат параметрлари худди INCLUDE процедурасидаги каби. Икки тўплам устида + ва - амалларига ўхшаш ишларни амалга оширувчи бу процедуралар + ва - амаллари тўпламининг якка элементлари билан ишлаш учун оптималлаштирилганлиги билан фарќланади ва шунинг учун юќори бажариш тезлиги билан ажралиб туради. Тўпламлар билан ишлаш йўлларини намойиш этувчи 9.8-дастурда, натурал сонларнинг биринчи юзталигидан ћамма оддий сонларни ажратиб олиш амалга оширилади. Унинг асосига «Эратосфен элаги» деб аталувчи усул етади. Бу алгоритмга кўра, аввал 2 дан N гача бўлган соћадаги ћамма бутун сонлардан иборат BEGINSET тўплам ташкил топади. Изланаётган оддий сонлардан иборат бўлиши керак бўлган PRIMERSET тўпламга 1 жойлаштирилади. Кейин ќуйида келтирилган ишлар бир неча марта такрорланади: BEGINSET дан биринчи NEXT сони олинсин ва PRIMERSET га жойлаштирилсин; BEGINSET дан NEXT сони ва унга бўлинувчи бошќа сонлар, яъни 2*NEXT, 3*NEXT ва ћоказо йўќотилсин. Иш BEGINSET тўплам бўш бўлгунича такрорланади. Бу дастурни ихтиёрий N учун ишлатиш мумкин эмас, чунки ихтиёрий тўпламда элементлар сони 256 дан кўп бўлмайди. 9.8-дастур Download 1.74 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling