Giáo trình Lập trình Visual Basic (Phần 1)
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.
Tóm tắt nội dung tài liệu: 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 ... 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:
- giao_trinh_lap_trinh_visual_basic_phan_1.pdf