Protsedura va funksiyaning harakat sohasi




Download 5,61 Mb.
bet136/143
Sana15.03.2021
Hajmi5,61 Mb.
#13226
1   ...   132   133   134   135   136   137   138   139   ...   143
10.18. Protsedura va funksiyaning harakat sohasi
Protsedura va funksiyalar faqat ikita darajali harakat sohasiga ega:Modul darajasi va loyiha darajasi.

Loyiha darajasi yashirincha foydalaniladi. Shunday qilib protsedura yoki funksiya ixtiyoriy boshqa protsedura yoki funksiya orqali chaqirilishi mumkin bu loyihada.

Protsedura va funksiya tavifida loyiha darajasida nomajburiy kalit so‘zi Publicdan foydalanish mumkin. Bu so‘zning bor yoki yo‘qligi ta’sir ko‘rsatmaydi.

Agar faqat modul darajasida protsedura tavsif etilishi kerak bo‘lsa buning uchun kalit so‘zi Private qo‘llaniladi. E’tiborga oling, bunday tavsif faqatgina protseduraning harakat sohasini toraytiribgina qolmay, lekin va uning mustaqil protsedura sifatida foydalanishni taqiqlaydi-uni faqat boshqa protseduradan chaqirish mumkin. Nixoyat, protsedura yoki funksiyaning tavsifida kalit so‘zi Static dan foydalanish mumkin. Bu hech protsedura harakat sohasiga ta’sir qilmaydi, lekin hamma o‘zgaruvchiga ta’sir qiladi, shu protsedura yoki funksiyaning ichida tavsif qilingan.

Bu xolatda hamma lokal o‘zgaruvchilar Static statusini oladi va shu bilan protsedura tugagandan so‘nguning xotirasida qoladi va chaqirilganda avvalgi qiymatini saqlab qoladi.

Quyidagicha boshlanadigan modul misolini ko‘rib chiqamiz:


Public Al As String Private A2 As Integer

Dim A3 As Single

Sub Prod ()

Dim A4 As Integer

Static A5 As Integer

Al = "Tekstovaya stroka 1"

A2= 2

A3 = 3.14



A4 = A4 + 4

A5 = A5 + 5

MsgBox A4

MsgBox A5

End Sub

Sub Proc2 () Procl

MsgBox Al

MsgBox A2

MsgBox A3

MsgBox A4

MsgBox A5

Procl End Sub


Bu misolda o‘zgaruvchi A1 butun loyiha darajastda aniqlangan(kalit so‘zi Public foydalanilgan) o‘zgaruvchilar A1 va A3 modul darajasida aniqlangan,, o‘zgaruvchi A4 faqat protsedura Proc1, darajasida, o‘zgaruvchi A5 protsedura tanasida aniqlangan Proc1, lekin statik o‘zgaruvchidek tavsif qilingan.

Protsedura Proc2 chaqirilganda quyidagi sodir bo‘ladi: bu protseduradan o‘z naVBtida protsedura Proc1 chaqiriladi, u hamma 5 o‘zgaruvchining kuymatini tayinlaydi A1, A2, A3, A4, A5 so‘ng o‘zgaruvchi A4 va A5 -ning joriy qiymatini ko‘rsatadi dialog oynasida.

Bu protseduraning yakunidan so‘ng o‘zgaruvchining joriy qiymati A1-A5 protsedura Proc2 dan chiqariladi.

Bunda o‘zgaruvchilar A1-A3 o‘z qiymatlarini saqlab qoladi, chunki ular modul darajasida tavsif etilgan o‘zgaruvchilar A4 va A5 esa bo‘sh qiymat qabul qiladi, chunki bu o‘zgaruvchilarning harakat sohasi protseduradir, ular u yerda foydalaniladi. Protseduralar birining ichidagi bu o‘zgaruvchilarning o‘zgarishlari shu o‘zgaruvchilarga mos boshqa protseduralardagi o‘zgaruvchilarga bog‘liq emas-aslini olganda bular xar xil o‘zgaruvchilardir, faqatgina ularning nomlari bir xil. so‘ngProc1 protsedurasini yana bir chaqirilish codir bo‘ladi va u yana A4 A5 qiymatini o‘zgartirib ekranga chiqaradi.

Bunda o‘zgaruvchi A4 yana 4 qiymatini oladi, chunki protseduraning yangi chaqirig‘ida bu o‘zgaruvchi uchun boshqatdan xotira ajratiladi va u initsiyalizatsiyalanadi bo‘sh qiymatda.

A4 dan farqliroq o‘zgaruvchi A5-statik o‘zgaruvchidek tavsif etilgan, o‘zining oldingi qiymatini saqlaydi. Protseduraning oldingi chaqirig‘idan, buning oqibatida uning qiymati qayta chaqiriqda 10ga teng bo‘ladi.





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




Download 5,61 Mb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Protsedura va funksiyaning harakat sohasi

Download 5,61 Mb.