Cùng nắm kiến thức trong chương này thông qua việc tìm hiểu các nội dung sau: Tổng quát về ngôn ngữ VB, các lệnh gán, các lệnh kiểm tra điều kiện và rẽ nhánh, các lệnh lặp, vấn đề lồng nhau giữa các lệnh, thoát đột ngột khỏi khỏi cấp điều khiển, lệnh gọi hàm/thủ tục.
MÔN TIN HỌC Chương CÁC LỆNH THỰC THI VB 8.1 Tổng quát ngôn ngữ VB 8.2 Các lệnh gán 8.3 Các lệnh kiểm tra điều kiện & rẽ nhánh 8.4 Các lệnh lặp 8.5 Vấn đề lồng lệnh 8.6 Thoát đột ngột khỏi khỏi cấp điều khiển 8.7 Lệnh gọi hàm/thủ tục Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 8: Các lệnh thực thi VB Slide 209 8.1 Tổng quát lệnh thực thi VB Ta biết giải thuật để giải vấn đề trình tự cơng việc nhỏ hơn, ta thực trình tự cơng việc nhỏ giải vấn đề lớn VB (hay ngơn ngữ lập trình khác) cung cấp tập lệnh thực thi, lệnh thực thi dùng để miêu tả công việc nhỏ giải thuật với ý tưởng chung sau: Nếu tồn lệnh thực thi miêu tả công việc nhỏ giải thuật ta dùng lệnh thực thi Nếu cơng việc nhỏ q phức tạp khơng có lệnh thực thi miêu tả ta dùng lệnh gọi thủ tục (Function, Sub, Property) thủ tục trình tự lệnh thực công việc nhỏ Hầu hết lệnh thực thi có chứa biểu thức dùng kết biểu thức để định công việc cần thực ⇒ ta thường gọi lệnh thực thi cấu trúc điều khiển Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 8: Các lệnh thực thi VB Slide 210 Tổng quát lệnh thực thi VB (tt) Để dễ học, dễ nhớ dễ dùng, VB (cũng ngôn ngữ khác) cung cấp số lượng nhỏ lệnh thực thi: Nhóm lệnh khơng điều khiển: o Lệnh gán liệu vào biến o Lệnh gán tham khảo đến đối tượng vào biến tham khảo Nhóm lệnh tạo định: o Lệnh kiểm tra điều kiện luận lý If Then Else o Lệnh kiểm tra điều kiện số học Select Case Nhóm lệnh lặp: o Lệnh lặp Do Loop o Lệnh lặp For Next o Lệnh lặp For Each Next Nhóm lệnh gọi thủ tục: o Lệnh gọi thủ tục o Lệnh thoát khỏi cấu trúc điều khiển Exit Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 8: Các lệnh thực thi VB Slide 211 8.2 Lệnh gán liệu Lệnh dùng nhiều chương trình lệnh gán giá trị liệu vào vùng nhớ để lưu trữ lại liệu hầu sử dụng lại sau Chúng ta thấy lệnh nhiều lần chương trước, nói rõ Cú pháp: lvar = expr biểu thức bên phải tính để tạo kết (1 giá trị cụ thể thuộc kiểu cụ thể), giá trị gán vào ô nhớ lvar qui định Trước gán, VB kiểm tra kiểu phần tử (qui tắc kiểm tra trình bày sau) lvar thường biến liệu bản, đệ qui theo qui tắc: o lvar biến dãy phần tử dãy lvar o lvar biến liệu người dùng field lvar o lvar biến đối tượng thuộc tính đối tượng lvar Ví dụ: dblDispValue = dblDispValue + intNegative * d * (10 ^ -bytPosDigit) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 8: Các lệnh thực thi VB Slide 212 Lệnh gán tham khảo đến đối tượng Như trình bày chương 5, biến đối tượng (có kiểu Object hay tên class module đó) chứa tham khảo đến đối tượng không chứa trực tiếp đối tượng Khi định nghĩa, biến chưa tham khảo đến đối tượng cụ thể nào, trước dùng chúng, ta phải gán tham khảo đối tượng cụ thể vào biến Cú pháp: Set lvar = expr biểu thức bên phải tính để tạo kết tham khảo đến đối tượng, tham khảo gán vào ô nhớ lvar qui định Trước gán, VB kiểm tra kiểu phần tử (qui tắc kiểm tra trình bày sau) lvar thường biến đối tượng bản, đệ qui theo qui tắc: o lvar biến dãy phần tử dãy lvar o lvar biến liệu người dùng field lvar o lvar biến đối tượng thuộc tính đối tượng lvar Ví dụ: Set objClipbd = New Clipboard Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 8: Các lệnh thực thi VB Slide 213 8.3 Lệnh kiểm tra điều kiện luận lý IF Cho phép dựa vào kết luận lý (tính từ biểu thức luận lý) để định thi hành nhánh lệnh Sau thực nhánh lệnh, chương trình tiếp tục thi hành lệnh sau lệnh IF Có nhiều cú pháp khác nhau: Cú pháp 1a: If condition Then Statement1 [Else Statement2 ] condition biểu thức luận lý miêu tả điều kiện cần kiểm tra, có kết True/False Statement1, Statement2 lệnh thực thi VB kết True thi hành Statement1 kết False có dùng Else thi hành Statement2 Ví dụ: If blnThaybenh Then MsgBox("Thầy bệnh Sinh viên nghỉ") Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 8: Các lệnh thực thi VB Slide 214 Lệnh kiểm tra điều kiện luận lý IF (tt) Cú pháp 2: If condition Then [Statement]+ End If condition biểu thức luận lý miêu tả điều kiện cần kiểm tra, có kết True/False [Statement]+ danh sách lệnh thực thi VB kết True thi hành lệnh [Statement]+, kết False thi Ví dụ: If del >=0 Then x1 = (-b-sqr(del))/(2*a) x2 = (-b+sqr(del))/(2*a) MsgBox("x1= " & x1 & " ,x2= " & x2) End If Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 8: Các lệnh thực thi VB Slide 215 Lệnh kiểm tra điều kiện luận lý IF (tt) Cú pháp 3: If condition Then [Statement1]+ Else [Statement2]+ End If condition biểu thức luận lý miêu tả điều kiện cần kiểm tra, có kết True/False [Statement1]+, [Statement2]+ danh sách lệnh thực thi VB kết True thi hành lệnh [Statement1]+, kết False thi hành lệnh [Statement2]+ Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 8: Các lệnh thực thi VB Slide 216 Lệnh kiểm tra điều kiện luận lý IF (tt) Ví dụ: If del >=0 Then x1 = (-b-sqr(del))/(2*a) x2 = (-b+sqr(del))/(2*a) MsgBox("x1= " & x1 & " ,x2= " & x2) Else MsgBox("Phương trình vơ nghiệm") End If Ví dụ: hiệu chỉnh trị phần tử Display người dùng nhập thêm ký số d If (blnFpoint) Then ' phần lẻ bytPosDigit = bytPosDigit + dblDispValue = dblDispValue + intPosNeg * d * (10 ^ -bytPosDigit) Else ' phần nguyên dblDispValue = dblDispValue * 10 + intPosNeg * d End If Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 8: Các lệnh thực thi VB Slide 217 Lệnh kiểm tra điều kiện số học Select Cú pháp: Select Case condition Case expr1 [Statement1]+ Case expr2 [Statement2]+ Case Else [Statementn]+ End Select condition biểu thức số học miêu tả điều kiện cần kiểm tra, có giá trị số [Statement1]+, [Statement2]+ danh sách lệnh thực thi VB tùy giá trị điều kiện trùng với nhánh Case mà lệnh VB nhánh thi hành, sau VB thi hành lệnh sau lệnh Select Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 8: Các lệnh thực thi VB Slide 218 Lệnh kiểm tra điều kiện số học On GoSub (tt) Đoạn code sau có cơng dụng slide thí dụ dùng lệnh Select case (nếu IDC_ADD = 1, IDC_SUB = 2, IDC_MUL = 3, IDC_DIV = 4): On bytOperationId GoSub LblAdd, LblSub, LblMul, LblDiv LblAdd: dblDispValue = dblOldValue + dblDispValue txtDisplay.Text = Str(dblDispValue) return ' trả đìều khiển lệnh GoSub LblSub: dblDispValue = dblOldValue - dblDispValue txtDisplay.Text = Str(dblDispValue) return ' trả đìều khiển lệnh GoSub LblMul: dblDispValue = dblOldValue * dblDispValue txtDisplay.Text = Str(dblDispValue) return ' trả đìều khiển lệnh GoSub LblDiv: dblDispValue = dblOldValue / dblDispValue txtDisplay.Text = Str(dblDispValue) return ' trả đìều khiển lệnh GoSub Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 8: Các lệnh thực thi VB Slide 221 Lệnh kiểm tra điều kiện số học On GoTo biến thể khác On GoSub On Goto, điều khiển không trả lại lệnh On Goto Đoạn code sau có cơng dụng slide trước: On bytOperationId GoTo LblAdd, LblSub, LblMul, LblDiv Continue: LblAdd: dblDispValue = dblOldValue + dblDispValue txtDisplay.Text = Str(dblDispValue) Goto Continue ' nhảy không điều kiện nhãn Continue LblSub: dblDispValue = dblOldValue - dblDispValue txtDisplay.Text = Str(dblDispValue) Goto Continue LblMul: dblDispValue = dblOldValue * dblDispValue txtDisplay.Text = Str(dblDispValue) Goto Continue LblDiv: dblDispValue = dblOldValue / dblDispValue txtDisplay.Text = Str(dblDispValue) Goto Continue Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 8: Các lệnh thực thi VB Slide 222 8.4 Lệnh lặp Do Loop Cú pháp 1: Do While condition [Statement]+ Loop condition biểu thức luận lý miêu tả điều kiện cần kiểm tra, có kết True/False [Statement]+ danh sách lệnh thực thi VB tính giá trị condition, kết True thi hành lệnh [Statement]+, lặp lại qui trình đến lúc condition có giá trị False ngừng vòng lặp ⇒ thích hợp cho việc lặp từ tới n lần Ví dụ: tính 10! giaithua = i=1 Do While i