160 likes | 272 Views
Chương 5. Các kiểu dữ liệu trong VB. Nguyên tắc đặt tên biến. Tên biến có thể dài đến 255 ký tự. Ký tự đầu tiên phải là một ký tự chữ (letter).
E N D
Chương 5 Các kiểu dữ liệu trong VB
Nguyên tắc đặt tên biến • Tên biến có thể dài đến 255 ký tự. • Ký tự đầu tiên phải là một ký tự chữ (letter). • Các ký tự tiếp theo có thể là các ký tự chữ (letter), ký số (digit), dấu gạch dưới (nghĩa là không được dùng các ký tự đặc biệt như các ký tự : ^, &, ), (,%, $, #, @, !, ~, +, -, *, …). • Không phân biệt chữ HOA (upper case) hay chữ thường (lower case). Ví dụ: Tên biến hợp lệTên biến không hợp lệ + Base1_ball + Base.1 : vì có dấu chấm + ThisIsLongButOk + Base&1 : vì có dấu & + 1Base_Ball : ký tự đầu là 1 số
Các vấn đề xoay quanh tên biến • Người sử dụng phải lựa chọn giữa tên ngắn và tên có ý nghĩa. Ví dụ : x, y, z, a, b, c là tên ngắn nhưng ít có ý nghĩa. InterestingRate, InfraRed có ý nghĩa nhưng dài. • Tránh đặt tên trùng với các từ khóa hay từ dành riêng của ngôn ngữ. Ví dụ : Sub, End, Print, . . .
Các kiểu dữ liệu cơ bản định sẵn của VB • Byte : dài 1 byte, số nguyên không dấu. • Boolean : dài 2 bytes, luận lý True or False • Integer : dài 2 bytes, số nguyên (có dấu). • Long : dài 4 bytes, số nguyên. • Single : dài 4 bytes, số thực chính xác đơn (7 chữ số). • Double: dài 8 bytes, số thực chính xác kép (15 chữ số). • Currency: dài 8 bytes, tiền tệ (14 con số, 4 số lẻ). • Decimal : dài 16 bytes, số nguyên (28 chữ số). • Date : dài 8 bytes; giữ ngày-tháng-năm, giờ-phút-giây. • Object: dài 4 bytes; chứa tham khảo đến đối tượng (không phải đối tượng). • String : dài 10 bytes + độ dài của chuỗi, chứa văn bản (tối đa 2G ký tự). • String*n : chuỗi có độ dài cố định n bytes.
Các kiểu dữ liệu mở rộng • Variant : kiểu dữ liệu đa năng, có thể chứa dữ liệu thuộc các kiểu cơ bản. • Chứa số : dài 16 bytes. • Chứa chuỗi : dài 22 bytes + độ dài chuỗi ký tự. • User-defined : kiểu dữ liệu người sử dụng định nghĩa (còn được gọi là kiểu record), dùng lệnh Type / End Type để định nghĩa. TypeSystemInfo CPU AsVariant Memory AsLong DiskDrives(25) AsString' Fixed-size array. VideoColors AsInteger Cost AsCurrency PurchaseDate AsVariant End Type
vector(9) vector(0) Kiểu dãy (array) • Dãy là kiểu dữ liệu gồm nhiều phần tử có cùng kiểu dữ liệu cơ sở, dùng chung một tên và phân biệt với nhau bởi chỉ số (index). Ví dụ :Dimvector(0 to 9)As Integer là biến dãy có 10 phần tử thuộc kiểu nguyên. tham khảo : vector(0), vector(1), . . .vector(9). vector Chiều dài dãy = 20 bytes Mô tả đặc tính chi tiết các kiểu biến xem trong sách
Kiểu Class đối tượng • Sử dụng các class đối tượng có sẳn của VB thông qua tên class. • Tên class đối tượng có sẳn được xem như tên kiểu dữ liệu. • Ta cũng có thể dùng các class đối tượng của người khác xây dựng thông qua công nghệ COM, ActiveX Control. Tên class Tên class là tên kiểu dữ liệu
Ví dụ về class có sẳn • Tạo form có dạng sau : • Thêm đoạn code sau vào Private Sub Form_Load() Dim x As CommandButton Set x = cmdOK x.Caption = "OK" End Sub • Lúc chạy sẽ như hình bên (Name) = cmdOK
Tạo class đối tượng mới • Dùng class module. • Định nghĩa các thuộc tính và methode của đối tượng. • Debug các methode . • Định nghĩa thêm 2 methodeđặc biệt : • Class_Initialize() để khởi tạo đối mới sinh ra. • Class_Terminate() để thu hồi đối tượng.
Tên biến theo phong cách Hungarian • Có tác dụng gợi nhớ về kiểu dữ liệu của biến. • Dùng thêm các tiếp đầu ngữ gợi nhớ sau : String str Integer int Single sng Currency cur Boolean bln Long lng Double dbl Variant vnt Ví dụ : Dim sngDistance As single Dim blnNguyenTo As Boolean Charles Simonge, lập trình viên gốc Hungari của Miscrosoft
Lưu ý khi sử dụng biến • Vấn đề trùng tên. • Cùng ngữ cảnh : không được phép. • Khác ngữ cảnh : được phép. • Các tiếp vĩ ngữ dùng để định nghĩa tắt không được tính vào tên biến. Ví dụ : x! và x# là trùng tên. • Trị ban đầu của biến. • Variant : trị Empty (rỗng). • String : "" (chuỗi rỗng). • Số : 0 • Gán trị mới vào biến thì trị cũ bị mất. Tốt nhất nên khởi động trị cho biến trước khi sử dụng
Tầm vực của biến • Toàn cục • Dùng Public thay cho Dim ở cấp module (Standard module). Ví dụ : Public x As Single • Cục bộ trong module • Dùng Private hay Dim ở cấp module (General). Ví dụ : Private x As Integer • Cục bộ trong thủ tục • Dùng Dim hay Static ở cấp độ thủ tục (trong Sub hay Function) Ví dụ : Private Sub Command1_Click() Dim x As Double . . . End Sub
Thời gian sống của biến • Biến toàn cục : xuất hiện và mất đi theo dự án. • Biến cục bộ trong module : xuất hiện và mất đi theo module. • Standard module : cùng lúc với dự án. • Class và form module : xuất hiện theo yêu cầu của dự án. • Biến thuộc tính của đối tượng tồn tại theo đối tượng. • Biến cục bộ trong thủ tục : được tạo ra khi vào thủ tục và mất đi khi làm xong phát biểu cuối cùng của thủ tục. • Thời gian sống của biến liên quan đến giá trị chứa trong biến. Như vậy, muốn xem giá trị chứa trong một biến ta phải xem lúc biến đó còn tồn tại.
Kéo dài thời gian sống của biến • Chuyển cấp khai báo biến. Chẳng hạn, thay vì dùng biến cục bộ trong thủ tục thì chuyển sang dùng biến cục bộ trong module. • Dùng biến kiểu Static là biến có tầm vực cục bộ trong thủ tục nhưng có thời gian sống theo dự án. • Ví dụ : Private Sub SoNguyenTo () Dim i As Integer, n As Integer Static SoNgTo As Boolean . . . End Sub • Lưu nội dung biến lên đĩa, biến sẽ tồn tại giữa những lần chạy các dự án khác nhau.
Trị ban đầu của biến • Thường các biến được tạo ra sau khi dự án chạy và có trị ban đầu lấy ngẫu nhiên trong bộ nhớ máy tính. • Việc gán trị ban đầu cho biến trước khi sử dụng là cần thiết. • Có 3 cách thiết lập (gán) trị cho 1 biến : • Qua tương tác với người dùng : biến gắn liền với đối tượng giao diện sẽ được gán giá trị mà người dùng nhập vào. • Qua các tham số khi gọi thủ tục. • Dùng phát biểu gán với cú pháp sau : <tên biến>=<biểu thức> • Biểu thứclà cách tính giá trị được gán vào biến (xem chương 7). • Biểu thức đơn giản nhất là một giá trị (xem chương 6).
Hằng gợi nhớ (Constant) • Hằng gợi nhớ là một giá trị đã được đặt tên theo qui định của cú pháp. Const <tên hằng> =<giá trị> Ví dụ : Const PI = 3.1416 • Lợi ích khi sử dụng hằng thay cho giá trị : • Chương trình sẽ trong sáng, dễ đọc hơn. • Tránh sai sót khi thay đổi một giá trị dùng tại nhiều nơi trong chương trình. • Tiết kiệm được bộ nhớ so với việc dùng biến. • Rút ngắn được các câu lệnh quá dài.