Belgili massivlar.Satirli funksiyalar bilan ishlash
Reja:
1.Xotirani zaxiralash.
2. Xotirani statik va dinamik taqsimlash o‘rtasidagi farq.
Tayanch iboralar: Berilganlar massivi tushunchasi, ko‘p o‘lchamli statik massivlar, ko‘p o‘lchamli massivlarni initsializatsiyalash, matrtsa,indeks,xotira,dinamik massivlar , funksiya,massivlar.
C++ da o‘zgaruvchilar yo statik - kompilyatsiya paytida, yo standart kutubxonadan funksiyalarni chaqirish yo‘li bilan dinamik - dasturning bajarilish paytida, joylanishi mumkin. Bu usullarni ishlatishning asosiy farqi ularning effektivligida va moslanuvchanligidadir. Statik joylashtirish birmuncha effektivroq,chunki xotira ajratish dastur bajarilishidan oldin bajariladi. Ammo uning moslanuvchanligi ancha pastroq, chunki bu holda biz joylashtiriladigan ob’yektlarning turlari va o‘lchamlarini oldindan bilishimiz zarur.Masalan, matn fayllarni qatorlarning statik massivida, uning o‘lchamini oldindan bilish zarurligidan, joylashtirish ancha qiyin. Ayniqsa, oldindan noaniq sonli elementlarni saqlash va qayta ishlash bilan bog‘liq masalalar uchun xotirani dinamik taqsimlash usulidan foydalanish qulay.
Xotirani statik va dinamik taqsimlash o‘rtasidagi asosiy farq quyidagilar:
Statik ob’yektlar nomlangan o‘zgaruvchilar bilan belgilanadi. Shu sababli bunday ob’yektlar ustida amallar bevosita ularning nomlarini ishlatish orqali amalga oshiriladi. Dinamik ob’yektlar shaxsiy nomga ega bo‘lmaydi, ular ustidagi amallar bilvosita, ya’ni ko‘rsatkichlar yordamida bajariladi;
Statik ob’yektlar uchun xotira ajratish va bo‘shatish kompilyator tomonidan avtomatik ravishda bajariladi. Dasturchining bu haqda bosh qotirishi shart emas.Dinamik ob’yektlar uchun xotira ajratish va bo‘shatish butunligicha dasturchining zimmasiga tushadi. Bu esa hal qilishda xatoga yo‘l qo‘yish mumkin bo‘lgan murakkab masaladir.Dinamik ajratilgan xotira bilan ish ko‘rish uchun new va delete
buyruqlaridan foydalaniladi.Shu paytgacha barcha misollarda xotirani statik ajratish usulidan
foydalanilib kelindi. Masalan, i o‘zgaruvchini aniqlash quyidagicha bajarilar edi:
int i = 1024;
Bu buyruq xotirada int turidagi o‘zgaruvchini saqlash uchun zarur bo‘lgan soha ajratadi, bu sohani I nom bilan bog‘laydi va u joyga 1024 qiymatni yozib qo‘yadi. Bularning barchasi dasturning bajarilishigacha bo‘gan kompilyatsiya paytida bajariladi.O‘zgaruvchi uchun joy ajratishning yana bir usuli mavjud bo‘lib, u new buyrug‘ini ishlatish yordamida bajariladi.newbuyrug‘i ikkita shaklga egabo‘ladi. Birinchi shaklda aniq turli birlik ob’yekt uchun joy ajratadi:
Dostları ilə paylaş: |