stroktular va birlashmalar

DOC 10 pages 54.0 KB Free download

Page preview (5 pages)

Scroll down 👇
1 / 10
sdfs структуралар ва бирлашмалар маълумки, бирор предмет соҳасидаги масалани ечишда ундаги объектлар бир нечта, ҳар хилд турдаги параметрлар билан аниқлиши мумкин. масалан, текисликдаги нуқта ҳақиқий турдаги х-абцисса ва y -ордината жуфтлиги (x,y) кўринишида берилади. талаба ҳақидаги маълумотлар – сатр туридаги талаба фамилия, исми ва шарифи, мутахассислик йўналиш, талаба яшаш манзили, бутун турдаги туғилган йили, ўқув босқичи, ҳақиқий турдаги рейтинг бали, мантиқий турдаги талаба жинси ҳақидаги маълумот ва бошқа маълумотлардан шаклланади. программада ҳолат ёки тушунчани тавсифловчи ҳар бир берилганлар учун алоҳида ўзгарувчи аниқлаб масалани ечиш мумкин. лекин бу ҳолда объект ҳақидаги маълумотлар «тарқоқ» бўлади, уларни қайта ишлаш мураккаблашади, объект ҳақидаги берилганларни жамланган ҳолда кўриш қийинлашади. с++ тилида бир ёки ҳар хил турдаги берилганларни жамланмаси структура деб номланади. структура фойдаланувчи томонидан аниқланган берилганларнинг янги тури ҳисобланади. структура қуйидагича аниқланади: struct { ; ; … ; }; бу ерда - структура кўринишида яратилаётган янги турнинг номи, “ ;” – структуранинг i-майдонининг (ном_i) эълони. …
2 / 10
unsigned char rang; } point1, point2; келтирилган мисолда структура туридаги point1, point2 ўзгарувчилари эълон қилинган. структура туридаги ўзгарувчилар билан ишлаш, унинг майдонлари билан ишлашни англатади. структура майдонига мурожаат қилиш ‘.’ (нуқта) орқали амалга оширилади. бунда структура туридаги ўзгарувчи номи, ундан кейин нуқта қўйилади ва майдон ўзгарувчисининг номи ёзилади. масалан, талаба ҳақидаги структура майдонларига мурожаат қуйидагича бўлади: talaba.kurs=2; talaba.tug_yil=1988; strcpy(talaba.fish,”abdullaev a.a.”); strcpy(talaba.yunalish,”informatika va axborot texnologiyalari”); strcpy(talaba.jinsi,”erk”); strcpy(talaba.manzil,”toshkent, yunusobod 6-3-8, tel: 224-45-78”); talaba.reyting=123.52; келтирилган мисолда talaba структурасининг сон туридаги майдонларига оддий кўринишда қийматлар берилган, сатр туридаги майдонлар учун strcpy функцияси орқали қиймат бериш амалга оширилган. структура туридаги объектнинг хотирадан қанча жой эгаллаганлигини sizeof функцияси (оператори) орқали аниқлаш мумкин: int i=sizeof(talaba); айрим ҳолатларда структура майдонлари ўлчамини битларда аниқлаш орқали эгалланадиган хотирани қисқартириш мумкин. бунинг учун структура майдони қуйидагича эълон қилинади: : бу ерда – майдон тури ва номи, – майдоннинг битлардаги узунлиги. майдон тури бутун турлар бўлиши керак (int, long, unsigned, char). агар …
3 / 10
да 6 майдон * 2 байт = 12 байт жой эгаллайди. агар эътибор берилса структурада ортиқча жой эгаллаш ҳолатлари мавжуд. масалан, йил қиймати 0 дан 99 гача қиймат билан аниқланиши етарли (масалан, 2008 йилни 8 қиймати билан ифодалаш мумкин). шунинг учун унга 2 байт эмас, балки 7 бит ажратиш етарли. худди шундай ой учун 1..12 қийматлари ифодалашга етарли 4 бит жой етарли ва ҳакоза. юқоридаги келтирилган чекловлардан кейин сана-вақт структурасини тежамкор вариантини аниқлаш мумкин: struct sana_vaqt2 { unsigned yil : 7; unsigned oy : 4; unsigned kun : 5; unsigned soat : 6; unsigned minut : 6; unsigned sekund : 6; } ; бу структура хотирадан 5 байт жой эгаллайди. структура функция аргументи сифатида структуралар функция аргументи сифатида ишлатилиши мумкин. бунинг учун функция прототипида фойдаланувчи томонидан структурани эълон қилишда аниқланган берилганлар тури кўрсатилиши керак бўлади. масалан, талаба ҳақидаги берилганларни ўз ичига олувчи talaba структураси туридаги берилганларни talaba_manzili() функциясига параметр сифатида …
4 / 10
d talaba_kiritish(talaba t[]); void talabalar_fish(talaba t[]); int main(int argc, char* argv[]) { talaba talabalar[n]; talaba_kiritish(talabalar); talabalar_fish(talabalar); getch(); return 0; } void talabalar_fish(talaba t[]) { for(int i=0; i >t[i].kurs; cout >t[i].reyting;cout >t[i].tug_yil; cout ” (йўналиш чизиғи) орқали амалга оширилади: cout fish; структураларни кўрсатгич ва мурожаат(&) воситасида функция аргументи сифатида узатиш мумкин. қуйида келтирилган программа бўлагида структурани talaba_kiritish() функциясига кўрсатгич орқали, talabalar_fish() функциясига мурожаат орқали узатишга мисол келтирилган. … void talaba_kiritish(talaba *t); void talabalar_fish(talaba & t); int main( ) { talaba * k_talaba; k_talaba=(talaba*)malloc(n*sizeof(talaba)); talaba_kiritish(k_talaba); talabalar_fish(*k_talaba); return 0; } void talabalar_fish(talaba & t) { for(int i=0; i fish fish,30); cout >(t+i)->kurs; … } } шунга эътибор бериш керакки, динамик равишда ҳосил қилинган структуралар массиви элементи - структуранинг майдонига мурожаатда ‘*’ белгиси қўлланилмайди. бирлашмалар ва улар устида амаллар бирлашмалар хотиранинг битта соҳасида (битта адрес бўйича) ҳар хил турдаги берилганларни сақлаш имконини беради. бирлашма эълони union калит сўзи, ундан кейин идентификатор ва блок ичида …
5 / 10
шма эълонида унинг биринчи элементига бошлашғич қиймат бериш мумкин: union birlashma { int n; unsigned long n; char satr[10]; } birlashma={25}; бу мисолда birlashma бирлашмасининг n майдони бошланғич қиймат олган ҳисобланади. бирлашма элементи сифатида структуралар келиши мумкин ва улар одатда яхлит берилганни «бўлакларга» бўлиш ёки «бўлаклардан» яхлит берилганни ҳосил қилиш учун хизмат қилади. мисол учун сўзни байтларга, байтларни тетрадаларга (4 битга) ажратиш (бирлаштириш) мумкин. қуйида байтни катта ва кичик ярим байтларга ажратишда бирлашма ва структурадан фойдаланилган программани матни келтирилган. #include union bcd { unsigned char bayt; struct { unsigned char lo : 4; unsigned char hi : 4; } bin; } bcd; int main() { bcd.bayt=127; cout<<”\n katta yarim bayt : “<<(int)bcd.bin.hi; cout<<”\n kichik yarim bayt: “<<(int)bcd.bin.lo; return 0; } программа бош функциясида bcd бирлашмасининг байт ўлчамида bayt майдонига 127 қиймати берилади ва унинг катта ва кичик ярим байтлари чоп этилади. программа ишлаши натижасида экранга қуйидаги натижалар чиқади: katta yarim …

Want to read more?

Download all 10 pages for free via Telegram.

Download full file

About "stroktular va birlashmalar"

sdfs структуралар ва бирлашмалар маълумки, бирор предмет соҳасидаги масалани ечишда ундаги объектлар бир нечта, ҳар хилд турдаги параметрлар билан аниқлиши мумкин. масалан, текисликдаги нуқта ҳақиқий турдаги х-абцисса ва y -ордината жуфтлиги (x,y) кўринишида берилади. талаба ҳақидаги маълумотлар – сатр туридаги талаба фамилия, исми ва шарифи, мутахассислик йўналиш, талаба яшаш манзили, бутун турдаги туғилган йили, ўқув босқичи, ҳақиқий турдаги рейтинг бали, мантиқий турдаги талаба жинси ҳақидаги маълумот ва бошқа маълумотлардан шаклланади. программада ҳолат ёки тушунчани тавсифловчи ҳар бир берилганлар учун алоҳида ўзгарувчи аниқлаб масалани ечиш мумкин. лекин бу ҳолда объект ҳақидаги маълумотлар «тарқоқ» бўлади, уларни қайта ишлаш мураккаблашади, объект ҳақидаги берилганларни жамланган ҳо...

This file contains 10 pages in DOC format (54.0 KB). To download "stroktular va birlashmalar", click the Telegram button on the left.

Tags: stroktular va birlashmalar DOC 10 pages Free download Telegram