• 10.17. O‘zgaruvchining va konstantaning harakat sohasi
  • Dasturlash asoslari




    Download 5,61 Mb.
    bet135/143
    Sana15.03.2021
    Hajmi5,61 Mb.
    #13226
    1   ...   131   132   133   134   135   136   137   138   ...   143
    nomi>

    Agar bu xolda modul nomi bir necha so‘zdan iborat bo‘lsa, bu nomni kvadrat qavslarga olish kerak. Masalan, agar modul "Grafik protseduralar"-deb atalsa, protsedura-"Krestcha" deb atalsa, chaqiriq quyidagi shaklda bo‘lishi mumkin:

    [Grafik protseduralar].Krestcha

    Boshqa loyihalarda joylashgan protseduralardan ham foydalanish mumkindir. Bu xolda nomni aniqlashtirish yana bir darajasi kerak bo‘ladi





    10.17. O‘zgaruvchining va konstantaning harakat sohasi
    Hamma protseduralar, funksiyalar, O‘zgaruvchilar va konstantalar VBda o‘z harakat sohasiga ega.

    Bu ularning faqat dastur kodining ma’lum bir joyida - ayni ular tavsifida foydalanishi mumkinligini bildiradi.

    Masalan, agar o‘zgaruvchi A operator Dim yordamida tavsif etilgan bo‘lsa, protsedura tanasida Proc1 nomi bilan aynan shu protsedura uning harakat sohasi hisoblanadi.

    Shunday qilib agar boshqa protsedura Proc2 bo‘lsa, u xolda siz bunda shu o‘zgaruvchidan foydalana olmaysiz. Agar siz shunga harakat qilib ko‘rsangiz u xolda xato xaqida ma’lumot olasiz tavsif qilinmagan o‘zgaruvchidan foydalanish uchun, (agar operator Option Explictdan foydalanilsa) yoki boshqa o‘zgaruvchini olasiz - xuddi shu nom bilan, lekin bir xil nomli o‘zgaruvchi, birinchi protsedura bilan hech qanday bog‘liqligi yo‘q.

    Dasturning qaysi joyida va aynan qanday tavsif etilgan o‘zgaruvchi, buni uning harakat sohasi aniqlaydi va u qancha davr xotirada va o‘zining qiymatini saqlaydi. O‘zgaruvchining harakat sohasini aniqlashda uch xar xil darajaga ega:
    1. Protseduraning darajasi

    2. Modul darajasi

    3. Loyiha darajasi
    Protsedura darajasida o‘zgaruvchini aniqlash uchun uning tavsifi shu protsedura tanasiga joylanadi, shunda shunda bu lokal o‘zgaruvchi bo‘ladi.

    Protsedura darajasida o‘zgaruvchini aniqlash va uni shu bilan birga tushunish uchun oson qilib, birgalikda modulning hamma protseduralarida ishlatilishi uchun uning tavsifini modulning e’lonlar bo‘limida -biror bir protsedura yoki funksiya matni oldidan. Bunda yaqqol harakat sohasining yaqqol tavsifidan ham foydalanish mumkin :Dim kalit so‘zi Private kalit so‘zi bilan almashtiriladi. Qaysi tavsifdan foydalanishning farqi yo‘q va nixoyat o‘zgaruvchining loyiha darajasida tavsif qilish uchun uning tavsifini modul loyihaining biron-bir e’lonlar bo‘limida joylashtirish kerak va albatta kalit so‘zi Public foydalanilishi shart. Shunday qilib tavsif etilgan o‘zgaruvchilar loyihaning ixtiyoriy modulida ishlatilishi mumkin.

    Yuqorida aytilganlarning hammasi harakat sohasining konstant va massivlarining tavsifiga va aniqlanishiga kiradi.

    O‘zgaruvchilar uchun ular tavsifining yana bir usuli bor, ular darajasini o‘zgartirmaydigan, lekin o‘zgaruvchi qiymatini saqlab qoladigan protsedura darajasida tavsif qilingan protseduraning ishi tugagandan keyin. Buning uun tavsifchi Staticdan foydalanishi lozim, bu bilan statik o‘zgaruvchiligini aniqlab. Bundan o‘zgaruvchi o‘zi uchun ajratilgan joyni xotirada saqlab qoladi va o‘zining qiymatini o‘zi tavsif qilingan va foydalangan protsedura tamom bo‘lgandan so‘ng xam. Shunga qaramay statik o‘zgaruvchi boshqa protseduralarda foydalanilmaydi. Uning faqatgina xayot davri o‘zgaradi, harakat sohasi emas. (Agar shu protsedura qayta chaqirig‘i bo‘lsa)

    Agar statik o‘zgaruvchi tavsif etilgan protsedura qayta chaqirilsa, unda bu o‘zgaruvchi o‘zining oldingi qiymatini saqlab qoladi, oldingi chaqiriqda, ish yakunida qay xolda bo‘lsa. Oddiy, statik bo‘lmagan o‘zgaruvchi xar gal o‘zgaruvchini tashabbusga chorlaydi va protseduraga kirishda bo‘sh qiymat oladi.



    Download 5,61 Mb.
    1   ...   131   132   133   134   135   136   137   138   ...   143




    Download 5,61 Mb.