Bài giảng môn Tin học - Chương 7: Biểu thức VB trình bày 4 nội dung chính bao gồm: Tổng quát về biểu thức VB, các toán tử, qui trình tính biểu thức, quyền ưu tiên của các toán tử. Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên Công nghệ thông tin dùng làm tài liệu tham khảo phục vụ học tập và nghiên cứu.
7.1 Tổng quát biểu thức VB Ta biết tốn học cơng thức phương tiện miêu tả qui trình tính tốn số Trong VB (hay ngơn ngữ lập trình khác), ta dùng biểu thức để miêu tả qui trình tính tốn liệu ⇒ biểu thức giống cơng thức tốn học, tổng quát (xử lý nhiều loại liệu khác nhau) phải tuân theo qui tắc cấu tạo khắt khe cơng thức tốn học Để hiểu biểu thức, ta cần hiểu thành phần : Các tốn hạng : biến, liệu, Các toán tử tham gia biểu thức : +,-,*,/, Qui tắc kết hợp toán tử toán hạng để tạo biểu thức Qui trình mà máy dùng để tính trị biểu thức Kiểu biểu thức kiểu kết tính tốn biểu thức Mơn : Tin học Chương : Biểu thức VB Slide 175 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Các biểu thức Biểu thức phần tử nhỏ cấu thành biểu thức Một phần tử sau gọi biểu thức : Biến, Hằng gợi nhớ, Giá trị liệu cụ thể thuộc kiểu (nguyên, thực, ) Lời gọi hàm, biểu thức đóng dấu () Qui trình tạo biểu thức qui trình đệ qui : ta kết hợp tốn tử với tốn hạng nó, tốn hạng biểu thức biểu thức sẵn có (đã xây dựng trước nên đóng dấu () để biến trở thành biểu thức bản) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Biểu thức VB Slide 176 88 7.2 Các tốn tử Dựa theo số tốn hạng tham gia, có loại toán tử thường dùng : toán tử ngơi : cần tốn hạng Ví dụ tốn tử '-' để tính phần âm đại lượng tốn tử ngơi : cần dùng tốn hạng Ví dụ tốn tử '*' để tính tích đại lượng VB thường dùng ký tự đặc biệt để miêu tả tốn tử Ví dụ : toán tử '+' : cộng đại lượng toán tử '-' : trừ đại lượng khỏi đại lượng toán tử '*' : nhân đại lượng toán tử '/' : chia đại lượng cho đại lượng Trong vài trường hợp, VB dùng ký tự đặc biệt để miêu tả nhiều toán tử khác Trong trường hợp này, ngữ cảnh dùng để giải nhằm lẫn Ngữ cảnh thường kiểu toán hạng tham gia thiếu tốn hạng tốn tử hiểu tốn tử ngơi Mơn : Tin học Chương : Biểu thức VB Slide 177 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Các toán tử (tt) Dựa theo độ ưu tiên tốn tử qui trình tính tốn biểu thức, có loại toán tử : toán tử số học : có độ ưu tiên cao qui trình tính tốn biểu thức tốn tử so sánh : có độ ưu tiên toán tử luận lý bitwise : có độ ưu tiên thấp Trong slide sau, trình bày chi tiết toán tử VB thuộc loại Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Biểu thức VB Slide 178 89 Các toán tử số học Tùy thuộc kiểu toán hạng tham gia mà ta phép dùng toán tử chúng ⇒ số lượng tốn tử có giá trị kiểu liệu khác ⇒ phải học nhớ từ từ Dữ liệu số loại liệu thường xử lý ứng dụng (may mắn cho ta quen với tốn học) Các tốn tử liệu số : toán tử '&' : nối kết chuỗi thành chuỗi toán tử '+' : cộng đại lượng toán tử '-' : trừ đại lượng khỏi đại lượng toán tử '*' : nhân đại lượng toán tử '/' : chia đại lượng cho đại lượng toán tử '\' : chia nguyên toán tử Mod : lấy phần dư phép chia nguyên toán tử '^' : lũy thừa Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Biểu thức VB Slide 179 Toán tử '&' để nối kết chuỗi Cú pháp : expr1 & expr2 (→ kết quả) nối kết toán hạng kiểu chuỗi thành chuỗi mới, toán hạng thuộc kiểu số đổi thành dạng chuỗi trước thực nối kết Ví dụ : Dim MyStr As String MyStr = "Hello" & " World" ' kết "Hello World" MyStr = "Check " & 123 & " Check" ' kq "Check 123 Check" lưu ý nên có ký tự trống chuỗi cho nối kết chuỗi kết dễ đọc Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Biểu thức VB Slide 180 90 Toán tử '+' liệu số Cú pháp : expr1 + expr2 (→ kết quả) + expr1 Nếu tốn hạng số kiểu kết kiểu xác phép + theo thứ tự sau : Byte, Integer, Long, Single, Double, Currency, Decimal với ngoại lệ sau : Nếu kết : tốn hạng Single,1 tốn hạng Long Double kết kiểu Variant chứa giá trị Single, Long, Date bị tràn Variant chứa Double kết kiểu Variant chứa giá trị Byte bị tràn Variant chứa Integer kết kiểu Variant chứa giá trị Integer bị tràn Variant chứa Long toán hạng Date,1 tốn hạng kiểu khác Date Mơn : Tin học Chương : Biểu thức VB Slide 181 Khoa Công nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Tốn tử '+' liệu số (tt) Nếu kiểu tốn hạng Variant việc xác định ngữ nghĩa phép + kiểu kết theo qui luật bảng sau : Nếu : toán hạng Variant chứa số Cộng toán hạng Variant chứa chuỗi Nối kết chuỗi Variant chứa số, Variant chứa chuỗi Cộng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Biểu thức VB Slide 182 91 Toán tử '+' liệu số (tt) Nếu tốn hạng khơng phải Variant việc xác định ngữ nghĩa phép + kiểu kết theo qui luật bảng sau : Nếu : tốn hạng liệu số Cộng toán hạng chuỗi Nối kết chuỗi số, Variant giá trị khác Null Cộng chuỗi, Variant giá trị khác Null Nối kết chuỗi biểu thức Variant chứa Empty kết toán hạng lại số chuỗi A Type mismatch error toán hạng Null kết Null Môn : Tin học Chương : Biểu thức VB Slide 183 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Toán tử '-' liệu số Cú pháp : expr1 - expr2 (→ kết quả) - expr1 Kiểu kết thường kiểu xác phép - theo thứ tự sau : Byte, Integer, Long, Single, Double, Currency, Decimal với ngoại lệ sau : Nếu kết : toán hạng Single,1 toán hạng Long Double kết kiểu Variant chứa giá trị Single, Long, Date bị tràn Variant chứa Double kết kiểu Variant chứa giá trị Integer bị tràn Variant chứa Long toán hạng Date,1 toán hạng kiểu khác Date tống hạng Date Double Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Biểu thức VB Slide 184 92 Toán tử '*' liệu số Cú pháp : expr1 * expr2 (→ kết quả) Kiểu kết thường kiểu xác phép * theo thứ tự sau : Byte, Integer, Long, Single, Double, Currency, Decimal với ngoại lệ sau : Nếu kết : toán hạng Single,1 toán hạng Long Double kết kiểu Variant chứa giá trị Single, Long, Date bị tràn Variant chứa Double kết kiểu Variant chứa giá trị Byte bị tràn Variant chứa Integer kết kiểu Variant chứa giá trị Integer bị tràn Variant chứa Long Môn : Tin học Chương : Biểu thức VB Slide 185 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Toán tử '/' liệu số Cú pháp : expr1 / expr2 (→ kết quả) Kiểu kết thường kiểu Double hay Variant chứa Double với ngoại lệ sau : Nếu kết : toán hạng Byte, Integer,Single Single, tràn báo sai tốn hạng variant chứa trị Byte, Integer, Single Variant chứa Single, tràn đổi thành Variant chứa Double tốn hạng Decimal Decimal Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Biểu thức VB Slide 186 93 Toán tử '\' Mod liệu số Cú pháp : expr1 \ expr2 (→ kết quả) Đây phép chia nguyên, tốn hạng đổi dạng ngun (được làm trịn) trước thực phép chia Kiểu kết Byte, Integer, Long Variant chứa trị Byte, Integer, Long Ví dụ : 19 \ 6.7 → kết Cú pháp : expr1 Mod expr2 (→ kết quả) Đây phép lấy phần dư phép chia nguyên, toán hạng đổi dạng nguyên (được làm tròn) trước thực phép chia Kiểu kết Byte, Integer, Long Variant chứa trị Byte, Integer, Long Ví dụ : 19 Mod 6.7 → kết Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Biểu thức VB Slide 187 Toán tử '^' liệu số Cú pháp : number ^ exponent (→ kết quả) Đây phép lũy thừa, toán hạng thuộc kiểu số (Byte, Integer, Long, Single, Double, ) với hạn chế phần mũ số nguyên phần số (number) phép âm Kiểu kết Double Variant chứa trị Double Ví dụ : (-5) ^ → kết -125.0 3^3^3 → kết 19683.0 3.2 ^ 2.7 → kết 23.115587799 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Biểu thức VB Slide 188 94 Các toán tử so sánh liệu Cú pháp : expr1 op expr2 (→ kết quả) toán hạng thường kiểu số hay chuỗi Kết kiểu luận lý (nhận trị True, False) op toán tử so sánh sau : < : phép toán nhỏ : phép toán lớn >= : phép toán lớn = : phép toán so sánh : phép tốn khác (khơng bằng) Ngồi tốn tử so sánh thơng thường trên, VB cịn cung cấp tốn tử so sánh đặc biệt sau (với ngữ nghĩa đặc biệt trình bày slide sau) : expr1 Like expr2 (→ kết quả) expr1 Is expr2 (→ kết quả) Môn : Tin học Chương : Biểu thức VB Slide 189 Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Tốn tử Like Cú pháp : string Like pattern (→ kết quả) xác định xem chuỗi cụ thể string có thuộc pattern khơng Nếu thuộc cho kết True, khơng thuộc cho kết False Ví dụ : MyCheck = "aBBBa" Like "a*a" ' Returns True MyCheck = "F" Like "[A-Z]" ' Returns True MyCheck = "F" Like "[!A-Z]" ' Returns False MyCheck = "a2a" Like "a#a" ' Returns True MyCheck = "aM5b" Like "a[L-P]#[!c-e]" ' Returns True MyCheck = "BAT123khg" Like "B?T*" ' Returns True MyCheck = "CAT123khg" Like "B?T*" ' Returns False Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Biểu thức VB Slide 190 95 Toán tử Like (tt) Hành vi toán tử Like phụ thuộc vào chế độ phát biểu "Option Compare" qui định : ' default Option Compare Binary Option Compare Text Trong chế độ so sánh Binary, VB dựa vào thứ tự xếp ký tự sở mã nhị phân ký tự Trong bảng mã ISO8859-1, ta có : A