BÀI 8:
TH
T C ( SUB) VÀ HÀM ( FUNCTI ON)
H th ng bài c
Hi
Hi
tu
Bi
Bi
Bi
Bi
u v h th ng phân c p d li u mà máy tính x lý
u v file, bi t cách đ c và ghi d li u t file truy c p
nt
t cách s d ng đi u khi n OpenFileDialog
t cách s d ng đi u khi n MonthCalendar
t cách s d ng đi u khi n MenuStrip
t cách s d ng m ng và m ng đ ng
Bài 8: TH T C SUB VÀ TH T C FUNCTION
2
M c tiêu bài h c
Bi t v t ch c ng d ng, khái ni m “chia đ tr ”
Bi t cách s d ng Function và Sub
Bi t cách s d ng tham s Optional
Hi u v ph m vi bi n
Hi u v ép ki u ng m đ nh thu h p và s d ng l p
Convert đ ép ki u t ng minh
Hi u v cách s d ng các tùy ch n c a trình g l i
Bài 8: : TH T C SUB VÀ TH T C FUNCTION
3
T ch c trong
ng d ng
ng d ng đ c phân chia thành nhi u thành ph n nh
h n đ d qu n lý
K thu t này g i là “Chia đ tr ”
K thu t này giúp đ n gi n hóa vi c thi t k , phát tri n
và b o trì ng d ng c v a và l n
L
T
Bài 8: : TH T C SUB VÀ TH T C FUNCTION
L
T
T
4
Th t c
Th t c g m m t t p các dòng l nh dùng đ th c hi n m t tác
v c th . Th t c không tr v giá tr nào
Visual Basic cung c p nhi u th t c có s n cho phép phát tri n
ng d ng m t cách nhanh chóng, d dàng.
Có th t t o cho mình các th t c đ th c hi n công vi c nh t
đ nh và có th dùng l i v sau
Bài 8: TH T C SUB VÀ TH T C FUNCTION
5
Hàm ( Function)
Hàm g m m t t p các dòng l nh dùng đ th c hi n m t tác v
c th . Hàm luôn luôn tr v m t giá tr
Visual Basic cung c p nhi u hàm có s n cho phép phát tri n ng
d ng m t cách nhanh chóng, d dàng, ví d :
T
Mô
Ví
M
M
T
M
M
M
M
T
M
M
M
S
T
M
S
T
V
V
V
Có th t t o cho mình các hàm đ th c hi n công vi c nh t
đ nh và có th dùng l i v sau
Bài 8: TH T C SUB VÀ TH T C FUNCTION
6
Hàm
Hàm tr v giá tr sau khi th c hi n
nh ngh a Hàm g m 3 ph n chính
Tiêu đ
Thân hàm
K t thúc hàm
T
K
hàm
F
E
B
P
(B V
A D
A D
[Thân hàm]
Return
F
Bài 8: TH T C SUB VÀ TH T C FUNCTION
7
Hàm
Tiêu đ
T
D
hàm
F
B
P
K
B V
T
A D
A D
K
Tham s cho phép hàm nh n d li u và thao tác trên nó
Có th có nhi u tham s , các tham s cách nhau b i d u
ph y
Thân hàm
Ch a mã th c hi n các hành đ ng
Thao tác trên tham s c a danh sách tham s và tr v
k t qu
Các tham s ch đ c dùng trong thân hàm
Bài 8: TH T C SUB VÀ TH T C FUNCTION
8
Hàm
Cú pháp khai báo:
[ Public, Private] Function TenSub[ ( ThamSo1,ThamSo2,…)]
As KieuGiaTri
' Các thao tác c a hàm
Return GiaTri
End Function
Public Function() As Integer
‘ Các thao tác
Return GiaTri
End Function
Bài 6: TH T C SUB VÀ TH T C FUNCTION
9
Hàm
nh ngh a Hàm:
Tính di n tích hình ch nh t có 2 c nh là 10, 20
Public Function TinhDienTich() As Double
Dim a As Double = 10
Dim b As Double = 20
Dim s As Double
s= a* b
Return s
End Function
Bài 8: TH T C SUB VÀ TH T C FUNCTION
10
Hàm
nh ngh a Hàm:
Tính di n tích hình ch nh t có 2 c nh là a,b
Public Function TinhDienTich(ByVal a As Integer, ByVal b As
Integer)
Dim a,b,s As Integer
s= a* b
Return s
End Function
Bài 6: TH T C SUB VÀ TH T C FUNCTION
11
Hàm
Cú pháp g i Hàm không có tham s :
G i hàm tính di n tích v i ki u tr v là Double
Dim DT As Double= TinhDienTich()
Cú pháp g i Hàm có tham s :
G i hàm tính di n tích v i ki u tr v là Integer,
2 tham s truy n vào là 10, 20
Dim DT As Integer = TinhDienTich(10,20)
Bài 8: TH T C SUB VÀ TH T C FUNCTION
12
Demo g i hàm
G i hàm b ng cách dùng tên hàm, ti p theo là c p ngo c
đ n ch a đ i s
G
hàm
Sau khi hoàn thành tác v , hàm đ c g i tr l i quy n
đi u khi n cho l nh g i
Chú ý r ng giá tr c a đ i s ph i t ng thích v i ki u
tham s
Bài 6: TH T C SUB VÀ TH T C FUNCTION
13
Th
T
L
hàm
t
th c thi khi g i hàm
Hàm
…..
….. 1
…..
S
….
…. 3
A
…..
…..
2
…..
Khi đi u khi n ch ng trình g p l i g i hàm
Square(sideA), ng d ng t o b n sao cho giá tr c a bi n
sideA và đi u khi n ch ng trình chuy n đ n dòng đ u
tiên c a hàm Square
Bài 8: TH T C SUB VÀ TH T C FUNCTION
14
T
khóa ByVal
T khóa ByVal cho bi t ng d ng s t o giá tr b n sao
c a đ i s và truy n giá tr này vào hàm, th t c.
Hàm, th t c s nh n b n sao đó và l u trong tham s
Khi th c thi hàm và th t c, ng d ng s thao tác trên
tham s này
Giá tr c a đ i s không b thay đ i
Bài 6: TH T C SUB VÀ TH T C FUNCTION
15
T
khóa return
Khi g p t khóa return, giá tr bên ph i return đ
v v trí l i g i hàm.
T
L
hàm
c tr
Hàm
…..
….. 1
…..
S
….
…. 3
…..
….. 2
…..
A
……
……
ng d ng s không th c thi nh ng l nh sau l nh return
Sau khi tr v , tham s ch a b n sao giá tr s b h y
Bài 8: TH T C SUB VÀ TH T C FUNCTION
16
T
S
hàm,
hàm S
Bài 6: TH T C SUB VÀ TH T C FUNCTION
khóa return
hàm.
S
A
17
Th t c (Sub)
Th t c là m t t p mã th c hi n m t tác v c th
nh ng không tr v k t qu
T
S
tên_thu_tuc B V tham_so1 A kieu_tham_so1
T
K
E
S
Bài 8: TH T C SUB VÀ TH T C FUNCTION
18
Th t c
Cú pháp khai báo:
[ Public, Private] Sub TenSub[ ( ThamSo1,ThamSo2,…)]
' Các thao tác c a th t c
End Sub
Public Sub()
‘ Các thao tác
End Sub
Public Sub(ByVal ThamSo1 As Integer)
‘ Các thao tác
End Sub
Bài 8 TH T C SUB VÀ TH T C FUNCTION
19
Th t c
nh ngh a th t c:
In ra màn hình các s t 0 đ n 10
Public Sub PrintNumber()
For Dim i As Integer 0 to 10
Console.WriteLine(i.ToString())
Next
End Sub
In ra màn hình các s t a đ n b
Public Sub PrintNumber(ByVal a As Integer, ByVal b As Integer)
For Dim i As Integer a to b
Console.WriteLine(i.ToString())
Next
End Sub
Bài 8: TH T C SUB VÀ TH T C FUNCTION
20
Th t c
Cú pháp g i th t c không có tham s :
G i th t c in ra màn hình các s t 0 đ n 10
PrintNumber()
Cú pháp g i th t c có tham s :
G i th t c in ra màn hình các s t 10 đ n 20
PrintNumber(10,20)
Bài 8 TH T C SUB VÀ TH T C FUNCTION
21
Tham s Optional
Ch ng trình th ng ph i g i hàm ho c th t c nhi u l n
v i cùng m t giá tr đ i s cho m t tham s đ c bi t
Dùng tham s Optional
Tham s Optional là tham s có giá tr m c đ nh
Có ba quy t c s d ng tham s Optional
Tham s Optional ph i có giá tr m c đ nh
Giá tr m c đ nh ph i là bi u th c không đ i
T t c các tham s xu t hi n sau tham s Optional trong
danh sách tham s đ u là tham s Optional
F
E
O
O
F
T
T
B V
B V
O
A I
A I
B V
A I
A I
G
R
Bài 8: TH T C SUB VÀ TH T C FUNCTION
22
Tham s Optional
tinhTheTich()
Tr v 1, s d ng giá tr m c đ nh cho chi u dài, chi u r ng
và chi u cao
tinhTheTich(10)
Tr v 10, s d ng giá tr m c đ nh cho chi u r ng và chi u
cao
tinhTheTich(10,20)
Tr v 200, s d ng giá tr m c đ nh cho chi u cao
tinhTheTich(10,20,30)
Tr v 6000, không s d ng giá tr m c đ nh
tinhTheTich(,20,30)
Tr v 60, s d ng giá tr m c đ nh cho chi u dài
Trong l i g i hàm và th t c, khi đ i s c a tham s
Optional đ c b qua, trình biên d ch s vi t l i l i g i và
chèn giá tr m c đ nh c a tham s Optional
Bài 8: TH T C SUB VÀ TH T C FUNCTION
23
Ph m vi bi n
Ph m
Bi
tr
Bi
vi module
n đ c khai báo b t đ u t sau t khóa Class và k t thúc
c l nh End Class đ c g i là bi n th c th .
n th c th có ph m vi module
Bi n th c th là bi n đ c khai báo trong l p và ngoài các
ph ng th c
Bi n th c th có th đ c tham chi u t m i th t c trong
l p khai báo bi n đó
Ph m vi th t c
Bi n đ c khai báo bên trong th t c có ph m vi th t c
Bi n có ph m vi th t c không th đ c tham chi u t bên
ngoài th t c mà chúng khai báo
Tham s c a th t c có ph m vi th t c
Bài 8: TH T C SUB VÀ TH T C FUNCTION
24
Ph m vi bi n
Ph m vi kh i l nh
Bi n đ c khai báo trong kh i l nh có ph m vi kh i l nh
B t đ u t v trí bi n đ c khai báo và k t thúc dòng
l nh cu i cùng c a kh i l nh (ví d nh Else ho c End If)
Bi n có ph m vi th t c và bi n có ph m vi kh i l nh
đ c g i là bi n c c b
N u bi n c c b có cùng tên v i bi n th c th , khi truy
c p đ n tên bi n này, ng d ng s truy c p đ n bi n
c cb
Bài 8: TH T C SUB VÀ TH T C FUNCTION
25