Tin học - Chương 8: Các lệnh thực thi VB

pdf 14 trang vanle 2410
Bạn đang xem tài liệu "Tin học - Chương 8: Các lệnh thực thi VB", để 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:

  • pdftin_hoc_chuong_8_cac_lenh_thuc_thi_vb.pdf

Nội dung text: Tin học - Chương 8: Các lệnh thực thi VB

  1. MÔN TIN HỌC Chương 8 CÁC LỆNH THỰC THI VB 8.1 Tổng quát về ngôn ngữ VB 8.2 Các lệnh gán. 8.3 Các lệnh kiểm tra điều kiện & rẽ nhánh 8.4 Các lệnh lặp 8.5 Vấn đề lồng nhau giữa các lệnh 8.6 Thoát đột ngột khỏi khỏi cấp điều khiển 8.7 Lệnh gọi hàm/thủ tục Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 209 8.1 Tổng quát về các lệnh thực thi VB ‰ Ta đã biết giải thuật để giải quyết 1 vấn đề nào đólàtrình tự các công việc nhỏ hơn, nếu ta thực hiện đúng trình tự các công việc nhỏ hơn này thì sẽ giải quyết được vấn đề lớn. ‰ VB (hay ngôn ngữ lập trình khác) cung cấp 1 tập các lệnh thực thi, mỗi lệnh thực thi được dùng để miêu tả 1 công việc nhỏ trong 1 giải thuật với ý tưởng chung như sau : ƒ Nếu tồn tại lệnh thực thi miêu tả được công việc nhỏ của giải thuật thì ta dùng lệnh thực thi này. ƒ Nếu công việc nhỏ vẫn còn quá phức tạp và không có lệnh thực thi nào miêu tả được thì ta dùng lệnh gọi thủ tục (Function, Sub, Property) trong đóthủ tục là trình tự các lệnh thực hiện công việc nhỏ này ‰ Hầu hết các lệnh thực thi có chứa biểu thức và dùng kết quả của biểu thức này để quyết định công việc kế tiếp cần được thực hiện ⇒ ta thường gọi các lệnh thực thi là các cấu trúc điều khiển. Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 210 105
  2. Tổng quát về các lệnh thực thi VB (tt) ‰ Để dễ học, dễ nhớ và dễ dùng, VB (cũng như các ngôn ngữ khác) chỉ cung cấp 1 số lượng rất nhỏ các lệnh thực thi : ƒ Nhóm lệnh không điều khiển : o Lệnh gán dữ liệu vào 1 biến. o Lệnh gán tham khảo đến đối tượng vào 1 biến tham khảo. ƒ Nhóm lệnh tạo quyết định : o Lệnh kiểm tra điều kiện luận lý If Then Else o Lệnh kiểm tra điều kiện số học Select Case ƒ Nhóm lệnh lặp : o Lệnh lặp Do Loop o Lệnh lặp For Next o Lệnh lặp For Each Next ƒ Nhóm lệnh gọi thủ tục : o Lệnh gọi thủ tục o Lệnh thoát khỏi cấu trúc điều khiển Exit Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 211 8.2 Lệnh gán dữ liệu ‰ Lệnh được dùng nhiều nhất trong 1 chương trình là lệnh gán giá trị dữ liệu vào 1 vùng nhớ để lưu trữ lại dữ liệu này hầu sử dụng lại nó sau đó. Chúng ta đã thấy lệnh này nhiều lần trong các chương trước, bây giờ chúng ta nói rõ hơn về nó. Cú pháp : lvar = expr ƒ biểu thức bên phải sẽ được tính để tạo ra kết quả (1 giá trị cụ thể thuộc 1 kiểu cụ thể), giá trị này sẽ được gán vào ô nhớ do lvar qui định. Trước khi gán, VB sẽ kiểm tra kiểu của 2 phần tử (qui tắc kiểm tra sẽ được trình bày sau). ƒ lvar thường là 1 biến dữ liệu cơ bản, nhưng có thể đệ qui theo qui tắc : o nếu lvar là biến dãy thì 1 phần tử dãy có thể là lvar. o nếu lvar là biến dữ liệu người dùng thì 1 field của nó có thể là lvar. o nếu lvar là biến đối tượng thì 1 thuộc tính của đối tượng có thể là lvar. Ví dụ : dblDispValue = dblDispValue + intNegative * d * (10 ^ -bytPosDigit) Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 212 106
  3. Lệnh gán tham khảo đến đối tượng ‰ Như đã được trình bày trong chương 5, biến đối tượng (có kiểu là Object hay tên class module nào đó) chỉ chứa tham khảo đến đối tượng chứ không chứa trực tiếp đối tượng. Khi mới định nghĩa, những biến này chưa tham khảo đến đối tượng cụ thể nào, do đó trước khi dùng chúng, ta phải gán tham khảo của đối tượng cụ thể vào biến. Cú pháp : Set lvar = expr ƒ biểu thức bên phải sẽ được tính để tạo ra kết quả là 1 tham khảo đến đối tượng, tham khảo này sẽ được gán vào ô nhớ do lvar qui định. Trước khi gán, VB sẽ kiểm tra kiểu của 2 phần tử (qui tắc kiểm tra sẽ được trình bày sau). ƒ lvar thường là 1 biến đối tượng cơ bản, nhưng có thể đệ qui theo qui tắc : o nếu lvar là biến dãy thì 1 phần tử dãy có thể là lvar. o nếu lvar là biến dữ liệu người dùng thì 1 field của nó có thể là lvar. o nếu lvar là biến đối tượng thì 1 thuộc tính của đối tượng có thể là lvar. Ví dụ : Set objClipbd = New Clipboard Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 213 8.3 Lệnh kiểmtrađiềukiệnluậnlýIF ‰ Cho phép dựavàokếtquả luận lý (tính đượctừ 1 biểuthứcluậnlý) để quyết định thi hành 1 trong 2 nhánh lệnh. Sau khi thựchiện 1 trong 2 nhánh lệnh, chương trình sẽ tiếptục thi hành lệnh ngay sau lệnh IF. Có nhiềucúpháp khác nhau : Cú pháp 1a : If condition Then Statement1 [Else Statement2 ] ƒ condition là 1 biểuthứcluậnlýmiêutảđiềukiệncầnkiểmtra, nócókết quả True/False. ƒ Statement1, Statement2 là lệnh thực thi VB bấtkỳ. ƒ nếukếtquả là True thì thi hành Statement1. ƒ nếukếtquả là False và có dùng Else thì thi hành Statement2. Ví dụ : If blnThaybenh Then MsgBox("Thầybệnh. Sinh viên về nghỉ") Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thựcthiVB Trường ĐH Bách Khoa Tp.HCM Slide 214 107
  4. Lệnh kiểm tra điều kiện luận lý IF (tt) Cú pháp 2 : If condition Then [Statement]+ End If ƒ condition là 1 biểu thức luận lý miêu tả điều kiện cần kiểm tra, nó có kết quả True/False. ƒ [Statement]+ là danh sách các lệnh thực thi VB bất kỳ. ƒ nếu kết quả là True thì thi hành các lệnh [Statement]+, nếu kết quả là False thi thôi. Ví dụ : If del >=0 Then x1 = (-b-sqr(del))/(2*a) x2 = (-b+sqr(del))/(2*a) MsgBox("x1= " & x1 & " ,x2= " & x2) End If Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 215 Lệnh kiểm tra điều kiện luận lý IF (tt) Cú pháp 3 : If condition Then [Statement1]+ Else [Statement2]+ End If ƒ condition là 1 biểu thức luận lý miêu tả điều kiện cần kiểm tra, nó có kết quả True/False. ƒ [Statement1]+, [Statement2]+ là danh sách các lệnh thực thi VB bất kỳ. ƒ nếu kết quả là True thì thi hành các lệnh [Statement1]+, nếu kết quả là False thì thi hành các lệnh [Statement2]+. Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 216 108
  5. Lệnh kiểm tra điều kiện luận lý IF (tt) Ví dụ : If del >=0 Then x1 = (-b-sqr(del))/(2*a) x2 = (-b+sqr(del))/(2*a) MsgBox("x1= " & x1 & " ,x2= " & x2) Else MsgBox("Phương trình vô nghiệm") End If Ví dụ : hiệu chỉnh trị phần tử Display khi người dùng nhập thêm ký số d If (blnFpoint) Then ' phần lẻ bytPosDigit = bytPosDigit + 1 dblDispValue = dblDispValue + intPosNeg * d * (10 ^ -bytPosDigit) Else ' phần nguyên dblDispValue = dblDispValue * 10 + intPosNeg * d End If Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 217 Lệnh kiểmtrađiềukiệnsố học Select Cú pháp : Select Case condition Case expr1 [Statement1]+ Case expr2 [Statement2]+ Case Else [Statementn]+ End Select ƒ condition là 1 biểuthứcsố họcmiêutảđiềukiệncầnkiểm tra, nó có giá trị số. ƒ [Statement1]+, [Statement2]+ là danh sách các lệnh thực thi VB bấtkỳ. ƒ tùy giá trị của điềukiện trùng với nhánh Case nào mà các lệnh VB trong nhánh đó được thi hành, sau đó VB sẽ thi hành lệnh ngay sau lệnh Select. Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thựcthiVB Trường ĐH Bách Khoa Tp.HCM Slide 218 109
  6. Lệnh kiểm tra điều kiện số học Select (tt) Thí dụ sau là lệnh Select phục vụ việc thực hiện 1 nút lệnh trong trình MiniCalculator mà ta sẽ thực hành : Select Case bytOperationId Case IDC_ADD ' phép cộng dblDispValue = dblOldValue + dblDispValue txtDisplay.Text = Str(dblDispValue) Case IDC_SUB ' phép trừ dblDispValue = dblOldValue - dblDispValue txtDisplay.Text = Str(dblDispValue) Case IDC_MUL ' phép nhân dblDispValue = dblOldValue * dblDispValue txtDisplay.Text = Str(dblDispValue) Case IDC_DIV ' phép chia dblDispValue = dblOldValue / dblDispValue txtDisplay.Text = Str(dblDispValue) End Select Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 219 Lệnh kiểm tra điều kiện số học On GoSub VB còn cung cấp 1 lệnh khác để kiểm tra điều kiện số học, nhưng yếu hơn lệnh Select, đólàlệnh On GoSub (thực ra đây là lệnh của ngôn ngữ Basic nguyên thủy, Microsoft thấy chưa trong sáng nên mới cung cấp thêm lệnh Select). Cú pháp như sau : On condition GoSub label1, label2, label3, ƒ condition là 1 biểu thức số học và nên có giá trị từ 1 tới n, trong đón làsố lượng nhãn lệnh được liệt kê sau từ khóa GoSub. ƒ nếu giá trị của condition là i thì máy sẽ gọi 'subroutine' bắt đầu từ lệnh có nhãn là labeli. ƒ 'subroutine' là 1 danh sách gồm nhiều lệnh để thực hiện 1 công việc nào đó (có thể lớn, có thể nhỏ) với đặc điểm lệnh cuối trong danh sách là lệnh Return để trả điều khiển về lệnh gọi GoSub. ƒ Để xác định được lệnh cần nhảy đến, VB cho phép dùng 1 nhãn gợi nhớ (danh hiệu) hay 1 nhãn số (số) kết hợp với lệnh cần tham khảo (đừng lạm dụng tính chất này để đặt nhãn cho mọi lệnh trong chương trình). Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 220 110
  7. Lệnh kiểm tra điều kiện số học On GoSub (tt) Đoạn code sau có công dụng như slide thí dụ dùng lệnh Select case (nếu IDC_ADD = 1, IDC_SUB = 2, IDC_MUL = 3, IDC_DIV = 4) : On bytOperationId GoSub LblAdd, LblSub, LblMul, LblDiv LblAdd: dblDispValue = dblOldValue + dblDispValue txtDisplay.Text = Str(dblDispValue) return ' trả đìều khiển về lệnh GoSub LblSub: dblDispValue = dblOldValue - dblDispValue txtDisplay.Text = Str(dblDispValue) return ' trả đìều khiển về lệnh GoSub LblMul: dblDispValue = dblOldValue * dblDispValue txtDisplay.Text = Str(dblDispValue) return ' trả đìều khiển về lệnh GoSub LblDiv: dblDispValue = dblOldValue / dblDispValue txtDisplay.Text = Str(dblDispValue) return ' trả đìều khiển về lệnh GoSub Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 221 Lệnh kiểm tra điều kiện số học On GoTo 1 biến thể khác của On GoSub là On Goto, ở đây điều khiển sẽ không trả lại lệnh On Goto nữa. Đoạn code sau có công dụng như slide trước : On bytOperationId GoTo LblAdd, LblSub, LblMul, LblDiv Continue: LblAdd: dblDispValue = dblOldValue + dblDispValue txtDisplay.Text = Str(dblDispValue) Goto Continue ' nhảy không điều kiện về nhãn Continue LblSub: dblDispValue = dblOldValue - dblDispValue txtDisplay.Text = Str(dblDispValue) Goto Continue LblMul: dblDispValue = dblOldValue * dblDispValue txtDisplay.Text = Str(dblDispValue) Goto Continue LblDiv: dblDispValue = dblOldValue / dblDispValue txtDisplay.Text = Str(dblDispValue) Goto Continue Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 222 111
  8. 8.4 Lệnh lặp Do Loop Cú pháp 1 : Do While condition [Statement]+ Loop ƒ condition là 1 biểu thức luận lý miêu tả điều kiện cần kiểm tra, nó có kết quả True/False. ƒ [Statement]+ là danh sách các lệnh thực thi VB bất kỳ. ƒ tính giá trị condition, nếu kết quả là True thì thi hành các lệnh [Statement]+, rồi lặp lại qui trình trên đến lúc condition có giá trị False thì ngừng vòng lặp ⇒ thích hợp cho việc lặp từ 0 tới n lần. Ví dụ : tính 10! giaithua = 1 i = 1 Do While i <=10 giaithua = giaithua * i i = i+1 Loop Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 223 Lệnh lặp While Wend ‰ VB còn cung cấp 1 lệnh khác có chức năng giống như lệnh Do While Loop, cú pháp của nó như sau : While condition [Statement]+ Wend ƒ condition là 1 biểu thức luận lý miêu tả điều kiện cần kiểm tra, nó có kết quả True/False. ƒ [Statement]+ là danh sách các lệnh thực thi VB bất kỳ. ƒ tính giá trị condition, nếu kết quả là True thì thi hành các lệnh [Statement]+, rồi lặp lại qui trình trên đến lúc condition có giá trị False thì ngừng vòng lặp ⇒ thích hợp cho việc lặp từ 0 tới n lần. Ví dụ : tính 10! giaithua = 1 i = 1 While i <=10 giaithua = giaithua * i i = i+1 Wend Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 224 112
  9. Lệnh lặp Do Loop (tt) Cú pháp 2 : Do [Statement]+ Loop While condition ƒ condition là 1 biểu thức luận lý miêu tả điều kiện cần kiểm tra, nó có kết quả True/False. ƒ [Statement]+ là danh sách các lệnh thực thi VB bất kỳ. ƒ thi hành các lệnh [Statement]+ rồi kiểm tra condition, nếu có giá trị True thì lặp lại qui trình trên đến lúc nó có giá trị False thì ngừng vòng lặp ⇒ thích hợp cho việc lặp từ 1 tới n lần. Ví dụ : tính 10! giaithua = 1 i = 1 Do giaithua = giaithua * i i = i+1 Loop While i <=10 Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 225 Lệnh lặp Do Loop (tt) Cú pháp 3 : Do Until condition [Statement]+ Loop Cú pháp 4 : Do [Statement]+ Loop Until condition ƒ condition là 1 biểu thức luận lý miêu tả điều kiện cần kiểm tra, nó có kết quả True/False. ƒ [Statement]+ là danh sách các lệnh thực thi VB bất kỳ. ƒ giống với cú pháp 1 và 2 nhưng thay vì điều kiện thực hiện vòng lặp là True thì bây giờ ngược lại là False mới thi hành vòng lặp. Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 226 113
  10. Lệnh lặp For Next Cú pháp 1 : For counter = start To end [Step increment] [Statement]+ Next [counter] ƒ counter là biến điều khiển số lần lặp, start là biểu thức qui định giá trị đầu của counter, end qui định giá trị cuối, increment miêu tả bước tăng (âm là giảm, default là 1). ƒ [Statement]+ là danh sách các lệnh thực thi VB bất kỳ. ƒ thi hành các lệnh [Statement]+ với số lần được qui định bởi biến điều khiển. Ví dụ : tính 10! giaithua =1 for i = 1 to 10 giaithua = giaithua * i Next i Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 227 Lệnh lặp For Next (tt) Cú pháp 2 : For Each element In group [Statement]+ Next [element] ƒ group là 1 collection các đối tượng hay 1 dãy các phần tử. element là biến để chứa từng đối tượng hay từng phần tử trong group. ƒ Statement là 1 lệnh thực thi VB bất kỳ. ƒ thi hành các lệnh [Statement]+ với từng phần tử trong 1 dãy hay với từng đối tượng trong 1 collection. Ví dụ : hiển thị các đối tượng đồ họa của 1 ứng dụng Dim objGraphObj As Object For Each GraphObj In GraphObjList GraphObj.Draw ' hiển thị đối tượng Next GraphObj Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 228 114
  11. 8.5 Các lệnh lồng nhau ‰ Như ta đã thấy trong cú pháp của hầu hết các lệnh VB đều có chứa thành phần Statement, đây là 1 lệnh thực thi VB bất kỳ ⇒ ta gọi cú pháp định nghĩa lệnh VB là đệ qui ⇒ tạo ra các lệnh VB lồng nhau. Ta gọi cấp ngoài cùng là cấp 1, các lệnh hiện diện trong cú pháp của lệnh cấp 1 được gọi là lệnh cấp 2, các lệnh hiện diện trong cú pháp của lệnh cấp 2 được gọi là lệnh cấp 3, Để dễ đọc, các lệnh cấp thứ i nên dóng hàng nhờ n ký tự Tab. Ví dụ : đoạn chương trình tính ma trận tổng của 2 ma trận Dim A(N,N) As Double, B(N,N) As Double Dim C(N,N) As Double For i = 1 to n ' duyệt theo hàng For j = 1 to n ' duyệt theo cột C(i,j) = A(i,j) + B(i,j) Next j Next i Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 229 8.6 Vấn đề thoát đột ngột khỏi cấp điều khiển ‰ Như ta đã thấy trong cú pháp của hầu hết các lệnh VB đều có chứa thành phần [Statement]+. Theo trình tự thi hành thông thường, các lệnh bên trong này sẽ được thực thi tuần tự, hết lệnh này đến lệnh khác cho đến lệnh cuối, lúc này thì việc thi hành lệnh cha mới có thể kết thúc. Tuy nhiên trong 1 vài trạng thái thi hành đặc biệt, ta muốn thoát ra khỏi lệnh cha đột ngột chứ không muốn thực thi hết các lệnh con trong danh sách. Để phục vụ yêu cầu này, VB cung cấp lệnh Exit với cú pháp sau đây : Exit [For | Do | Property | Sub | Function] ‰ Lưu ý VB cho phép dùng Exit để thoát khỏi trực tiếp ra nhiều cấp. VB không cung cấp lệnh Exit If và Exit While để thoát khỏi lệnh If và lệnh While ⇒ dùng lệnh Do Loop thay thế lệnh While và/hoặc lệnh Goto (được trình bày sau). Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 230 115
  12. Vấn đề thoát đột ngột khỏi cấp điều khiển (tt) ‰ Để thấy việc dùng các lệnh lồng nhau và yêu cầu cần thoát khỏi đột ngột 1 cấp điều khiển nào đó, ta hãy xem thủ tục sau, nó cho phép in ra tất cả các font chữ mà có thể dùng để hiển thị lên màn hình lẫn in ra máy in. Private Sub Form_Click() Dim objSFont As Object, objPFont As Object ' duyệt từng font màn hình For Each objSFont In Screen.Fonts() ' duyệt từng font máy in For Each objPFont In Printer.Fonts() If objSFont = objPFont Then Print objSfont End If Next objPFont Next objSFont End Sub Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 231 Vấn đề thoát đột ngột khỏi cấp điều khiển (tt) ‰ Quan sát lệnh If ta thấy rằng điều kiện chỉ đúng tối đa 1 lần trong vòng lặp objPFont, do đó khi đã thỏa điều kiện rồi thì ta nên thoát khỏi vòng lặp này ngay (để thời gian chạy ít hơn ⇒ hiệu quả hơn). Private Sub Form_Click() Dim objSFont As Object, objPFont As Object ' duyệt từng font màn hình For Each objSFont In Screen.Fonts() ' duyệt từng font máy in For Each objPFont In Printer.Fonts() If objSFont = objPFont Then Print objSfont Exit For 'thoát đột ngột khỏi vòng For trong cùng End If Next objPFont Next objSFont End Sub Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 232 116
  13. Vấn đề thoát khỏi cấp điều khiển đột ngột (tt) ‰ Cũng thí dụở slide trước, nhưng nếu ta chỉ muốn in tên font chữ đầu tiên được dùng bởi cả màn hình và máy in, thì ta phải dùng lệnh Exit Sub sau khi đã in tên font đầu tiên này. Private Sub Form_Click() Dim SFont As objObject, objPFont As Object ' duyệt từng font màn hình For Each objSFont In Screen.Fonts() ' duyệt từng font máy in For Each objPFont In Printer.Fonts() If objSFont = objPFont Then Print objSfont Exit Sub 'thoát đột ngột khỏi thủ tục End If Next objPFont Next objSFont End Sub Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 233 8.7 Lệnh gọi thủ tục ‰ Thủ tục là phương tiện phân chia code của module (class, form, standard) ra nhiều đơn vị nhỏ hơn để dễ quản lý và sử dụng. Đây là vấn đề khá lớn và sẽ được trình bày chi tiết trong chương kế. ‰ Ở đây chúng ta giới thiệu 1 vài ý tưởng ban đầu về thủ tục đủ để giới thiệu lệnh gọi (sử dụng) chúng. Thủ tục là 1 danh sách các lệnh VB thực hiện 1 chức năng rõ ràng (và thường đơn giản), các lệnh này được họp thành 1 đơn vị và được gán cho 1 tên nhận dạng, tên này nên gợi ý được chức năng của thủ tục (thí dụ ta đặt danh sách các lệnh VB tính cos của góc x trong 1 đơn vị và đặt tên cho nó là Cos). ‰ Để thủ tục có độ sử dụng cao, khi định nghĩa nó người ta kết hợp 1 danh sách tham số hình thức với nó. Mỗi tham số hình thức miêu tả 1 dữ liệu mà thủ tục sẽ xử lý khi thủ tục được thi hành. Các tham số là phương tiện trao đổi dữ liệu giữa lệnh gọi và code của thủ tục. Thí dụ ta kết hợp với thủ tục Cos 1 tham số là góc x, ta nói Cos (x) là thủ tục tính Cos của góc x. Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 234 117
  14. Lệnh gọi thủ tục (tt) ‰ Sau khi đã định nghĩa thủ tục, ta có thể dùng (gọi) nó. Thủ tục chỉ được thi hành khi người ta gọi nó bằng lệnh gọi thủ tục. Cú pháp của lệnh gọi như sau : [Call] name [arglist] Ví dụ : giả sử ta đã định nghĩa (viết) 1 thủ tục sau đây : Private Sub Update_Display(d As Byte) nó cho phép hiệu chỉnh giá trị Display sau khi người dùng ấn thêm ký số d. Như vậy khi người dùng ấn thêm ký số 5, ta sẽ thực hiện gọi thủ tục như sau : Call Update_Display (5) hay : Update_Display (5) Lưu ý : Trong trường hợp gọi thủ tục không có bất kỳ tham số nào ta nên dùng thêm từ khóa "Call' để chương trình trong sáng, dễ đọc. Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 235 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ĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 236 118