Ko‘rsatkichli toifa(Pointer) - 1-ma’ruza. Ma’lumotlar turlari. Abstraktsiya. Ma’lumotlar abstraktsiyasi va ma’lumotlarning...

|
1-ma’ruza. Ma’lumotlar turlari. Abstraktsiya. Ma’lumotlar abstraktsiyasi va ma’lumotlarning abstrakt tuzilmalari (mat). Reja
|
bet | 11/12 | Sana | 04.01.2024 | Hajmi | 75,66 Kb. | | #130056 |
Bog'liq 1-ma’ruza. Ma’lumotlar turlari. Abstraktsiya. Ma’lumotlar abstraKo‘rsatkichli toifa(Pointer). Ko‘rsatkichlitoifama’lumotlarni ko‘rsatkichlari yoki manzillari (adres) to‘plamini namoyon qiladi, ya’ni ko‘rsatkichlar ma’lumotlarni emas balki bu ma’lumotlar joylashgan xotiradagi manzilni o‘z ichiga oladi. Ko‘rsatkichlar xotirada bori yo‘g‘i 4 bayt joyni egallab, u ko‘rsatayotgan ma’lumotlar ancha katta joyni egallagan bo‘lishi mumkin. Pointer toifasi ma’lumoti ixtiyoriy boshqa biror ma’lumot yoki ma’lumotlar guruhiga yo‘naltirilgan bo‘ladi. Ko‘rsatkichga mumkin bo‘lgan u yoki bu qiymatni o‘zlashtirib, ushbu ko‘rsatkich orqali kerakli ma’lumotga murojatni amalga oshirish mumkin. Pointer toifasidagi ma’lumotlarni qiymatlar to‘plamida bitta maxsus qiymat bo‘lib, uni o‘zlashtirish hech qayerga yo‘naltirilmaganligini ko‘rsatadi, ya’ni nol yoki bo‘sh ko‘rsatkich hisoblanadi. Masalan, C++ tilida bunday qiymat sifatida NULLdan foydalaniladi.Ko‘rsatkichlar ustida amallar quyidagicha bo‘lishi mumkin: biror bir ko‘rsatkichga boshqa ko‘rsatkich qiymatini o‘zlashtirish mumkin yoki boshqa ma’lumot egallab turgan xotira sohasi adresini o‘zlashtirish mumkin. Ko‘rsatkichlar o‘zaro bog‘langan ma’lumotlar tuzilmasini yaratishda va qayta ishlashda katta ahamiyatga ega. Xotirada ko‘rsatkichlarni ifodalash uchun uchun asosan dasturlash tizimiga mos ravishda manzilni maksimal uzunligicha joy ajratiladi. Ko‘rsatkichlarni qiymati nomanfiy butun sonlar sifatida sohada bitlarni ketma-ketligi ko‘rinishida saqlanadi.C++ tilida ko‘rsatkichli o‘zgaruvchilarni e’lon qilish uchun ularning toifasini aniqlash kerak. Buning uchun ko‘rsatkich xotirada qanaqa toifadagi ma’lumotlarni ko‘rsatayotgan bo‘lsa, ko‘rsatkichli o‘zgaruvchiga xam xuddi shunday toifa beriladi.
int a=9;
int *p=&a;
float f=4.6;
float *d=&f;
FILE*f=fopen(“talaba.txt”,’r’);
Foydalanuvchi tomonidan aniqlanadigan toifalar
Sanaladigan toifalar. Qiymatlarning o‘zgaruvchan toifalari standartlardan farqliroq yangi toifalarni yaratishga imkon beradi. Bu guruhga sanaladigan va chegaralangan toifalar kiradi.
Qiymatlarning sanaladigan toifalarning bunday atalishiga sabab, ular qat’iy aniqlangan tartibda sanaladigan ko‘rinishda beriladi va xamma qiymatlarning soni qat’iy chegaralangan xamda ko‘rilayotgan toifadagi qiymatlarni qabul qilishi mumkin. Sanaladigan toifa yechilayotgan masalaga qarab foydalanuvchi tomonidan berilishi mumkin.
Sanaladigan toifa konstantalar ro‘yxatidan tashkil topadi.Bu toifadagi o‘zgaruvchilar ro‘yxatidagi ixtiyoriy qiymatni qabul qilishi mumkin. Sanaladigan toifaning umumiy yozilish shakli quyidagicha:
enum toifaning nomi {konstantalar ro‘yxati};
toifaning nomi o‘zgaruvchi nomi;
Buyerda konstanta tushunchasi foydalanuvchi tomonidan berilagan maxsus konstanta ko‘rinishi tushuniladi. Konstantalar ro‘yxati bir-biridan vergul bilan ajratiladi va ular oddiy qavslar ichiga olinadi.
Masalan:
enum Ranglar{oq, qora, qizil, yashil};
Ranglar rang;
Bu yerda Ranglar – sanaladigan toifaning nomi; oq, qora, qizil, yashil-konstantalar. Rang - o‘zgaruvchi nomi bo‘lib u yuqoridagi konstantalardan ixtiyoriysini qabul qilishi mumkin.
Har bir konstanta tartib raqamiga ega bo‘lib, hisobdan boshlanadi, ya’ni oq=0, qora=1, qizil=2, yashil=3 raqamlariga ega. Konstantalar tartiblangani uchun ularga solishtirish amallari <, <=,==,!=, >=, > shuningdek standart funksiyalarni qo‘llash mumkin.
Strukturalar. Strukturalar turli toifadagi maydonlardan tashkil topgan yozuv hisoblanadi.Strukturalarni e’lon qilish uchun struct kalit so‘zi ishlatiladi. Undan keyin toifaga nom beriladi va {} qavs ichida maydonlar toifalari va nomlari e’lon qilinadi.
struct G{
char ch;
} talaba, talabalar[10];
Ushbu toifadagi o‘zgaruvchiyoki massiv elementi maydonlariga murojaat:
• Jadval_elementi[indeks].maydon_nomi=qiymat;
• Ya’ni, talabalar[i].ch=’a’;
|
|
Bosh sahifa
Aloqalar
Bosh sahifa
1-ma’ruza. Ma’lumotlar turlari. Abstraktsiya. Ma’lumotlar abstraktsiyasi va ma’lumotlarning abstrakt tuzilmalari (mat). Reja
|