2-mavzu: Foydalanuvchining standart turlari. Reja



Yüklə 46,5 Kb.
səhifə3/4
tarix08.11.2023
ölçüsü46,5 Kb.
#131259
1   2   3   4
2-ma\'ruza

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];

Yaratilgan toifa bilan e’lon qilingan o’zgaruvchi talaba – yozuv hisoblanadi, massiv esa talabalar[10] - jadvalni tashkil etadi. Yozuv va jadval yozuvi maydoniga qiymat berish quyidagicha:


yozuv.maydon_nomi=qiymat;
Masalan:
talaba.ch=’a’;
Agar jadval yozuvi maydoniga qiymat beriladigan bo’lsa, bunda jadval yozuv massivi shaklida tashkil qilinadi va shu massiv elementiga indeks bilan murojaat orqali amalga oshiriladi:


Jadval_elementi[indeks].maydon_nomi=qiymat;

Ya’ni, talabalar[i].ch=’a’;


Misol. Talabalar tartib raqami va ism-familiyasidan iborat jadval tuzib, ma’lumotlarni kiritish va ekranga chiqarish dasturi.


#include
using namespace std;
int main(
{
struct Guruh{
int n;
char fio[30];
};
Guruh talaba[5];
for(int i=0;i<5;i++){
talaba[i].n=i+1;
cin>>talaba[i].fio;
}
for(int i=0;i<5;i++)
cout<system("pause");
}

Bu yerda Guruh nomli nostandart toifa yaratildi va uning 2 ta maydoni
mavjud: talabaning tartib raqami n va familiyasi, ismi, otasining ismi uchun
uzunligi 30 bo’lgan satrli maydon fio[30].


Birlashmalar (union)
Birlashmalar xuddi strukturalarga o’xshash toifa hisoblanadi, farqi shuki,
birlashmalarda bir vaqtning o’zida faqat uning bitta elementigagina murojaat qilish
mumkin. Birlashma toifasi quyidagicha aniqlanadi:

union { 1-elementni tavsiflash;
...
n-elementni tavsiflash;
};

Birlashmalarning asosiy xususiyati shuki, e’lon qilingan har bir element
uchun xotiraning bitta hududi ajratiladi, ya’ni ular bir-birini qoplaydi. Bu yerda
xotiraning shu qismiga istalgan element bilan murojaat qilsa bo’ladi, lekin buning
uchun element shunday tanlanishi kerakki, olinadigan natija ma’noga ega bo’lishi
kerak. Birlashmaning elementiga murojaat xuddi struktura elementiga murojaat
kabi amalga oshiriladi. Birlashmalar qo’llaniladigan xotira obyektini
initsializatsiya qilish maqsadida ishlatiladi, agarda har bir murojaat vaqtida bir
qancha obyektlardan faqat bittasi faollashtirilsa.
Birlashma toifasidagi o’zgaruvchi uchun ajratiladigan xotira hajmi ushbu
toifaning eng uzun elementi uchun ketadigan xotira hajmi bilan aniqlanadi. Kichik
uzunlikdagi element ishlatilganda, birlashma toifasidagi o’zgaruvchi uchun
ajratilgan xotira sohasining ayrim qismi ishlatilmaydi. Birlashmaning barcha
elementi uchun xotiraning bitta adresdan boshlanuvchi bitta sohasi ajratiladi.
Birlashma tipidagi inform obyektini ishlatganda qiymat qabul qilgan
elementnigina qayta ishlash mumkin, ya’ni masalan inform.fio elementiga qiymat
berilgandan keyin boshqa elementlarga murojaat ma’noga ega emas. ua
birlashmasi al elementining kichik ua.al[0] va katta ua.al[1] baytlariga alohida
murojaat qilish mumkin. Birlashma tipiga oid misol ko’rib chiqamiz.


#include
using namespace std;
int main() {

union Guruh
{
int n;
int m;
};
Guruh w;
w.n=12; // w birlashmasining n elementiga qiymat berish
w.m=23; // w birlashmasining m elementiga qiymat berish
cout<
marta m uchun 23 qiymati yozilgani sababli ekranga 23 23 javobi chiqariladi.
system("pause"); }



Yüklə 46,5 Kb.

Dostları ilə paylaş:
1   2   3   4




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin