|
Muhammad al-xorazmiy nomidagi toshkent axborot texnologiylari universiteti
|
bet | 6/8 | Sana | 05.01.2024 | Hajmi | 203,02 Kb. | | #130700 |
Bog'liq Dilobar MT 1Strukturalar
Strukturalar turli tipdagi maydonlardan tashkil topgan yozuv xisoblanadi. Strukturalarni e’lon qilish uchun struct kalit so‘zi ishlatiladi. Undan keyin tipga nom beriladi va {} qavs ichida maydonlar tiplari va nomlari e’lon qilinadi. Yaratilgan tip bilan e’lon qilingan o‘zgaruvchilar yozuv xisoblanadi, massivlar esa jadvalni tashkil etadi.
Masalan,
#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");
}
Birlashmalar (union)
Birlashmalar xuddi strukturalarga o‘xshash tip xisoblanadi, farqi shuki, birlashmalarda bir vaqtning o‘zida faqat uning bitta elementigagina murojaat qilish mumkin. Birlashma tipi quyidagicha aniqlanadi:
union { 1-elementni tavsiflash;
...
n-elementni tavsiflash;
};
Birlashmalarning asosiy xususiyati shuki, e’lon qilingan xar bir element uchun xotiraning bitta xududi 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 ob’ektini initsializatsiya qilish maqsadida ishlatiladi, agarda xar bir murojaat vaqtida bir qancha ob’ektlardan faqat bittasi faollashtirilsa.
Birlashma tipidagi o‘zgaruvchi uchun ajratiladigan xotira xajmi ushbu tipning eng uzun elementi uchun ketadigan xotira xajmi bilan aniqlanadi. Kichik uzunlikdagi element ishlatilganda, birlashma tipidagi o‘zgaruvchi uchun ajratilgan xotira soxasining ayrim qismi ishlatilmaydi. Birlashmaning barcha elementi uchun xotiraning bitta adresdan boshlanuvchi bitta soxasi ajratiladi. Masalan:
union { char fio[30];
char adres[80];
int yoshi;
int telefon; } inform;
union { int ax;
char al[2]; } ua;
Birlashma tipidagi inform ob’ektini ishlatganda qiymat qabul qilgan elementinigina 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 aloxida 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<
system("pause");
}
|
| |