Tự động hóa trong thiết kế cầu đường part 3 pdf

29 420 0
Tự động hóa trong thiết kế cầu đường part 3 pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CHƯƠNG III: CƠ BẢN VỀ NGƠN NGỮ LẬP TRÌNH VISUAL BASIC  Nếu muốn vịng lặp ln có lần thi hành khối lệnh, sử dụng cú pháp: Do [Khối_lệnh] Loop While Với cú pháp này, [Khối_lệnh] thực lần cho dù hay sai kiểm tra cuối cấu trúc Kiểu 2: Lặp cho đến khi điều kiện là FALSE    Do Until [Khối_lệnh] Loop Nếu muốn vịng lặp ln có lần thi hành khối lệnh sử dụng cú pháp: Do [Khối_lệnh] Loop Until CHÚ Ý Khi [Khối_lệnh] thực thi, [Khối_lệnh] khơng có câu lệnh tác động lên để nhận giá trị ngược lại vịng lặp khơng kết thúc làm cho ứng dụng bị “treo” Để thoát khỏi tình “treo” có nhiều cách cách đơn giản bấm tổ hợp phím Ctrl+Break để quay trở lại VBAIDE Có cách khác để khỏi vịng lặp, ngồi việc thiết lập có giá trị ngược lại, sử dụng từ khóa Exit Do đặt [Khối_lệnh] Chương trình Về bản, chương trình khối câu lệnh chúng sử dụng lặp lại chương trình thơng qua tên chương trình Chương trình đặc biệt hữu ích thay khối lệnh lặp thực thi chức tương tự Có hai loại chương trình Hàm (Function) Thủ tục (Sub) Ngồi ra, mơ-đun lớp (Class Module) cịn có chương trình dạng thuộc tính (Property), nhiên giáo trình khơng trình bày loại chương trình mà người đọc tham khảo giáo trình mơn Lập trình hướng đối tượng xây dựng Cú pháp tổng quát chương trình sau: Cú pháp tổng quát chương trình sau: [Private|Friend|Public][Static] Tên([các_tham_số]) [Khối_lệnh] 51 End Trong phần thân chương trình bọc phần khai báo phần kết thúc (có từ khóa End) Các từ khóa [Private|Public|Friend] xác định phạm vi hoạt động chương trình Khái niệm phạm vi tương tư phạm vi biến trình bày phần trước Từ khóa [Static] xác định cách thức cấp phát nhớ cho biến khai báo bên chương trình (sẽ trình bày cụ thể phần sau) CHÚ Ý Từ khóa Friend sử dụng mơ-đun lớp mô-đun lệnh UserForm 9.1 Hàm (Function) Là chương trình có trả giá trị gọi Cú pháp khai báo sau: [Private/Public/Friend][Static] Function ([Các_tham_số]) as [Khối_lệnh] End Function Ví dụ: tạo hàm tính diện tích hình chữ nhật, với hai tham số cần nhập vào chiều rộng chiều dài hình chữ nhật Function Dien_Tich(Rong As Double, Dai As Double) as Double Dien_Tich=Rong*Dai End Function 9.2 Thủ tục (Sub) Là chương trình khơng trả giá trị gọi Cú pháp khai báo sau: [Private/Public/Friend][Static] Sub ([Các_tham_số]) [Khối_lệnh] End Sub Ví dụ: để tạo chương trình dạng thủ tục có tính phần viết mã lệnh sau: Sub Dien_Tich(Rong as Double, Dai as Double, Dt as Double) Dt=Rong*Dai End Sub CHÚ Ý Trong ví dụ này, chương trình khơng có giá trị trả nên để nhận giá trị diện tích phải bổ sung thêm tham số Dt vào danh sách tham số chương trình 9.3 Truyền tham số cho chương trình Xét chương trình đặt mô-đun chuẩn, thực việc gán in giá trị biến sau: 52 CHƯƠNG III: CƠ BẢN VỀ NGƠN NGỮ LẬP TRÌNH VISUAL BASIC  Một chương trình đơn giản tạo 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 c chương trình này: Trước biến a từ khóa ByRef Trước biến b khơng có từ khóa, nghĩa sử dụng kiểu mặc định VB Trước biến c từ khóa ByVal Chương trình thứ hai xây dựng mô-đun với chương trình sau: Public Sub CallTest() Dim va As Long, vb As Long, vc As Long va = 500: vb = 500: vc = 500 ' In giá trị biến trước gọi chương trình thứ Debug.Print " Cac gia tri bien truoc 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 thứ Test va, vb, vc ' In giá trị biến sau gọi chương trình thứ Debug.Print " Cac gia tri bien sau 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 thứ có lời gọi đến chương trình thứ để thực thay đổi giá trị biến Kết thực thi chương trình thứ sau: Qua kết thấy rằng: Giá trị biến bị thay đổi không bị thay đổi chúng truyền vào chương trình phụ thuộc vào cách định nghĩa tham số chương trình Biến a Sub Test khai báo với từ khóa ByRef truyền biến vị trí (biến va CallTest) giá trị biến ban đầu bị thay đổi tương ứng với tác động chương trình 53 Biến b Sub Test khai báo mặc định (khơng có từ khóa phía trước nó) truyền biến vị trí (biến vb CallTest) giá trị biến ban đầu bị thay đổi tương ứng với tác động chương trình Biến c Sub Test khai báo với từ khóa ByVal truyền biến vị trí (biến vc CallTest) giá trị biến ban đầu không bị thay đổi cho dù chương trình biến bị tác động Qua ví dụ thấy việc truyền tham số cho chương trình phân làm hai trường hợp đặt tên truyền tham số theo tham chiếu truyền tham số theo tham trị 9.3.1 Truyền tham số theo tham chiếu Khi truyền biến vào tham số theo kiểu tham chiếu, địa biến truyền cho chương trình Do đó, câu lệnh chương trình tác động lên tham số ảnh hưởng trực tiếp lên biến truyền tương ứng, nghĩa chương trình kết thúc, giá trị biến truyền theo kiểu bị thay đổi chương trình Truyền tham số theo kiểu tham chiếu mặc định VB, người dùng rõ việc truyền theo tham chiếu 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 biến vào tham số theo kiểu tham trị, giá trị biến truyền cho cho chương trình Do đó, chương trình có câu lệnh tác động lên tham số bị ảnh hưởng biến truyền vào không bị thay đổi, nghĩa sau chương trình kết thúc, giá trị biến giữ nguyên ban đầu Để xác định cách thức truyền liệu cho 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 b hai tham số truyền theo kiểu tham chiếu c truyền theo kiểu tham trị 9.3.3 Tham số tuỳ chọn Tham số tuỳ chọn tham số có bỏ qua gọi chương trình Các tham số tuỳ chọn khai báo với từ khoá Optional chương trình con, khai báo tham số tuỳ chọn phải nằm cuối danh sách tham số khai báo Ví dụ: viết chương trình tính tốn diện tích mặt cắt chữ nhật có kht lỗ (như hình dưới) với u cầu sau: Tính diện tích mặt cắt với thơng số chiều rộng w, chiều cao h bán kính r lỗ kht Trong trường hợp thiếu thơng số bán kính r, tính diện tích mặt cắt chữ nhật bỏ qua lỗ khoét Dưới chương trình 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

Ngày đăng: 12/07/2014, 20:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan