Kitob uchta qismdan iborat. "Strukturali dasturlash", "Obyektli-yo’nalishli dasturlash", "Standart kutubxonalar"



Download 333,2 Kb.
bet36/90
Sana10.07.2022
Hajmi333,2 Kb.
#770437
1   ...   32   33   34   35   36   37   38   39   ...   90
Bog'liq
C majmua

Eslatma. Sanash qiymatlar oralig'i uning barcha qiymatlarini tasvirlash uchun zarur bitlar soni bilan aniqlanadi. Butun sonli tipdagi ixtiyoriy qiymatni sanash tipiga oshkora keltirish mumkin, lekin uning oralig'i chegaralaridan chiqishda natija aniqlanmagan.


Strukturalar (struct)
Barcha elementlari bir xil tipda bo'lgan massivdan farqli, struktura turli tipdagi elementlarni o'z ichiga oladi. C++ tilida struktura sinf turi hisoblanadi va uning barcha xossalariga ega, lekin ko'p hollarda strukturalarni C tilde qanday aniqlangan bo'lsa shunday foydalanish yetarli.

struct [ tip_nomi ] {


1_tip 1_element;
2_tip 2_element;

n_tip n_element;
} [ tavsiflovchilar_ro'yxati ]

Struktura elementlari struktura maydonlari deb ataladi va bu struktura tipidan tashqari ixtiyoriy tipga ega, lekin unga ko'rsatgichlar bo'lishi mumkin. Agar tip nomi bo'lmasa, o'zgaruvchilar tavsiflovchilari, ko'rsatgichlar yoki massivlar ro'yxati ko'rsatilishi lozim. Bu holda struktura tavsifi bu ro'yxat elementlari ta'rifi bo'lib xizmat qiladi.


// strukturalar massivi va strukturaga ko'rsatgich ta'rifi


struct {
char fio[30];
int date, code;
double salary;
}staff[100], *ps;

Agar ro'yxat yo'q bo'lsa, struktura tavsifi yangi tipni aniqlaydi, uning nomini standart tiplar bilan bir qatorda kelgusida foydalanish mumkin, masalan:


struct Worker{ // yangi Worker tipiga tavsif


char fio[30];
int date, code;
double salary;
}; // tavsif nuqtali vergul bilan tugaydi
// Worker tipidagi massivni va Worker tipidagi ko'rsatgich ta'rifi

Struktura nomini kompilyatorga struktura o'lchamini bilish talab etilmagan hollarda uning e'lon qilgandan so'ng foydalanish mumkin, masalan:


struct List; // List struktura e'loni


struct Link{
List *p; // List strukturaga ko'rsatgich
Link *prev, *succ; // Link strukturaga ko'rsatgich
};
struct List { /* List strukturaga tavsif */};
Bu strukturalarning bog'lamli ro'yxatini yaratishga imkon beradi.

Struktura initsializatsiyasi uchun uning elementlari qiymatlari ularni tavsiflash tartibida figurali qavslarda sanab o'tiladi:


struct {
char fio[30];


int date, code;
double salary;
} worker = {"Страусенко", 31, 215, 3400.55};

Strukturalar massivlarini initsializatsiyalashda massivning har bir elementi figurali qavslarga olish lozim (ko'p o'lchovli massiv – massivlar massivi ekanligini hisobga olish):


struct complex{


float real, im;
} compl [2][3] = {
{{1, 1}, {1, 1}, {1, 1}}, // 1 satr. то есть массив compl[0]
{{2, 2}, {2, 2}, {2, 2}} // 2 satr. то есть массив compl[0]
};

Bir struktura tipdagi o'zgaruvchilar uchun qiymat berish aniqlangan, bunda elementlar bo'yicha nusxalash ro'y beradi. Strukturani funksiyaga berish mumkin va funksiya qiymati sifatida qaytarish mumkin. Strukturalar bilan boshqa amallar foydalanuvchi tomonidan aniqlanishi mumkin. Struktura o'lchami uning elementlari o'lchamlari yig'indisiga teng bo'lishi shart emas, chunki ular satr chegaralari bo'yicha tekislanishi mumkin.


Struktura maydonlariga kirish maydoncha . (nuqta) struktura nomi orqali murojaat qilinganda va ko'rsatgich orqali murojaat qilganda tanlash amali yordamida bajariladi, masalan:

Worker worker, staff[100], *ps;



worker. fio = "Страусенко";
staff[8].code = 215;
ps->salary = 0.12;

Agar struktura elementlari boshqa struktura bo'lsa, u holda uning elementlariga kirish ikkita tanlash amali orqali bajariladi:


srtuct A {int a; double x;};


struct B {A a; double x;} x[2];
x[0].a.a = 1;
x[1].x = 0.1;

Misoldan ko'rinadiki, turli strukturalar maydonlari bir xil ismlarga ega, chunki ularda turlicha ko'rinish sohasi bo'ladi. Bir ko'rinish sohasida bir xil nomli struktura va obyektni e'lon qilish mumkin, agar struktura o'zgaruvchini ta'riflashda struct so'zidan foydalanilsa, lekin buni qilishni maslahat bermayman – kompilyatorni o'zingizcha qaraganda chalkashtirish qiyinroq.





Download 333,2 Kb.

Do'stlaringiz bilan baham:
1   ...   32   33   34   35   36   37   38   39   ...   90




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish