Malumotlar tuzilmasi va algoritmlar


Download 269.85 Kb.
bet4/7
Sana18.02.2023
Hajmi269.85 Kb.
#1213376
1   2   3   4   5   6   7
Bog'liq
1 amaliy topshiriq

Келтирилган типлар.
Саналадиган тип.
Бир қанча қийматлардан бирини қабул қила оладиган ўзгарувчига саналадиган типдаги ўзгарувчилар дейилади ва бундай ўзгарувчиларни эълон қилишда enum калит сўзи ва ундан кейин тип номи ҳамда фигурали қавс ичида вергуллар билан ажратилган ўзгармас қийматлари рўйхати ишлатилади.
ишлатилади. Масалан:

enum Ranglar{oq,qora,qizil,yashil};

Бу ерда Ranglar номли саноқли тип яратилди. Ушбу типнинг 4 та ўзгармас элементлари мавжуд ва улар дастлаб 0 дан бошлаб саналадиган бутун сонли қийматга эга бўладилар. Айрим холларда фойдаланувчи томонидан ўзгармасларга ихтиёрий сонли қиймат хам ўзлаштирилиши мумкин. Ўзгармасларга қийматлар ўсиш тартибида берилиши керак. Масалан,


enum Ranglar{oq=100,qora=200,qizil,yashil=400};
Бу ерда qizil ўзгармасни қиймати 201 га тенг бўлади. Энди шу типдаги бирорта ўзгарувчини эълон қилиш мумкин.
Ranglar r=qizil;
Энди r ўзгарувчи Ranglar типида аниқланган ўзгармаслардан ихтиёрий бирини қиймат сифатида қабул қила олади. Масалан.
#include
using namespace std;
int main()
{ enum kunlar{du=1,se,chor};
kunlar hafta;
hafta=chor;
cout<
int kun;
cout<<"\nbugun qaysi kun";
cin>>kun;
if(kun==chor) cout<<"\ntalabalar bilan uchrashuvingiz bor";
system("pause");
}
Кўрсаткичли тур.
Pointer тури маълумотларни кўрсаткичлари ёки манзиллари (адрес) тўпламини намоён қилади, яъни кўрсаткичлар маълумотларни эмас, балки бу маълумотлар жойлашган хотирадаги манзилни ўз ичига олади. Кўрсаткичлар хотирада бори йўғи 4 байт жойни эгаллаб, у кўрсатаётган маълумотлар анча катта жойни эгаллаган бўлиши мумкин. Кўрсаткичлар қандай ишлашини билиш учун машина хотираси ташкил этилишининг таянч принципларини билиш лозим. Машина хотираси 16 лик саноқ системасида номерланган ячейкалар кетма-кетлигидан иборатдир. Ҳар бир ўзгарувчининг қиймати унинг адреси деб аталувчи алоҳида хотира ячейкасида сақланади. Кўрсаткичли типдаги ўзгарувчилар ўзида ана шу каби ўзгарувчилар ёки бошқа маълумотларнинг хотирадаги адресини сақлайдилар. С++ да ўзгарувчини кўрсаткичли турда эълон қилиш учун ўзгарувчи номидан олдин * белгиси қўйилади. Хар бир ўзгарувчини типи билан эълон қилингани каби кўрсаткичли ўзгарувчилар хам маълум бир тип билан эълон қилинади. Бунда кўрсаткичли типдаги ўзгарувчининг типи – шу кўрсаткич кўрсатаётган хотира ячейкасидаги маълумотнинг типи билан бир хил бўлиши керак. Масалан, int a=1 бўлсин. Ушбу ўзгарувчини адресини ўзида сақловчи b кўрсаткичли ўзгарувчини эълон қилишда хам int типи ишлатилади, яъни int *b. Энди бундай типдаги ўзгарувчига а ўзгарувчини адресини ўзлаштириш учун а нинг олдига & - адрес операторини қўйиш зарур, яъни b=&a.
Мисол.
#include
using namespace std;
int main()
{ short int a=1234567;
short int *b;
b=&a;
cout<
system("pause");
}
Кўрсаткичли типлар ёрдамида файлларга хам мурожаат қилса бўлади, масалан:
#include
#include
using namespace std;
int main()
{
FILE *p;
char s[100];
if((p=fopen("f.txt","r"))==NULL)
cout<<"o'hshamadi";
else cout<<"ulandi";
fclose(p);
system("pause");
}

Download 269.85 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




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