Ma’lumotlar tuzilmasi va algoritmlar fanidan mustaqil ishi bajardi: Rahmonov Jo’rabek tekshirdi


Strukturalar va funksiyalar. Strukturalar funksiyalar argumentlari sifatida yoki funksiya qaytaruvchi qiymat kelishi mumkin. Bundan tashqari ikkala holda ham strukturaga ko‘rsatkichlardan foydalanish


Download 38 Kb.
bet2/2
Sana09.02.2023
Hajmi38 Kb.
#1183054
1   2
Bog'liq
1452789364 63495

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.
Download 38 Kb.

Do'stlaringiz bilan baham:
1   2




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