Дастурлаш фанидан


Ekranga quyidagicha natija chiqadi



Download 0,56 Mb.
Pdf ko'rish
bet3/6
Sana12.08.2021
Hajmi0,56 Mb.
#146247
1   2   3   4   5   6
Bog'liq
massiv

Ekranga quyidagicha natija chiqadi: 

 

 



 

 

 



 

 

 



 

 

 



 

 



Dinamik massivlar bilan ishlash. 

Statik  massivlarning  kamchiliklari  shundaki,  ularning  o`lchamlari  oldindan  ma`lum 

bo`lishi  kerak,  bundan  tashqari  bu  o`lchamlar  berilganlarga  ajratilgan  xotira 

segmentining  o`lchami  bilan  chegaralangan  .  Ikkinchi  tomondan,  yetarlicha  kata 

o`lchamdagi  massiv  e`lon  qilinib,  konkret  masala  yechilishida  ajratilgan  xotira  to`liq 

ishlatilmasligi  mumkin.  Bu  kamchiliklar  dinamik  massivlardan  foydalanish  orqali 

bartaraf etiladi, chunki ular programma ishlashi jarayonida kerak bo`lgan o`lchamdagi 

massivlarni yaratish va zarurat qolmaganda yo`qotish imkoniyatini beradi. 

Dinamik massivlarga xotira ajratish uchun malloc(), calloc() funksiyalaridan 

yoki  neu  operatoridan  foydalanish  mumkin.  Dinamik  obyektga  ajratilgan  xotirani 

bo`shatish  uchun  delete  operatori  ishlatiladi  Yuqorida  qayd  qilingan  funksiyalar 

<>  kutubxonasida  joylashgan.  Malloc()  funksiyasining  sintaksisi  Void  * 

malloc(size_t  size);  Ko`rinishida  bo`lib  ,  u  hotiraning  uyum  qismidan  size  bayt 

o`lchamdagi  uzluksiz  sohani  ajratadi.  Agar  xotira  ajratish  muvaffaqiyatli  bo`lsa, 

malloc()  funksiyasi  ajratilgan  sohaning  boshlanish  adresini  qaytaradi.  Talab  qilingan 

xotirani  ajratish  muvaffaqiyatli  bo`lsa  ,  funksiya  NULL  qiymatni  qaytaradi. 

Sintaksisdan  ko`rinib  turibdiki,  funksiya  void  turidagi  qiymat  qaytaradi.  Amalda  esa 

konkret turdagi obyekt uchun xotira ajratish zarur bo`ladi. Buning uchun void konkret 

turga  keltirish  texnologiyasidan  foydalaniladi.  Masalan  ,  butun  turdagi  uzunligi  3  ga 

teng massivga joy ajratishni quyidagicha amalga oshirish mumkin: 

Int * pint=(int*)malloc(3*sizeof(int)); 

Calloc() funksiyasi malloc funksiyasidan farqli ravishda massiv uchun joy ajratishdan 

tashqari massiv elementlarini 0 qiymati bilan initsializatsiya qiladi. 

Bu funksiya sintaksisi. 

Void * calloc(size_t num, size_ t size); 

Ko`rinishida bo`lib , num parametri ajratilgan sohada nechta element borligini, size xar 

bir element o`lchamini bildiradi. 

Free() xotirani bo`shatish funksiyasi o`chiriladigan xotira bo`lagiga 

ko`rsatkich bo`lgan yagona parametrga ega bo`ladi: 

Void free(void* block); 

Free() funksiyasi parametrining void turida bo`lishi ixtiyoriy turdagi 




xotira bo`lagini ochirish imkonini beradi . 

Quyidagi  programmada  10  ta  butun  sondan  iborat  dinamik  massiv  yaratish,  unga 

qiymat berish va o`chirish amallari bajarilgan. 

#include 

#include 

int main() 

int * pvector; 



if ((pvector=(int*)malloc(10*sizeof(int)))==NULL) 

Cout<<”xotira yetarli emas!!!”; 



Return 1; 

// ajratilgan xotira soxasini to`ldirish 



For (int i=0; i<10; i++) *(pvektor+i)=I; 

// vector elementlarini hop etish 

For (int i=0; i<10; i++) cout<<*(pvector+i)<

// ajratilgan xotira bo`lagini qaytarish (o`chirish) 

Free(pvector); 

Return 0; 

new operatori yordamida ,massivga hotira ajratishda obyrkt turidan keyin kvadrat qavs 



ichida  obyektlar  soni  ko`rsatiladi.  Masalan  ,  butun  turdagi  10  ta  sondan  iborat 

massivga joy ajratish uchun 

pVector=new int[10]; 

ifodasi yozilishi kerak. Bunga qarama – qarshi ravishda , bu usulda 

ajratilgan xotirani bo`shatish uchun 

delete [] pVector; 

ko`rsatmasini berish kerak bo`ladi; 

Ikki o`lchamli dinamik massivni hosil qilish uchun 

int **a; 



ko`rinishidagi  <>  ishlatiladi.  Boshqa  massiv  satrlari 

soniga qarab ko`rsatkichlar massiviga dinamik xotiradan joy ajratish kerak: 

A=new int *[m] // bu yerda m massiv satrlar soni 

Keyin  ,  xar  bir  satr  uchun  takrorlash  operatori  yordamida  xotira  ajratish  va  ularning 

boshlang`ich adreslarini a massiv elementlariga joylashtirish zarur bo`ladi: 

For (int i=0; i

Shuni  qayd  etish  kerakki  ,  dinamik  massivning  har  bir  satri  xotiraning  turli  joylarida 

joylashishi mumkin. 

Ikki o`lchamli massivni o`chirishda oldin massivning har bir elementi 

(satri), so`ngra massivning o`zi yo`qotiladi. 

For (i=0; i

delete []a; 




Download 0,56 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




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