Andijon davlat universiteti axborot texnalogiyalari va kompyuter injiniring fakulteti axborot texnologiyalari kafedrasi



Yüklə 116 Kb.
səhifə4/8
tarix18.06.2023
ölçüsü116 Kb.
#132171
1   2   3   4   5   6   7   8
Andijon davlat universiteti axborot texnalogiyalari va kompyuter

3. Strukturalar va funksiyalar.
Strukturalar funksiyalar argumentlari sifatida yoki funksiya qaytaruvchi qiymat kelishi mumkin. Bundan tashqari ikkala holda ham strukturaga ko‘rsatkichlardan foydalanish mumkindir.
Misol uchun kompleks son modulini hisoblash dasturini keltiramiz:
double modul(complex a)
{return sqrt(a.real*a.real+a.imag*a.imag}
Ikki kompleks son yig‘indisini hisoblash funksiyasi:
complex add(complex a, complex b)
{ complex c;
c.real=a.real+b.real;
c.imag=a.imag+b.imag;
return c; }
Strukturalar uchun xotiradan joy ajratish. Struktura uchun ajratilgan joy xajmini quyidagi amallar yordamida aniqlash mumkin:
Sizeof (strukturali_tip_nomi);
Sizeof (struktura_nomi); Sizeof struktura_nomi.
Oxirgi holda struktura nomi ifoda deb karaladi. Ifodaning tipi aniqlanib, xajmi hisoblanadi.
Misol uchun:
Sizeof (struct goods)
Sizeof (tea)
Sizeof coat
Murakkab tiplar ya’ni massivlar va strukturali tiplar uchun xotiraga talab ularning ta’rifiga bog‘liqdir. Masalan double array[10] ta’rif xotiradan 10*sizeof bayt joy ajratilishiga olib keladi.

Struct mixture
{ int ii; long ll; char cc[8];
};

Bu ta’rif har bir Struct mixture tipidagi ob’ekt xotirada sizeof(int)+sizeof(long)+8*sizeof(char) bayt joy egallashini ko‘rsatadi. Ob’’ekt aniq xajmini quyidagi amal hisoblaydi:
Sizeof(struct mixture)
Xotirani tekislash. Strukturali tip kiritilishi bu tip uchun xotiradan joy ajratilishiga olib kelmaydi. Har bir konkret struktura (ob’ekt) ta’riflanganda, shu ob’ekt uchun elementlar tiplariga qarab xotiradan joy ajratiladi. Xotiradan joy zich ajratilganda struktura uchun ajratilgan joy xajmi har bir element uchun zarur bo‘lgan xotira xajmlari yigindisiga teng bo‘ladi. SHu bilan birga xotiradan joy zich ajratilmasligi ham mumkin ya’ni elementlar orasida bo‘sh joylar ham kolishi mumkin. Bu bo‘sh joy keyingi elementni xotira qismlarining qabul qilingan chegaralari bo‘yicha tekislash uchun koldiriladi.
Strukturalarga yakin tushuncha bu birlashma tushunchasidir. Birlashmalar union xizmatchi suzi yordamida kiritiladi. Misol uchun
union { long h;
int i,j;
char c[4]
}UNI;
Birlashmalarning asosiy xususiyat shundaki uning hamma elementlari bir xil boshlang‘ich adresga ega bo‘ladi.
Birlashmalarning asosiy avfzalliklaridan biri xotira biror qismi qiymatini har xil tipdagi qiymat shaklida karash mumkindir. Misol uchun quyidagicha birlashma
union {
float f; unsigned long k; char h[4]; }fl;
Xotiraga fl.f=2.718 xaqiqiy son yuborsak uning ichki ko‘rinishi kodini fl.l yordamida ko‘rishimiz, yoki aloxida baytlardagi qiymatlarni fl.h[0]; fl.h[1] va xokazo yordamida kurishimiz mumkin.

Yüklə 116 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin