Dasturlash asoslari



Yüklə 2,09 Mb.
səhifə99/111
tarix07.01.2024
ölçüsü2,09 Mb.
#203273
1   ...   95   96   97   98   99   100   101   102   ...   111
Dasturlash asoslari

Function(, ,... )

=
EndFunction

Quyida yozilgan protsedura yoki funksiyadan foydalanish uchun uni chaqirish lozim. Argumentlar ro‘yxati bo‘shmas protsedurani faqat boshqa protsedura yoki funksiyadan, unda uning nomidan va argumentlar xaqiqiy qiymatlari ro‘yxatidan VB operatorlaridan biri sifatida foydalanib chaqirish mumkin. Funksiyani esa faqatgina VB operatorlari yordamidagina emas, balki uning nomini argumentlar xaqiqiy qiymatlari ro‘yxati bilan birga to‘g‘ri formulaga yoki VB programmasining ifodasi yoki masalan so‘rov hisoblanuvchi maydonchasi to‘g‘ri formulasiga, forma va Access hisobotiga joylash mumkin. Argumentlar bo‘sh ro‘yxatli protsedura (komanda makrosi) faqatgina boshqa protseduradan yoki funksiyadan emas, balki tez chaqiriladigan klavishlar kombinatsiyasi, ochiladigan komandalar menyusi yoki insturmentlar paneli tugmachalari yordamida ham chaqirilishi mumkin. Yana bu protsedurani xar xil hodisalar bajarilishi bilan bog‘lash mumkin. Masalan, forma ochilishi yoki hisobot, sichqonchaning tugmachasini formada elementlar boshqarish formasi, aksariyat boshqarish elementlari ActiveX. Bunday protseduralarni hodisalarni qayta ishlash protseduralari deyiladi. Argumentlar o‘tkazilishiga muhtoj funksiya yoki proeduralarni bu yo‘l bilan chaqirish mumkin emas.


Agar chaqirilayotgan protseduraning unikal nomi bo‘lsa va shu modulda joylashgan bo‘lsa, nima va chaqirilayotgan protsedura u xolda uning chaqirilishi uchun uning nomini ko‘rsatish va asli ma’noli argumentlar ro‘yxatini ko‘rsatish kifoya, uni qavsga olmagan xolda protsedurani chaqirishni ikkinchi usuli operator Calldan foydalanishdir. Avval operator Call keladi so‘ng protsedura nomi va parametrlar ro‘yxati, bu xolda albatta qavslar ichida bo‘lgan xolda. Funksiyani xuddi shu yo‘l bilan chaqirish mumkin, xuddi protseduradagidek faqat ko‘pinchalik boshqa ro‘yxatlar parametri operatorning o‘ng qismida o‘zlashtiriladi.
mana protsedurani chaqirish masalasi CrossRC nomi ostida unga ikki argumentlar uzatilishi bilan(konstanta va ifoda);
CrossRC 7, i+2 yoki CallCrossRC(7, i+2)
Mana ikkinchi funksiya chaqirish masalasi Left va Mid, va ular qaytargan qiymatni ifodada foydalanilishi:yStr=Left(y, 1)&Mid(y, 2, 1)
O‘zgaruvchini protseduraga yoki funksiyaga ikki xar xil uzatish yo‘li ruxsat etiladi. Qiymat bo‘yicha va ilova bo‘yicha. Agar o‘zgaruvchi ilova bo‘yicha uzatilsa, u xolda bu protsedura yoki funksiyaga bu o‘zgaruvchining adresi xotirasiga uzatiladi. Bunda protseduraning formal argumentlarning o‘xshashligi sodir bo‘ladi va unga asli parametrlar uzatiladi. Shu bilan chaqirilayotgan protsedura asli parametrning qiymatini o‘zgartirishi mumkin:agar protsedurani formal argumenti o‘zgarsa u xolda uzatilgan unga asli asli parametri chaqirilganda uning qiymatiga ta’sir qiladi. Agar asli parametr qiymatiga qarab uzatilsa, u xolda formal argumenti chaqirilgan protseduraning yoki funksiyaning faqat asli parametr ma’nosini oladi, lekin o‘zgaruvchining o‘zini emas, faqat shu parametr sifatida oladi.

Bu bilan barcha o‘zgarishlar formal argumentining qiymati o‘zgaruvchi qiymatiga ta’sir qilmaydi, u asli parametrdir.


Protseduralar parametri yoki funksiyalar uzatilishi yo‘llari uning tavsifnomasida uning argumentlari ko‘rsatiladi:argument nomiga uning tavsifi joriy etish uzatish yo‘li tavsiflovchi ByRet masalani yuborish bo‘yicha uzatadi, ByVal esa ma’nosi bo‘yicha. Agar parametr uzatish yo‘li yo‘q bo‘lsa u xolda ko‘zda tutilgan xolda uzatish bo‘ladi.
Aytilganlarni quyidagi misolda tushuntiramiz.
Quyida ikki protsedura tavsifi berilgan:

Sub Main()


a=10
b=20
c=30
callExample(a, b, c)
call msg Box(a)
call msg Box(b)
call msg Box(c)
endSub
sub example(x, By val y, By RetZ)
x=x+1
y=y+1
z=z+1
call msg box(x)
call msg box(y)
call msg box(z)
endsub.

Yordamchi protsedura example foydalanadi formal argumentlar sifatida uchta o‘zgaruvchi, xar xil tavsif etilgan.


Keyinchalik bu protsedura tanasida ularning xar biri birga oshadi, so‘ngesa uning qiymati ekranga chiqadi msnbox funksiya yordamida. Asosiy protsedura Main o‘zgaruvchilar a, b, c ning qiymati o‘rnatadi, so‘ngesa asli argumentlar sifatida example1 protsedurasiga uzatadi. Bunda birinchi argument ilova bo‘yicha uzatiladi, ikkinchisi qiymat bo‘yicha, uchinchisi -yana ilova bo‘yicha. Protsedura example qaytgandan so‘ngasosiy protsedurani ham ekranga uchta o‘zgaruvchi argument sifatida uzatadi. Hammasi bo‘lib ekranga oltita qiymat:

  • Avval bu 11, 21 va 31(hamma olingan qiymatlar birga oshgan va example protsedurasida chikariladi).

  • Keyin esa sonlar 11, 20 va 31 bu qiymatlar Main- protsedurasi orqali chiqariladi, aksariyat o‘zgaruvchilar ilovada o‘tkazilgan oshadi, o‘zgaruvchi esa qiymati o‘tkazilgan o‘zgarmaydi.

Dastur ko‘p protsedura va funksiyalardan iborat. Ular bitta yoki bir nechta modullarda joylashishi mumkin. Modullar loyihaga birlashgan va bir loyihada bir nechta xar xil dastur bo‘lishi mumkin. Ular umumiy modul va protseduralardan foydalanishi mumkin.
Protseduralarning xar biri bir modulda joylashib unikal nomga ega bo‘lishi kerak, lekin loyihada xar xil modul bo‘lishi mumkin. Aslida unikal nomlar bir loyihada foydalanish tavsiya etiladi, lekin boshqacha ham mumkin.
Agar loyihada xar xil protsedura bir xil nom bilan bo‘lsa, u xolda nomini aniqlashtirish uchun protsedura chaqirilganda quyidagi sintaksis qo‘llanadi:

Yüklə 2,09 Mb.

Dostları ilə paylaş:
1   ...   95   96   97   98   99   100   101   102   ...   111




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin