Giáo trình Lập trình Visual Basic (Phần 1)

Lập trình là viết chương trình trên dựa trên một ngôn ngữ lập trình cụ thể nhằm giải

quyết một vấn đề hoặc một bài toán được đặt ra mà máy tính có thể hiểu, thực hiện và cho

ra kết quả. Sản phẩm của lập trình gọi là Chương trình, một chương trình lớn có thể được

gọi là Phần mềm. Ðể lập trình, nhất là giải quyết các bài toán lớn nên trải qua các bước:

- Phân tích vấn đề cần giải quyết: Nội dung vấn đề là gì? cần phải làm gì?

- Xây dựng thuật toán và cấu trúc dữ liệu để giải quyết vấn đề: Làm như thế nào?

- Viết chương dựa trên một ngôn ngữ lập trình đã chọn.

- Chạy thử chương trình, sửa sai và hoàn thiện.

- Bảo trì và nâng cấp chương trình.

Như vậy máy tính được lập trình nó chỉ giải quyết được những bài toán mà cách giải

quyết chúng đã được con người nghĩ ra, điều đó khẳng định rằng máy tính không có khả

năng sáng tạo ra phương pháp giải quyết một bài toán.

Lợi dụng tốc độ tính toán cực nhanh của mình (hàng chục triệu phép tính trên giây) máy

tính ngày nay đã thay con người giải quyết một số bài toán rất hiệu quả, giải thoát con người

khỏi một số công việc nhàm chán, mất rất nhiều thời gian và công sức.

Tuy nhiên trong cuộc sống không phải bất cứ bài toán nào máy tính cũng có thể giải

quyết được, có những bài toán con người thực hiện rất đơn giản nhưng rất khó hoặc không

thể áp dụng bài toán đó cho máy tính thực hiện. Những bài toán như vậy gọi là những bài

toán không thể giải được trên máy tính.

Một bài toán có thể có nhiều phương pháp giải quyết khác nhau, vấn đề của người lập

trình là phân tích để lựa chọn phương pháp giải quyết tốt nhất. Tốt nhất được hiểu trên các

khía cạnh đó là thời gian thực hiện nhanh nhất, tiêu tốn bộ nhớ máy tính ít nhất và thời gian

soạn thảo chương trình ít nhất.

pdf 30 trang kimcuc 5060
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Lập trình Visual Basic (Phần 1)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình Lập trình Visual Basic (Phần 1)

Giáo trình Lập trình Visual Basic (Phần 1)
GIAÏO TRÇNH LÁÛP TRÇNH VISUAL BASIC 
TRUNG TÁM PHAÏT TRIÃØN PHÁÖN MÃÖM - ÂAÛI HOÜC ÂAÌ NÀÔNG Trang: 1 
LỜI NÓI ĐẦU 
Giáo trình “Lập trình Visual Basic” được biên soạn nhằm phục vụ cho các đối tượng 
học viên Trung cấp Tin học, Kỹ thuật viên Tin học và những ai muốn làm quen với ngôn 
ngữ lập trình đầy tính năng này. Nội dung của Giáo trình phù hợp với các đối tượng học 
viên và cơ cấu môn học hiện nay đang được giảng dạy tại Trung tâm Phát triển phần mềm - 
Ðại học Ðà Nẵng. Giáo trình được chia làm 9 Chương: 
Chương 1: Một số khái niệm mở đầu. Giúp học viên nắm vững các kiến thức cơ bản về 
lập trình, chương trình, thuật toán, các hệ đếm.... 
Chương 2: Giới thiệu Ngôn ngữ lập trình Visual Basic. Tìm hiểu một cách tổng quát về 
Ngôn ngữ lập trình Visual Basic, cách cài đặt chương trình vào bộ nhớ, cách thực thi một 
chương trình cũng như tìm hiểu một số khái niệm về đối tượng, điều khiển ,... 
Chương 3: Bước đầu lập trình với Visual Basic. Tìm hiểu một số vấn đề phục vụ cho 
việc viết một chương trình đơn giản đầu tiên như: cửa sổ soạn thảo mã lệnh, các kiểu dữ 
liệu, cách khai báo biến, mảng, phép toán và thứ tự ưu tiên của các phép toán, ... 
Chương 4: Các cấu trúc lệnh Visual Basic. Tìm hiểu các cấu trúc lệnh của Visual Basic 
như các câu lệnh điều kiện, các vòng lặp. 
Chương 5: Các điều khiển cơ bản. Tìm hiểu các điều khiển cơ bản của Visual Basic như 
Label, TextBox, CommandButton, CheckBox, OptionButton, ListBox, PictureBox... và áp 
dụng để giải quyết một số bài toán đơn giản. 
Chương 6: Chương trình con. Trình bày ưu điểm và phương pháp sử dụng chương trình 
con đồng thời giới thiệu một số chương trình con (hàm và thủ tục chuẩn) có sẵn của Visual 
Basic. 
Chương 7: Các điều khiển nâng cao. Tìm hiểu các điều khiển nâng cao của Visual Basic 
ngoài các điều khiển cơ bản như: CommonDialog, ImageList, ListView, TreeView, 
ProgressBar, ToolBar, StatusBar, cách tạo hệ thống Menu trong Visual Basic. 
Chương 8: Truy cập Cơ sở dữ liệu. Trình bày phương pháp truy cập Cơ sở dữ liệu trong 
Visual Basic sử dụng các đối tượng truy cập Cơ sở dữ liệu DAO (Data Acces Object), ADO 
(ActiveX Data Object) và RDO (Remote Data Object). 
Chương 9: Bài thực hành. Giới thiệu các bài thực hành tham khảo giúp cho học viên có 
thể tự thực hành sau khi đã nắm vững lý thuyết. Học viên còn có thể thực hành theo các ví 
dụ minh họa trong giáo trình này. 
Do thời gian học không nhiều, khối lượng kiến thức lại lớn hơn nữa các đối tượng học 
viên chưa có nhiều kinh nghiệm trong lập trình. Vì vậy để giúp học viên nắm được kiến 
thức cơ bản môn học, chúng tôi đã rất kỹ càng trong quá trình biên soạn, tham khảo nhiều 
tài liệu cũng như thực tế giảng dạy môn học Lập trình Visual Basic tại Trung tâm Phát triển 
Phần mềm - Ðại học Ðà Nẵng trong thời gian qua. Mặc dầu vậy, Giáo trình này chắc chắn 
sẽ không tránh khỏi thiếu sót. Chúng tôi rất mong nhận được sự góp ý chân tình của bạn đọc 
cũng như bạn bè đồng nghiệp gần xa. 
 TT. Phát triển phần mềm - Ðại học Ðà Nẵng 
 Ðịa chỉ: 41 Lê Duẩn - Tp. Ðà Nẵng 
 Email: sdc@ud.edu.vn 
GIAÏO TRÇNH LÁÛP TRÇNH VISUAL BASIC 
TRUNG TÁM PHAÏT TRIÃØN PHÁÖN MÃÖM - ÂAÛI HOÜC ÂAÌ NÀÔNG Trang: 2 
 CHƯƠNG I: MỘT SỐ KHÁI NIỆM MỞ ĐẦU 
Từ khi con người đã chế tạo thành công máy vi tính, máy vi tính chỉ có thể giúp con 
người thực hiện một số phép toán đơn giản như: cộng, trừ. Trong suốt quá trình phát triển 
máy vi tính đã không ngừng thay đổi cả về kích thước cũng như tốc độ tính toán ngày càng 
nhanh hơn. Từ những bài toán đơn giản ban đầu mà máy tính có thể thực hiện được, đến nay 
máy vi tính đã tham gia vào cuộc sống con người hầu như trên tất cả mọi lĩnh vực. Ðể thực 
hiện được những điều kỳ diệu đó con người đã tác động vào máy vi tính bằng một hoạt 
động mang tính trí tuệ cao đó là Lập trình. 
I. KHÁI NIỆM VỀ LẬP TRÌNH 
Lập trình là viết chương trình trên dựa trên một ngôn ngữ lập trình cụ thể nhằm giải 
quyết một vấn đề hoặc một bài toán được đặt ra mà máy tính có thể hiểu, thực hiện và cho 
ra kết quả. Sản phẩm của lập trình gọi là Chương trình, một chương trình lớn có thể được 
gọi là Phần mềm. Ðể lập trình, nhất là giải quyết các bài toán lớn nên trải qua các bước: 
- Phân tích vấn đề cần giải quyết: Nội dung vấn đề là gì? cần phải làm gì? 
- Xây dựng thuật toán và cấu trúc dữ liệu để giải quyết vấn đề: Làm như thế nào? 
- Viết chương dựa trên một ngôn ngữ lập trình đã chọn. 
- Chạy thử chương trình, sửa sai và hoàn thiện. 
- Bảo trì và nâng cấp chương trình. 
Như vậy máy tính được lập trình nó chỉ giải quyết được những bài toán mà cách giải 
quyết chúng đã được con người nghĩ ra, điều đó khẳng định rằng máy tính không có khả 
năng sáng tạo ra phương pháp giải quyết một bài toán. 
Lợi dụng tốc độ tính toán cực nhanh của mình (hàng chục triệu phép tính trên giây) máy 
tính ngày nay đã thay con người giải quyết một số bài toán rất hiệu quả, giải thoát con người 
khỏi một số công việc nhàm chán, mất rất nhiều thời gian và công sức. 
Tuy nhiên trong cuộc sống không phải bất cứ bài toán nào máy tính cũng có thể giải 
quyết được, có những bài toán con người thực hiện rất đơn giản nhưng rất khó hoặc không 
thể áp dụng bài toán đó cho máy tính thực hiện. Những bài toán như vậy gọi là những bài 
toán không thể giải được trên máy tính. 
Một bài toán có thể có nhiều phương pháp giải quyết khác nhau, vấn đề của người lập 
trình là phân tích để lựa chọn phương pháp giải quyết tốt nhất. Tốt nhất được hiểu trên các 
khía cạnh đó là thời gian thực hiện nhanh nhất, tiêu tốn bộ nhớ máy tính ít nhất và thời gian 
soạn thảo chương trình ít nhất. 
II. NGÔN NGỮ LẬP TRÌNH 
Ngôn ngữ lập trình là công cụ để viết chương trình điều khiển máy tính thực hiện các 
công việc theo ý muốn. Cùng với quá trình phát triển của máy tính, yêu cầu đòi hỏi đối với 
chương trình ngày càng cao cũng như để giảm bớt thời gian và công sức lập trình, các ngôn 
ngữ lập trình đã không ngừng phát triển từ những ngôn ngữ lập trình đơn giản đến nay loài 
người đang sử dụng những ngôn ngữ lập trình hiện đại, dễ lập trình và nhiều tính năng. 
Dựa theo trường phái và phong cách lập trình người ta có thể chia ngôn ngữ lập trình 
thành các loại sau: 
- Ngôn ngữ lập trình bậc thấp (Ví dụ: Assembly) 
- Ngôn ngữ lập trình hướng thủ tục (Ví dụ: Fortran, Algol 60, Cobol, Pascal, C, ...) 
GIAÏO TRÇNH LÁÛP TRÇNH VISUAL BASIC 
TRUNG TÁM PHAÏT TRIÃØN PHÁÖN MÃÖM - ÂAÛI HOÜC ÂAÌ NÀÔNG Trang: 3 
- Ngôn ngữ lập trình hướng đối tượng (Ví dụ: C++ , Java, ...). 
- Ngôn ngữ lập trình trực quan (Ví dụ: Visual Basic, Access, Delphi, ...). 
- Lập trình theo chủ đích (đang được Microsoft nghiên cứu phát triển). 
Mỗi ngôn ngữ lập trình có những thế mạnh và điểm yếu riêng. Ví dụ một số ngôn ngữ 
lập trình có tốc độ thực thi cao nhưng lại khó sử dụng, ngược lại một số ngôn ngữ lập trình 
tốc độ thực thi chậm nhưng bù lại là tính dễ sử dụng và giao diện chương trình đẹp hơn. Do 
vậy tuỳ thuộc vào đặc điểm và yêu cầu của từng bài toán cụ thể mà người lập trình lựa chọn 
ngôn ngữ lập trình cho hợp lý. 
III. THUẬT TOÁN 
Như đã biết để yêu cầu máy tính giải quyết một bài toán nào đó thì đầu tiên người lập 
trình phải biết được phương pháp giải quyết của bài toán đó và sau đó đòi hỏi phải có tư duy 
lập trình để giải quyết bài toán đó trên máy tính. 
Thuật toán, hay còn gọi là thuật giải (giải thuật), là tập hợp đặc trưng các trình tự lôgic 
và toán học đơn giản, được xác định rõ ràng, để theo đó giải quyết một vấn đề với một số 
bước nhất định. Như vậy có thể hiểu thuật toán là công cụ để biều diễn phương pháp giải 
quyết một bài toán bằng máy tính bằng cách chia nhỏ bài toán đó thành những thao tác đơn 
giản, dễ thực hiện và có trình tự hợp lý. Thuật toán đóng vai trò rất quan trọng bởi thông 
qua thuật toán người ta có thể hiểu được phương pháp giải quyết một bài toán. Một thuật 
toán phải thoã mãn ba điều kiện sau đây: 
- Các thao tác phải có tính khả thi (thực hiện được trên máy) và có trình tự xác định. 
- Mỗi thao tác phải cụ thể, rõ ràng và chỉ được hiểu theo một nghĩa duy nhất. 
- Thuật toán phải kết thúc sau một số bước hữu hạn. 
Có nhiều phương pháp để biểu diễn thuật toán khác nhau, nhưng thông dụng nhất là 
biểu diễn thuật toán bằng Sơ đồ khối và bằng ngôn ngữ giả. 
Ví dụ 1: Sơ đồ khối bài toán tìm giá trị lớn nhất trong 3 số a, b, c 
Begin 
Nhập a, b, c 
b>=c 
(a>=b) And (a>=c) 
max := b max := c 
In max 
End 
false (F) true (T) 
T F 
max := a 
Hình 1: Biểu diễn thuật toán bằng sơ đồ khối 
GIAÏO TRÇNH LÁÛP TRÇNH VISUAL BASIC 
TRUNG TÁM PHAÏT TRIÃØN PHÁÖN MÃÖM - ÂAÛI HOÜC ÂAÌ NÀÔNG Trang: 4 
Ví dụ 2: Sơ đồ khối bài toán giải phương trình bậc hai: ax2 + bx + c = 0 (a#0) 
Ví dụ 3: Biểu diễn một số bài toán bằng ngôn ngữ giả 
End 
Vä nghiãûm 
Begin 
Nháûp a, b, c 
Delta=b*b-4*a*c 
Delta<0 T F 
Delta>0 
T T 
 x1=(-b-sqrt(Delta))/(2*a) 
 x2=(-b+sqrt(Delta))/(2*a) x1,2 = -b/(2*a) 
In x1,x2 
Hình 2: Biểu diễn thuật toán bằng sơ đồ khối 
Thuáût toaïn: Tçm Max(a,b,c) 
Bàõt âáöu 
Âoüc (a,b,c) 
Nãúu (a>=b) vaì (a>=c) Thç 
Max=a 
Nãúu khäng thç 
Nãúu (b>=c) Thç 
Max=b 
Nãúu khäng thç 
Max=c 
Hãút nãúu 
Hãút nãúu 
In ra (Max) 
Kãút thuïc 
Thuáût toaïn: Giaíi pt báûc hai (a#0) 
Bàõt âáöu 
Âoüc (a,b,c); Delta=b*b-4*a*c 
Nãúu (Delta<0) Thç 
In ra (‘Phæång trçnh vä nghiãûm’) 
Nãúu khäng thç 
Nãúu (Delta=0) Thç 
x1_2 = -b/(2*a) 
In ra (‘pt coï nghiãûm keïp:’, x1_2) 
Nãúu khäng thç 
x1=(-b-SQRT(Delta))/(2*a) 
x2=(-b+SQRT(Delta))/(2*a) 
In ra (‘x1=’,x1); In ra (‘x2=’, x2); 
Hãút nãúu 
Hãút nãúu 
Kãút thuïc 
Hình 3: Biểu diễn thuật toán bằng Ngôn ngữ giả 
GIAÏO TRÇNH LÁÛP TRÇNH VISUAL BASIC 
TRUNG TÁM PHAÏT TRIÃØN PHÁÖN MÃÖM - ÂAÛI HOÜC ÂAÌ NÀÔNG Trang: 5 
IV. CÁC HỆ ĐẾM DÙNG TRONG MÁY TÍNH ĐIỆN TỬ 
IV.1. Các hệ đếm dùng trong máy tính điện tử 
Trong thực tế cuộc sống ta gặp các số được tạo bởi mười chữ số từ 0 đến 9, ta gọi đó là 
hệ đếm cơ số 10. Trong máy tính điện tử để cho tiện trong quá trình biểu diễn người ta đưa 
ra các hệ đếm cơ số khác. Hệ đếm cơ số 2 được tạo thành bởi 2 chữ số 0 và 1, hệ đếm cơ số 
8 được tạo thành bởi 8 chữ số từ 0 đến 7, hệ đếm cơ số 16 được tạo thành bởi các chữ số từ 
0 đến 9 và các chữ cái A, B, C, D, E, F đại diện cho các số 10, 11, 12, 13, 14 và 15. 
Trong máy tính người ta dùng trạng thái có xung hoặc điện áp cao để biểu diễn số một, 
trạng thái không xung hoặc điện áp thấp để biểu diễn số không do vậy hệ đếm cơ số 2 
thường được dùng để biểu diễn các trạng thái vật lý trong máy tính. Hệ đếm cơ số 2 cho 
phép dễ dàng thực hiện các phép toán nhưng dài dòng, dễ nhầm lẫn và sai sót. Ðể tránh 
nhược điểm này thông thường người ta dùng hệ đếm cơ số 8 hoặc 16 để biểu diễn. 
IV.2. Ðổi từ hệ đếm cơ số khác sang hệ đếm cơ số 10 
Giả sử có một hê đếm cơ số p (p>1) sử dụng p chữ số khác nhau a0, a1, a2, ..., ap-1 thì một 
số q bất kỳ trong hệ đếm cơ số này dạng: pn pn-1 ... p1 p0 p-1 p-2 ... p-m sẽ được đổi sang hệ 
đếm cơ số 10 nhờ cách viết tổng quát sau: 
q = pn 3 pn + pn-1 3 pn-1 + ... + p13 p1 + p03 p0 + p-13 p-1 + p-23 p-2 + ... + p-m3 p-m 
 = å
-=
´
n
mi
i
i pp 
Ví dụ: Ðổi số 268.78 trong hệ đếm cơ số 8 sang hệ đếm cơ số 10: 
268.78(8) = 23 82 + 63 81 + 83 80 + 73 8-1 + 83 8-2 = 185(10) 
IV.3. Ðổi từ hệ đếm cơ số 10 sang các hệ đếm cơ số khác 
Ðể đổi một số trong hệ đếm cơ số 10 bất kỳ sang hệ đếm cơ số p ta phải đổi riêng phần 
nguyên và đổi riêng phần lẻ, sau đó nối hai kết quả lại: 
a) Quy tắc đổi phần nguyên 
Ðể đổi phần nguyên của một số từ hệ 10 sang hệ p ta thực hiện phép chia liên tiếp số 
cần đổi và các thương số nhận được cho p (chia trong hệ 10) cho đến khi thương số bằng 0. 
Kết quả là các số dư lấy theo chiều ngược lại. 
Ví dụ: Ðổi phần nguyên hệ 10 của x = 1987 ra số nguyên hệ 2, 8 và 16: 
1990 (/2 = 995 dư 0), 995 (/2 = 497 dư 1), 497 (/2 = 248 dư 1), 248 (/2 = 124 dư 0), 124 
(/2 = 62 dư 0), 62 (/2 = 31 dư 0), 31 (/2 = 15 dư 1), 15 (/2 = 7 dư 1), 7 (/2 = 3 dư 1), 3 (/2 = 
1 dư 1), 1 (/2 = 0 dư 1). Lấy các số dư theo thứ tự ngược lại ta được: 11111000110 (2). 
Tương tự với phép chia cho 8 và 16 ta có: 1990(10) = 3706(8) và 1990(10) = 7C6(16) 
b) Quy tắc đổi phần lẻ 
Ðể đổi phần lẻ của một số từ hệ 10 sang hệ p, thực hiện phép nhân liên tiếp số cần đổi 
và các phần lẻ nhận được với p (trong hệ 10) cho đến khi phần lẻ bằng 0. Kết quả là các số 
phần nguyên viết theo thứ tự. 
Ví dụ: Ðổi phần lẻ hệ 10 của số x = 0.4375 ra số lẻ hệ 8 và 16: 
0.4375(10) (38) 3.5000 (38) 4.000. Lấy phần nguyên theo thứ tự: 0.34(8) 
0.3475(10) (316) 7.000. Lấy phần nguyên theo thứ tự: 0.7(16) 
Như vậy số 1990.4375 đổi ra các hệ 8 và 16 bằng cách nối hai kết quả chuyển đổi phần 
nguyên và phần lẻ ta được: 3706.34(8) và 7C6.7(16). 
GIAÏO TRÇNH LÁÛP TRÇNH VISUAL BASIC 
TRUNG TÁM PHAÏT TRIÃØN PHÁÖN MÃÖM - ÂAÛI HOÜC ÂAÌ NÀÔNG Trang: 6 
CHƯƠNG II: GIỚI THIỆU NNLT VISUAL BASIC 
I. GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH VISUAL BASIC 
I.1. Giới thiệu 
Máy tính sử dụng hệ điều hành Windows với giao diện người dùng đồ họa đã cách 
mạng hóa ngành công nghiệp vi tính, chúng chứng minh cho câu ngạn ngữ “Hình ảnh đáng 
giá ngàn lời nói”. Thay vì dấu nhắc C:\> đầy bí ẩn mà người dùng DOS từng gặp lâu nay, 
bạn được tiếp xúc với màn hình đầy các biểu tượng trực quan thông qua việc sử dụng chuột 
và hệ thống các Menu. 
Trước khi Visual Basic xuất hiện vào năm 1991, việc phát triển các ứng dụng Windows 
nặng nhọc hơn nhiều so với việc phát triển các ứng dụng trên DOS. Phát triển một ứng dụng 
Windows đòi hỏi những lập trình viên chuyên về C phải viết hàng trăm dòng mã lệnh cho 
một tác vụ đơn giản, đến các chuyên gia cũng phải bối rối. Ðó là lý do mà khi phát hành 
Visual Basic người ta đã hết lời ca ngợi. Với Visual Basic, việc lập trình dưới Windows 
không chỉ trở nên hiệu quả hơn và còn lý thú hơn. 
Visual Basic cho phép bổ sung các menu, hộp văn bản, nút lệnh, nút tuỳ chọn, các hộp 
kiểm tra, các hộp danh sách, thanh cuộn, các hộp tập tin và thư mục cho các cửa sổ trống. 
Bạn có thể dùng lưới để quản lý dữ liệu kiểu bảng. Bạn có thể truyền thông với các ứng 
dụng Windows khác, và có thể là quan trọng nhất, bạn sẽ có một phương pháp dễ dàng để 
người dùng điều kiểm và truy cập cơ sở dữ liệu. 
Kể từ lúc được phát hành đến nay Visual Basic đã không ngừng được cải tiến, nâng cấp 
qua nhiều phiên bản khác nhau. Phiên bản mới nhất của Visual Basic (phiên bản 6.0, tính 
đến thời điểm hiện tại) hỗ trợ thêm nhiều tính năng Internet hơn, hỗ trợ cho phát triển cơ sở 
dữ liệu tốt hơn, nhiều tính năng ngôn ngữ hơn giúp cho công việc lập trình dễ dàng hơn. 
I.2. Cài đặt Visual Basic vào máy 
Phiên bản Visual Basic 6.0 nằm trong bộ phần mềm Microsoft Visual Studio 6.0 của 
hãng Microsoft. Bộ Visual Studio đầy đủ gồm 5 đĩa CD tuy nhiên chỉ cần ít nhất là 2 đĩa 
CD - một dành cho các chương trình, một gồm các tài liệu. Ðể cài đặt Visual Basic thành 
công yêu cầu tối thiểu cấu hình phần cứng máy tính của bạn như sau: Bộ vi xử lý Pentium 
(166 MHz), 24 MB RAM, hệ điều hành Windows 95, 135 MB đĩa cứng còn trống (đối với 
bản Visual Basic 6.0 Enterprise Edition), 50 MB đĩa cứng còn trống (đối với bản Learning), 
màn hình VGA. 
Chạy tệp Setup.exe trong bộ Visual Studio để tiến hành cài đặt, thực hiện các bước còn 
lại theo hướng dẫn t ... 
4 Xor a Xor b =(a And Not b) Or (b And Not a) 
Hình 23: Các phép toán lôgíc trong Visual Basic. 
Tương tự phép toán quan hệ, phép toán Lôgic chỉ trả về kết quả là True hoặc False. Tính 
đúng sai của biểu thức Lôgic phụ thuộc vào tính đúng sai của các thành phần trong biểu 
thức. Trong Visual Basic một giá trị khác không được xem là đúng, ngược lại một giá trị 
bằng không được xem là sai. Bảng sau mô tả tính chất của các phép toán trên: 
A b a And b a b A Or b a Not a 
True True True True True True True False 
True False False True False True False True 
False True False False True True 
False False False 
False False False 
Hình 24: Minh họa các phép toán Lôgic. 
Phép toán And chỉ đúng khi tất cả các thành phần của nó đúng, chỉ ít nhất một thành 
phần sai thì phép toán And được xem là sai. Phép toán Or thì ngược lại, chỉ cần ít nhất một 
thành phần đúng thì phép toán Or được xem là đúng, khi tất cả các thành phần sai thì phép 
GIAÏO TRÇNH LÁÛP TRÇNH VISUAL BASIC 
TRUNG TÁM PHAÏT TRIÃØN PHÁÖN MÃÖM - ÂAÛI HOÜC ÂAÌ NÀÔNG Trang: 23 
toán Or được xem là sai. Phép toán Xor là một biểu thức được tạo bởi từ các phép toán And, 
Or và Not. 
Ví dụ: 
5 And 7 ð True And True ð True 
0 Or (5+4) ð False Or True ð True 
(a + b > c) And (b + c > a) And (a + c > b): Ðiều kiện để a, b, c là 3 cạnh tam giác 
(a = b) Or (a = c) Or (b = c): Ðiều kiện để tam giác ABC có 3 cạnh a, b, c cân 
(a^2+b^2=c^2) Or (a^2+c^2=b^2) Or (c^2+a^2=b^2): Ðiều kiện để ABC vuông 
Not ((a > b) And (a > c)): Ðiều kiện a không phải là cạnh lớn nhất của tam giác 
VII.4. Phép toán ghép (&) 
Phép toán ghép (&) dùng để ghép nhiều giá trị thuộc các loại dữ liệu khác nhau lại với 
nhau, kết quả có thể là một chuỗi hoặc một sộ Cú pháp như sau: 
bthức1 & bthức2 & bthức3 & ... & bthứcn 
Ví dụ: 
“Da Nang, thang “ & 10 & “/” & 2002 ð “Da Nang, thang 10/2002” 
123 & 456 ð 123456 
File1.Path & “\” & File1.FileName ð Thiết lập đường dẫn động 
VII.5. Phép toán điều kiện IIF 
Cú pháp: 
IIf (, , ) 
Thực hiện: Nếu đúng phép toán trả về , ngược lại nếu <điều 
kiện> sai trả về . 
Ví dụ: 
1) Tính giá trị lớn nhất hai số a, b: max = IIf (a>b, a, b) 
2) Tính giá trị lớn nhất ba số a, b, c: max = IIf( (a>b) And (a>c) , a , IIf(b>c, b,c) ) 
3) Xếp loại học lực dựa vào điểm trung bình: 
Xeploai=IIf(dtb>=8, “Giỏi”, IIf(dtb>=7, “Khá”, IIf(dtb>=5, “Trung bình”, “Yếu”))) 
VII.6 Thứ tự ưu tiên các phép toán 
Thứ tự thực hiện của các phép toán trong một biểu thức là vô cùng quan trọng. Ðể minh 
họa ta xét bài toán tìm hai nghiệm của phương trình bậc hai (ax2+bx+c=0, a#0): 
vaì
a2
bx1 ´
D--
=
a2
bx 2 ´
D+-
= 
Nếu ta viết một trong các cách sau là sai (sqrt(d) là hàm tính căn bậc hai của d): 
x1 = -b - sqrt(delta) / 2*a; x2 = (-b + sqrt(delta)) /2*a 
Một trong hai cách viết sau là đúng: 
x1 = (-b - sqrt(delta)) / (2*a); x2 = (-b + sqrt(delta)) / 2 / a 
Trong bảng sau các phép toán được liệt kê theo thứ tự mức ưu tiên từ cao đến thấp, các 
phép toán cùng mức ưu tiên thứ tự thực hiện từ trái sang phải: 
STT Phép toán Trình tự kết hợp 
1 () Cặp ngoặc sâu nhất tính trước 
2 ^ (lũy thừa) Trái qua phải 
3 - (đảo dấu) Trái qua phải 
GIAÏO TRÇNH LÁÛP TRÇNH VISUAL BASIC 
TRUNG TÁM PHAÏT TRIÃØN PHÁÖN MÃÖM - ÂAÛI HOÜC ÂAÌ NÀÔNG Trang: 24 
4 Not (phủ định) Trái qua phải 
5 *, / Trái qua phải 
6 \ (chia nguyên) Trái qua phải 
7 Mod (chia dư) Trái qua phải 
8 +, - Trái qua phải 
9 , >= Trái qua phải 
10 =, Trái qua phải 
11 And Trái qua phải 
12 Or Trái qua phải 
Hình 25: Thứ tự ưu tiên của các phép toán trong Visual Basic. 
Ví dụ: 
q ((6 * 5) + 4) * 3 ð (30 + 4) *3 ð 34 * 3 = 102 
q -4 ^ 2 ð - (4 ^ 2) ð -16 
q 96 / 4 * 2 ð 24 * 2 ð 48 
q 96 / 4 ^ 2 ð 96 / 16 ð 6 
q 4 * 2 + 16 / 8 + 2 ^ 3 ^ 4 ð 8 + 2 + 8 ^ 4 ð 8 + 2 + 4096 ð 4106 
q 5 = 4 And 5 = 5 ð False And True ð False 
q 5+3 > 5 And 6+3 > 3 And 2+5 > 4 ð True And True And True ð True 
q a And Not b Or b And Not a ð True And True Or False And False ð True And 
False ð False (với a = True, b = False) 
VIII. SỬ DỤNG HẰNG TRONG VISUAL BASIC 
Hằng là đối tượng mà giá trị của nó không thay đổi trong thời gian thực hiện chương 
trình. Để định nghĩa hàm ta sử dụng cú pháp: 
Const Tên hằng = Giá trị hằng 
Ví dụ: 
Const N = 100 ‘ Hằng nguyên 
Const SinhNhat = #21/10/1982# ‘ Hằng ngày tháng 
Bên cạnh các hằng do người sử dụng tự định nghĩa, trong Visual Basic còn có rất nhiều 
hằng được định nghĩa sẵn, các hằng này thường bắt đầu bởi “vb”. Bảng sau liệt kê một số 
hằng thường gặp: 
STT Tên hằng Ý nghĩa 
1 vbCrLf Ký tự xuống hàng, về đầu hàng 
2 vbKey0 ... vbKey9 Đại diện mã các phím số 0, 1, 2, ..., 9 
3 vbKeyA ...vbKeyZ Đại diện các phím chữ: A, B, .., Z 
4 vbEOF, vbBOF Báo hiệu kết thúc tệp và đầu tệp 
5 vbBlack, vbBlue, ... Thay thế cho các màu: Đen , đỏ, ... 
6 vbByte, vbBoolean, ... Đại diện cho các kiểu dữ liệu 
7 vbMonday, vbTuesday, ... Các ngày trong tuần 
8 vbArrow, vbCross, ... Các hình dạng của con trỏ 
9 vbKeyF1, vbKeyF2, ... Các phím chức năng: F1, F2, ..., F16 
10 vbTrue, vbFalse Các giá trị Lôgic 
11 vbOK, vbCancel, ... Các nút OK, Cancel, .. 
12 vbError Trường hợp bị lỗi 
GIAÏO TRÇNH LÁÛP TRÇNH VISUAL BASIC 
TRUNG TÁM PHAÏT TRIÃØN PHÁÖN MÃÖM - ÂAÛI HOÜC ÂAÌ NÀÔNG Trang: 25 
CHƯƠNG IV: CÁC CẤU TRÚC LỆNH VISUAL BASIC 
Sau khi đã học các khái niệm cơ bản về lập trình, làm quen với môi trường phát triển 
Visual Basic cũng như các khái niệm về đối tượng (Object), điều khiển (Control), kiểu dữ 
liệu (Data Type), khai báo biến, mảng, ... Trong bài học này ta tiếp tục tìm hiểu các cấu trúc 
lệnh trong Visual Basic. 
I. CÂU LỆNH ĐIỀU KIỆN 
I.1. Cú pháp dạng 1 
Cú pháp: 
If Then 
End If 
hoặc: If Then 
Cách thực hiện: 
Ðầu tiên máy sẽ kiểm tra . Nếu đúng máy sẽ thực hiện <Các 
câu lệnh>, máy sẽ không làm gì nếu như sai. Trong Visual Basic một giá trị 
khác 0 được xem là đúng, một giá trị bằng 0 được xem là sai. 
Ví dụ: 
Tìm 2 nghiệm của phương trình bậc hai (ax2 + bx + c = 0, a#0), nếu phương trình có hai 
nghiệm riêng biệt: 
delta=b^2 - 4*a*c 
If delta > 0 Then 
x1 = (-b - sqrt(delta)) / (2*a) ‘ Nghiệm x1 
x2 = (-b + sqrt(delta)) / (2*a) ‘ Nghiệm x2 
End If 
Cho một số nguyên n, nếu n chẵn thì tăng n lên một đơn vị: 
If n Mod 2 = 0 Then n=n+1 
I.2. Cú pháp dạng 2 
Cú pháp: 
If Then 
Else 
End If 
hoặc: If Then Else 
Cách thực hiện: 
Ðầu tiên máy sẽ kiểm tra . Nếu đúng máy sẽ thực hiện <Các 
câu lệnh 1>, ngược lại máy sẽ thực hiện . Trong trường hợp mỗi phần chỉ 
có một câu lệnh ta có thể dùng trường hợp dưới. Các câu lệnh điều kiện có thể lồng nhau 
nhiều cấp do vậy ta nên soạn thảo chương trình theo cấu trúc khối. 
Ví dụ: 
1) Tính giá trị lớn nhất trong hai số a và b 
GIAÏO TRÇNH LÁÛP TRÇNH VISUAL BASIC 
TRUNG TÁM PHAÏT TRIÃØN PHÁÖN MÃÖM - ÂAÛI HOÜC ÂAÌ NÀÔNG Trang: 26 
If a > b Then ‘ a là số lớn nhất 
max = a 
Else ‘ a không phải là số lớn nhất, b là số lớn nhất 
max = b 
End If 
hoặc: If a > b Then max = a Else max = b 
2) Tính giá trị lớn nhất trong ba số a, b và c 
If (a > b) And (a > c) Then ‘ nếu a>b và a>c thì a là số lớn nhất 
max = a 
Else ‘ a không phải là số lớn nhất, chỉ có thể là b hoặc c, phải kiểm tra tiếp. 
‘ Câu lệnh điều kiện sau là câu lệnh con của câu lệnh điều kiện ngoài. 
‘ Chú ý viết thụt vào theo cấu trúc khối. 
If b > c Then ‘ nếu b>c thì số lớn nhất là b 
max = b 
Else ‘ ngược lại c là số lớn nhất 
max = c 
End If 
End If 
3) Giải phương trình bậc hai (ax2+bx+c=0, a#0) 
delta = b^2 - 4*a*c ‘ Tính giá trị của biệt thức delta 
If delta < 0 Then 
‘ Phương trình vô nghiệm 
Else ‘ Phương trình có nghiệm 
If delta = 0 Then ‘ Phương trình có nghiệm kép 
x1 = -b / (2*a) 
Else ‘ Phương trình có 2 nghiệm phân biệt 
x1 = (-b - Sqrt(delta)) / (2*a) 
x2 = (-b + Sqrt(delta)) / (2*a) 
End If 
End If 
I.3. Cú pháp dạng 3 
Cú pháp: 
If Then 
ElseIf Then 
....... 
ElseIf Then 
[Else 
] 
End If 
Cách thực hiện: 
Ðầu tiên máy sẽ kiểm tra . Nếu đúng máy sẽ thực hiện 
và bỏ qua các câu lệnh còn lại, nếu điều kiện sai máy tiếp tục kiểm tra rồi 
thực hiện lặp lại các công việc tương tự như . Quá trình trên tiếp tục cho đến 
khi tất cả các điều kiện từ 1 đến n đều sai máy sẽ thực hiện các câu lệnh n+1. Nói tóm lại 
khi gặp câu lệnh dạng này máy sẽ lần lượt kiểm tra các điều kiện 1 đến n cho đến khi gặp 
GIAÏO TRÇNH LÁÛP TRÇNH VISUAL BASIC 
TRUNG TÁM PHAÏT TRIÃØN PHÁÖN MÃÖM - ÂAÛI HOÜC ÂAÌ NÀÔNG Trang: 27 
một điều kiện đúng và thực hiện các câu lệnh tương ứng với điều kiện đúng đó và bỏ qua 
các câu lệnh còn lại. Nếu tất cả các điều kiện đều sai máy sẽ thực hiện các câu lệnh n+1. 
Cú pháp dạng này thường được sử dụng trong trường hợp cần kiểm tra nhiều điều kiện, 
nếu sử dụng dạng 1 và dạng 2 câu lệnh trở nên rất phức tạp và khó hiểu bởi sự lồng nhau 
nhiều cấp của các câu lệnh. 
Ví dụ: 
1) Tính giá trị lớn nhất trong ba số a, b và c 
If (a > b) And (a > c) Then ‘ nếu a>b và a>c thì a là số lớn nhất 
max = a 
ElseIf b > c Then ‘ nếu b>c thì số lớn nhất là b 
max = b 
Else ‘ không phải a và b thì c là số lớn nhất 
max = c 
End If 
2) Giải phương trình bậc hai (ax2+bx+c=0, a#0) 
delta = b^2 - 4*a*c ‘ tính giá trị của biệt thức delta 
If delta < 0 Then 
‘ Phương trình vô nghiệm 
Else If delta = 0 Then ‘ Phương trình có nghiệm kép 
x1 = -b / (2*a) 
Else ‘ Phương trình có 2 nghiệm phân biệt 
x1 = (-b - Sqrt(delta)) / (2*a) 
x2 = (-b + Sqrt(delta)) / (2*a) 
End If 
3) Cho a, b, c là 3 cạnh của một tam giác, hãy xác định loại của tam giác đó? 
If (a = b) And (a = c) Then 
‘ Tam giác đều 
ElseIf (a = b) Or (b = c) Or (a = c) Then 
‘ Tam giác cân 
ElseIf (a^2 + b^2 = c^2) Or (b^2 + c^2 = a^2) Or (a^2 + c^2 = b^2) Then 
‘ Tam giác vuông 
Else 
‘ Tam giác thường 
End If 
II. VÒNG LẶP FOR 
Cú pháp: 
For = To [Step ] 
Next 
Cách thực hiện: 
Máy tính sẽ thực hiện lặp đi lặp lại ( - + 1) 
lần tương ứng chạy từ đến . Sau mỗi lần lặp <biến 
đếm> tăng đơn vị, giá trị mặc định của là 1, phần nằm trong cặp 
[ ] là phần tuỳ chọn. 
GIAÏO TRÇNH LÁÛP TRÇNH VISUAL BASIC 
TRUNG TÁM PHAÏT TRIÃØN PHÁÖN MÃÖM - ÂAÛI HOÜC ÂAÌ NÀÔNG Trang: 28 
Vòng lặp For là vòng lặp có số lần lặp xác định, người ta thường gọi tắt là vòng lặp xác 
định. Nếu muốn kết thúc vòng lặp For vào bất cứ thời điểm nào ta chỉ cần dùng câu lệnh 
Exit For. 
Ví dụ: 
1) Tính tổng: S = 1 + 2 + ... + n (sử dụng vòng lặp For) 
S = 0 ‘ biến S dùng để chứa tổng ban đầu phải đặt bằng không 
For i = 1 To n ‘ i là biến đếm chạy từ 1 đến n 
S = S + i ‘ tổng S mới = tổng S cũ + số i 
Next i 
2) Bài toán vừa gà vừa chó bó lại cho tròn, tổng cộng 36 con và có 100 chân. Hỏi có 
bao nhiêu gà, bao nhiêu chó? 
For i = 1 To 36 ‘ vòng lặp cho số gà 
For j = 1 To 36 ‘ vòng lặp cho số chó (2 vòng lặp lồng nhau) 
If (i + j = 36) And (i * 2 + j * 4 = 100) Then 
‘ nếu số gà + số chó =36 và tổng số chân là 100 thì 
Soga = i ‘ số gà = i 
Socho = j ‘ số chó =j 
End If 
Next j ‘ của vòng lặp For trong 
Next i ‘ của vòng lặp For ngoài 
III. VÒNG LẶP DO WHILE 
Cú pháp: 
Do While 
Loop 
Cách thực hiện: 
1) Kiểm tra , nhảy sang bước 2. 
2) Nếu đúng máy thực hiện rồi quay lại bước 1. Nếu <điều 
kiện> sai máy nhảy sang bước 3. 
3) Kết thúc vòng lặp. 
Khác với vòng lặp For, số lần lặp của vòng lặp Do While có thể không xác định được. 
Do While hoàn toàn có thể thay thế cho For nhưng ngược lại For không thể thay thế cho Do 
While trong một số trường hợp. Vòng lặp Do While có thể không được thực hiện lần nào 
nếu ngay từ đầu đã bị sai. 
Ví dụ: 
1) Tính tổng: S = 1 + 2 + ... + n (sử dụng Do While) 
S = 0 ‘ biến S chứa tổng 
i = 1 ‘ khởi động biến đếm vòng lặp i 
Do While i <= n ‘ chừng nào i <= n thì: 
S = S + i ‘ cộng thêm vào S giá trị i 
i = i + 1 ‘ tăng giá trị của biến đếm vòng lặp lên 1 đơn vị 
Loop 
(Chú ý: Câu lệnh i = i + 1 là rất quan trọng bởi không có nó giá trị của biến i không thay 
đổi làm điều kiện luôn đúng và dẫn tới vòng lặp vô tận - không kết thúc). 
GIAÏO TRÇNH LÁÛP TRÇNH VISUAL BASIC 
TRUNG TÁM PHAÏT TRIÃØN PHÁÖN MÃÖM - ÂAÛI HOÜC ÂAÌ NÀÔNG Trang: 29 
2) Cho n là một số nguyên dương hãy tính tổng tất cả các chữ số của n. Ví dụ: n=2110 
thì tổng các chữ số là: 2+1+1+0=4. 
S = 0 ‘ Biến S dùng để chứa tổng 
Do While n 0 ‘ chừng nào n khác không thì: 
S = S + n Mod 10 ‘ n Mod 10 là phép chia cho 10 lấy phần dư 
n = n \ 10 ‘ n\10 là phép chia n cho 10 lấy phần nguyên 
Loop 
(Chú ý: Bài toán này chỉ có thể được thực hiện bởi Do While, không thực hiện được với 
For bởi số các chữ số của n là không xác định) 
IV. VÒNG LẶP DO UNTIL 
Cú pháp: 
Do Until 
Loop 
Cách thực hiện: 
1) Kiểm tra , nhảy sang bước 2 
2) Nếu đúng thì sang bước 3, ngược lại máy thực hiện rồi 
quay lại bước 1. 
3) Kết thúc vòng lặp. 
Vòng lặp Do Until chỉ khác Do While ở chỗ: trong Do While là điều kiện 
để lặp còn trong Do Until là điều kiện để kết thúc. 
Ví dụ: 
1) Tính tổng: S = 1 + 2 + ... + n (sử dụng Do Until) 
S = 0 ‘ biến S chứa tổng 
i = 1 ‘ khởi động biến đếm vòng lặp i 
Do Until i > n ‘ thực hiện cho đến khi i > n 
S = S + i ‘ cộng thêm vào S giá trị i 
i = i + 1 ‘ tăng giá trị của biến đếm vòng lặp lên 1 đơn vị 
Loop 
2) Cho n là một số nguyên dương hãy kiểm tra n có phải là số đối xứng hay không. Ví 
dụ số 92529 là sô đối xứng. 
m = n ‘ m là biến tạm ban đầu nhận giá trị bằng n 
S = 0 ‘ biến S dùng để chứa giá trị số đảo ngược của n 
Do Until = 0 ‘ thực hiện cho đến khi n=0 
S = S*10 + n Mod 10 ‘ lấy S trước * 10 cộng với số dư của n chia cho 10 
m = m \ 10 ‘ m\10 là phép chia m cho 10 lấy phần nguyên 
Loop 
If S = n Then 
‘ n là số đối xứng! 
Else 
‘ n không phải là số đối xứng! 
End If 
GIAÏO TRÇNH LÁÛP TRÇNH VISUAL BASIC 
TRUNG TÁM PHAÏT TRIÃØN PHÁÖN MÃÖM - ÂAÛI HOÜC ÂAÌ NÀÔNG Trang: 30 
V. CÂU LỆNH SELECT CASE 
Câu lệnh điều kiện If ... Then ... thường trở nên rất phức tạp và khó hiểu khi có nhiều 
trường hợp cần phải kiểm tra điều kiện. Ðể khắc phục Visual Basic đưa ra câu lệnh Select 
Case. 
Cú pháp: 
Select Case 
Case 
Case 
.......... 
Case 
[Case Else 
] ‘ đây là phần tuỳ chọn 
End Select 
Cách thực hiện: 
Ðầu tiên, máy tính giá trị của . Sau đó lần lượt so khớp giá trị này với giá trị 
của các biểu thức trong các danh sách biểu thức. Nếu gặp trường hợp thoả mãn máy thực 
hiện tương ứng. Khi tất cả các danh sách biểu thức đều không thoả mãn 
máy thực hiện (nếu có Case Else ...). 
Ví dụ: 
1) Cho tháng m của năm y, cho biết tháng này có bao nhiêu ngày. Biết rằng trong một 
năm các tháng 1, 3, 5, 7, 8, 10, 12 có 31 ngày, các tháng 4, 6, 9, 11 có 30 ngày, riêng tháng 
2 nếu năm nhuận (năm chia hết cho 4) có 29 ngày, năm bình thường có 28 ngày. 
Select Case m 
Case 1, 3, 5, 7, 8, 10, 12 ‘ Các tháng này có 31 ngày 
Songay = 31 
Case 4, 6, 9, 11 ‘ Các tháng này có 30 ngày 
Songay = 30 
Case Else 
If (y mod 4=0) Then Songay=29 Else Songay=28 
End Select 
2) Xếp loại học lực dựa vào điểm trung bình dtb 
Select Case dtb 
Case Is >= 8 ‘ Is đại diện cho dtb 
xeploai = “giỏi” 
Case Is >= 7: xeploai = “Khá” ‘ nếu một lệnh có thể viết trên một hàng dùng “:” 
Case Is >= 5: xeploai = “Trung bình” 
Case Else: 
xeploai = “Yếu” 
End Select 

File đính kèm:

  • pdfgiao_trinh_lap_trinh_visual_basic_phan_1.pdf