Bài giảng môn Tin học - Chương 6: Các lệnh định nghĩa và khái báo VB trình bày các nội dung: Tổng quát vền ngôn ngữ VB, chú thích trong chương trình, lệnh định nghĩa hằng gợi nhớ, lệnh định nghĩa biến, lệnh định nghĩa kiểu người dùng, lệnh khai báo Declare. Mời các bạn cùng tham khảo nội dung chi tiết.
MÔN TIN HỌC Chương CÁC LỆNH ĐỊNH NGHĨA & KHAI BÁO VB 6.1 Tổng quát ngôn ngữ VB 6.2 Chú thích chương trình 6.3 Lệnh định nghĩa gợi nhớ 6.4 Lệnh định nghĩa biến 6.5 Lệnh định nghĩa kiểu người dùng 6.6 Lệnh khai báo Declare Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 157 6.1 Tổng quát code ứng dụng VB Một project VB thường quản lý thành phần cấu thành ứng dụng VB Trong project VB có loại phần tử có chứa code (do ta cần biết cú pháp VB để xây dựng loại phần từ này) : class module định nghĩa thực lớp đối tượng có cấu trúc hành vi giống form module trường hợp đặc biệt class module, miêu tả thực lớp đối tượng đặc biệt : form giao diện (standard) module đơn vị phần mềm nhỏ có chức rõ ràng Theo trường phái lập trình cấu trúc (cổ điển), ta dùng module để chia ứng dụng nhiều phần nhỏ dễ quản lý ⇒ VB hỗ trợ phương pháp lập trình : có cấu trúc OOP Ngoài vài ngoại lệ nhỏ, tổ chức code cho loại module hồn tồn giống : danh sách nhiều lệnh VB phục vụ định nghĩa kiểu, hằng, biến thủ tục module Trong lệnh định nghĩa thủ tục, ta dùng lệnh thực thi để miêu tả giải thuật thủ tục Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 158 79 Tổng quát ngôn ngữ VB Để dễ tiếp cận ngơn ngữ VB, ta nhìn lại ngơn ngữ tiếng Việt Ta nói ngơn ngữ tiếng Việt định nghĩa tập từ có nghĩa bản, qui tắc ghép từ lại để tạo thành đoạn câu (phrase), câu (sentence), đoạn văn (paragraph), văn (document) ngữ nghĩa phần tử tạo Vì ngơn ngữ Việt ngơn ngữ tự nhiên nên thường cho phép nhiều ngoại lệ việc xây dựng phần tử Ngơn ngữ lập trình VB định nghĩa tập ký tự (chưa có nghĩa), qui tắc ghép ký tự để tạo thành từ có nghĩa (identifier), biểu thức (expression), câu lệnh (statement), thủ tục (Function, Sub, Property) ngữ nghĩa phần tử tạo Vì ngơn ngữ VB ngơn ngữ lập trình cho máy tính thực nên khơng cho phép ngoại lệ việc xây dựng phần tử Nghiên cứu ngơn ngữ lập trình học để nhớ rõ ký tự ngôn ngữ, qui tắc để tạo danh hiệu, biểu thức, qui tắc để viết câu lệnh ngữ nghĩa chúng ⇒ giống với việc học ngôn ngữ tự nhiên : Anh, Pháp, Nhật, Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 159 Các ký hiệu ngôn ngữ VB Về nguyên tắc, VB cho phép dùng hầu hết ký tự mà bạn nhập từ bàn phím, ký tự chữ số dùng chủ yếu Qui tắc cấu tạo danh hiệu trình bày Slide 113 (chương 5) danh hiệu dùng để đặt tên cho biến, gợi nhớ, Function, Sub, Property, form, class module, module, ngữ nghĩa danh hiệu qui định người lập trình Qui tắc xây dựng biểu thức trình bày chương Có nhiều loại câu lệnh VB khác nhau, qui tắc xây dựng câu lệnh phụ thuộc vào loại câu lệnh cụ thể ⇒ ta phải nghiên cứu loại câu lệnh qui tắc cấu thành nó, may mắn số lượng loại câu lệnh VB không nhiều (dưới 20 loại) Các câu lệnh chia làm nhóm : lệnh định nghĩa : xác định hành động thời điểm dịch lệnh thực thi : xác định hành động thời điểm thực thi Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 160 80 6.2 Chú thích chương trình Các lệnh định nghĩa lệnh thực thi mà ta vừa trình bày để máy xử lý, chúng tuân thủ cú pháp cụ thể mà ta trình bày sau Nhưng ý tưởng chung người khó đọc hiểu chúng Để trợ giúp cho người đọc hiểu lệnh VB chương trình, VB cịn cung cấp lệnh đặc biệt : lệnh thích Đây lệnh mà máy bỏ qua (vì máy khơng thể hiểu ý nghĩa miêu tả lệnh này), nhiên lệnh cho phép người lập trình dùng ngơn ngữ tự nhiên để thích ý nghĩa lệnh VB khác hầu giúp họ hay người khác dễ dàng hiểu chương trình Cú pháp lệnh thích đơn giản : qui định bắt đầu lệnh ký tự ' viết hàng riêng biệt hay sau lệnh hành Ví dụ : Private Sub cmdCE_Click() ' hàm xử lý biến cố ấn nút CE (Clear Entry) dblDispValue = blnFpoint = False bytPosDigit = txtDisplay.Text = ".0" ' bắt đầu hiển thị lên Display End Sub Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 161 Chú thích chương trình (tt) Việc dùng thích chương trình dung hịa thái cực : lạm dụng không dùng Thường ta nên dùng thích vị trí sau : đầu thủ tục để miêu tả chức thủ tục đó, liệu nhập vào thủ tục liệu trả từ thủ tục đoạn code miêu tả giải thuật phức tạp để ghi đoạn code thực giải thuật lý thuyết học hàng lệnh có hiệu ứng đặc biệt Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 162 81 6.3 Các lệnh định nghĩa module VB (form, class, standard) gồm loại phần tử : thuộc tính liệu method (thủ tục) Các lệnh định nghĩa cho phép ta định nghĩa tính chất thuộc tính liệu, lệnh thực thi cho phép ta miêu tả giải thuật thi hành method (thủ tục) lệnh định nghĩa liệu chủ yếu lệnh định nghĩa biến lệnh định nghĩa hằng, lệnh có sử dụng tên kiểu liệu Tên kiểu liệu định sẵn, người lập trình tự đặt Lệnh định nghĩa kiểu phục vụ việc định nghĩa kiểu người lập trình Để VB kiểm tra việc định nghĩa biến bắt buộc module đó, ta dùng lệnh sau đầu module Option Explicit Cú pháp định nghĩa gợi nhớ : Const AConst = Value Lưu ý ta dùng chữ nghiêng để miêu tả phần tử mà người lập trình tự xác định theo yêu cầu riêng (dĩ nhiên phải thỏa mãn qui tắc VB), chữ đậm miêu tả phần tử bắt buộc người lập trình phải viết y lệnh họ Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 163 Qui tắc miêu tả loại giá trị Giá trị luận lý : True | False Giá trị thập phân nguyên : [+|-] [decdigit]+ (Vd 125, -548) Lưu ý ta dùng | để miêu tả chọn lựa, [ ] để miêu tả có từ tới 1, [ ]* để miêu tả có từ tới n, [ ]+ để miêu tả có từ tới n (n>1) Giá trị thập lục phân nguyên : [+|-] &H[hexdigit]+ (&HFF) Giá trị bát phân nguyên : [+|-] &O[ocdigit]+ (&O77) Giá trị thập phân thực : [+|-] [decdigit]+ [.[decdigit]*] [E [+|-] [decdigit]+] 3.14159, 0.31459E1,-83.1E-9, Giá trị chuỗi : "Nguyen Van A" """Nguyen Van A""" Lưu ý dùng dấu nháy kép liên tiếp để miêu tả ký tự nháy kép giá trị chuỗi (cơ chế dùng Escape để giải nhầm lẫn) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 164 82 Qui tắc miêu tả loại giá trị (tt) Giá trị ngày tháng (Date) : trình bày slide 125, ta nhắc lại cho có tính hệ thống Ví dụ: #January 1, 2000# #Jan 1, 2000# #1/1/ 2000# #December 31, 1999 11:59:59PM# #December 31, 1999 23:59:59# Giá trị ngày tháng đặt cặp dấu # # Có nhiều dạng thức khác để miêu tả ngày miêu tả ngày/tháng/năm Dạng thức miêu tả ngày dạng 2/1/2000 phân giải theo thông số "locale" Windows (dạng dd/mm/yyyy hay mm/dd/yyyy) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 165 6.4 Phát biểu định nghĩa biến Cú pháp định nghĩa biến cục function, Sub, Property : Dim AVariable [As Type] Static AVariable [As Type] Cú pháp định nghĩa biến cục module (class, form, standard) : Private AVariable [As Type] Static AVariable [As Type] Cú pháp định nghĩa biến toàn cục : Public AVariable [As Type] Lưu ý hạn chế tối đa việc dùng biến toàn cục (trong OOP ta khơng cần dùng biến tồn cục) Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 166 83 Phát biểu định nghĩa biến (tt) Có thể dùng tiếp vĩ ngữ qui định kiểu (trong chương 5) thay cho tên kiểu Nếu tên biến khơng có tiếp vĩ ngữ khơng có phần tên kiểu lệnh định nghĩa biến biến thuộc kiểu Variant Cho phép nhiều phát biểu định nghĩa biến hàng lệnh (dùng dấu ',' để ngăn cách chúng) Nên đặt tên biến theo ký hiệu Hungarian miêu tả tên kiểu kết hợp với biến lệnh định nghĩa biến, nhờ chương trình sáng, dễ hiểu dễ phát triển Ví dụ : Thay dùng lệnh sau : Private DispValue# để định nghĩa biến thực xác kép tên "DispValue", ta nên dùng lệnh định nghĩa sau : Private dblDispValue As Double Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 167 6.5 Phát biểu định nghĩa kiểu người lập trình Nếu module cần liệu có cấu trúc đặc thù mà VB chưa cung cấp, người lập trình dùng phát biểu TYPE để định nghĩa kiểu Phát biểu kết hợp tên kiểu (tự đặt) với cấu trúc liệu gồm nhiều field liệu (do dó ta thường gọi kiểu kiểu record hay structure) Cú pháp sau : Type TypeName [AfieldName As Type]+ End Type Ví dụ : Type SystemInfo CPU As Variant Memory As Long DiskDrives(25) As String VideoColors As Integer Cost As Currency PurchaseDate As Variant End Type Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM ' Fixed-size array Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 168 84 Phát biểu định nghĩa kiểu Array Nếu module cần danh sách gồm nhiều liệu có cấu trúc đồng nhất, ta dùng phát biểu định nghĩa kiểu array để miêu tả danh sách Cú pháp sau : Dim varname[([subscripts])] [As [New] type] subscripts danh sách từ đến n chiều cách dấu ',', chiều miêu tả phạm vi số phần tử thuộc chiều dạng : [lower To] upper Nếu số cận chiều khơng miêu tả VB chọn giá trị ngầm định (là hay 1) Phát biểu định nghĩa giá trị cận ngầm định có cú pháp : Option Base {0|1} Lưu ý dấu { } miêu tả có lần Nếu khơng có phát biểu VB chọn cận Ví dụ : Dim vector(50) As Double 'vector có 51 phần từ từ - 51 Dim MyArray (1 to 100, to 50) As Double Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 169 Phát biểu định nghĩa kiểu Array (tt) Nếu số lượng phần tử danh sách chưa biết thời điểm viết chương trình biết thời điểm chạy, ta dùng cách sau : khai báo số lượng tĩnh thời điểm viết, cách thường phí phạm nhớ hay khai báo thiếu số lượng phần tử Thí dụ để giải hệ n phương trình tuyến tính, n ẩn số, ta khai báo tĩnh ma trận thông số sau : Option Base Dim matran(100,100) As Double đại đa số lần dùng ứng dụng này, ta giải hệ phương trình có 2, 3, ẩn số phí phạm nhớ Cịn lần chạy đó, ta cần giải hệ 200 phương trình chương trình chạy sai khai báo số lượng động thời điểm chạy Cú pháp sau : Dim varname() [As [New] type] Ví dụ : Dim matran() As Double 'để trống số lượng n = Val(txtInput.Text) ReDim matran(n,n) 'phân phối phần tử cho ma trận Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 170 85 6.6 Lệnh khai báo Declare Các lệnh định nghĩa hằng, biến, kiểu, thủ tục cho phép ta sản sinh phần tử tương ứng phạm vi ngữ cảnh tương ứng (thủ tục, module, toàn cục) Ngoài Windows (và nhiều hãng, cá nhân khác) viết nhiều module tổng quát, module chứa nhiều thủ tục khác nhau, thủ tục giải vần đề Thí dụ ta có module hàm lượng giác, module hàm thống kê, module hàm xử lý liệu multimedia, Windows dùng kỹ thuật liên kết động module vào ứng dụng dùng chúng, module cất file *.dll (dynamic link library) VB cung cấp lệnh khai báo "Declare" phép người lập trình khai báo chữ ký (signature, interface, prototype, header, ) thủ tục có sẵn module *.dll để gọi ngữ cảnh (module) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 171 Lệnh khai báo Declare (tt) Cú pháp : [Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])] Cú pháp : [Public | Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist])] [As type] Cú pháp cho phép khai báo subroutine với tên name thư viện tên libname, ta gọi subroutine tên khác aliasname truyền cho danh sách đối số tương thích với arglist Cú pháp cho phép khai báo function với tên name thư viện tên libname, ta gọi function tên khác aliasname truyền cho danh sách đối số tương thích với arglist Sau hồn thành, function trả giá trị kết thuộc kiểu type Chi tiết khác biệt subroutine function trình bày chương 10 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 172 86 Thí dụ lệnh định nghĩa VB Chúng ta trình bày qui trình thiết kế trực quan giao diện trình MiniCalculator cho phép giả lập máy tính tay đơn giản Chương trình có form, form định nghĩa hằng, biến cục sau để phục vụ hoạt động cho ứng dụng : Option Explicit Const IDC_EQUAL = ' định nghĩa gợi nhớ miêu tả toán tử Const IDC_ADD = Const IDC_SUB = Const IDC_MUL = Const IDC_DIV = Private dblDispValue As Double Private dblOldValue As Double Private dblMemValue As Double Private blnFpoint As Boolean Private bytPosDigit As Byte Private intPosNeg As Integer Private bytOperationId As Byte Private blnFAfterOp As Boolean ' biến lưu giá trị hiển thị ' biến lưu giá trị trước ' biến lưu giá trị nhớ ' trạng thái nhập số nguyên/lẻ ' vị trí lý số lẻ nhập ' trạng thái miêu tả giá trị âm/dương ' id phép toán cần thực ' trạng thái nhập ký số đầu sau phép toán Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 173 Khoa Công nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM MƠN TIN HỌC Chương BIỂU THỨC VB 7.1 Tổng quát biểu thức VB 7.2 Các tốn tử 7.3 Qui trình tính biểu thức 7.4 Quyền ưu tiên toán tử Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Biểu thức VB Slide 174 87 ... hành động thời điểm thực thi Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 160 80 6. 2 Chú thích chương trình Các lệnh định nghĩa... Display End Sub Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 161 Chú thích chương trình (tt) Việc dùng thích chương trình... tiết khác biệt subroutine function trình bày chương 10 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Các lệnh định nghĩa & khai báo VB Slide 172 86 Thí dụ lệnh định