Ш. И. Раззоќов, М. Д. Юнусова turbo pascal алгоритмик тилида дастурлаш касб-ћунар коллеж талабалари учун ўќув ќўлланма


Download 1.74 Mb.
bet57/96
Sana30.04.2023
Hajmi1.74 Mb.
#1413831
1   ...   53   54   55   56   57   58   59   60   ...   96
Bog'liq
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:
1   ...   53   54   55   56   57   58   59   60   ...   96




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling