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.
30 trang |
Chia sẻ: huongthu9 | Lượt xem: 508 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo trình Lập trình Visual Basic, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
)
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 trên màn hình cho đến khi kết thúc cài đặt. Sau khi hoàn tất quy trình cài
đặt, Visual Basic được đưa vào trong nhóm chương trình riêng trên menu Start hay trong
một nhóm chương trình mang tên Microsoft Visual Studio 6.0 trên mục Programs (tuỳ thuộc
Visual Basic có phải là một phần trong Visual Studio hay không). Bạn có thể dùng các kỹ
thuật Explorer của Windows để di chuyển Visual Basic đến một vị trí khác trong Start
menu.
Trong một vài trường hợp nếu không có biểu tượng chương trình Visual Basic trên
menu Start người dùng có thể chạy trực tiếp file VB6.exe, file này thông thường nằm trong
thư mục: “C:\Program Files\Microsoft Visual Studio\VB98\”.
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: 7
Hình 4: Chạy Visual Basic từ menu Start
I.3. Làm quen với môi trường phát triển Visual Basic
Sau khi khởi động Visual Basic xuất hiện hộp thoại New Project. Nếu người dùng muốn
tạo một chương trình mới thì nhắp nút Open ngược lại muốn mở một chương trình có sẵn
thì chọn tab Existing:
Hình 5: Hộp thoại New Project
Trong trang New Project liệt kê tất cả các kiểu ứng dụng Visual Basic, kiểu ứng dụng
thông thường là Standad EXE cho phép dịch ra chương trình thực thi *.exe. Người dùng có
thể tạo mới một chương trình bằng cách vào menu File - New Project, hoặc mở một chương
trình có sẵn bằng cách vào File - Open Project hoặc nhắp chuột vào biểu tượng tương ứng
trên thanh công cụ ( ).
Giao diện sau khi mở một chương trình mới như sau:
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: 8
Hình 6: Môi trường phát triển của Visual Basic.
Cửa sổ có tiêu đề là Form1 nằm giữa Hình 6 là Form (biểu mẫu) khởi tạo là nơi đặt các
đối tượng được tạo từ thanh công cụ như nút lệnh (Command Button), hộp văn bản
(TextBox), danh sách (ListBox), hộp hình ảnh (PictureBox), ...
Phía bên trái biểu mẫu Form1 là thanh công cụ (Toolbox) chứa các điều khiển
(Controls) sẽ được đặt lên trên biểu mẫu. Mặc định trên hộp công cụ chỉ xuất hiện những
điều khiển cơ bản, ngoài những điều khiển này Visual Basic còn có rất nhiều các điều khiển
khác, cách thêm vào cũng như sử dụng sẽ được đề cập ở phần sau.
Phía bên phải biểu mẫu Form1 là 3 cửa sổ khác. Cửa sổ trên cùng có tên là Project
Explorer là nơi hiển thị cấu trúc của một chương trình (Project) Visual Basic. Ngay kế dưới
là cửa sổ Properties hiển thị các thuộc tính của các đối tượng trên Form. Dưới cùng là cửa
sổ Form Layout dùng để điều chỉnh vị trí xuất hiện của Form trên màn hình khi thực hiện
chương trình.
Tất cả các cửa sổ trên Hình 6 đều được thiết kế động, kích thước cũng như vị trí xuất
hiện của mỗi cửa sổ đều có thể thay đổi, một cửa sổ có thể xuất hiện hoặc không. Trong một
số trường hợp ta nên đóng các cửa sổ không cần thiết để mở rộng diện tích màn hình. Nếu
muốn các cửa sổ Project Explorer, Properties, Form Layout hoặc ToolBox (thanh công cụ)
xuất hiện trở lại ta vào menu View - chọn các mục tương ứng hoặc nhắp các biểu tượng
tương ứng trên thanh Toolbar ( , , , ).
I.4. Chương trình Visual Basic
a) Cấu trúc một chương trình Visual Basic
Một chương trình Visual Basic thường gọi là một Project bao gồm các Form, các
Module, các Class, các UserControl, ... Cấu trúc của một chương trình Visual Basic đượ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: 9
hiển thị trong cửa sổ Project Explorer (Hình 6), mỗi đơn vị cấu tạo nên chương trình Visual
Basic có một tên khác nhau và được lưu lại trên đĩa dưới dạng một tệp tin.
b) Cách thực hiện chương trình
Có nhiều cách thực hiện một chương trình Visual Basic trong môi trường phát triển
Visual Basic khác nhau:
- Nhấn phím F5
- Vào menu Run – Start.
- Nhắp vào biểu tượng ( ) trên thanh công cụ.
Ta cũng có thể chạy một chương trình Visual Basic độc lập với môi trường phát triển
bằng một trong hai cách sau:
- Dịch chương trình thành một File *.exe bằng cách: vào File - Make Project1.exe.
Chương trình *.exe chỉ thực thi được trên máy tính có cài đặt Microsoft Visual Basic
bởi vì trong quá trình thực thi chương trình có sử dụng một số thư viện khác của
Visual Basic.
- Tạo bộ cài đặt chương trình bằng cách sử dụng công cụ tạo bộ cài đặt tự động của
Visual Basic: vào menu Add-Ins chọn mục Add-In Manager, trong cửa sổ xuất hiện
chọn các mục như hình sau:
Hình 7: Chọn công cụ tạo bộ cài đặt tự động của Visual Basic.
Sau khi chọn xong và nhắp OK, vào lại menu Add-Ins chọn mục Package and
Deployment Wizard... sau đó thực hiện các bước còn lại theo sự hướng dẫn của chương
trình. Bộ cài đặt có thể sử dụng để cài chương trình trong bất kỳ máy tính nào kể cả khi máy
đó không cài Visual Basic bởi các thư viện chương trình sử dụng đã được đóng gói trong bộ
cài đặt.
c) Cách lưu trữ một chương trình Visual Basic
Một chương trình Visual Basic thường được tạo nên bởi nhiều thành phần như Form,
Module, Class, UserControl, ... mỗi thành phần sẽ được lưu trữ dưới dạng một File trên đĩa
và một File chung có phần mở rộng là *.vbp. Do vậy khi lưu trữ lần đầu tiên một chương
trình có n thành phần sẽ yêu cầu người dùng nhập tên n+1 lần. Khi lưu trữ mỗi chương trình
nên tạo một thư mục để lưu trữ các File của chương trình vào đó.
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: 10
Hình 8: Một chương trình có cấu trúc như hình trên khi lưu trữ sẽ hỏi tên 7+1=8 lần.
I.5. Khái niệm về đối tượng trong Visual Basic
Có nhiều phương pháp để định nghĩa đối tượng (Object) khác nhau. Trong Visual Basic
có thể xem đối tượng là một thực thể xuất hiện trên Form được tạo từ các điều khiển (mỗi
điều khiển là một thành phần trên thanh công cụ). Mỗi đối tượng bao gồm 3 thành phần:
a) Các thuộc tính (Properties)
Các thuộc tính (Properties) cho biết các đặc điểm của đối tượng, mỗi đối tượng được
xác định bởi rất nhiều thuộc tính, Ví dụ: Tên gọi (name), vị trí (top, left), chiều rộng (width),
chiều cao (right), màu sắc (backcolor), ... Các thuộc tính của đối tượng thường được hiển thị
trong cửa sổ Properties. Sau đây là một số thuộc tính thường gặp của đối tượng:
STT Thuộc tính Ý nghĩa
01 Name Tên của đối tượng, các đối tượng trên cùng 1 Form phải có tên khác nhau (trừ trường hợp mảng đối tượng).
02 Height, Width Chiều rộng và chiều cao của đối tượng, đơn vị mặc định là Twip (567 Twips = 1 cm).
03 Left, Top Xác định vị trí của đối tượng trên Form cách lề trái và cách đỉnh Form bao nhiêu Twip.
04 Caption Tiêu đề thể hiện của các đối tượng, với Form thì đó là tiêu đề của Form, cần phân biệt nó với thuộc tính Name.
05 Visible Cho biết đối tượng có xuất hiện hay không tương ứng với các giá trị là True hoặc False.
06 Enable
Nhận True hoặc False, nếu là False Visual Basic sẽ không
đáp ứng bất cứ một sự kiện (Event) nào liên quan đến đối
tượng đó, đối tượng vẫn xuất hiện nhưng mờ đi và không
hoạt động.
07 Font Xác định Font và kiểu chữ thể hiện cho một số đối tượng có liên quan đến việc hiển thị văn bản.
08 BackColor, ForceColor
Xác định màu nền và màu chữ thể hiện cho một số đối
tượng.
09 Text Chứa nội dung dưới dạng chuỗi ký tự cho phép người dùng hiệu chỉnh hoặc lựa chọn trên đối tượng.
10 MousePoint, MouseIcon
Xác định kiểu của con trỏ chuột khi nó di chuyển qua đối
tượng
Hình 9: Một số thuộc tính thường gặp của đối tượng.
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: 11
Ta có thể thay đổi trực tiếp giá trị của mỗi thuộc tính đối tượng trong cửa sổ Properties
vào thời điểm thiết kế chương trình hoặc truy cập đến thuộc tính của một đối tượng vào thời
điểm chạy chương trình thông qua cú pháp:
Tên đối tượng . Thuộc tính
Ví dụ:
- Ðể gấp đôi chiều rộng của 1 Form:
Form1.Width = Form1.Width * 2
Form1.Left = 0
Form1.Top = 0
- Ðể đặt màu nền và màu chữ cho đối tượng Text1:
Text1.ForceColor = vbCyan
Text1.BackColor = RGB(0, 255, 255)
- Ðể đặt Font chữ cho nội dung văn bản hiển thị của Text1:
Text1.Font.Name = "Tahoma"
Text1.Font.Size = 12
Text1.Font.Bold = True
Text1.Font.Underline = True
b) Các phương thức (Methods)
Các phương thức (Methods) của đối tượng cho biết các hoạt động của đối tượng. Các
hoạt động thường gặp của đối tượng là: Di chuyển (Move), Làm tươi (Refresh), Nhận Focus
(SetFocus), ...Các phương thức của đối tượng được gọi lúc thực thi chương trình thông qua
cú pháp:
Tên đối tượng. Phương thức [(Danh sách các đối số)]
(Chú ý: trong cặp dấu [ ] là phần tuỳ chọn, có thể xuất hiện hoặc không)
Ví dụ:
- Gấp đôi bề rộng của đối tượng Text1 và di chuyển nó đến góc trái trên của Form:
Text1.Form1.Move 0, 0, Form1.Width * 2
- Liên tục thay đổi tiêu đề của đối tượng Label1 bằng các chữ số từ 1 đến 1000:
For i = 1 To 1000
Label1.Caption = CStr(i)
Label1.Refresh ‘ Phương thức không có danh sách đối số
Next
c) Các sự kiện (Events)
Sự kiện là đoạn chương trình mô tả các phản ứng của đối tượng khi bị tác động từ bên
ngoài bởi người dùng. Ứng với mỗi loại tác động sẽ có một sự kiện tương ứng. Các sự kiện
thường gặp là: Nhắp chuột (Click), nhắp đúp chuột (Double click), phím nhấn (Key press),
chuột di chuyển (Mouse move), ...
STT Sự kiện Mô tả
01 Click, DblClick Xảy ra khi nhắp chuột hoặc nhắp đúp chuột lên đối tượng.
02 KeyPress, KeyDown, KeyUp
Xảy ra khi nhấn phím và nhả phím
03 MouseDown, MouseUp,
Xảy ra khi chuột nhấn, chuột nhả và chuột di chuyển
qua đối tượng.
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: 12
MouseMove
04 Change Xảy ra khi nội dung của đối tượng bị thay đổi bởi người dùng.
05 GotFocus, LostFocus Xảy ra khi đối tượng nhận Focus hoặc mất Focus
06 DragDrop, DragOver
Xảy ra khi kéo một đối tượng và thả trên một đối
tượng khác hoặc kéo một đối tượng qua một đối
tượng khác.
Hình 10: Một số sự kiện thường gặp của đối tượng.
Sau đâu là cú pháp xây dựng một sự kiện:
Private | Public Sub Tênđốitượng_Tênsựkiện ([Danh sách đối số])
End Sub
Ví dụ:
- Sự kiện Click của nút Command1 (để tính n!). Ðiều đó có nghĩa rằng khi người dùng
Click vào nút Command1 máy sẽ thực hiện tính n!.
Private Sub Command1_Click()
Dim i As Byte ‘ Đây là phần chú thích của chương trình
Dim kq As Long ‘ Phần chú thích được đặt sau dấu
kq = 1
For i = 1 To N
kq = kq * i
Next i
Text1.Text=Str(kq)
End Sub
- Chuyển tất cả các ký tự được nhập vào đối tượng Text1 thành chữ hoa và loại bỏ các
ký tự trắng bằng cách cài đặt sự kiện KeyPress của đối tượng Text1:
Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase$(Chr$(KeyAscii)
If KeyAscii = Asc(" ") Then KeyAscii = 0
End Sub
- Dùng sự kiện LostFocus để kiểm tra việc nhập dữ liệu vào đối tượng Text1 có phải
kiểu ngày tháng hay không?
Private Sub Text1_LostFocus() ‘ Sự kiện không có đối số
If Not IsDate(Text1.Text) Then ‘ Nếu không phải là ngày tháng
MsgBox(“Ngày tháng không hợp lệ !”)
Text1.SetFocus ‘ Hãy nhập lại
End If
End Sub
d) Xem các thành phần của đối tượng
Một đối tượng trong Visual Basic thường có rất nhiều thành phần bao gồm thuộc tính
(Properties), phương thức (Methods) và sự kiện (Events). Mặt khác lại có rất nhiều các đối
tượng khác nhau, vì vậy để giảm bớt gánh nặng cho người lập trình Visual Basic đưa ra
chức năng Object Browser. Với chức năng này tất cả các thành phần của đối tượng được liệt
kê đầy đủ và chú thích rõ ràng. Ðể kích hoạt chức năng này bạn chỉ cần nhắp chuột vào biểu
tượng Object Browser ( ) trên thanh Toolbar:
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: 13
Hình 11: Cửa sổ Object Browser, xem các thành phần của đối tượng.
Sau đó gõ tên của điều khiển cần xem vào danh sách thứ 2 từ trên xuống rồi Enter, cửa
sổ phía dưới sẽ liệt kê tất cả các thành phần của đối tượng. Các thuộc tính tương ứng với
biểu tượng hình bàn tay ( ), phương thức ứng với hộp màu xanh ( ) còn sự kiện tương
ứng với biểu tượng tia chớp màu vàng ( ). Trên Hình 11 là danh sách các thành phần của
điều khiển ListBox.
e) Các quy tắc đặt tên cho đối tượng
Trong Visual Basic mỗi khi một đối tượng được tạo ra Visual Basic sẽ gán cho nó một
tên mặc định. Tên mặc định thường là tên của điều khiển tạo nên đối tượng đó ghép với các
số thứ tự 1, 2,... Ví dụ: Text1, Text2,...Command1, Command2, ...VSCroll1, VSCroll2, ...
Picture1, Picture2, ... Trong lập trình để dễ quản lý các đối tượng ta không nên sử dụng các
tên mặc định mà đặt tên theo quy tắc: 3 ký tự đầu của tên là tên viết tắt của điều khiển tạo ra
đối tượng đó (Hình 12) các ký tự còn lại là tên gợi nhớ của đối tượng.
Tên điều khiển Tên viết tắt Tên điều khiểu Tên viết tắt
CommandButton cmd Data dat
TextBox txt HScrollBar hsb
Label lbl VSCrollBar vsb
PictureBox pic DriveListBox drv
OptionButton opt DirListBox dir
CheckBox chk FileListBox fil
ComboBox cbo Line lin
ListBox lst Shape shp
Timer tmr OLE ole
Frame fra
Form frm
Hình 12: Tên viết tắt của các điều khiể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: 14
Ví dụ: Trên Form ta dùng một đối tượng thuộc điều khiển TextBox để chứa họ tên ta đặt
tên cho đối tượng đó là: txtHoten (txt là tên viết tắt của TextBox, Hoten là tên gợi nhớ của
đối tượng). Tương tự ta có các tên khác: cmdOK (nút OK), chkGioitinh (hộp chọn giới tính),
lstDantoc (danh sách các dân tộ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: 15
CHƯƠNG III: BƯỚC ÐẦU LẬP TRÌNH VISUAL BASIC
Sau khi đã tìm hiểu các khái niệm mở đầu về lập trình cũng như làm quen với môi
trường phát triển Visual Basic, bạn đã có cảm nhận về dáng vẻ của ứng dụng Visual Basic.
Ðể bước đầu có thể lập trình với Visual Basic thì nội dung chương này và chương tiếp theo
sẽ đóng một vai trò rất quan trọng đặc biệt là các bạn kinh nghiệp lập trình còn thiếu.
I. PHÂN TÍCH ỨNG DỤNG VISUAL BASIC
Khác với nhiều ngôn ngữ lập trình trước đây, một chương trình là một tập hợp các câu
lệnh có một dòng khởi đầu và một dòng kết thúc, khi máy thực hiện chương trình các câu
lệnh sẽ được thực hiện từ trên xuống dưới thì ngôn ngữ lập trình Visual Basic chủ yếu xử lý
mã lệnh để đáp ứng các sự kiện (Event). Các dòng lệnh thi hành được trong Visual Basic bắt
buộc phải ở trong thủ tục hoặc hàm, các dòng mã lệnh thi hành bị cô lập sẽ không làm việc.
Về căn bản, dù bạn giỏi một ngôn ngữ lập trình truyền thống hơn, bạn cũng không nên
ép buộc các chương trình Visual Basic phải theo đúng khuôn mẫu. Nếu bạn áp đặt những
thói quen lập trình đã học từ các ngôn ngữ lập trình cũ trên các chương trình Visual Basic,
bạn có thể sẽ gặp các vấn đề.
II. CỬA SỔ SOẠN THẢO MÃ LỆNH
Bên cạnh Form là nơi giúp người lập trình thiết kế giao diện, thì cửa sổ Code chính là
nơi giúp người lập trình soạn thảo phần mã lệnh, phần mã lệnh chính là phần quan trọng
nhất vì nó điều khiển việc thực hiện của chương trình.
Hình 13: Cửa sổ Code trong Visual Basic (phần chính giữa).
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: 16
Hình 13 trình bày cửa sổ Code trong Visual Basic. Bạn có thể mở cửa sổ Code từ cửa sổ
thiết kế Form bằng một trong các cách sau:
- Nhắp đúp vào Form hoặc đối tượng trên Form.
- Nhắp vào nút View Code từ cửa sổ Project hoặc nhấn phím F7.
Trong cửa sổ Code phía trên có hai hộp danh sách còn phía dưới là khu vực để soạn thảo
mã lệnh. Hộp danh sách kéo xuống bên trái (Hình 14) gọi là hộp Object (Object Box) liệt kê
tất cả các đối tượng có trên Form (biểu mẫu) và một đối tượng có tên là General giữ mã lệnh
chung có thể được mọi thủ tục sử dụng gắn liền với Form:
Hình 14: Hộp danh sách Object trong cửa sổ Code.
Hộp danh sách thả xuống bên phải (Hình 14) thường được gọi là hộp danh sách
Procedure (Proc Box) hiển thị tất cả các sự kiện được nhận biết bởi đối tượng đang được
chọn trong hộp danh sách Object bên trái.
Hình 15: Hộp danh sách Procedure trong cửa sổ Code.
Nếu bạn đã viết một sự kiện thì tên của sự kiện đó sẽ được in đậm trong hộp danh sách
Procedure. Nhấp bất cứ một sự kiện nào được liệt kê trong hộp này, Visual Basic sẽ hiển thị
sự kiện tương ứng trong cửa sổ Code và chuyển con trỏ tới đó.
Ðể tiện trong quá trình soạn thảo mã lệnh, Visual Basic đưa ra một tính năng hữu ích
gọi là IntelliSence. Với tính năng này Visual Basic sẽ tự động hiển thị các thông tin hữu ích
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: 17
về đối tượng mà bạn đang làm việc. Trên Hình 16 là cửa sổ hiển thị các thông tin về hàm
MsgBox:
Hình 16: Hiển thị các thông tin về hàm MsgBox bởi tính năng IntelliSence.
Hoặc sau khi gõ tên của đối tượng và dấu chấm, Visual Basic hiển thị một danh sách liệt
kê tất cả các thuộc tính (Properties) và phương thức (Method) của đối tượng đó. Ðiều này
giúp người lập trình không cần phải nhớ nhiều các thuộc tính và phương thức của đối tượng
mặt khác nó cũng giúp cho công việc soạn thảo chương trình được nhanh hơn bởi vì trong
trường hợp này người lập trình chỉ cần gõ một vài ký tự đầu tiên cho đến khi thanh chọn
nằm tại thành phần cần soạn thảo và nhấn phím Tab hoặc SpaceBar, thành phần đó sẽ xuất
hiện trong mã lệnh mà không cần phải gõ các ký tự còn lại.
Hình 17: Hiển thị danh sách các thành phần của đối tượng Label1.
III. CÂU LỆNH TRONG VISUAL BASIC
Các câu lệnh trong Visual Basic không phân biệt chữ hoa, chữ thường và khoảng trống
trừ khi chúng nằm trong chuỗi ký tự. Tuy nhiên ngôn ngữ này cũng có các quy ước riêng,
nó chuyển các ký tự đầu tiên của các từ khoá thành chữ in hoa và thường bổ sung thêm các
khoảng trống cho dễ đọc. Ví dụ: bất kể bạn gõ hàm Print thành PRInt, print, ...khi nhấn
Enter nó sẽ đổi thành Print.
Trong Visual Basic quy định một dòng lệnh có thể có tối đa là 1023 ký tự nhưng một
câu lệnh dài thường khó đọc vì vậy Visual Basic cho phép một câu lệnh có thể ở trên nhiều
dòng khác nhau bằng cách thêm một ký tự trống và một ký tự dấu gạch dưới (_) vào cuối
dòng cần xuống hàng.
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: 18
Ví dụ:
Private Sub Form_Load()
k = MsgBox("Nhập tên cần tìm kiếm:", vbOKCancel, _
"Tìm kiếm theo họ tên")
End Sub
Chú thích là phần giải thích mã lệnh cho mọi người đọc chương trình có thể hiểu được.
Chú thích không được xử lý như một câu lệnh. Trong Visual Basic phần còn lại của một
dòng kể từ dấu nháy đơn trên (‘) được xem là chú thích, trong cửa sổ Code chú thích sẽ có
màu xanh khác với màu của các mã lệnh khác.
Ví dụ:
Private Sub Command1_Click()
Dim d As Integer ‘ Khai báo các biến cục bộ
d = b ^ 2 - 4 * a * c ‘ Tính giá trị biệt thức Delta
If (d > 0) Then ‘ Phương trình bậc hai có 2 nghiệm!
' Tính giá trị của hai nghiệm tại đây!
End If
End Sub
IV. CÁC KIỂU DỮ LIỆU TRONG VISUAL BASIC
Ðể lập trình cần thiết phải lưu trữ dữ liệu trong bộ nhớ, có nhiều loại dữ liệu khác nhau
như: số nguyên, số thập phân, chuỗi ký tự, ngày tháng,...Từ đó để quy định về cấu trúc và
giá trị dữ liệu cũng như cách biểu diễn và xử lý dữ liệu người ta đưa ra khái niệm Kiểu dữ
liệu (Data Type). Trong Visual Basic có 14 kiểu dữ liệu chuẩn:
IV.1. Kiểu số nguyên
Kiểu số nguyên là kiều dữ liệu chỉ chứa được số nguyên. Trong Visual Basic có 3 kiểu
số nguyên sau:
Tên kiểu Phạm vi Kích thước
Byte 04255 1 Byte
Integer -32768432767 2 Byte
Long -2.147.483.64842.147.483.647 4 Byte
Hình 18: Các kiểu dữ liệu số nguyên trong Visual Basic.
IV.2. Kiểu số thập phân
Cũng như các kiểu số nguyên khác nhau về khoảng các trị, các số dấu chấm thập phân
có các kiểu khác nhau tùy vào độ chính xác cũng như độ lớn của chúng. Có hai kiểu số thập
phân:
Tên kiểu Ðộ chính xác Phạm vi Kích thước
Single 7 chữ số -3.4´1038 ¸ 3.4 ´1038 4 Byte
Double 16 chữ số -1.8´10308 ¸ 1.8 ´10308 8 Byte
Hình 19: Các kiểu dữ liệu số thập phân trong Visual Basic.
Với độ chính xác là 7 số hay 16 chữ số thì chỉ có 7 hoặc 16 chữ số đầu là chính xác, các
chữ số còn lại cũng có thể chính xác hoặc không chính xác. Tuy độ chính xác bị hạn chế
nhưng phạm vi khoảng xác định của các kiểu dữ liệu này lên đến 38 chữ số (Single) hoặc
300 chữ số (Double). Các phép toán dựa trên các kiểu số thập phân thường chậm hơn trên
các kiểu số nguyê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: 19
IV.3. Kiểu xâu ký tự String
Kiểu xâu ký tự String dùng để lưu trữ một ký tự hoặc một chuỗi các ký tự. Trên lý
thuyết các biến chuỗi có thể chứa khoảng 2 tỉ ký tự. Một trong những ứng dụng thông
thường nhất của các biến chuỗi là lấy thông tin chứa trong hộp văn bản (TextBox). Ví dụ:
nếu bạn có một đối tượng tên là Text1 và một biến S có kiểu String, khi đó ta có thể viết:
S=Text1.Text.
IV.4. Kiểu Booolean
Dùng kiểu dữ liệu Boolean khi bạn cần dữ liệu là True hoặc False. Trong thực tiễn lập
trình kiểu dữ liệu này được coi là tốt hơn so với sử dụng các số nguyên cho các giá trị True
và False.
IV.5. Các kiểu dữ liệu khác
a) Kiểu Curency
Là một kiểu dữ liệu mới đối với cả lập trình viên kinh nghiệm. Nó được thiết kế để tránh
một vài vấn đề kế thừa trong việc chuyển đổi từ các phân số nhị phân sang phân số thập
phân. Các phép toán sẽ chính xác trong khoảng 4 ký tự bên phải dấu chấm thập phân và 15
ký tự bên trái dấu chấm thập phân. Mặc dầu tốc độ tính toán còn chậm nhưng đây là kiểu
biến ưa thích dễ dùng trong các tính toán tài chính với bất cứ kích cỡ hợp lý nào.
b) Kiểu Date
Cho bạn một cách tiện dụng để lưu trữ thông tin về thời gian cho bất cứ thời điểm nào từ
ngày 01/01/100 đến 31/12/9999. bạn cần bao bọc phép toán cho biến Date với hai dấu #.
Ví dụ:
Date=#26/08/78#
Date=#Jan 1, 2000#
Date=#January 1. 2000#
Như có thể thấy trong các ví dụ trên, Visual Basic rất thoải mái cho dạng thức bạn sử
dụng để mô tả Date. Nếu bạn không gộp thời giờ trong ngày, Visual Basic giả định là lúc
nửa đêm. Bạn có thể dùng AM/PM thông thường cho giờ hoặc đồng hồ 24 giờ như các ví dụ
sau:
Date=#December 31, 1999 11:59PM#
Date=#December 31, 1999 23:59#
c) Kiểu Variant
Kiểu Variant được bổ sung cho Visual Basic từ phiên bản 2. Nó có thể chứa được tất cả
dữ liệu Visual Basic khác nhau trong một nơi. Nếu bạn không báo cho Visual Basic biết
kiểu dữ liệu của một biến, nó sẽ sử dụng kiểu dữ liệu này. Bất kể kiểu dữ liệu là: số,
ngày/giờ, chuỗi, ...kiểu Variant đều có thể lưu chúng. Visual Basic tự động thực hiện các
việc chuyển đổi kiểu dữ liệu lưu trữ trong biến Variant thành các kiểu dữ liệu khác, như vậy
bạn không phải lo về kiểu dữ liệu nào được lưu trong kiểu dữ liệu Variant.
Nhưng thật ra kiểu dữ liệu Variant cũng có những nhược điểm. Dường như thuận tiện
khi một biến có thể lưu trữ bất kỳ kiểu dữ liệu nào. Rắc rối là bạn không thể luôn luôn dựa
vào Visual Basic chuyển đổi dữ liệu lưu trữ trong Variant theo cách bạn mong muốn. Ngoài
ra, việc dựa vào các chuyển đổi tự động sẽ dẫn đến rắc rối trong lập trình vì chúng làm cho
các chương trình có nhiều lỗi tiềm ẩn khó phát hiện, chương trình chạy chậm hơn và chiếm
nhiều bộ nhớ hơ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: 20
V. SỬ DỤNG BIẾN
Biến là thành phần dùng để lưu trữ dữ liệu trong lập trình, do có nhiều loại dữ liệu cần
lưu trữ khác nhau như số, chuỗi, ... nên người ta đưa ra nhiều kiểu dữ liệu khác nhau. Trong
Visual Basic cho phép dùng biến mà không cần khai báo kiểu, trong trường hợp này chúng
được xem là có kiểu dữ liệu Variant. Như đã nói ở trên việc sử dụng kiểu dữ liệu Variant
cũng gặp các rắc rối do vậy tất cả các biến sử dụng nên khai báo với kiểu dữ liệu phù hợp.
V.1. Khai báo biến
a) Dùng phương pháp nhận dạng kiểu
Thêm các ký hiệu đại diện cho mỗi kiểu dữ liệu vào cuối tên của biến để nhận dạng kiểu
dữ liệu của biến. Tuy nhiên một số kiểu dữ liệu như Date, Boolean, ... không có ký tự đại
diện. Bảng sau đây liệt kê một số ký hiệu đại diện:
STT Ký hiệu Kiểu dữ liệu đại diện
1 $ String
2 % Integer
3 & Long Integer
4 ! Single
5 # Double
6 @ Currency
Hình 20: Các ký hiệu nhận dạng kiểu trong Visual Basic.
Ví dụ:
Hoten$ = Text1.Text ‘ Biến chứa họ tên có kiểu là String
Tuoi% = 3 ‘ Biến chứa tuổi có kiểu dữ liệu là Integer
DiemTB! = 8.34 ‘ Biến chứa điểm trung bình có kiểu là Single
b) Dùng cú pháp Dim
Dùng cú pháp sau để khai báo biến:
Dim Tênbiến As TênkiểuDữliệu
Ví dụ:
Dim Year As Integer ‘ Biến Year có kiểu Integer
Dim Rate As Currency ‘ Biến Rate có kiểu Currency
Dim Name As String ‘ Biến Name có kiểu String
Mỗi câu lệnh Dim nên khai báo cho một biến, bạn có thể kết hợp các khái báo trên cùng
một dòng:
Dim Year As Integer, Rate As Currency, Name As String
Chú ý: Nếu bạn khai báo 3 biến nguyên trên cùng một dòng theo cách: Dim X, Y, Z As
Integer, thì chỉ có Z là biến nguyên còn X và Y mặc định là Variant. Bạn cũng có thể dùng
các mục nhận dạng kiểu để khai báo: Dim X%, Y%, Z%.
V.2. Phạm vi sử dụng của biến
Một chương trình Visual Basic được tạo bởi từ nhiều thành phần khác nhau như: Form,
Module, Class, UserControl, ... Xét với một thành phần người ta đưa ra khái niệm Biến toàn
cục và Biến cục bộ. Biến cục bộ là các biến được khai báo bên trong thủ tục (Sub), hàm
(Function) hoặc sự kiện, các biến còn lại được coi là biến toàn cục. Trong khi biến toàn cục
có thể sử dụng ở bất cứ chỗ nào thì biến cục bộ chỉ được phép sử dụng bên trong thủ tụ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: 21
hàm hoặc sự kiện mà nó được khai báo. Ví dụ xem đoạn chương trình sau nằm trong một
Form:
Dim s1#, s2#, kq# ‘ Biến toàn cục s1, s2, kq
Dim PhepToan As String ‘ Biến toàn cục PhepToan
‘ Điều khiển Click của đối tượng Command1 ========
Private Sub Command1_Click(Index As Integer)
Dim a As Double, b As Double, x As Double ‘ Các biến cục bộ
Dim N As Byte ‘ Các biến cục bộ
Dim gt As Long ‘ Các biến cục bộ
.........
End Sub
‘ Hàm (Function) tính n giai thừa ===============
Private Function GiaiThua(n As Byte) As Long
Dim i As Byte ‘ Các biến cục bộ
Dim kq As Long ‘ Các biến cục bộ
.........
End Function
Trên đây ta chỉ xét việc sử dụng biến trong một thành phần, tuy nhiên trong một số
trường hợp ta muốn chia sẻ giá trị của biến qua các thành phần khác nhau ta sử dụng từ
khoá Public trong khai báo biến:
Public Tênbiến As TênkiểuDữliệu
Khi đó từ thành phần này ta có thể truy cập đến biến được khai báo Public trong thành
phần khác theo cú pháp: Tênthànhphần.Tênbiến
Nếu muốn biến có thể sử dụng ở mọi thành phần của chương trình ta khai báo biến với
từ khóa Global:
Global Tênbiến As TênkiểuDữliệu
VI. SỬ DỤNG MẢNG
Mảng là một tập hợp các biến có cùng tên , cùng kiểu dữ liệu. Các phần tử của mảng
nằm kề nhau trong bộ nhớ. Mảng có thể là mảng một chiều hoặc mảng nhiều chiều. Ðể khai
báo mảng một chiều ta sử dụng cú pháp sau:
Dim Tênmảng(Chỉsốđầu To Chỉsốcuối) As TênkiểuDữliệu
Ví dụ: Dim m(1 To 50) As Byte ‘ Khai báo mảng m gồm 50 phần tử kiểu Byte
Tương tự, ta có cú pháp khai báo mảng nhiều chiều:
Dim Tênmảng(Chỉsốđầu1 To Chỉsốcuối1, Chỉsốđầu2 To
Chỉsốcuối2, ... ) As TênkiểuDữliệu
Ví dụ: Dim mm(1 To 50, 1 To 50) As Integer ‘ Khai báo mảng 2 chiều mm 50 x 50
Ðể truy cập đến một thành phần của mảng: Tênmảng(chỉsố1, [chỉsố2, ...])
Ví dụ: m(9), mm(4,3)
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: 22
VII. CÁC PHÉP TOÁN VÀ THỨ TỰ ƯU TIÊN CỦA CHÚNG
VII.1. Các phép toán số học
STT Phép toán Mô tả Ví dụ
1 + Phép cộng 10 + 5 ð 15
2 - Phép trừ 10 - 9 ð 1
3 * Phép nhân 10 * 9 ð 90
4 / Phép chia 14 / 5 ð 2.8
5 ^ Phép lũy thừa 3 ^ 3 ð 27
6 \ Chia lấy phần nguyên 14 \ 5 ð 2
7 Mod Chia lấy phần dư 14 Mod 5 ð 4
Hình 21: Các phép toán số học trong Visual Basic.
VII.2. Các phép toán quan hệ
STT Phép toán Mô tả Ví dụ
1 Không bằng A B
2 < Nhỏ hơn A < B
3 <= Nhỏ hơn hoặc bằng A <= B
4 > Lớn hơn A > B
5 >= Lớn hơn hoặc bằng A >= B
6 = Bằng nhau A = B
Hình 22: Các phép toán quan hệ trong Visual Basic.
Các phép toán quan hệ chỉ trả về kết quả là đúng (True) hoặc sai (False). Nếu True biểu
thức quan hệ được xem là đúng, ngược lại biểu thức quan hệ được xem là sai.
VII.3. Các phép toán Lôgic
STT Phép toán Mô tả
1 And Phép toán And (và): a And b
2 Or Phép toán Or (hoặc): a Or b
3 Not Phép toán phủ định: Not (a)
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
Các file đính kèm theo tài liệu này:
- giao_trinh_lap_trinh_visual_basic.pdf