Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Tin hc
Slide 235
Sau khi đã định nghĩa thtc, ta có thdùng (gi) nó. Thtc ch
được thi hành khi người ta gi nó bng lnh gi thtc. Cú pháp ca
lnh gi như sau :
[Call] name [arglist]
d: gis ta đã định nghĩa (viết) 1 thtc sau đây :
Private Sub Update_Display(d As Byte)
cho phép hiu chnh giá tr Display sau khi người dùng n thêm ký
s d. Như vy khi người dùng n thêm ký s5, ta sthc hin gi th
tc như sau :
Call Update_Display (5)
hay : Update_Display (5)
Lưu ý : Trong trường hp gi thtc không có bt ktham snào ta nên
dùng thêm tkhóa "Call' để chương trình trong sáng, d đọc.
Chương 8 : Các lnh thc thi VB
Lnh gi thtc (tt)
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Tin hc
Slide 236
MÔN TIN HC
Chương 9
ĐỊNH NGHĨA THTC & SDNG
Chương 9 : Định nghĩathtc& sdng
9.1 Thtc & tm vc sdng thtc
9.2 Cú pháp định nghĩa hàm.
9.3 Cú pháp định nghĩa thtc
9.4 Gi thtc
9.5 Cơ chếtruyn tham s
9.6 Các thtc định nghĩa sn
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Tin hc
Slide 237
Nhclicutrúctchc1 chương trình
Mtchương trình thường cung cp nhiuchcnăng cho người dùng
Chương trình thường 1 hthng phctp. Để dqunlývàxâydng
chương trình, ngườitathường chia ra nhiuđơnvnhhơn. Hincó2
phương pháp chia nhchương trình :
phương pháp cutrúc: chương trình đượcchianhthành nhiu
module chcnăng, mi module cha nhiuđimnhp (entry), mi
đimnhp cung cp1 dch v(chcnăng) rõ ràng, đơngin nào đó.
Ta gimiđimnhplàthtcthchinchcnăng tương ng.
phương pháp hướng đốitượng : chương trình đượcchianhthành
nhiuđốitượng, miđốitượng cha nhiuđimnhp (entry), mi
đimnhp cung cp1 dch v(chcnăng) rõ ràng, đơngin nào đó.
Ta gimiđimnhplàthtcthchinchcnăng tương ng.
Tóm li, dù dùng phương pháp chia nhchương trình nào thì đơnvchc
năng nhnhtmàngườilptrìnhcóthxây dng dùng (gi) li nhiu
ln trong chương trình thtc.
Chương 9 : Định nghĩathtc& sdng
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Tin hc
Slide 238
9.1 Phân loithtctrongVB
Nếutaphântíchchương trình theo cutrúcthìchương trình VB là tpcác
standard module, trong mi module ta thểđnh nghĩa n thtc khác nhau
thuc 1 trong 2 dng :
thtc-Sub: 1 đonlnh thc thi VB để thchin1 chcnăng ràng,
đơnginnhưng không trvgiá trkèm theo tên thtc.
hàm - Function : 1 đonlnh thc thi VB để thchin1 chcnăng ràng,
đơnginvàtrvgiá trkèm theo tên hàm.
Nếutaphântíchchương trình theo hướng đốitượng thì chương trình VB là tp
các form hay class module, trong mi module ta thểđnh nghĩan thtc
khác nhau thuc 1 trong 3 dng :
thtc-Sub: 1 đonlnh thc thi VB để thchin1 chcnăng ràng,
đơnginnhưng không trvgiá trkèm theo tên thtc.
hàm - Function : 1 đonlnh thc thi VB để thchin1 chcnăng ràng,
đơnginvàtrvgiá trkèm theo tên hàm.
truy xutthuc tính - Property : 1 đonlnh thc thi VB để đọc/ghi 1 thuc
tính tương ng cađốitượng. Có 3 thtcloi này Get, Set và Let.
Chương 9 : Định nghĩathtc& sdng
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Tin hc
Slide 239
Tmvcsdng thtc trong VB
Trong mi standard module, ta thxác định tmvcsdng catng th
tc:
ccbtrong module : dùng tkhóa Private trong lnh định nghĩathtc.
toàn cc trong chương trình : dùng tkhóa Public trong lnh định nghĩath
tc.
Trong mi form hay class module, ta thxác định tmvcsdng catng
thtc:
ccbtrong module (đốitượng) : dùng tkhóa Private trong lnh định nghĩa
thtc.
ccbtrong Project : dùng tkhóa Friend trong lnh định nghĩathtc.
công cng (ai dùng cũng được) : dùng tkhóa Public trong lnh định nghĩa
thtc. Các thtccôngcng cađốitượng đượcgi method để phân
bitvi Sub/Function.
Vnguyên tc, các thtc Property Get, Set và Let đềuphicótmvc
công cng (dùng tkhóa Public).
Chương 9 : Định nghĩathtc& sdng
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Tin hc
Slide 240
9.2 Cú pháp định nghĩa hàm - Function
pháp để định nghĩa 1 hàm :
[Public | Private | Friend] [Static] Function name [(arglist)] [As type]
[statements]
[name =expression]
[Exit Function]
[statements]
[name =expression]
End Function
Dùng tkhóa Public để định nghĩa hàm tmvc toàn cc, nghĩalà
btklnh nào cachương trình đềucóthgi hàm Public.
Dùng tkhóa Friend để định nghĩa method thuc 1 class module nhưng
ch tmvcccbtrong Project, nghĩalàch các lnh trong cùng
Project micóthgi thông đipđến hàm Friend cađốitượng đó, còn
các lnh ngoài Project thì không thy hàm Friend cađốitượng này.
Chương 9 : Định nghĩathtc& sdng
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Tin hc
Slide 241
pháp định nghĩa hàm - Function (tt)
Dùng tkhóa Private để định nghĩa hàm tmvcccbtrong
module, nghĩalàch các lnh trong cùng module micóthgi hàm
Private trong module tương ng.
Dùng tkhóa Static để định nghĩa các biếnccbtrong hàm đềulà
Static, nghĩalàgiátrca chúng vntnti qua các lngi khác nhau
đếnhàmnày.
[statements] danh sách các lnh định nghĩabiến, hng, kiuccb
trong function và các lnh thc thi miêu tchính xác chcnăng ca
hàm.
Lnh gán name = expression cho phép gán giá trtrvcho lnh gi
hàm.
Lnh Exit Function cho phép trngay điukhinvlnh gi hàm này
(thay thcthitiếpcáclnh còn lica hàm).
Chương 9 : Định nghĩathtc& sdng
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Tin hc
Slide 242
pháp định nghĩa hàm - Function (tt)
arglist danh sách các tham shình thc, mi tham s đượccách
nhau bidu ',' và đượcđịnh nghĩa theo pháp nhưsau :
[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type]
[=defaultvalue]
Dùng tkhóa Optional để khai báo rng tham stương ng nhi
trong lúc gi hàm : truyn hay không cũng được. Trong trường hp này
ta nên dùng thêm thành phn[=defaultvalue] để xác định giá trcn
truyn nhi.
Dùng tkhóa ByRef để khai báo victruyn tham sbng tham kho,
đây chếđtruynthamsnhi. Ngượcli dùng tkhóa ByVal để
khai báo cơchếtruyn tham sbng giá tr.
Ch thdùng tkhóa ParamArray cho tham scui trong danh sách
tham s, tham snày cho phép ta truyn bao nhiêu tham scthcũng
được.
Chương 9 : Định nghĩathtc& sdng
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Tin hc
Slide 243
Thí dụđnh nghĩahàm
Đon code sau định nghĩa hàm tính n! giai tha theo giithutđệ qui :
Public Function giaithua(ByVal n As Long) As Long
If n <= 0 Then ' nếun <=0 thìtrv-1
giaithua = -1
Exit Function
End If
If n = 1 Then ' nếun = 1 thìtrvkếtqu 1
giaithua = 1
Exit Function
End If
' Nếu n > 1 thì tính theo công thc n! = n * (n-1)!
giaithua = n * giaithua(n - 1)
End Function
Chương 9 : Định nghĩathtc& sdng
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Tin hc
Slide 244
9.3 Cú pháp định nghĩathtc-Sub
pháp để định nghĩa 1 thtc Sub :
[Private | Public | Friend] [Static] Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub
Ý nghĩacacáctkhóa Public, Private, Friend, Static cũng nhưcác
thành phnarglist, Exit Sub, statements ging y nhưtrong vicđịnh
nghĩa hàm chúng ta đãgiithiunhng slide trước.
Skhác bitgia hàm thtc hàm luôn trvgiá trkếthpvi
tên hàm, còn thtc thì không trvtrkếthpvitênthtc(nhưng
vncóthtrkếtquvthông qua các tham struynbng tham
kho).
Nếu quan sát k, ta thy các hàm x skinchocácđốitượng giao
dinđềulàSub, chkhông phi Function, do đótừđây ta dùng đon
câu "thtcx skin" thay cho "hàm x skin".
Chương 9 : Định nghĩathtc& sdng