Giáo trình Lập trình căn bản - Trường Đại học Công nghệ Sài Gòn
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Lập trình căn bản - Trường Đại học Công nghệ Sài Gòn", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- giao_trinh_lap_trinh_can_ban_truong_dai_hoc_cong_nghe_sai_go.pdf
Nội dung text: Giáo trình Lập trình căn bản - Trường Đại học Công nghệ Sài Gòn
- MỤC LỤC MỤC LỤC 1 Chương 1 Giới thiệu ngôn ngữ Visual Basic. 3 1. Giới thiệu 3 2. Cấu hình máy 3 3. Cài đặt Visual Basic 4 4. Khởi động 4 5. Cửa sổ làm việc khi chọn Standard.exe 5 5.1. Thanh tiêu đề 5 5.2. Thanh Menu 5 5.3. Thanh công cụ 5 5.4. Hộp công cụ (ToolBox) 6 5.5. Cửa sổ Properties Window 6 5.6. Form Layout Window 7 5.7. Project Explorer Window 7 6. Các lệnh trong menu File 7 7. Biên dịch chương trình thành file *.exe 8 Chương 2 Biểu mẫu và một số điều khiển thông dụng 10 1. Các khái niệm cơ bản 10 2. Biểu mẫu (Form) 11 2.1. Khái niệm 11 2.2. Thuộc tính 11 2.3. Phương thức 11 2.4. Sự kiện 12 3. Các bước xây dựng một chương trình 12 4. Một số điều khiển thông dụng 13 4.1. Nhãn (Label) 13 4.2. Hộp văn bản (Textbox) 13 4.3. Nút lệnh (command button) 13 5. Tạo và chạy chương trình 14 Chương 3 Các phép toán và kiểu dữ liệu cơ bản 17 1. Các phép toán và các ký hiệu 17 1.1. Phép gán 17 1.2. Các phép toán số học 17 1.3. Các phép toán luận lý 18 1.4. Các phép toán so sánh 18 1.5. Phép & 18 1.6. Phép like 19 1.7. Các ký hiệu 19 2. Các kiểu dữ liệu cơ bản 19 3. Biến 21 3.1. Khái niệm 21 3.2. Phân loại biến 22 3.3. Khai báo biến 23 4. Hằng 24 4.1. Khái niệm 24 4.2. Khai báo hằng 24 5. Mảng 25 6. Cú pháp lập trình 25 Chương 4 Các lệnh và hàm cơ bản 26
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin 1. Lệnh rẽ nhánh 26 1.1. Lệnh If 26 1.2. Lệnh Select Case 27 2. Lệnh lặp 28 2.1. Lệnh For 28 2.2. Lệnh Do 30 2.3. Lệnh While 32 3. Các lệnh và hàm cơ bản 32 3.1. Lệnh End 32 3.2. Lệnh Exit 32 3.3. Lệnh Msgbox 32 3.4. Go Sub Return 33 3.5. Goto 34 3.6. On Error Goto nhãn 34 3.7. Các hàm chuyển kiểu 35 3.8. Các hàm toán học 36 3.9. Các hàm kiểm tra kiểu dữ liệu 36 3.10. Các hàm thời gian 37 3.11. Các hàm xử lý chuỗi 39 3.12. Các hàm khác 41 Chương 5 Thủ tục và hàm 43 1. Thủ tục 43 1.1. Khái niệm 43 1.2. Phân loại 43 1.3. Cấu trúc một thủ tục 43 1.4. Xây dựng một thủ tục 44 1.5. Gọi thực hiện thủ tục 46 2. Hàm 47 2.1. Định nghĩa 47 2.2. Cấu trúc một hàm 47 2.3. Xây dựng một hàm 48 2.4. Gọi hàm 48 3. Sự kiện 50 3.1. Giới thiệu 50 3.2. Các sự kiện của đối tượng 50 4. Truyền tham số 53 4.1. Truyền tham trị 53 4.2. Truyền tham biến 54 4.3. Tham số tuỳ chọn 56 Chương 6 Thiết Kế BIểU MẫU DÙNG CÁC ĐIềU KHIểN 57 1. Phân loại điều khiển 57 2. Sử dụng các điều khiển 57 2.1. Listbox 57 2.2. Combobox 60 2.3. Checkbox 61 2.4. Option Button 61 2.5. Timer 62 2.6. Hscroll 63 2.7. Vscroll 63 2.8. Picture Box 63 2.9. Image 64 2.10. Shape 65 Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 2
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin Chương 1 Giới thiệu ngôn ngữ Visual Basic. 1. Giới thiệu VB được giới thiệu lần đầu tiên vào năm 1991, tiền thân là ngôn ngữ lập trình Basic trên HĐH DOS. Tuy nhiên, lúc bấy giờ VB chưa được nhiều người người tiếp nhận. Mãi cho đến năm 1992, khi phiên bản 3.0 ra đời với rất nhiều cải tiến so với các phiên bản trước đó, VB mới thật sự trở thành một trong những công cụ chính để phát triển các ứng dụng trên Windows. Các phiên bản sau đó của VB, như phiên bản 4.0 ra đời năm 1995, phiên bản 5.0 ra đời năm 1996 và gần đây nhất là phiên bản 6.0 ra đời năm 1998 với các tính năng ngày càng được nâng cao đã khiến mọi người công nhận VB hiện là một trong những công cụ chính để phát triển các ứng dụng trên Windows. Visual Basic 6.0 cho phép người dùng tiếp cận nhanh cách thức lập trình trên môi trường Windows. * Ưu điểm: Tiết kiệm được thời gian và công sức so với một số ngôn ngữ lập trình có cấu trúc khác vì bạn có thể thiết lập các hoạt động trên từng đối tượng được VB cung cấp. Khi thiết kế chương trình có thể thấy ngay kết quả qua từng thao tác và giao diện khi thi hành chương trình. Cho phép chỉnh sửa dễ dàng, đơn giản. Làm việc với các điều khiển mới (ngày tháng với điều khiển MonthView và DataTimePicker, các thanh công cụ có thể di chuyển được CoolBar, sử dụng đồ họa với ImageCombo, thanh cuộn FlatScrollBar, ). Làm việc với cơ sở dữ liệu. Các bổ sung về lập trình hướng đối tượng. Khả năng kết hợp với các thư viện liên kết động DLL. * Nhược điểm: Yêu cầu cấu hình máy khá cao. Chỉ chạy được trên môi trường Win95 trở lên. 2. Cấu hình máy Cấu hình máy tối thiểu: Microsoft Windows 95 trở lên hoặc là Microsoft Windows NT Workstation 4.0 trở lên. Tốc độ CPU 66 MHz trở lên. Màn hình VGA hoặc màn hình có độ phân giải cao được hỗ trợ bởi Microsoft Windows. 16 MB RAM cho Microsoft Windows 95 hoặc 32MB RAM cho Microsoft Windows NT Workstation. Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 3
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin 3. Cài đặt Visual Basic Sử dụng chương trình Setup để cài đặt VB6. Chương trình Setup này còn cài đặt các tập tin cần thiết để xem tài liệu trên đĩa CD MSDN (Microsoft Developer Network). Nếu cần, người dùng có thể cài đặt riêng phần tài liệu và ví dụ mẫu của Visual Basic lên máy tính. 4. Khởi động Từ menu Start chọn Programs, Microsoft Visual Basic 6.0 chọn Microsoft Visual Basic 6.0. Khi đó màn hình đầu tiên hiển thị như hình dưới đây: Hình 1-1. Màn hình khởi động Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 4
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin 5. Cửa sổ làm việc khi chọn Standard.exe Hình 1-2. Cửa sổ làm việc của VB khi chọn Standard.exe 5.1. Thanh tiêu đề 5.2. Thanh Menu 5.3. Thanh công cụ Thanh công cụ là tập hợp các nút bấm mang biểu tượng thường đặt dưới thanh menu. Các nút này đảm nhận các chức năng thông dụng của thanh menu (New, Open, Save ). Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 5
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin 5.4. Hộp công cụ (ToolBox) Hộp công cụ chứa các biểu tượng tương ứng với những đối tượng điều khiển chuẩn bao gồm nhãn, hộp văn bản, nút lệnh Ngoài các điều khiển có sẵn trong VB còn có các điều khiển mở rộng khác được chứa trong tập tin với phần mở rộng là .OCX. Các điều khiển chuẩn có sẵn trong VB không thể gỡ bỏ khỏi ToolBox, các điều khiển mở rộng có thể được thêm vào và được gỡ khỏi ToolBox. Hình 1-3. Hộp công cụ ToolBox 5.5. Cửa sổ Properties Window. Mỗi một thành phần, điều khiển đều có nhiều thuộc tính. Mỗi một thuộc tính lại có một hoặc nhiều giá trị. Cửa sổ Properties cho phép người dùng xem, sửa đổi giá trị các thuộc tính của điều khiển nhằm giúp điều khiển hoạt động theo đúng mục đích của người sử dụng. Hình 1-4. Cửa sổ Properties Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 6
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin 5.6. Form Layout Window. Đây chính là cửa sổ trình bày biểu mẫu cho phép định vị trí của một hoặc nhiều biểu mẫu trên màn hình khi chương trình ứng dụng được thi hành. Để định vị một biểu mẫu trên màn hình bằng cách dùng chuột di chuyển biểu mẫu trong cửa sổ Form Layout. Nếu ta không định vị các biểu mẫu thì vị trí của biểu mẫu trên màn hình lúc thiết kế cũng là vị trí khởi động của biểu mẫu khi thực thi. Hình 1-5. Cửa sổ Form Layout 5.7. Project Explorer Window. Project Explorer trong VB6 giúp quản lý và định hướng nhiều đề án.VB cho phép nhóm nhiều đề án trong cùng một nhóm. Người dùng có thể lưu tập hợp các đề án trong VB thành một tập tin nhóm đề án với phần mở rộng .vbp. Project Explorer có cấu trúc cây phân cấp như cây thư mục trong cửa sổ Explorer của hệ điều hành. Các đề án có thể được coi là gốc của cây, các thành phần của đề án như biểu mẫu, module là các nút của cây. Khi muốn làm việc với thành phần nào thì ta có thể nhấn đúp lên thành phần đó trên cửa sổ Project Explorer để vào cửa sổ viết code cho thành phần đó. Hình 1-6. Cửa sổ Project Explorer 6. Các lệnh trong menu File. New Project: Mở một đề án mới. Open Project: Mở một đề án đã tồn tại. Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 7
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin Add Project: Thêm vào đề án một đề án đã có hoặc một đề án mới. Remove Project: Gỡ bỏ đề án đang làm việc. Save Form1: Lưu Form1 dưới dạng tập tin *.Frm. Save Form1 As: Lưu tập tin Form1 với một tập tin mới dưới dạng *.Frm. Save Project: Lưu đề án thành tập tin *.vbp. Save Project as: Lưu đề án thành một tập tin mới *.vbp. Print: Thực hiện in Form chương trình. Print Setup: Định dạng trang in cho Form. Make exe: Dịch một chương trình ra tập tin thi hành .exe Make Project Group: Nhóm nhiều đề án lại thành một nhóm. Exit: Thoát khỏi Visual Basic 7. Biên dịch chương trình thành file *.exe Sau khi đề án đã hoàn thành, người lập trình có thể biên dịch thành tập tin thực thi được. Cách tiến hành như sau: Bước 1: Chọn Form mở đầu cho ứng dụng bằng cách: từ menu Project chọn Project Properties, một hộp thoại xuất hiện: Hình 1-7. Hộp thoại Project Properties Chọn Tab General, chọn Form khởi động ứng dụng trong combo box Startup Object. Ví dụ chọn form ftong2so. Bước 2: Từ menu File, chọn Make EXE Một hộp thoại xuất hiện cho phép nhập vào tên của tập tin thực thi (chỉ cần gõ tên tập tin, VB sẽ tự động thêm phần mở rộng .EXE) Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 8
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin Hình 1-8. Hộp thoại Make Project Nhấn vào nút Options để mở hộp thoại Project Properties và điền tên của ứng dụng vào ô Title, ta có thể ghi chú thông tin cho từng phiên bản trong phần Version Information. Ta có thể chọn Auto Increment để VB tự động tăng số Revision mỗi lần ta tạo lại tập tin EXE cho dự án. Đặt tiêu đề cho ứng dụng Hình 1-9. Hộp thoại Project Properties – Đặt tiêu đề và phiên bản cho ứng dụng Cuối cùng, nhấn OK để trở về hộp thoại Make Project và nhấn OK để tạo file *.exe cho ứng dụng. Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 9
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin Chương 2 Biểu mẫu và một số điều khiển thông dụng 1. Các khái niệm cơ bản. Điều khiển: Các thành phần có sẵn để người lập trình tạo giao diện tương tác với người dùng. Mỗi điều khiển thực chất là một đối tượng, do vậy nó sẽ có một số điểm đặc trưng cho đối tượng, chẳng hạn như các thuộc tính, các phương thức và các sự kiện. Thuộc tính: Các đặc trưng của một điều khiển tạo nên dáng vẻ của điều khiển đó. Phương thức: Các điều khiển có thể thực thi một số tác vụ nào đó, các tác vụ này được định nghĩa sẵn bên trong các phương thức (còn gọi là chương trình con: hàm, thủ tục), người lập trình có thể gọi thực thi các phương thức này nếu cần. Sự kiện: là hành động của người dùng tác động lên ứng dụng đang thực thi. Ví dụ: - Nhấn phím bất kỳ trên bàn phím; Nhấp chuột. Các thành phần giao diện có khả năng đáp ứng lại sự kiện. Chẳng hạn khi nhấp chuột vào button, lúc đó button nhận biết được sự kiện này; hay như textbox nhận biết được sự kiện bàn phím tác động lên nó. Một ứng dụng trên Windows thường được thực hiện nhờ vào việc đáp ứng lại các sự kiện của người dùng. Lập trình sự kiện: Các thành phần giao diện có khả năng nhận biết được các sự kiện từ phía người dùng. Tuy nhiên khả năng đáp ứng lại các sự kiện được thực hiện bởi người lập trình. Khi một thành phần giao diện được sử dụng, người lập trình phải xác định chính xác hành động của thành phần giao diện đó để đáp ứng lại một sự kiện cụ thể. Lúc đó người lập trình phải viết đoạn mã lệnh mà đoạn mã lệnh này sẽ được thực thi khi sự kiện xảy ra. Chẳng hạn, trong ứng dụng Paint của Windows; khi người sử dụng nhấp chuột vào nút vẽ hình elip sau đó dùng chuột vẽ nó trên cửa sổ vẽ, một hình elip được vẽ ra. Trong lập trình sự kiện, một ứng dụng được xây dựng là một chuỗi các đáp ứng lại sự kiện. Tất cả các hành động của ứng dụng là đáp ứng lại các sự kiện. Do vậy người lập trình cần phải xác định các hành động cần thiết của ứng dụng; phân loại chúng; sau đó viết các đoạn mã lệnh tương ứng. Khi người dùng không tác động vào ứng dụng, ứng dụng không làm gì cả. Khi người dùng nhập dữ liệu vào các ô nhập Họ và tên, Địa chỉ; sự kiện bàn phím xảy ra trên các ô nhập. Tuy nhiên, ứng dụng vẫn không làm gì cả vì không có mã lệnh nào đáp ứng các sự kiện này. Khi người dùng nhấp nút chọn Ghi đĩa, ứng dụng tìm kiếm trong mã lệnh của mình thấy có đoạn mã lệnh đáp ứng lại sự kiện này; lúc đó đoạn mã lệnh được thực thi. Tương tự như vậy đối với nút chọn In giấy. Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 10
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin Cách xác lập các thuộc tính và các phương thức trong chương trình . . [( )] Tên điều khiển (thuộc tính Name) Đây là thuộc tính xác định tên của điều khiển trong ứng dụng. Tên này được đặt theo quy tắc: o Tên có thể dài từ 1 - 40 ký tự. o Tên phải bắt đầu với ký tự chữ, có thể chữ hoa hay thường. o Sau ký tự đầu tiên, tên có thể chứa ký tự, số hay dấu gạch dưới. Ví dụ: Num, StudentCode, Class12A2 là những tên hợp lệ. 345, 7yu là nhữg tên không hợp lệ. 2. Biểu mẫu (Form) 2.1. Khái niệm Chương trình ứng dụng giao tiếp với người dùng thông qua các biểu mẫu (hay còn gọi là cửa sổ, xuất phát từ chữ Form hay Windows); các điều khiển (Control) được đặt lên bên trên giúp cho biểu mẫu thực hiện được công việc đó. Biểu mẫu là các cửa số được lập trình nhằm hiển thị dữ liệu và nhận thông tin từ phía người dùng. 2.2. Thuộc tính Name: thuộc tính này là một định danh nhằm xác định tên của biểu mẫu là gì? Sử dụng thuộc tính này để truy xuất đến các thuộc tính khác cùng với phương thức có thể thao tác được trên biểu mẫu. Caption: chuỗi hiển thị trên thanh tiêu đề của biểu mẫu. Icon: hình icon được hiển thị trên thanh tiêu đề của biểu mẫu, nhất là khi biểu mẫu thu nhỏ lại. WindowState: xác định biểu mẫu sẽ có kích thước bình thường (Normal=0), hay Minimized (=1), Maximized (=2). Font: xác lập Font cho biểu mẫu. Thuộc tính này sẽ được các điều khiển nằm trên nó thừa kế. Tức là khi ta đặt một điều khiển lên biểu mẫu, thuộc tính Font của điều khiển ấy sẽ tự động trở nên giống y của biểu mẫu. BorderStyle: xác định dạng của biểu mẫu. 2.3. Phương thức Move: di chuyển biểu mẫu đến tọa độ X,Y: Move X, Y Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 11
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin 2.4. Sự kiện Form_Initialize: Sự kiện này xảy ra trước nhất và chỉ một lần thôi khi ta tạo ra thể hiện đầu tiên của biểu mẫu. Ta dùng sự kiện Form_Initialize để thực hiện những gì cần phải làm chung cho tất cả các thể hiện của biểu mẫu này. Form_Load: Sự kiện này xảy ra mỗi lần ta gọi thể hiện một biểu mẫu. Nếu ta chỉ dùng một thể hiện duy nhất của một biểu mẫu trong chương trình thì Form_Load coi như tương đương với Form_Initialize. Ta dùng sự kiện Form_Load để khởi tạo các biến, điều khiển cho các thể hiện của biểu mẫu này. Form_Activate: Mỗi lần một biểu mẫu được kích hoạt (active) thì một sự kiện Activate phát sinh. Ta thường dùng sự kiện này để cập nhật lại giá trị các điều khiển trên biểu mẫu. Form_QueryUnload: Khi người sử dụng chương trình nhấp chuột vào nút X phía trên bên phải để đóng biểu mẫu thì một sự kiện QueryUnload được sinh ra. Đoạn chương trình con dưới đây mô tả thủ tục xử lý sự kiện QueryUnload. Private Sub Form_QueryUnload(Cancel As Integer,UnloadMode As Integer) End Sub Sự kiện này cho ta khả năng hủy bỏ hành động đóng biểu mẫu bằng cách đặt lại Cancel là 1. Form_Resize: Sự kiện này xảy ra mỗi khi biểu mẫu thay đổi kích thước. 3. Các bước xây dựng một chương trình Để xây dựng một chương trình ứng dụng cần thực hiện theo các bước sau đây: Bước 1: Phân tích bài toán Là quá trình tìm hiểu bài toán, xác định các dữ kiện nhập, dữ kiện xuất và đi tìm một giải thuật thích hợp nhất. Bước này cần thực hiện trên giấy cho rõ ràng để tạo thói quen lập trình tốt. Bước 2: Thiết kế giao diện Người lập trình phải thiết kế giao diện thích hợp cho việc nhập, xuất dữ liệu, cần chú ý đến cách trang trí, cách bố trí, thứ tụ, màu sắc, Bước 3: Thiết kế chương trình Là bước viết chương trình dựa trên giải thuật đã xây dựng ở bước 1, chạy thử chương trình để kiểm tra, phát hiện các lỗi đặc biệt và sửa chữa. Bước 4: Cải tiến Đây là bước hoàn thiện chương trình ở mức độ cao hơn. Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 12
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin 4. Một số điều khiển thông dụng 4.1. Nhãn (Label) Nhãn (còn gọi là Label) thường được dùng để vẽ những chuỗi ký tự hằng trên Form nhằm tạo ra các màn hình giao tiếp với người dùng. Các thuộc tính quan trọng liên quan đến đối tượng nhãn bao gồm: Thuộc tính Ý nghĩa Name Tên của nhãn. Khi mới tạo sẽ tự động có tên là Label1, Caption Chuỗi ký tự nội dung AutoResize Tự động thay đổi kích thước khi chuỗi nội dung vượt quá kích thước hiển thị ForeColor Màu chữ BackColor Màu nền Font Kiểu chữ WordWrap Tự động xuống dòng khi chuỗi nội dung vượt quá độ rộng label 4.2. Hộp văn bản (Textbox) Đối tượng hộp văn bản được sử dụng để hiển thị dữ liệu kết quả của các xử lý hay dùng để cho phép người sử dụng nhập liệu vào hệ thống. Ngoài những thuộc tính định dạng như màu chữ, màu nền, thuộc tính Text là thuộc tính thường được sử dụng đối với điều khiển này. Thuộc tính này cho phép chúng ta truy xuất nội dung của hộp văn bản. 4.3. Nút lệnh (command button) Đối tượng nút lệnh là điều khiển được dùng để thực hiện các xử lý của chương trình. Nút lệnh chỉ có một vài thuộc tính thường dùng, đó là: Thuộc tính Ý nghĩa Name Tên của nút lệnh Caption Chuỗi ký tự hiển thị trong nút lệnh Enabled Mờ hay sáng nút lệnh Visible Ẩn hay hiện nút lệnh Cancel Nút sẽ được chọn khi phím Esc được nhấn. Chỉ có một nút duy nhất trên màn hình Form có thuộc tính này là True Default Nút sẽ được chọn khi phím Enter được nhấn. Chỉ có một nút có thuộc tính Default là True Ngoài những thuộc tính nêu trên, nút lệnh còn có phương thức và biến cố liên quan đó là: Phương thức SetFocus: Di chuyển con trỏ hiện hành đến đối tượng nút lệnh. Biến cố Click: Biến cố phát sinh khi nút lệnh được nhấn. Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 13
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin 5. Tạo và chạy chương trình Để tạo một chương trình ứng dụng trong VB, chúng ta cần lần lượt các bước sau: Bước 1: Phân tích bài toán Bước 2: Thiết kế giao diện Vẽ các điều khiển lên màn hình Form Đặt tên, giá trị những thuộc tính cần thiết cho điều khiển trên Form. Bước 3: Thiết kế chương trình Thêm lệnh cho các thủ tục xử lý biến cố. Sau khi xây dựng hoàn tất chương trình theo ba bước trên, có thể chạy và kiểm tra lỗi chương trình bằng cách nhấn phím F5 hay nhấn chuột tại nút trên thanh công cụ Toolbar. Bước 4: Cải tiến chương trình Ví dụ minh họa: Viết chương trình cho phép nhập vào hai số, sau đó tính và xuất ra tổng của hai số vừa nhập vào. Hình 2-1. Giao diện chương trình tính tổng 2 số khi thực thi Yêu cầu: Khi nhập vào số thứ nhất, số thứ 2 và click vào nút Cộng thì kết quả sẽ hiển thị ở textbox còn lại; click vào nút Tiếp tục sẽ xóa hết kết quả trên 3 textbox và đặt con trỏ vào ô số thứ nhất. Click vào nút Thoát sẽ thoát khỏi ứng dụng. Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 14
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin Hình 2-2. Giao diện chương trình tính tổng 2 số khi thiết kế. Bước 1: Phân tích Để thực hiện được yêu cầu bài toán, cần hai textbox để nhập liệu cho 2 số và một textbox để hiển thị giá trị tổng của hai số. Bước 2: Thiết kế giao diện Vẽ giao diện và đặt thuộc tính cho các điều khiển Control Name Caption Form fTong Tinh tong 2 so cmdTinh Tính CommandButton cmdTiep Tiếp cmdThoat Thoát txtSo1 TextBox txtSo2 txtTong Bước 3: Thiết kế chương trình Thêm các lệnh cho các thủ tục xử lý biến cố Private Sub cmdTiep_Click() txtSo1.Text = "" txtSo2.Text = "" txtTong.text = "" txtSo1.SetFocus End Sub Private Sub cmdTinh_Click() Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 15
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin txtTong.Text = Val(txtSo1.Text) + Val(txtSo2.Text) End Sub Private Sub cmdThoat_Click() Unload Me End Sub Bước 4: Cải tiến chương trình Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 16
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin Chương 3 Các phép toán và kiểu dữ liệu cơ bản 1. Các phép toán và các ký hiệu 1.1. Phép gán Đây là toán tử cơ sở của hầu hết các ngôn ngữ lập trình. Toán tử dùng để gán giá trị cho các biến có kiểu dữ liệu cơ sở trong VB là dấu (=). Cú pháp chung lệnh gán có dạng sau: = Biểu thức ở phần bên phải của cú pháp trên có thể là một giá trị hằng, một biến hay một biểu thức tính toán. Khi đó, VB sẽ thực hiện việc tính giá trị của biểu thức trước rồi sau đó mới gán giá trị có được cho biến. Ví dụ dòng lệnh gán sau đây sẽ tăng giá trị biến k thêm 1: k = k + 1 Thông thường, giá trị của biểu thức và biến trong cú pháp lệnh gán phải cùng kiểu dữ liệu, tuy nhiên chúng ta vẫn có thể gán biểu thức số vào một biến kiểu chuỗi. Trong trường hợp này, VB sẽ tự động đổi giá trị biểu thức thành chuỗi sau đó mới gán vào biến. Với các biến có kiểu dữ liệu tổng quát, để gán giá trị cho biến chúng ta phải dùng lệnh Set theo cú pháp dưới đây: Set = 1.2. Các phép toán số học Thao tác trên các giá trị có kiểu dữ liệu số. Phép Ý nghĩa Kiểu của đối số Kiểu của kết quả toán - Phép lấy số đối Kiểu số (Integer, Như kiểu đối số Single ) + Phép cộng hai số Kiểu số (Integer, Như kiểu đối số Single ) - Phép trừ hai số Kiểu số (Integer, Như kiểu đối số Single ) * Phép nhân hai số Kiểu số (Integer, Như kiểu đối số Single ) / Phép chia hai số Kiểu số (Integer, Single hay Double Single ) \ Phép chia lấy phần Integer, Long Integer, Long nguyên Mod Phép chia lấy phần Integer, Long Integer, Long dư ^ Tính lũy thừa Kiểu số (Integer, Như kiểu đối số Single ) Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 17
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin 1.3. Các phép toán luận lý Là các phép toán tác động trên kiểu Boolean và cho kết quả là kiểu Boolean. Các phép toán này bao gồm AND (và), OR (hoặc), NOT (phủ định). Sau đây là bảng giá trị của các phép toán: X Y X AND Y X OR Y NOT X TRUE TRUE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE FALSE TRUE 1.4. Các phép toán so sánh Đây là các phép toán mà giá trị trả về của chúng là một giá trị kiểu Boolean (TRUE hay FALSE). Phép toán Ý nghĩa = So sánh bằng nhau So sánh lớn hơn = So sánh lớn hơn hoặc bằng <= So sánh nhỏ hơn hoặc bằng 1.5. Phép & Đây là toán tử cơ sở dùng để nối các chuỗi dữ liệu lại với nhau. Ví dụ trong dòng lệnh dưới đây s = “Visual” &” “& “Basic” biến chuỗi s sẽ có giá trị là “Visual Basic”. Tương tự như lệnh gán chuỗi, khi chúng ta nối chuỗi với các biểu thức, VB sẽ tự động thực hiện việc chuyển kiểu dữ liệu chuỗi thành số trước rồi sau đó mới nối. Với dòng lệnh tiếp theo: s = s & 1 Giá trị của biến s sau lệnh gán sẽ là “Visual Basic 1” Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 18
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin 1.6. Phép like So sánh sự giống nhau giữa chuỗi với Mẫu và cho ra kết quả True hoặc False. Kết quả = Chuỗi like Mẫu. Ví dụ: Kt= “Visual Basic” like “Visual Basic” (Kt có giá trị là True) 1.7. Các ký hiệu Các ký hiệu qui ước có thể dùng trong các biểu thức tính toán. “ “: rào một chuỗi. # #: rào một chuỗi Date. %: đại diện cho một nhóm ký tự bất kỳ. ?: đại diện cho một ký tự bất kỳ. 2. Các kiểu dữ liệu cơ bản Tuỳ theo từng loại ứng dụng, người lập trình sẽ dùng các kiểu dữ liệu khác nhau có sẵn của VB. Ngoài những kiểu dữ liệu đặc thù cho từng loại ứng dụng, giống như những ngôn ngữ lập trình khác, VB hỗ trợ một tập hợp các kiểu dữ liệu thường dùng bao gồm các kiểu dữ liệu cơ sở như kiểu số nguyên, số thực, luận lý, chuỗi, và các kiểu dữ liệu tổng quát. Tên kiểu Tiền tố Hậu tố Mặc định Đặc điểm Byte by 0 Kiểu dữ liệu nhị phân Integer n, i % 0 Số nguyên 2 byte Long l & 0 Số nguyên 4 byte Single f ! 0 Số thực 4 byte Double d # 0 Số thực 8 byte String s, str $ Chuỗi rỗng Chuỗi các ký tự Currency c @ 0 Kiểu số Boolean b No Luận lý (Yes/No) Date dt Dữ liệu ngày tháng năm Control ctl Đối tượng điều khiển Object ob Đối tượng chung Variant Ngoài các kiểu dữ liệu cơ sở khá quen thuộc có trong bảng trên như kiểu số, chuỗi, chúng ta còn thấy ba kiểu dữ liệu tổng quát cũng thường được sử dụng đó là Control, Object và Variant. Một biến có kiểu dữ liệu Control sẽ được dùng tương ứng với một đối tượng điều khiển bất kỳ có trên màn hình giao tiếp Form. Đối tượng này có thể là hộp văn bản, nhãn, nút lệnh, Khởi tạo giá trị cho các biến Control (tương tự với Object) phải dùng lệnh Set chứ Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 19
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin không thể dùng lệnh gán (=) như các kiểu dữ liệu cơ sở. Đoạn chương trình sau minh hoạ việc khai báo, gián giá trị và thao tác trên một biến control. Dim ctlTextBox As Control ‘Khởi tạo ctlTextBox là hộp txtNoidung Set ctlTextBox = Me.txtNoidung ‘Di chuyển điểm nháy đến txtNoidung ctlTextBox.SetFocus ‘Chọn khối phần văn bản của txtNoidung ctlTextBox.SelStart = 0 ctlTextBox.SelLength = Len(ctlTextBox.Text) Đoạn chương trình trên sẽ khai báo và khởi tạo biến ctlTextBox là hộp văn bản txtNoidung có trên màn hình hiện hành. Sau đó di chuyển điểm nháy đến hộp văn bản này và chọn khối hết toàn bộ nội dung văn bản có trong đó. Kiểu dữ liệu Object được dùng để tham chiếu đến một đối tượng bất kỳ có trong ứng dụng như màn hình giao tiếp (Form), các điều khiển, Thực chất, kiểu dữ liệu Object là một vùng nhớ có kích thước 4 byte chứa địa chỉ của đối tượng mà nó tham chiếu. Đoạn chương trình sau đây cũng có cùng tác dụng như lệnh trên đây: Dim obControl As Object, obForm As Object Set obForm = Me Set obControl = obForm.txtNoidung obControl.SetFocus obControl.SelStart = 0 obControl.SelLength = Len(obControl.Text) Variant là một kiểu dữ liệu tổng quát có thể đại diện cho một kiểu dữ liệu cơ sở bất kỳ như Integer, Single, Tuy vậy, để tốc độ chương trình được nhanh hơn cần hạn chế dùng các kiểu dữ liệu tổng quát mà nên dùng các kiểu dữ liệu cụ thể. Ví dụ như trong hai mẫu ví dụ trên có thể dùng các biến có kiểu dữ liệu cụ thể là TextBox hay Form thay vì dùng Control hay Object. Mặc nhiên khi khai báo biến mà không chỉ ra kiểu dữ liệu thì VB sẽ dựa vào ký tự đặc biệt cuối tên biến (còn được gọi là hậu tố) để xác định kiểu dữ liệu cho biến. Nếu hậu tố của tên biến không là các ký tự đặc biệt như đã được trình bày trong bảng các kiểu dữ liệu thường dùng trên thì biến sẽ có kiểu dữ liệu mặc nhiên là Variant. Ví dụ hai dòng khai báo biến dưới đây là tương đương nhau: trong đó biến m có kiểu Variant, I có kiểu số nguyên Integer và s có kiểu chuỗi String. Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 20
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin Dim m, I, As Integer, s As String Dim m, i%, s$ 3. Biến 3.1. Khái niệm Trước tiên ta tìm hiểu khái niệm Module. o Module: - Một ứng dụng đơn giản có thể chỉ có một biểu mẫu, lúc đó tất cả mã lệnh của ứng dụng đó được đặt trong cửa sổ mã lệnh của biểu mẫu đó (gọi là Form Module). Khi ứng dụng được phát triển lớn lên, chúng ta có thể có thêm một số biểu mẫu nữa và lúc này khả năng lặp đi lặp lại nhiều lần của một đoạn mã lệnh trong nhiều biểu mẫu khác nhau là rất lớn. - Để tránh việc lặp đi lặp lại trên, ta tạo ra một Module riêng rẽ chứa các chương trình con được dùng chung. Visual Basic cho phép 3 loại Module: Module biểu mẫu (Form module): đi kèm với mỗi một biểu mẫu là một module của biểu mẫu đó để chứa mã lệnh của biểu mẫu này. Với mỗi điều khiển trên biểu mẫu, module biểu mẫu chứa các chương trình con và chúng sẵn sàng được thực thi để đáp ứng lại các sự kiện mà người sử dụng ứng dụng tác động trên điều khiển. Module biểu mẫu được lưu trong máy tính dưới dạng các tập tin có đuôi là *.frm. Module chuẩn (Standard module): Mã lệnh không thuộc về bất cứ một biểu mẫu hay một điều khiển nào sẽ được đặt trong một module đặc biệt gọi là module chuẩn (được lưu với đuôi *.bas). Các chương trình con được lặp đi lặp lại để đáp ứng các sự kiện khác nhau của các điều khiển khác nhau thường được đặt trong module chuẩn. Module lớp (Class module): được sử dụng để tạo các điều khiển được gọi thực thi trong một ứng dụng cụ thể. Một module chuẩn chỉ chứa mã lệnh nhưng module lớp chứa cả mã lệnh và dữ liệu, chúng có thể được coi là các điều khiển do người lập trình tạo ra (được lưu với đuôi *.cls). Biến (Variable) là vùng lưu trữ được đặt tên để chứa dữ liệu tạm thời trong quá trình tính toán, so sánh và các công việc khác. Biến có 2 đặc điểm: o Mỗi biến có một tên. o Mỗi biến có thể chứa duy nhất một loại dữ liệu. Phạm vi (scope): xác định số lượng chương trình có thể truy xuất một biến. o Một biến sẽ thuộc một trong 3 loại phạm vi: Phạm vi biến cục bộ. Phạm vi biến module. Phạm vi biến toàn cục. Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 21
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin 3.2. Phân loại biến 3.2.1 Biến toàn cục o Khái niệm: Biến toàn cục là biến có phạm vi hoạt động trong toàn bộ ứng dụng. o Khai báo: Global [As ] 3.2.2 Biến cục bộ o Khái niệm: Biến cục bộ là biến chỉ có hiệu lực trong những chương trình mà chúng được định nghĩa. o Khai báo: Dim [As ] o Lưu ý: Biến cục bộ được định nghĩa bằng từ khóa Dim sẽ kết thúc ngay khi việc thi hành thủ tục kết thúc. 3.2.3 Biến Module o Khái niệm: Biến Module là biến được định nghĩa trong phần khai báo (General|Declaration) của Module và mặc nhiên phạm vi hoạt động của nó là toàn bộ Module ấy. o Khai báo: - Biến Module được khai báo bằng từ khóa Dim hay Private & đặt trong phần khai báo của Module. Ví dụ: Private Num As Integer - Tuy nhiên, các biến Module này có thể được sử dụng bởi các chương trình con trong các Module khác. Muốn thế chúng phải được khai báo là Public trong phân Khai báo (General|Declaration) của Module. Ví dụ: Public Num As Integer Lưu ý: Không thể khai báo biến với từ khóa là Public trong chương trình con. Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 22
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin 3.3. Khai báo biến Có hai chế độ khai báo và sử dụng biến trong VB. Đó là khai báo tường minh và khai báo không tường minh. 3.3.1 Khai báo không tường minh Trong chế độ khai báo không tường minh, chúng ta không cần phải khai báo biến trước khi sử dụng. Tự bản thân hệ thống VB sẽ cấp phát biến khi gặp một tên biến mới. Ví dụ trong hàm MySqr dưới đây, biến TempVal được sử dụng mà chưa khai báo trước. Function MySqr(num) TempVal = Abs(num) MySqr = Sqr(TempVal) End Function Khi đó, hệ thống sẽ tự động tạo biến TempVal khi gặp dòng lệnh này. Đầu tiên, ai cũng cảm thấy thích chế độ khai báo và sử dụng biến không tường minh như thế. Tuy nhiên, chúng ta, những lập trình viên chuyên nghiệp, không nên sử dụng chế độ này vì đôi khi nó sẽ gây ra nhiều lỗi không phát hiện nổi do đánh nhầm tên biến. Thật vậy, cũng với hàm như trên nhưng nếu chúng ta nhập vào như sau: Function MySqr(num) TempVal = Abs(num) MySqr = Sqr(TemVal) End Function Thoạt nhìn có thể nghĩ hai hàm trên đây giống nhau, kỳ thật là kết quả của hàm thứ hai lại luôn là 0. Đó chính là vì biến TempVal đã bị nhập sai ở dòng lệnh thứ 2 là TemVal. Khi ấy, VB sẽ tự động tạo ra một biến mới có tên là TemVal và có giá trị mặc nhiên là 0. Điều này sẽ cho kết quả của hàm luôn là 0. Trong những chương trình phức tạp, có rất nhiều dòng lệnh thì việc phát hiện ra những lỗi như thế là rất khó. 3.3.2 Khai báo tường minh Để tránh những lỗi chương trình xảy ra do nhập sai tên biến, chúng ta có thể sử dụng chế độ khai báo tường minh. Với chế độ này, mỗi biến sử dụng cần phải được khai báo trước. Những biến nào chưa khai báo, VB sẽ báo lỗi khi thực thi chương trình. Chúng ta có thể sử dụng một trong hai cách dưới đây để sử dụng chế độ khai báo biến tường minh: Cách 1: Trong cửa sổ lệnh, đặt dòng lệnh sau đây Option Explicit ở đầu phần Declarations của màn hình giao tiếp (Form), lớp (Class) hay thư viện (Module). Cách 2: Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 23
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin Chọn Tools\Options\Editor và sau đó chọn Require Variable Declaration. Từ thời điểm này trở đi, các màn hình lớp hay thư viện được tạo ra sẽ được mặc nhiên là có sẵn dòng lệnh Option Explicit trong phần Declaration. Với các màn hình giao tiếp, lớp hay thư viện đã được tạo trước đó, chúng ta sẽ phải tự thêm vào dòng lệnh này như cách 1. Tuỳ theo phạm vi biến cần sử dụng, chúng ta có thể dùng các cấu trúc lệnh sau để khai báo biến. Để khai báo biến cục bộ của một thủ tục, hàm, màn hình (Form) hay thư viện chúng ta có thể dùng cú pháp: Dim Tên_biến [As Kiểu dữ liệu] Để khai báo các biến toàn cục cho toàn bộ ứng dụng. Các biến toàn cục thường được khai báo trong một thư viện. Puclic Tên_biến [As Kiểu_dữ_liệu] Tên biến là một chuỗi ký tự thoả các điều kiện sau: Bắt đầu bằng ký tự. Tuỳ thuộc vào kiểu dữ liệu của biến, người lập trình thường dùng các ký tự trong bộ ký pháp Hungary làm các ký tự đầu (tiền tố) cho các tên biến. Các tiền tố này sẽ giúp nhận biết một biến có kiểu dữ liệu là gì trong quá trình lập trình. Ví dụ với biến Socong có kiểu dữ liệu số nguyên thường được đặt tên là nSocong. Phần dưới đây sẽ trình bày các tiền tố trong bộ ký pháp Hungary thường được dùng. Các ký tự có trong tên biến chỉ có thể là các ký tự chữ cái, ký tự số hay ký tự (_). Tuy nhiên, VB cũng cho phép ký tự cuối cùng của tên biến (hậu tố) là ký tự đặc biệt (xác định kiểu dữ liệu) như ký tự %, #, $ (Xem thêm phần Các kiểu dữ liệu). Tên biến dài không quá 255 ký tự. Không trùng với các tên biến khác trong cùng phạm vi khai báo như thủ tục, hàm (Sub, Function), màn hình (Form), thư viện (Module). Không được trùng với các từ khóa của Visual Basic. Ví dụ dòng lệnh sau khai báo hai biến nSocong va fDongia Dim nSocong As Integer, fDongia As Single Trong quá trình hoạt động mỗi biến sẽ có một kiểu dữ liệu nào đó. Kiểu dữ liệu sẽ quy định các giá trị sẽ được lưu trữ trong biến. 4. Hằng 4.1. Khái niệm Giống như tên gọi, hằng là đại lượng có giá trị không thể thay đổi trong quá trình thực hiện chương trình. 4.2. Khai báo hằng Chúng ta có thể dùng hằng để thay thế những giá trị không gợi nhớ trong chương trình. Ví dụ, thay vì dùng giá trị khó hiểu 3.1416 trong các lệnh tính chu vi, diện tích một hình tròn chúng ta có thể khai báo một hằng với tên gợi nhớ là Pi bằng 3.1416 và sau đó dùng hằng Pi này để tính chu vi và diện tích hình tròn. Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 24
- Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin Để khai báo một hằng, chúng ta dùng cấu trúc sau: Const Tên_hằng [As ] = Ví dụ: Const A = 5 Const B As Single = A/2 Đoạn lệnh trên định nghĩa hai hằng số, hằng số A có giá trị là 5, hằng số B kiểu số thực và có giá trị là 2.5. Để phân biệt với các hằng kiểu số, các giá trị hằng chuỗi phải được biểu diễn trong cặp ký tự ‘ ‘ hay “ “ và hằng kiểu ngày tháng phải được đặt trong cặp ký tự # #. Const TenDV = “Trung Tam Tin Hoc – DHKHTN” Const NgayBatDau = #10/24/86# 5. Mảng Mảng là tập hợp các phần tử có cùng một kiểu dữ liệu và được chứa trong một biến. Dùng mảng sẽ làm cho chương trình đơn giản và gọn hơn vì ta có thể sử dụng vòng lặp. Mảng sẽ có biên trên và biên dưới, trong đó các thành phần của mảng là liên tiếp trong khoảng giữa hai biên này. Có hai loại biến mảng: mảng có chiều dài cố định và mảng có chiều dài thay đổi lúc thi hành. Phần mảng sẽ được đề cập chi tiết ở môn Lập trình nâng cao. 6. Cú pháp lập trình Ngoài các cú pháp lệnh, hàm, phép toán, khi viết chương trình cần tôn trọng cú pháp lập trình sau: Mỗi lệnh phải viết trên một dòng bất kể ngắn hay dài, không được xuống dòng khi chưa hết lệnh. Muốn viết nhiều lệnh trên một dòng phải phân cách các lệnh bằng dấu hai chấm (:). Dòng lệnh có màu đỏ là dòng lệnh sai cần sửa lỗi. Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 25