Danh mục

Giáo trình hướng dẫn các trợ giúp về cú pháp trong quá trình viết mã lệnh khai báo biến trong VB p1

Số trang: 5      Loại file: pdf      Dung lượng: 766.42 KB      Lượt xem: 10      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chú ý đến khai báo biến a, b và c của chương trình con này: Trước biến a là từ khóa ByRef. Trước biến b không có từ khóa, nghĩa là sử dụng kiểu mặc định của VB. Trước biến c là từ khóa ByVal. Chương trình con thứ hai được xây dựng trên cùng một mô-đun với chương trình con trên như sau: Public Sub CallTest() Dim va As Long, vb As Long, vc As Long va = 500: vb = 500: vc = 500 ' In giá trị của biến trước khi gọi chương trình con thứ nhất Debug.Print...
Nội dung trích xuất từ tài liệu:
Giáo trình hướng dẫn các trợ giúp về cú pháp trong quá trình viết mã lệnh khai báo biến trong VB p1 Giáo trình hướng dẫn các trợ giúp về cú pháp trong quá trình ƠNG III: CƠ Blệnh NGÔN NbáoẬP TRÌNHtrong BASIC  CHƯ viết mã ẢN VỀ khai GỮ L biến  VISUAL VB Một chương trình con đơn giản được tạo ra như sau: Public Sub Test(ByRef a As Long, b As Long, ByVal c As Long) a = 100: b = 200: c = 300 End Sub Chú ý đến khai báo biến a, b và c của chương trình con này: Trước biến a là từ khóa ByRef. Trước biến b không có từ khóa, nghĩa là sử dụng kiểu mặc định của VB. Trước biến c là từ khóa ByVal. Chương trình con thứ hai được xây dựng trên cùng một mô-đun với chương trình con trên như sau: Public Sub CallTest() Dim va As Long, vb As Long, vc As Long va = 500: vb = 500: vc = 500 ' In giá trị của biến trước khi gọi chương trình con thứ nhất Debug.Print Cac gia tri bien truoc khi goi chuong trinh con: Debug.Print va= & Str(va) Debug.Print vb= & Str(vb) Debug.Print vc= & Str(vc) ' Gọi chương trình con thứ nhất Test va, vb, vc ' In giá trị của biến sau khi gọi chương trình con thứ nhất Debug.Print Cac gia tri bien sau khi goi chuong trinh con: Debug.Print va= & Str(va) Debug.Print vb= & Str(vb) Debug.Print vc= & Str(vc) End Sub Trong chương trình con thứ 2 có lời gọi đến chương trình con thứ nhất để thực hiện thay đổi giá trị của các biến. Kết quả khi thực thi chương trình con thứ 2 như sau: Qua kết quả trên có thể thấy rằng: Giá trị của biến có thể bị thay đổi hoặc không bị thay đổi khi chúng được truyền vào chương trình con là phụ thuộc vào cách định nghĩa tham số trong chương trình con đó. Biến a trong Sub Test được khai báo với từ khóa ByRef và khi truyền biến ở vị trí này (biến va trong CallTest) thì giá trị của biến ban đầu bị thay đổi tương ứng với các tác động trong chương trình con. 53 Biến b trong Sub Test được khai báo mặc định (không có từ khóa nào phía trước nó) và khi truyền biến ở vị trí này (biến vb trong CallTest) thì giá trị của biến ban đầu bị thay đổi tương ứng với các tác động trong chương trình con. Biến c trong Sub Test được khai báo với từ khóa ByVal và khi truyền biến ở vị trí này (biến vc trong CallTest) thì giá trị của biến ban đầu không bị thay đổi cho dù trong chương trình con biến này bị tác động. Qua ví dụ trên có thể thấy rằng việc truyền tham số cho chương trình con có thể được phân làm hai trường hợp và được đặt tên là truyền tham số theo tham chiếu và truyền tham số theo tham trị. 9.3.1. Truyền tham số theo tham chiếu Khi truyền một biến vào tham số theo kiểu tham chiếu, địa chỉ của biến sẽ được truyền cho chương trình con. Do đó, bất kì câu lệnh nào của chương trình con tác động lên tham số sẽ ảnh hưởng trực tiếp lên biến được truyền tương ứng, nghĩa là khi chương trình con kết thúc, giá trị của biến được truyền theo kiểu này sẽ bị thay đổi do chương trình con. Truyền tham số theo kiểu tham chiếu là mặc định trong VB, người dùng cũng có thể chỉ rõ việc truyền theo tham chiếu bằng cách thêm từ khoá ByRef vào trước khai báo tham số. 9.3.2. Truyền tham số theo tham trị Khi truyền một biến vào tham số theo kiểu tham trị, bản sao giá trị của biến sẽ được truyền cho cho chương trình con. Do đó, nếu trong chương trình con có các câu lệnh tác động lên tham số thì chỉ bản sao bị ảnh hưởng và biến truyền vào sẽ không bị thay đổi, nghĩa là sau khi chương trình con kết thúc, giá trị của biến vẫn được giữ nguyên như ban đầu. Để xác định cách thức truyền dữ liệu cho một tham số theo kiểu tham trị, thêm từ khoá ByVal vào trước khai báo tham số. Trong Sub Test ở trên, a và b là hai tham số được truyền theo kiểu tham chiếu còn c được truyền theo kiểu tham trị. 9.3.3. Tham số tuỳ chọn. Tham số tuỳ chọn là tham số có thể có hoặc được bỏ qua khi gọi chương trình con. Các tham số tuỳ chọn được khai báo với từ khoá Optional và trong một chương trình con, các khai báo của các tham số tuỳ chọn luôn phải nằm cuối danh sách tham số được khai báo. Ví dụ: viết chương trình con tính toán diện tích của mặt cắt chữ nhật có khoét lỗ (như hình dưới) với yêu cầu sau: Tính diện tích mặt cắt với các thông số về chiều rộng w, chiều cao h và bán kính r của lỗ khoét. Trong trường hợp thiếu thông số về bán kính r, chỉ tính diện tích mặt cắt chữ nhật và bỏ qua lỗ khoét. Dưới đây là một chương trình con có sử dụng tham số tuỳ chọn: Public Function DT(w As Double, h As Double, Optional r As Variant) If Not IsMissing(r) Then If (2 * r CHƯƠNG III: CƠ BẢN VỀ NGÔN NGỮ LẬP TRÌNH VISUAL BASIC  DT = w * h - pi * r ^ 2 Else MsgBox Co loi, lo khoet vuot ra ngoai hinh DT = Error End If Else DT = w * h End If End Function Sau khi tạo mã lệnh trên, nếu muốn tính diện tích cho mặt cắt với w =100, h =200, r =20 có thể gọi hàm như sau: DT(100,200,20) để tính diện tích có xét đến khoét lỗ với bán kính là 20, hoặc DT(100,200) để tính diện của hình chữ nhật (không có lỗ). CHÚ Ý Để biết được một tham số tuỳ chọn có bị bỏ qua khi gọi chương trình con hay không, dùng hàm IsMissing(tham_số_tuỳ_chọn) và đồng thời tham số tuỳ chọn bắt buộc phải có kiểu dữ liệu là Variant (vì hàm IsMissing chỉ có hiệu lực đối với các biến kiểu Variant). Hàm này trả về TRUE nếu tham số bị bỏ qua, FALSE nếu tham số có mặt. 9.3.4. Danh sách tham số với số lượng tham số tuỳ ý. Visual Basic 6.0 cho phép tạo một chương trình con với danh sách tham số tuỳ ý (nghĩa là số lượng các tham số có thể thay đổi ...

Tài liệu được xem nhiều: