Câu hỏi và bài tập Phần II - Chương III - Cơ bản về ngôn ngữ lập trình Visual Basic

Một phần của tài liệu Tự động hóa thiết kế cầu đường lê quỳnh mai (Trang 410 - 416)

CHƯƠNG III: PHÂN TÍCH, TÍNH TOÁN KẾT CẤU

R- ALL: Hạn chế tất cả các bậc tự do quay

1. Câu hỏi và bài tập Phần II - Chương III - Cơ bản về ngôn ngữ lập trình Visual Basic

Bài 1:

Có những cách nào để gọi VBA IDE ?

Làm thế nào để đóng/mở (Close/View) các cửa sổ trong VBA IDE ? Bài 2:

Khởi động VBA IDE trong Excel Trong dự án mới, tạo mô-đun có tên M1

Nhập đoạn mã sau trong mô-đun M1:

Option Explicit Dim a As Double a = 123.45

Debug.Print “a = “,a

Hãy sửa lỗi để chương trình có thể in ra giá trị của biến a trong cửa sổ Immediate.

Bài 3:

Nhập vào đoạn chương trình sau:

Option Explicit Public Sub Test1()

Dim a As Double Dim b As Integer Dim c As String

‘ het phan khai bao bien a = 1

b = 2

c = "Ket qua la :"

Debug.Print c; (a + b) End Sub

Public Sub Test2() Dim a As Double Dim b As Integer Dim c As String

a = 1: b = 2: c = "Ket qua la :"

Debug.Print c; _ (a + b)

End Sub

Public Sub Test3() Dim a As Double Dim b As Integer Dim c As String

Het phan khai bao bien

a = 1 b = 2: c = "Ket qua la :"

Debug.Print c; (a + b)

End Sub

Chạy thử các chương trình con Test1, Test2 và Test3.

Tại sao Test1 và Test2 khác nhau nhưng lại chạy được và cho kết quả như nhau trong của sổ Immediate ?

Tại sao Test3 lại không chạy được ? Lỗi ở đâu ? Lỗi gì ?

Sửa lỗi để Test3 có thể chạy được.

Bài 4:

Khởi động VBA IDE trong Excel

Trong dự án mới, tạo 2 mô-đun có tên M1 và M2

Nhập đoạn mã sau trong mô-đun M1:

Option Explicit Private a As Double a = 123.45

Nhập đoạn mã sau trong mô-đun M2:

Option Explicit Sub Test1()

Debug.Print a End Sub

Hãy sửa lỗi để chương trình có thể in ra giá trị của biến a trong cửa sổ Immediate mà không cần khai báo biến a trong mô-đun M2.

Bài 5:

Nhập vào đoạn chương trình sau:

1:Public Sub Test1() 2: Dim a As Integer 3: Dim b

4: Dim c As Double 5: a = 100

6: c = 101 7: b = a + c

8: Debug.Print "B = "; b 9:Sub

Tại sao biếnb lại có thể khai báo như trên ?

Có thể sửa dòng lệnh 5 như sau:a = 100.15được không ? Tại sao ?

Có thể sửa dòng lệnh 8 như sau:Debug.Print “B = “ & bđược không ? Tại sao ? Bài 6:

Trong dự án mới, tạo 2 mô-đun có tên M1 và M2

Nhập đoạn mã sau trong mô-đun M1:

Option Explicit

http://www.ebook.edu.vn Private Type DamBTCT

ChieuDai As Double ChieuCao As Double End Type

Nhập đoạn mã sau trong mô-đun M2:

Option Explicit Sub Test1()

Dim Dam As DamBTCT Dam.ChieuDai = 15 Dam.ChieuCao = 0.85 End Sub

Hãy sửa lỗi và bổ sung để chương trình có thể in ra giá trị của biến Dam trong cửa sổ Immediate từ mô-đun M2.

Bài 7:

Trong dự án mới, tạo mô-đun có tên M1

Tạo hai mảng tĩnh là A và B, gán giá trị cho chúng sao cho có thể in ra cửa sổ Immediate như hình sau:

Bài 8:

Tạo mảng động A, với mỗi phần tử của mảng A, chỉ được gán 01 lần trong cả chương trình.

Viết chương trình sao cho in ra trong cửa sổ Immediate như sau:

Bài 9:

Trong dự án mới, tạo 2 mô-đun có tên M1 và M2

Nhập đoạn mã sau trong mô-đun M1:

Option Explicit Private Type DamBTCT

ChieuDai As Double ChieuCao As Double

End Type

Nhập đoạn mã sau trong mô-đun M2:

Option Explicit Sub Test1()

Dim Dam As DamBTCT Dam.ChieuDai = 15 Dam.ChieuCao = 0.85 End Sub

Hãy sửa lỗi và bổ sung để chương trình có thể in ra giá trị của biến Dam trong cửa sổ Immediate từ mô-đun M2.

Bài 10:

Khởi động VBA IDE trong Excel để tạo một dự án mới.

Nhập vào một dãy số cách nhau bằng dấu phNy, ví dụ: 15,25,36,2,14,23,11,15,18 bằng hàm InputBox

In ra số lớn nhất và nhỏ nhất của dãy số trên trong cửa sổ Immediate.

Bài 11:

Khởi động VBA IDE trong Excel để tạo một dự án mới.

Xây dựng một chương trình con (tên là Change1) đổi ký tự đầu tiên của các từ trong chuỗi thành chữ hoa

Xây dựng một chương trình con khác để sử dụng Change1 với yêu cầu sau:

Nhập vào một chuỗi bao gồm một số từ ngăn cách bởi khoảng trống (space), ví dụ: “bộ môn tự động hóa thiết kế cầu đường” bằng hàm InputBox.

In ra chuỗi đã được thay đổi với các từ có ký tự đầu tiên được viết hoa trong cửa sổ Immediate.

Bài 12:

Khởi động VBA IDE trong Excel để tạo một dự án mới.

Xây dựng một chương trình con (tên là Change2) có nhiệm vụ thay tất cả những khoảng trống nào có từ hai ký tự space thành một ký tự space, ví dụ:

Ban đầu: Tự động hóa

Thay đổi: Tự động hóa

http://www.ebook.edu.vn

Xây dựng một chương trình con khác để sử dụng Change2 với yêu cầu sau:

Nhập vào một chuỗi bao gồm một số từ ngăn cách bởi khoảng trống (space), ví dụ: “Bộ môn TĐH TKCĐ” bằng hàm InputBox.

In ra chuỗi đã được thay đổi trong cửa sổ Immediate.

Bài 13:

Khởi động VBA IDE trong Excel để tạo một dự án mới.

Nhập vào đoạn mã sau:

Public Function Change1(s As String) As String Dim s1 As String

Dim s2 As String

Do While InStr(s, " ") <> 0 s1 = Left(s, InStr(s, " "))

s = Right(s, Len(s) - InStr(s, " "))

s1 = UCase(Left(s1, 1)) & Right(s1, Len(s1) - 1) s2 = s2 & s1

Loop

Change1 = s2 & " " & s End Function

Tạo giao diện để nhập tham số cho chương trình con trên (chữ in thường), ví dụ:bo mon tu dong hoa thiet ke cau duong

Chạy chương trình và thu được kết quả chưa đúng.

Sửa chương trình để có kết quả đúng.

Bài 14:

Khởi động VBA IDE trong Excel để tạo một dự án mới.

Xây dựng chương trình giải phương trình bậc nhất dạng: ax+b=0 Thiết kế Userform tương tự như sau:

Bấm nút “OK” thì chương trình sẽ tính ra nghiệm Bám nút “Close” sẽ thoát khỏi chương trình

Không cho phép sửa đổi giá trị của Textbox ghi nghiệm số (không cho soạn thảo).

Thông báo lỗi bằng MsgBox khi:

a=0

a, b không phải là số Bài 15:

Khởi động VBA IDE trong Excel để tạo một dự án mới.

Xây dựng chương trình giải phương trình bậc hai dạng: ax2+bx+c=0

Thiết kế Userform tương tự như sau:

Bấm nút “OK” thì chương trình sẽ tính ra nghiệm, nếu vô nghiệm cũng sẽ thông báo tại đây

Bám nút “Close” sẽ thoát khỏi chương trình

Không cho phép sửa đổi giá trị của Textbox ghi nghiệm số (không cho soạn thảo).

Thông báo lỗi bằng MsgBox khi:

a=0, b=0, c<>0

a, b, c không phải là số

410

Một phần của tài liệu Tự động hóa thiết kế cầu đường lê quỳnh mai (Trang 410 - 416)

Tải bản đầy đủ (PDF)

(434 trang)