72
Misol. CROSS
RC nomini protsedurali, unga ikkita argu-
mentni (konstanta va ifoda) uzatish bilan chaqirish:
CROSS 7,i+2
yoki
CALL CROSSRC(7,i+2)
Quyidagi misolda ikkita (left va mid) funksiyalarini chaqirish
va ular qaytaradigan qiymatlarni ifoda ishlatishi ko‘rsatilgan
yStr =left(y,1) & mid(y,2,1)
Prossedura funksiyalarga o‘zgaruvchilarni uzatishning ikkita
har xil usuli ishlatilishi mumkin: murojaat va qiymatlar bo‘yicha.
O‘zgaruvchi murojaat bo‘yicha
uzatilganda protsedura yoki
funksiyada shu o‘zgaruvchining xotiradagi adresi (yacheyka no-
meri) uzatiladi. Cha qirayotgan protsedura haqiqiy parametr qiy-
matini o‘zgartirishi mumkin.
Agar haqiqiy parametr qiymat bo‘yicha uzatilsa, unda chaqiri-
layotgan protsedura yoki funksiya o‘zgaruvchisining o‘zini emas,
shu parametr sifatida ishlatilayotgan haqiqiy parametrning faqat
qiymatini oladi.
Haqiqiy parametr olingan qiymatlarini barcha o‘zgarishlari
(agar ular chaqirilayotgan protsedura bajarilayotgan bo‘lsa) ha-
qiqiy parametr o‘zgaruvchisining qiymatiga ta’sir qilmaydi.
Protsedura yoki funksiyalarga parametrlarni uzatish usu-
li uning argumentlarini (formal parametrlarni) tavsiflashda
ko‘rsatiladi. Argument nomi oldida
uzatish usulini oshkor tas-
virlovchi (Bye Ref
–
murojaat bo‘yicha uzatish, ByVal
–
qiymat
bo‘yicha) ko‘rsatiladi. Agar parametrni oshkor uzatish usuli
ko‘rsatilmasa unda sukut bilan uzatishga murojaat bo‘yicha deb
hisoblanadi.
Misol: faraz qilaylik ikkita protsedura Main va Examples
Sub main()
A=10
B=20
C=30
Call examples(a,b,c)
Call MsgBox(a)
Call MsgBox(b)
Call MsgBox(c)
Sub Example1(x, ByVal, ByRef)
x=x+1
73
y=y+1
z=z+1
Call MsgBox(x)
Call MsgBox(y)
Call MsgBox(z)
End Sub
Dastur odatda ko‘p protsedura va funksiyadan tashkil topadi
va ular bitta yoki bir nechta har xil modullarda joylashishi mum-
kin.
Modullarda loyihalar birlashtiriladi. Bunda bitta loyihada bir
nechta har xil umumiy modul yoki protsedurani
ishlatadigan das-
turlar joylashishi mumkin.
Bitta modulda joylashgan har bir protsedura yagona nomga
ega bo‘lishi kerak; bunda loyihada bir nechta har xil modullar
bo‘lishi mumkin. Agar loyihada bir xil nomli bir nechta protse-
duralar bo‘lsa, unda protsedurani chaqirish uchun komanda
ko‘rinishini quyidagicha yozish mumkin:
< protsedura nomi>
Bunda modul nomi bir necha so‘zdan iborat bo‘lsa, unda no-
mini kvadrat qavsga olib yozish kerak. Masalan, agar modul nomi
< trafik protseduralar> protsedura esa deb nomlansa,
unda protsedura chaqirish komandasi quyidagicha bo‘ladi:
[Grafik protseduralar]. Hisoblash
Boshqa loyihalarda joylashtirilgan protseduralarni ham ish-
latish mumkin. Bunda nomini aniqlashtirish uchun yana bir
bosqich talab etilishi mumkin:
..
.
Do'stlaringiz bilan baham: