Bài giảng môn Tin học đại cương - Chương 9: Định nghĩa thủ tục & sử dụng
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng môn Tin học đại cương - Chương 9: Định nghĩa thủ tục & sử dụng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_mon_tin_hoc_dai_cuong_chuong_9_dinh_nghia_thu_tuc.pdf
Nội dung text: Bài giảng môn Tin học đại cương - Chương 9: Định nghĩa thủ tục & sử dụng
- MÔN TIN HỌC Ch ươ ng 9 ĐỊ NH NGHĨA THỦ TỤC & SỬ DỤNG 9.1 Thủ t ục & t ầm v ực s ử d ụng thủ t ục 9.2 Cú pháp đị nh ngh ĩa hàm. 9.3 Cú pháp đị nh ngh ĩa th ủ t ục 9.4 Gọi th ủ t ục 9.5 Cơ ch ế truy ền tham s ố 9.6 Các th ủ t ục đị nh ngh ĩa s ẵn Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 236
- Nhắc l ại cấu trúc t ổ chức 1 chương trình Một ch ươ ng trình th ườ ng cung c ấp nhi ều ch ức n ăng cho ng ườ i dùng ⇒ Ch ươ ng trình th ườ ng là 1 h ệ th ống ph ức t ạp. Để d ễ qu ản lý và xây dựng ch ươ ng trình, ng ườ i ta th ườ ng chia nó ra nhi ều đơ n v ị nh ỏ h ơn. Hi ện có 2 ph ươ ng pháp chia nh ỏ ch ươ ng trình: ph ươ ng pháp có c ấu trúc: ch ươ ng trình đượ c chia nh ỏ thành nhi ều module ch ức n ăng, mỗi module ch ứa nhi ều điểm nh ập (entry), mỗi điểm nh ập cung c ấp 1 d ịch v ụ (ch ức n ăng) rõ ràng, đơ n gi ản nào đó. Ta g ọi mỗi điểm nh ập là th ủ t ục th ực hi ện ch ức n ăng t ươ ng ứng. ph ươ ng pháp h ướ ng đố i t ượ ng: ch ươ ng trình đượ c chia nh ỏ thành nhi ều đố i t ượ ng, mỗi đố i t ượ ng ch ứa nhi ều điểm nh ập (entry), mỗi điểm nh ập cung c ấp 1 d ịch v ụ (ch ức n ăng) rõ ràng, đơ n gi ản nào đó. Ta g ọi mỗi điểm nh ập là th ủ t ục th ực hi ện ch ức n ăng t ươ ng ứng. Tóm l ại, dù dùng ph ươ ng pháp chia nh ỏ ch ươ ng trình nào thì đơ n v ị ch ức n ăng nh ỏ nh ất mà ng ườ i l ập trình có th ể xây d ựng và dùng (g ọi) lại nhi ều l ần trong ch ươ ng trình là th ủ t ục. Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 237
- 9.1 Phân loại thủ t ục trong VB Nếu ta phân tích ch ươ ng trình theo c ấu trúc thì ch ươ ng trình VB là t ập các standard module, trong mỗi module ta có th ể đị nh ngh ĩa n th ủ t ục khác nhau thu ộc 1 trong 2 d ạng: th ủ t ục - Sub: 1 đoạn l ệnh th ực thi VB để th ực hi ện 1 ch ức n ăng rõ ràng, đơ n gi ản nh ưng không tr ả v ề giá tr ị kèm theo tên th ủ t ục. hàm - Function: 1 đoạn l ệnh th ực thi VB để th ực hi ện 1 ch ức n ăng rõ ràng, đơ n gi ản và tr ả v ề giá tr ị kèm theo tên hàm. Nếu ta phân tích ch ươ ng trình theo h ướ ng đố i t ượ ng thì ch ươ ng trình VB là t ập các form hay class module, trong mỗi module ta có th ể đị nh ngh ĩa n th ủ t ục khác nhau thu ộc 1 trong 3 d ạng: th ủ t ục - Sub: 1 đoạn l ệnh th ực thi VB để th ực hi ện 1 ch ức n ăng rõ ràng, đơ n gi ản nh ưng không tr ả v ề giá tr ị kèm theo tên th ủ t ục. hàm - Function: 1 đoạn l ệnh th ực thi VB để th ực hi ện 1 ch ức n ăng rõ ràng, đơ n gi ản và tr ả v ề giá tr ị kèm theo tên hàm. truy xu ất thu ộc tính - Property: 1 đoạn l ệnh th ực thi VB để đọ c/ghi 1 thu ộc tính t ươ ng ứng c ủa đố i t ượ ng. Có 3 th ủ t ục lo ại này là Get, Set và Let. Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 238
- Tầm vực sử dụng thủ t ục trong VB Trong mỗi standard module, ta có th ể xác đị nh t ầm v ực s ử d ụng c ủa t ừng th ủ tục: cục b ộ trong module: dùng t ừ khóa Private trong l ệnh đị nh ngh ĩa th ủ t ục. toàn c ục trong ch ươ ng trình: dùng t ừ khóa Public trong l ệnh đị nh ngh ĩa th ủ tục. Trong mỗi form hay class module, ta có th ể xác đị nh t ầm v ực s ử d ụng c ủa t ừng th ủ t ục: cục b ộ trong module ( đố i t ượ ng): dùng t ừ khóa Private trong l ệnh đị nh ngh ĩa th ủ t ục. cục b ộ trong Project: dùng t ừ khóa Friend trong l ệnh đị nh ngh ĩa th ủ t ục. công c ộng (ai dùng c ũng đượ c): dùng t ừ khóa Public trong l ệnh đị nh ngh ĩa th ủ t ục. Các th ủ t ục công c ộng c ủa đố i t ượ ng đượ c g ọi là method để phân bi ệt v ới Sub/Function. Về nguyên t ắc, các th ủ t ục Property Get, Set và Let đề u ph ải có t ầm v ực công c ộng (dùng t ừ khóa Public). Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 239
- 9.2 Cú pháp đị nh nghĩa hàm - Function Cú 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 t ừ khóa Public để đị nh ngh ĩa hàm có t ầm v ực toàn c ục, ngh ĩa là bất k ỳ l ệnh nào c ủa ch ươ ng trình đề u có th ể g ọi hàm Public. Dùng t ừ khóa Friend để đị nh ngh ĩa method thu ộc 1 class module nh ưng ch ỉ có t ầm v ực c ục b ộ trong Project, ngh ĩa là ch ỉ có các l ệnh trong cùng Project mới có th ể g ởi thông điệp đế n hàm Friend c ủa đố i tượ ng đó, còn các l ệnh ở ngoài Project thì không th ấy hàm Friend c ủa đố i t ượ ng này. Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 240
- Cú pháp đị nh nghĩa hàm - Function (tt) Dùng t ừ khóa Private để đị nh ngh ĩa hàm có t ầm v ực c ục b ộ trong module, ngh ĩa là ch ỉ có các l ệnh trong cùng module mới có th ể g ọi hàm Private trong module t ươ ng ứng. Dùng t ừ khóa Static để đị nh ngh ĩa các bi ến c ục b ộ trong hàm đề u là Static, ngh ĩa là giá tr ị c ủa chúng v ẫn t ồn t ại qua các l ần g ọi khác nhau đế n hàm này. [statements] là danh sách các l ệnh đị nh ngh ĩa bi ến, h ằng, ki ểu c ục b ộ trong function và các l ệnh th ực thi miêu t ả chính xác ch ức n ăng c ủa hàm. Lệnh gán name = expression cho phép gán giá tr ị tr ả v ề cho l ệnh g ọi hàm. Lệnh Exit Function cho phép tr ả ngay điều khi ển v ề l ệnh g ọi hàm này (thay vì th ực thi ti ếp các l ệnh còn l ại c ủa hàm). Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 241
- Cú pháp đị nh nghĩa hàm - Function (tt) arglist là danh sách các tham s ố hình th ức, mỗi tham s ố đượ c cách nhau b ởi d ấu ',' và đượ c đị nh ngh ĩa theo cú pháp nh ư sau: [Optional ] [ ByVal | ByRef ] [ ParamArray ] varname [( ) ] [ As type ] [=defaultvalue ] Dùng t ừ khóa Optional để khai báo r ằng tham s ố t ươ ng ứng là nhi ệm ý trong lúc g ọi hàm: truy ền hay không c ũng đượ c. Trong tr ườ ng h ợp này ta nên dùng thêm thành ph ần [ = defaultvalue ] để xác đị nh giá tr ị c ần truy ền nhi ệm ý. Dùng t ừ khóa ByRef để khai báo vi ệc truy ền tham s ố b ằng tham kh ảo, đây là ch ế độ truy ền tham s ố nhi ệm ý. Ng ượ c l ại dùng t ừ khóa ByVal để khai báo c ơ ch ế truy ền tham s ố b ằng giá tr ị. Ch ỉ có th ể dùng t ừ khóa ParamArray cho tham s ố cu ối trong danh sách tham s ố, tham s ố này cho phép ta truy ền bao nhiêu tham s ố c ụ th ể c ũng đượ c. Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 242
- Thí dụ đị nh nghĩa hàm Đoạn code sau đị nh ngh ĩa hàm tính n! giai th ừa theo gi ải thu ật đệ qui: Public Function giaithua(ByVal n As Long) As Long If n 1 thì tính theo công th ức n! = n * (n-1)! giaithua = n * giaithua(n - 1) End Function Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 243
- 9.3 Cú pháp đị nh nghĩa thủ t ục - Sub Cú pháp để đị nh ngh ĩa 1 th ủ t ục Sub: [Private | Public | Friend ] [ Static ] Sub name [(arglist )] [statements ] [Exit Sub ] [statements ] End Sub Ý ngh ĩa c ủa các t ừ khóa Public, Private, Friend, Static cũng nh ư các thành ph ần arglist , Exit Sub , statements gi ống y nh ư trong vi ệc đị nh ngh ĩa hàm mà chúng ta đã gi ới thi ệu ở nh ững slide tr ướ c. Sự khác bi ệt gi ữa hàm và th ủ t ục là hàm luôn tr ả v ề giá tr ị k ết h ợp v ới tên hàm, còn th ủ t ục thì không tr ả v ề tr ị k ết h ợp v ới tên th ủ t ục (nh ưng nó v ẫn có th ể tr ả k ết qu ả v ề thông qua các tham s ố truy ền b ằng tham kh ảo). Nếu quan sát k ỹ, ta th ấy các hàm x ử lý s ự ki ện cho các đố i t ượ ng giao di ện đề u là Sub, ch ứ không ph ải là Function, do đó t ừ đây ta dùng đoạn câu "th ủ t ục x ử lý s ự ki ện" thay cho "hàm x ử lý s ự ki ện". Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 244
- Cú pháp đị nh nghĩa method Get thuộc tính đối t ượng Cú pháp để đị nh ngh ĩa 1 method Get: [Public | Private | Friend ] [ Static ] Property Get name [(arglist )] [ As type ] [statements ] [name = expression ] [Exit Property ] [statements ] [name = expression ] End Property Ý ngh ĩa c ủa các t ừ khóa Public, Private, Friend, Static cũng nh ư các thành ph ần arglist , Exit Property , statements, [name = expression ] gi ống y nh ư trong l ệnh đị nh ngh ĩa hàm mà chúng ta đã gi ới thi ệu ở nh ững slide tr ướ c. Method Get cho phép bên ngoài có th ể đọ c giá tr ị c ủa 1 thu ộc tính bên trong đố i t ượ ng nh ưng d ướ i s ự ki ểm soát c ủa đố i t ượ ng đó. Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 245
- Cú pháp đị nh nghĩa method Let thuộc tính đối t ượng Cú pháp để đị nh ngh ĩa 1 method Let: [Public | Private | Friend ] [ Static ] Property Let name ([arglist ,] value ) [statements ] [Exit Property ] [statements ] End Property Ý ngh ĩa c ủa các t ừ khóa Public, Private, Friend, Static cũng nh ư các thành ph ần arglist , Exit Property , statements gi ống y nh ư trong l ệnh đị nh ngh ĩa hàm mà chúng ta đã gi ới thi ệu ở nh ững slide tr ướ c. Method Let cho phép bên ngoài có th ể gán giá tr ị mới cho 1 thu ộc tính bên trong đố i t ượ ng nh ưng d ướ i s ự ki ểm soát c ủa đố i t ượ ng đó. Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 246
- Cú pháp đị nh nghĩa method Set thuộc tính đối t ượng Cú pháp để đị nh ngh ĩa 1 method Set: [Public | Private | Friend ] [ Static ] Property Set name ([arglist ,] reference ) [statements ] [Exit Property ] [statements ] End Property ý ngh ĩa c ủa các t ừ khóa Public, Private, Friend, Static cũng nh ư các thành ph ần arglist , Exit Property , statements gi ống y nh ư trong l ệnh đị nh ngh ĩa hàm mà chúng ta đã gi ới thi ệu ở nh ững slide tr ướ c. Method Set cho phép bên ngoài có th ể gán tham kh ảo cho 1 thu ộc tính bên trong đố i t ượ ng nh ưng d ướ i s ự ki ểm soát c ủa đố i t ượ ng đó. Sự khác bi ệt gi ữa method Let và Set là Let gán giá tr ị thu ộc 1 ki ểu c ổ điển, còn Set gán tham kh ảo vào 1 thu ộc tính có ki ểu là class đố i t ượ ng. Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 247
- 9.4 Gọi thủ t ục Sau khi th ủ t ục đã đượ c đị nh ngh ĩa, ta có th ể s ử d ụng (g ọi) nó nh ờ l ệnh gọi th ủ t ục. Cú pháp g ọi th ủ t ục đã đượ c miêu t ả trong slide 216 (ch ươ ng 8). Do Function là d ạng th ủ t ục có tr ả v ề k ết qu ả k ết h ợp v ới tên hàm nên l ệnh g ọi hàm th ườ ng đượ c dùng trong 1 bi ểu th ức (l ệnh gọi hàm là bi ểu th ức c ơ b ản để c ấu thành bi ểu th ức ph ức t ạp h ơn). Thí d ụ, gi ả s ử ta đã đị nh ngh ĩa hàm tính n! tên là giaithua(n) thì ta có th ể gọi nó nh ư sau: n = 8 MsgBox (n & "! = " & giaithua(n)) Thí d ụ, gi ả s ử ta đã đị nh ngh ĩa th ủ t ục hoán v ị 2 s ố nguyên tên là Hoanvi(a,b) thì ta có th ể g ọi nó nh ư sau: n = 8 m = 4 Call Hoanvi (n,m) ' ho ặc Hoanvi n,m ' Lúc này n = 8 và m = 4 Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 248
- 9.5 Cơ chế truy ền tham s ố Các tham s ố trong l ệnh đị nh ngh ĩa th ủ t ục đượ c g ọi là tham s ố hình th ức. Các tham s ố (th ườ ng là bi ểu th ức) trong l ệnh g ọi th ủ t ục đượ c g ọi là tham s ố th ực. Nguyên t ắc g ọi th ủ t ục là: số l ượ ng các tham s ố th ực ph ải b ằng s ố l ượ ng các tham s ố hình th ức. và ki ểu c ủa t ừng tham s ố th ực trong l ệnh g ọi th ủ t ục ph ải trùng (hay tươ ng thích) v ới ki ểu c ủa tham s ố hình th ức t ươ ng ứng trong l ệnh đị nh ngh ĩa th ủ t ục. Lệnh g ọi th ủ t ục s ẽ truy ền tham s ố th ực trong l ệnh g ọi cho th ủ t ục r ồi kh ởi độ ng th ủ t ục ch ạy để x ử lý tham s ố th ực v ừa nh ận đượ c. Theo th ời gian, th ủ t ục s ẽ đượ c g ọi nhi ều l ần, mỗi l ần v ới danh sách tham s ố th ực cụ th ể. Có 2 c ơ ch ế truy ền tham s ố cho th ủ t ục t ại th ời điểm g ọi th ủ t ục: truy ền giá tr ị (n ội dung c ủa tham s ố) hay truy ền tham kh ảo ( đị a ch ỉ - vị trí b ộ nh ớ c ủa tham s ố). Mỗi c ơ ch ế truy ền tham s ố có tính ch ất riêng mà ta sẽ trình bày k ỹ trong các slide k ế ti ếp: Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 249
- Cơ chế truy ền tham s ố (tt) Dùng t ừ khóa ByVal kết h ợp v ới tham s ố hình th ức để khai báo nó đượ c truy ền b ằng giá tr ị. Khi g ọi th ủ t ục, giá tr ị c ủa tham s ố th ực sẽ đượ c truy ền cho th ủ t ục c ần th ực thi. Nh ờ cách truy ền tham s ố này mà th ủ t ục c ần th ực thi s ẽ không th ể truy xu ất d ữ li ệu c ủa th ủ t ục g ọi. Tuy nhiên cách truy ền b ằng giá tr ị ch ỉ thích h ợp cho các tham s ố IN (truy ền từ ph ần t ử g ọi đế n th ủ t ục c ần g ọi) có ki ểu vô h ướ ng (scalar). Để truy ền hi ệu qu ả tham s ố có n ội dung chi ếm nhi ều ô nh ớ hay để nh ận kết qu ả ta s ẽ ph ải dùng c ơ ch ế truy ền b ằng tham kh ảo ( đị a ch ỉ). Để đị nh ngh ĩa tham s ố hình th ức đượ c truy ền b ằng tham kh ảo, ta dùng t ừ khóa ByRef kết h ợp v ới tham s ố hình th ức đó. Khi g ọi th ủ t ục, đị a ch ỉ c ủa tham s ố th ực sẽ đượ c truy ền cho th ủ t ục c ần th ực thi. V ới đặ c điểm này, tham s ố th ực ph ải là bi ến ch ứ không th ể là bi ểu th ức. Lưu ý r ằng n ếu ta không dùng t ừ khóa ByRef hay ByVal k ết h ợp v ới tham s ố hình th ức thì default nó đượ c truy ền b ằng tham kh ảo. Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 250
- Cơ chế truy ền tham s ố (tt) // version truy ền b ằng giá tr ị Private Sub Hoanvi1(ByVal x As Integer, ByVal y As Integer) Dim tmp As Integer tmp = x x = y y = tmp End Sub // version truy ền b ằng tham kh ảo Private Sub Hoanvi2(ByRef x As Integer, ByRef y As Integer) Dim tmp As Integer tmp = x x = y y = tmp End Sub // version truy ền b ằng tham kh ảo Private Sub Hoanvi3(x As Integer, y As Integer) Dim tmp As Integer tmp = x x = y y = tmp End Sub Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 251
- Cơ chế truy ền tham s ố (tt) Hãy kh ảo sát k ỹ 3 th ủ t ục hoán v ị d ữ li ệu trong slide tr ướ c. Bây gi ờ hãy chú ý t ới vi ệc s ử d ụng chúng và k ết qu ả đạ t đượ c: Dim intN As Integer Dim intM As Integer intN = 4 intM = 8 Call Hoanvi1(intN, intM) ' k ết qu ả intN = 4 và intM = 8 (không đổ i) Call Hoanvi2(intN, intM) ' k ết qu ả intN = 8 và intM = 4 ( đã hoán v ị đượ c) Call Hoanvi3(intN, intM) ' k ết qu ả intN = 4 và intM = 8 ( đã hoán v ị đượ c) Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 252
- 9.6 Các thủ t ục đị nh s ẵn c ủa VB Về nguyên t ắc, ng ườ i l ập trình ph ải đị nh ngh ĩa th ủ t ục (Sub, Function, Property) tr ướ c khi có th ể s ử d ụng l ại (g ọi) nó. Tuy nhiên, VB đã đị nh ngh ĩa r ất nhi ều th ủ t ục d ạng Sub, Function để th ực hi ện các ch ức n ăng rất ph ổ bi ến, ng ườ i l ập trình có th ể g ọi chúng b ất c ứ khi nào c ần thi ết. Ta g ọi các th ủ t ục này là các th ủ t ục đị nh s ẵn c ủa VB. Nếu ch ưa đòi h ỏi độ chính xác cao, ng ườ i ta còn g ọi các th ủ t ục đị nh sẵn c ủa VB là các l ệnh th ực thi. Sau đây ta chúng ta hãy làm quen v ới 1 s ố th ủ t ục th ườ ng dùng. Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 253
- Hàm hi ển thị form thông báo Cú pháp MsgBox( prompt [, buttons] [, title] [, helpfile, context] ) trong đó: prompt là bi ểu th ức chu ỗi miêu t ả thông báo c ần hi ển th ị. buttons là bi ểu th ức s ố miêu t ả s ố l ượ ng và lo ại button đượ c hi ển th ị trong thông báo, nhi ệm ý là 0 ngh ĩa là ch ỉ có button Ok đượ c hi ển th ị. title là bi ểu th ức chu ỗi miêu t ả title bar c ủa form thông báo. helpfile là bi ểu th ức chu ỗi miêu t ả đườ ng d ẫn file Help đượ c dùng với form thông báo (theo c ơ ch ế context-sensitive Help). context là bi ểu th ức s ố miêu t ả ch ỉ s ố c ủa "topic" c ần dùng trong file Help Th ườ ng để g ọi d ễ dàng hàm MsgBox, ta ch ỉ c ần miêu t ả tham s ố prompt bắt bu ộc. Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 254
- Hàm hi ển thị form nhập li ệu (dạng chuỗi) Cú pháp InputBox ( prompt [, title ] [, default ] [, xpos ] [, ypos ] [, helpfile ,context ]) trong đó: prompt, title, helpfile, context là các tham s ố v ới ý ngh ĩa y nh ư trong hàm MsgBox. xpos, ypos là bi ểu th ức s ố miêu t ả t ọa độ (x,y) c ủa điểm trên trái c ủa form thông báo trong màn hình. N ếu không đượ c khai báo, form thông báo s ẽ đượ c ch ỉnh v ị trí t ự độ ng (gi ữa màn hình). default là bi ểu th ức chu ỗi miêu t ả giá tr ị default c ủa chu ỗi đượ c nh ập. Th ườ ng để g ọi d ễ dàng hàm InputBox, ta ch ỉ c ần miêu t ả tham s ố prompt bắt bu ộc. Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 255
- Hàm chuyển đổi ki ểu VB cung c ấp các hàm sau để ta có th ể chuy ển giá tr ị t ừ ki ểu nào đó v ề ki ểu xác đị nh: CBool ( expression ): chuy ển tr ị c ủa bi ểu th ức v ề ki ểu Boolean CByte ( expression ): chuy ển tr ị c ủa bi ểu th ức v ề ki ểu Byte CCur ( expression ): chuy ển tr ị c ủa bi ểu th ức v ề ki ểu Currency CDate ( expression ): chuy ển tr ị c ủa bi ểu th ức v ề ki ểu Date CDbl ( expression ): chuy ển tr ị c ủa bi ểu th ức v ề ki ểu Double CDec ( expression ): chuy ển tr ị c ủa bi ểu th ức v ề ki ểu Decimal CInt ( expression ): chuy ển tr ị c ủa bi ểu th ức v ề ki ểu Integer CLng ( expression ): chuy ển tr ị c ủa bi ểu th ức v ề ki ểu Long CSng ( expression ): chuy ển tr ị c ủa bi ểu th ức v ề ki ểu Single CStr ( expression ): chuy ển tr ị c ủa bi ểu th ức v ề ki ểu String CVar ( expression ): chuy ển tr ị c ủa bi ểu th ức v ề ki ểu Variant Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 256
- Các hàm thư vi ện liên k ết động Trong code VB, ngoài vi ệc g ọi các th ủ t ục đượ c đị nh ngh ĩa trong Project và các th ủ t ục đị nh s ẵn, ng ườ i l ập trình còn có th ể g ọi các hàm trong các th ư vi ện liên kết độ ng. 1 th ư vi ện liên k ết độ ng có d ạng *.dll th ườ ng đượ c xây d ựng b ằng ngôn ng ữ VC++ và ch ứa 1 danh sách các hàm d ịch v ụ. Khi ch ươ ng trình VB g ọi 1 hàm trong file th ư vi ện DLL, file đượ c n ạp vào b ộ nh ớ và hàm đượ c liên k ết vào vùng nh ớ c ủa ch ươ ng trình để ch ươ ng trình có th ể g ọi đượ c hàm c ần g ọi. Các hàm th ư vi ện DLL đượ c s ử d ụng chung cho mọi ph ần mềm đang ch ạy, ngh ĩa là ch ỉ có 1 b ản (copy) c ủa hàm th ư vi ện DLL trong b ộ nh ớ máy tính để ph ục v ụ cho mọi ứng d ụng g ọi nó. Ta có th ể coi Windows nh ư 1 th ư vi ện ph ần mềm DLL l ớn, th ư vi ện này cung cấp r ất nhi ều hàm d ịch v ụ khác nhau, ng ườ i ta g ọi các hàm này là các hàm API (Application Programming Interface). Ch ươ ng trình VB có th ể g ọi b ất k ỳ hàm nào trong th ư vi ện này theo c ơ ch ế liên k ết độ ng nh ư đã trình bày ở trên. Tr ướ c khi 1 hàm DLL đượ c dùng trong module VB nào đó, ta c ần khai báo đặ c tả hàm DLL này nh ờ l ệnh Declare của VB v ới cú pháp đượ c trình bày trong slide 153 (ch ươ ng 6). Môn: Tin h ọc Khoa Công ngh ệ Thông tin Ch ươ ng 9: Đị nh ngh ĩa th ủ t ục & s ử d ụng Tr ườ ng ĐH Bách Khoa Tp.HCM Slide 257