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