Mustaqil ish-5 Mavzu: Shablon funksiyalarda funksiyalarni qayta yuklash mexanizmi
-§. K O R SA T K IC H VA XOTIRA BILAN ISHLASH
Download 96.1 Kb.
|
Mustaqil ish-5 Mavzu Shablon funksiyalarda funksiyalarni qayta (1)
- Bu sahifa navigatsiya:
- K o ‘rsatkichlar
9-§. K O R SA T K IC H VA XOTIRA BILAN ISHLASH
9.1. Boshlang‘ich tushunchalar Unchalik murakkab bo im a g a n dasturlam i ishlab chiqish uchun biz hozirgacha ko‘rgan m aium o tlar yetarli, ammo murakkab dasturlar uchun kamlik qiladi. Dasturchi murakkab kompyuter dasturlarini ishlab chiqishda quyidagi m aium otlarga ham javob berishi lozim: • m aiu m o tlar qayerda saqlanadi? • u yerda qanday qiymatlar saqlanmoqda? • saqlanayotgan m aium otlam ing ko ‘rinishi. Bu masalalarga javob variantlaridan birinchisi o ‘zgaruvchilami oddiy usulda e io n qilishni nazarda tutadi. E io n qilish b u y ru g i orqali m aium otning tipi va nomi k o ‘rsatiladi. Kompilyator bu m a’lumot ucluin kompyuter xotirasidan maxsus joy ajratishni ta ’minlaydi va ichki vositalar yordamida uning manzilini nazorat qiladi. 117 K o‘rsatkichlardan foydalanishni nazarda tutuvchi ikkinchi va riant barcha dasturchilar uchun o ‘ta m uhim ahamiyat kasb etadi. K o ‘rsatkichlar ham o ‘zgaruvchi bo Tib, o ‘zida qandaydir qiy matlam i emas, balki bu qiymatlaming kompyuter xotirasidagi man- zilini saqlaydi. K o‘rsatkichlam i k o ‘rib chiqishdan avval oddiy o ‘zgaruvchilar manzilini aniqlashga urinib k o ‘raylik. Agar hom e o ‘zgaruvchi boTsa, &home bu o ‘zgaruvchining kompyuter xotirasidagi manzilini anglatadi. Quyidagi listingga e ’tibor bering: # include int main() { int a=12; double b=1.234; c o u t « a « ” a ning manzili “« & a « ”\n c o u t « b « ” b ning manzili “« & b « ”\n return 0; x / Ushbu kod Windows XP2 operatsion tizimi uchun quyidagi natijani ekranga uzatadi: 12 a ning manzili 0x8f7dffF4 1.234 b ning manzili 0x8f7dffec 0 ‘zgaruvchilar manzilini ekranga uzatishda cout o ‘n oltilik sanoq sistemasini qoTlaydi, chunki kompilyator xotira manzillarini saqlash uchun aynan shu sistemadan foydaladi. Bizning misolimizda a o ‘zgaruvchining manzili b nikiga qaraganda 4 baytga farq qiladi. Buning sababi int tipidagi m a’lumotlami saqlash uchun xotiradan 4 bayt jo y ajratilishi bilan bogTiq. Agar xotiraga b avval yozilsa, bu o ‘zgaruvchilaming manzillari o ‘rtasidagi farq 8 ga teng boTadi. Chunki double tipidagi m a’lumotni saqlashga xotiradan 8 bayt joy band qilinadi. 118 C++ dasturlash tili Pascal kabi ko‘plab tillardan shunisi bilan farq qiladiki, kompyuter tomonidan qandaydir qarorlar dastur kodini kompilatsiya qilish vaqtida emas, balki bajarish vaqtida, ya’ni dastur ishlayotgan vaqtda qabul qilinadi. Qiyoslash uchun misol keltiramiz: siz ta’til vaqtida bevosita, vaziyatdan kelib chiqqan holda ob-havo, kayfiyat va imkoniyat kabi holatlami hisobga olib, dam olishni tashkil qilishingiz mumkin. Bu bajarish vaqtida qabul qilinadigan qaror bo‘ladi. Kompilatsiya vaqtida qabul qilinadigan qarorga esa hech qanday vaziyatni e ’tiborga olmagan holda, belgilangan qat’iy grafik asosida dam olishni misol qilib keltirish mumkin. Bajarish vaqtida qabul qilinadigan qarorlar dastuming yuzaga keladigan vaziyatlarga moslashuvchan bo‘lishini ta ’minlaydi. Massiv- lar uchun xotirani taqsimlash masalasi bunga yaqqol misol bo‘lishi mumkin. Odatda massivni e ’lon qilishda uning hajmi qat’iy belgilab qo‘yiladi (kompilatsiya vaqti qabul qilinadigan qaror) va bu hajmni zarurat bo‘lganda o‘zgartirish mumkin emas. Odatda, talabalar guruhi massivi bilan ishlaganda 25 ta element yetarli hisoblanadi. Ammo ayrim hollarda talabalar soni 15 ta yoki 30 yoki undan ham ko‘p bo‘lishi mumkin. Bunday hollarda har ehtimolga qarshi 50 ta ele- inentli massiv e ’lon qilish lozim bo‘ladi. Qaralayotgan vaziyatda talablar soni 15 ta bo‘lsa, xotiraning qolgan 35 yachaykasi bo'sh qolmoqda. Ko‘rinib turibdiki, bunday dasturlar bilan ishlaganda xotiradan noto‘g‘ri foydalanish muammosi yuzaga keladi. Bunday inuammolami (ya’ni xotiradan qancha kerak bo‘lsa, shuncha joy iijratish masalasi kabi) hal qilish uchun C++ tilida qaromi dastuming bajarilishi jarayonida qabul qilish imkoniyati nazarda tutilgan. Shun- i lay qilib, dastur ishga tushganda, kompyuter xotirasidan ehtiyojga ko'ra zarur hajmni band qilishga ko‘rsatma berish mumkin. Xotiradagi ma’lumotlami qayta ishlashning yangi strategiyasiga ko'ra, qiymatlar joylashuvi haqidagi axborot nomlangan kattalik, i|ivmatning o‘zi esa hosila kattalik sifatida qayd qilinadi. Bunda ma’himotlaming maxsus tipi - ko'rsatkichlardan foydalaniladi. Yuqo- i k I. i avtib o‘tilganidek, ular qiymat saqlanayotgan xotira yacheykalari man/illarini o‘zida saqlaydi. 119 Download 96.1 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling