Giáo trình Lập trình Visual Basic

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.

pdf30 trang | Chia sẻ: huongthu9 | Lượt xem: 400 | Lượt tải: 0download
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:

  • pdfgiao_trinh_lap_trinh_visual_basic.pdf