Tin học - Chương 5: Các kiểu dữ liệu trong VB

pdf 14 trang vanle 2110
Bạn đang xem tài liệu "Tin học - Chương 5: Các kiểu dữ liệu trong VB", để 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:

  • pdftin_hoc_chuong_5_cac_kieu_du_lieu_trong_vb.pdf

Nội dung text: Tin học - Chương 5: Các kiểu dữ liệu trong VB

  1. MÔN TIN HỌC Chương 5 CÁC KIỂU DỮ LIỆU TRONG VB 5.1 Biến dữ liệu & định nghĩa biến 5.2 Các kiểu dữ liệu định sẵn của VB 6.0. 5.3 Việc dùng & tạo class đối tượng 5.4 Các tính chất chính yếu của biến dữ liệu 5.5 Hằng gợi nhớ Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 129 5.1 Biếndữ liệu ‰ Mỗi ứng dụng thường xử lý nhiềudữ liệu, ta dùng khái niệm"biến" để lưu trữ dữ liệu trong bộ nhớ máy tính, mỗibiếnlưutrữ 1 dữ liệucủachương trình. ‰ Mặc dù VB không đòi hỏi, nhưng ta nên định nghĩarõràngtừng biến trước khi truy xuấtnóđể code củachương trình được trong sáng, dễ hiểu, dễ bảo trì và phát triển. ‰ Định nghĩa1 biếnlà: ƒ định nghĩa tên nhậndạng cho biến, ƒ kếthợpkiểuvớibiến để xác định cấutrúcdữ liệucủabiến, ƒ định nghĩatầmvựctruyxuấtbiến. ‰ Cú pháp đơngiảncủalệnh định nghĩabiến: [Static|Public|Private|Dim] AVariable As Type ‰ tạitừng thời điểm, biếnchứa1 giátrị (nội dung) cụ thể. Theo thờigian nội dung củabiếnsẽ bị thay đổi theo tính chấtxử lý của code. Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 130 65
  2. Định nghĩa tên biến ‰ Cách đặt tên cho 1 biến (hay cho bất kỳ phần tử trong chương trình): ƒ 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, ƒ Tên biến không được chứa các ký tự đặc biệt như các ký tự : ^, &, ), (,%, $, #, @, !, ~, +, -, *, ƒ VB không phân biệt chữ HOA hay chữ thường trong tên biến. 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ố ‰ Nên chọn tên biến ngắn gọn nhưng thể hiện rõ ý nghĩa. Ví dụ: Ta muốn có một biến để lưu hệ số lãi suất ngân hàng (Interest Rate), ta nên dùng tên biến là: InterestRate hoặc Irate chứ không nên dùng tên biến là IR Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 131 Định nghĩa tên biến (tt) ‰ Với ví dụở trước, dòng lệnh sau đây: IterestRateEarned = Total*InterestRate sẽ dễ hiểu hơn dòng lệnh IE = T*IR ‰ Khi viết tên biến ta nên viết hoa chữ đầu tiên của một từ có ý nghĩa. Ví dụ : InterestRate sẽ dễ đọc hơn interestrate hay iNTERestRaTe ‰ Không được dùng tên biến trùng với các từ khoá như : Print, Sub, End (từ khóa là những từ mà ngôn ngữ VB đã dùng cho những thành phần xác định của ngôn ngữ) Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 132 66
  3. 5.2 Các kiểudữ liệucơ bản định sẵncủaVB Byte : 1 byte, 0 to 255 Boolean : 2 bytes, True or False Integer : 2 bytes, -32,768 to 32,767 Long (long integer) : 4 bytes -2,147,483,648 to 2,147,483,647 Single (single-precision floating-point) :4 bytes -3.402823E38 to -1.401298E-45 ;1.401298E-45 to 3.402823E38 Double (double-precision floating-point) : 8 bytes -1.79769313486231E308 to -4.94065645841247E-324; 4.94065645841247E-324 to 1.79769313486232E308 Currency (scaled integer) : 8 bytes -922,337,203,685,477.5808 to 922,337,203,685,477.5807 Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 133 Các kiểu dữ liệu cơ bản định sẵn của VB (tt) Decimal : 14 bytes +/-79,228,162,514,264,337,593,543,950,335 (không có dấu chấm thập phân) +/-7.9228162514264337593543950335 (có 28 ký số bên phải dấu chấm) +/-0.0000000000000000000000000001 là số khác 0 nhỏ nhất. Date : 8 bytes; từ January 1, 100 tới December 31, 9999 Object : 4 bytes; chứa tham khảo đến bất kỳ đối tượng nào String (variable-length) : 10 bytes + độ dài của chuỗi 0 tới 2G ký tự String*n (fixed-length) : chuỗi có độ dài cố định 1 tới 65,400 ký tự Variant (with numbers) : 16 bytes Bất kỳ số nào nằm trong phạm vi kiểu Double Variant (with characters) : 22 bytes + độ dài chuỗi cùng độ dài như kiểu String User-defined (using Type) : kiểu do người dùng định nghĩa (record) gồm nhiều field, mỗi field có kiểu riêng theo yêu cầu. Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 134 67
  4. Các kiểu dữ liệu cơ bản định sẵn của VB (tt) Array : dãy nhiều phần tử có cấu trúc dữ liệu đồng nhất, mỗi phần tử được truy xuất độc lập nhờ chỉ số của nó trong dãy. Ví dụ : Dim vector(10) As Integer định nghĩa biến vector là 1 dãy gồm 10 phần tử nguyên, vector(i) là tên nhận dạng của phần tử thứ i của dãy này. Ngoài các kiểu dữ liệu định sẵn, VB còn cung cấp cho người lập trình 1 phương tiện để họ có thể định nghĩa bất kỳ kiểu dữ liệu chưa cung cấp sẵn nhưng lại cần thiết cho ứng dụng của họ, ta gọi các kiểu này là kiểu do người dùng định nghĩa. Thí dụ sau đây là phát biểu định nghĩa kiểu miêu tả các thông tin chính về máy tính cá nhân : Type SystemInfo CPU As Variant Memory As Long DiskDrives(25) As String ' Fixed-size array. VideoColors As Integer Cost As Currency PurchaseDate As Variant End Type Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 135 Đặc tính chi tiếtvề kiểuString KiểuString(chuỗikýtự) : ƒ String là kiểudữ liệu được dùng để lưutrữ chuỗicáckýtự (độ dài bất kỳ) ƒ Giá trị chuỗikýtự được đặt trong cặpdấu nháy kép (vd : "Môn Tin học") ƒ Trên lý thuyết, mộtbiếnthuộckiểu String có thể lưutrữ được đến2 tỷ ký tự nhưng trong thựctế, độ dài củachuỗibị hạnchế theo dung lượng bộ nhớ của máy tính. ƒ Có thể thựchiện được các phép toán nốikếtchuỗi (+,&) trên các chuỗi ký tự và có khá nhiều hàm xử lý chuỗicósẵn. ƒ Có thểđịnh nghĩamộtbiếnthuộckiểu String như sau : Dim AStringVariable As String Dim AStringVariable As String*100 Hay Dim AStringVariable$ Tiếpvĩ ngữ $ đisautênbiến dùng để khai báo mộtbiếnthuộckiểu String (nhưng ta không nên dùng cách này vì tối nghĩa, khó bảo trì). Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 136 68
  5. Đặc tính chi tiết về kiểu Integer Kiểu Integer (Số nguyên) : ƒ Integer là kiểu dữ liệu được dùng để lưu trữ các số nguyên ngắn nằm trong khoảng từ - 32768 đến 32767. ƒ Số nguyên được lưu trữ trong bộ nhớ bằng 2 byte. ƒ Có thể thực hiện được các phép toán số học (như +,-,*,/, ) trên các dữ liệu thuộc kiểu Integer. ƒ Khai báo một biến thuộc kiểu Integer như sau : Dim AnIntegerVariable As Integer Hay Dim AnIntegerVariable% Tiếp vĩ ngữ % đi sau tên biến được dùng để khai báo một biến thuộc kiểu Integer. Vd: Dim Age As Integer Age = 24 Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 137 Đặc tính chi tiết về kiểu Long Kiểu Long (Số nguyên dài) : ƒ Dùng để lưu trữ các số nguyên lớn nằm trong khoảng từ : -2,147,483,648 đến 2,147,483,647 ƒ Số nguyên dài được lưu trữ trong bộ nhớ bằng 4 byte. ƒ Có thể thực hiện được các phép toán số học (như +,-,*,/, ) trên các dữ liệu thuộc kiểu Long. ƒ Khai báo một biến thuộc kiểu Long như sau : Dim ALongIntegerVariable As Long Hay Dim AnIntegerVariable& Tiếp vĩ ngữ & đi sau tên biến được dùng để khai báo một biến thuộc kiểu Long. Vd: Dim EarthAge As Long EarthAge = 3276979 Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 138 69
  6. Đặc tính chi tiết về kiểu Byte Kiểu Byte (Số nguyên dương nhỏ) : ƒ Dùng để lưu trữ các số nguyên không âm nằm trong tầm trị từ : 0 đến 255 ƒ Chiếm 1 byte trong bộ nhớ. ƒ Có thể thực hiện được các phép toán số học (như +,-,*,/, ) trên các dữ liệu thuộc kiểu Byte. ƒ Kiểu dữ liệu này rất hiệu dụng trong việc lưu trữ các số nguyên nhỏ vì nó chiếm ít bộ nhớ, tốc độ xử lý nhanh. Ví dụ: Khi cần lưu tuổi của một người chúng ta không nên dùng kiểu Integer hay Long mà nên dùng kiểu Byte vì tuổi của một người luôn là một số không âm, có giá trị tối đa thường nhỏ hơn 120. Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 139 Đặc tính chi tiết về kiểu Boolean Kiểu Byte (tt) : ƒ Khai báo cho một biến thuộc kiểu Byte như sau : Dim AByteVariable As Byte 'không có tiếp vĩ ngữ Ví dụ: Dim Age As Byte Age = 100 Kiểu Boolean (giá trị luận lý) : ƒ Là kiểu dữ liệu lưu trữ hai giá trị luận lý True/False. ƒ Được lưu trữ trong máy tính bằng 2 byte. ƒ Khai báo Dim ABooleanVariable As Boolean Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 140 70
  7. Đặc tính chi tiết về kiểu Single Kiểu Single (số thực có độ chính xác đơn - Single Precision) : ƒ Lưu trữ các số thực có độ chính xác đơn (gần đúng với giá trị gốc với độ chính xác ở mức 7 chữ số) Ví dụ số 1234.567 thì ký số 7 (bên phải nhất) có thể không chính xác. ƒ Kiểu dữ liệu này chiếm 4 byte trong bộ nhớ và miêu tả các giá trị trong phạm vi : Từ -3.402823E38 đến -1.401298E-45 cho các giá trị âm và từ 1.401298E-45 đến 3.402823E38 cho các giá trị dương ƒ Có thể thực hiện các phép toán số học trên kiểu dữ liệu này nhưng thường chậm hơn so vớI các biến thuộc kiểu Integer hay Long. Do cách chứa số Single chỉở mức gần đúng nên các phép toán trên các dữ liệu thuộc kiểu này sẽ tạo kết quả gần đúng (nhưng đủ dùng trong đại đa số yêu cầu thực tế). ƒ Khai báo như sau : Dim ASingleVariable As Single Hay Dim ASingleVariable! 'Tiếp vĩ ngữ là dấu ! Ví dụ: Dim InterestRate As Single, Earned!, Total As Single Earned = InterestRate * Total Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 141 Đặc tính chi tiết về kiểu Double Kiểu Double (số thực có độ chính xác kép - Double Precision) : ƒ Lưu trữ các số thực có độ chính xác kép (gần đúng với giá trị gốc với độ chính xác ở mức 16 chữ số). Ví dụ số 1234.57890123456 thì ký số bên phải nhất (6) có thể không chính xác. ƒ Kiểu dữ liệu này chiếm 8 byte trong bộ nhớ và miêu tả các giá trị trong phạm vi : -1.797693234862232E308 đến -4.94065645841247E-324 và 4.94065645841247E-324 đến 1.797693234862232E308 ƒ Có thể thực hiện các phép toán số học trên kiểu dữ liệu này nhưng rất chậm (chậm hơn cả kiểu Single). Do cách chứa số Double chỉởmức gần đúng nên các phép toán trên các dữ liệu thuộc kiểu này sẽ tạo kết quả gần đúng (nhưng quá đủ dùng trong đại đa số yêu cầu thực tế). ƒ Khai báo như sau : Dim ADoubleVariable As Double Hay Dim ADoubleVariable# ‘Tiếp vĩ ngữ là dấu # Ví dụ: Dim InterestRate As Double, Earned#, Total As Double Earned = InterestRate * Total Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 142 71
  8. Đặc tính chi tiết về kiểu Currency Kiểu Currency (Tiền Tệ) ƒ Kiểu Currency được dùng để lưu các dữ liệu thuộc kiểu tiền tệ (số lượng tiền). ƒ Được lưu trữ trong bộ nhớ bằng 8 byte. ƒ Có thể có 4 chữ sốởbên phải dấu chấm thập phân và 15 chữ sốởbên trái dấu thập phân. ƒ Có tầm trị: - 922337203685477.5808 đến 922337203685477.5807 ƒ Có thể thực hiện được các phép toán số học trên kiểu dữ liệu này nhưng tốc độ xử lý rất chậm như đối với các số thực có độ chính xác kép, song nó là kiểu dữ liệu ưa dùng cho các phép tính tài chính. ƒ Khai báo: Dim ACurrencyVariable As Currency Hay Dim ACurrencyVariable@ 'Tiếp vĩ ngữ là dấu @ Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 143 Đặc tính chi tiết về kiểu Date Kiểu Date (Ngày tháng) ƒ Dùng để lưu trữ các dữ liệu thuộc kiểu ngày giờ cho bất kỳ thời điểm nào từ 0h00 ngày 01/01/100 đến 0h00 ngày 31/12/9999. ƒ Kiểu Date được lưu trữ trong máy tính bằng 8 bytes. ƒ Dữ liệu thuộc kiểu Date phải được bao bởi cặp dấu # ở hai đầu. Ví dụ: Millenium = #January 1, 2000# Millenium = #Jan 1, 2000# Millenium = #1/1/ 2000# ƒ Nếu ta chưa gán trị cho biến thuộc kiểu Date thì VB mặc nhận đó là lúc 0:0:0 cùng ngày. ƒ Có thể dùng dạng thức AM/PM hay dạng 24 giờ để biểu diễn cho giá trị giờ Ví dụ: PreMillenium = #December 31, 1999 11:59:59PM# hay PreMillenium = #December 31, 1999 23:59:59# ƒ Khai báo một biến thuộc kiểu Date như sau: Dim ADateVariable As Date ‘Không có tiếp vĩ ngữ Ví dụ : Dim PreMillenium As Date Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 144 72
  9. Đặc tính chi tiết về kiểu Variant Kiểu Variant (Kiểu dữ liệu biến đổi) ƒ Kiểu dữ liệu này được thiết kế để lưu mọi dữ liệu thuộc kiểu định sẵn của VB. Ví dụ như : Date, String, Double, Integer ƒ Nếu không khai báo kiểu rõ ràng cho 1 biến thì biến này sẽ được hiểu là thuộc kiểu này. ƒ VB sẽ chuyển đổi dữ liệu thuộc kiểu Variant thành một kiểu dữ liệu khác cho phù hợp (khi gán dữ liệu, ). Ví dụ : String ← Variant,Integer ← Variant,Date ← Variant ƒ Tuy nhiên việc chuyển đổi kiểu như trên sẽ dẫn đến nhiều lỗi không lường trước được. ƒ Dùng kiểu Variant thay cho một kiểu cụ thể sẽ làm chậm tốc độ xử lý của chương trình do phải tốn thờI gian chuyển đổi và tốn nhiều bộ nhớ hơn. ƒ Khai báo một biến thuộc kiểu Variant như sau : Dim AVariantVariable As Variant Hay Dim AVariantVariable 'Mặc nhiên thuộc kiểu Variant Ví dụ: Dim x, y, z As Integer 'x,y là kiểu Variant Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 145 5.3 Việc dùng các class đối tượng có sẵn ƒ Như chúng ta đã trình bày trong chương 3, VB hỗ trợ việc lập trình OOP ở 1 mức độ nhất định : o VB cung cấp 1 số class đối tượng, người lập trình có thể dùng chúng ở bất kỳ project ứng dụng nào, ta có thể nói rằng tên của các class định sẳn này cũng là kiểu định sẵn của VB. o VB cho phép dùng các class đối tượng được người khác viết thông qua công nghệ COM, ActiveX Control (sẽ trình bày trong chương 12). o VB cho người lập trình định nghĩa các class mới ngay trong project phần mềm của họ nhờ khái niệm "class module" (sẽ được trình bày chi tiết trong chương 6). Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 146 73
  10. Việc dùng các class đối tượng có sẵn (tt) ƒ Dù ở dạng nào, mỗi class đều có tên nhận dạng, tên này chính là tên kiểu và được dùng trong phát biểu định nghĩa biến đối tượng : Dim pclipbd As Clipboard Set pclipbd = New Clipboard ƒ Lưu ý rằng biến thuộc kiểu class không chứa trực tiếp đối tượng, nó chỉ là tham khảo (phương tiện truy xuất) đến đối tượng. Do đó trước khi dùng biến đối tượng, nhất thiết phải tạo đối tượng (thường thông qua hàm New) để nhận tham khảo đến đối tượng rồi gán tham khảo này vào biến như thí dụ trên. Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 147 Qui trình tạo 1 class mới để dùng trong project ƒ Ấn chuột phải trong cửa sổ Project, dời chuột tới mục "Add" rồi chọn mục "Class Module" trong danh sách. ƒ Khi cửa sổ "Add class module" hiển thị, chọn icon "Class module" rồi ấn "Open" để tạo ra class mới. ƒ thiết lập tên class module cho phù hợp (trong cửa sổ thuộc tính), tên này chính là tên kiểu được dùng trong phát biểu định nghĩa biến đối tượng. ƒ ấn kép chuột vào mục tên class mới tạo ra để hiển thị cửa sổ code đặc tả cho class đó. Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 148 74
  11. Cửa sổ đặc tả class ƒ định nghĩa từng thuộc tính dữ liệu và từng method của class theo cú pháp VB (sẽ được trình bày sau). ƒ debug từng method của class xem nó hoạt động đúng chức năng mong muốn trước khi dùng (sẽ trình bày hoạt động debug sau). ƒ mỗi class có 2 method đặc biệt : o Private Sub Class_Initialize() : miêu tả các hành động khi đối tượng vừa được tạo ra. o Private Sub Class_Terminate() : miêu tả các hành động khi đối tượng sắp sửa bị xóa. Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 149 5.4 Đặt tên biến theo cách "ký hiệu Hungarian" Ký hiệu Hungarian ƒ Một số lập trình viên thường thích bổ sung thêm một tiếp đầu ngữ vào tên biến để nêu rõ kiểu của biến, nhờ đó tăng độ dễ đọc cho chương trình. Ví dụ: sngInterestRate : Biến có độ chính xác đơn (Single) intCount: Biến thuộc kiểu Integer strName: Biến thuộc kiểu String ƒ Qui ước trên gọi là ký hiệu Hungarian (do Charles Simonge, một lập trình viên gốc Hungari của Miscrosoft) đề xướng. Lưu ý rằng bạn vẫn phải khai báo kiểu cho các biến trên và kiểu phải tương thích với tiếp đầu ngữ đã dùng với tên biến. ƒ Một số kiểu và tiếp đầu ngữ tương ứng : String str Integer int Single sng Currency cur Boolean bln Long lng Double dbl Variant vnt Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 150 75
  12. Các lưu ý về biến ƒ Trong một ngữ cảnh (trong 1 chương trình con, trong 1 module, cấp toàn cục), không thể dùng hai biến cùng tên (VB không phân biệt chữ HOA hay chữ thường). ƒ Tên biến là phần tên, không kể đến tiếp vĩ ngữ miêu tả kiểu kết hợp. Ví dụ: Biến a% và biến a! là trùng nhau, VB sẽ đưa ra thông báo lỗi: “Duplicate Definition” ƒ Sau khi định nghĩa biến, VB sẽ khởi động trị ban đầu cho biến đó. Ví dụ : o Biến thuộc kiểu Variant có giá trị ngầm định là “Empty” (rỗng), giá trị “Empty” sẽ biến mất khi ta gán cho biến một giá trị cụ thể. o Biến chuỗi có giá trị ngầm định là chuỗI rỗng "" (hai dấu nháy liền nhau). o Biến số có giá trị ngầm định là 0. ƒ Không nên tin vào trị ngầm định của biến, phải gán giá trị cho biến trước khi dùng chúng. ƒ 1 biến tương ứng với 1 vùng nhớ, do đó khi gán một giá trị cho biến, giá trị cũ của biến sẽ bị mất đi. Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 151 Tầm vực truy xuất biến ƒ Tầm vực của một biến là tập các lệnh được phép truy xuất biến đó. ƒ Như được miêu tả trong silde 7 (chương 1), VB cho phép 3 cấp độ tầm vực sau : o cục bộ trong thủ tục : bất kỳ lệnh nào trong thủ tục đều có thể truy xuất được biến cục bộ trong thủ tục đó. Private Sub Command1_Click() Dim strGreeting As String 'Khai báo cục bộ End Sub o cục bộ trong module : bất kỳ lệnh nào trong module đều có thể truy xuất được biến cục bộ trong module đó. Private strAddr As String 'biến cục bộ trong module Public strName As String 'biến toàn cục o toàn cục : bất kỳ lệnh nào trong chương trình cũng có thể truy xuất được biến toàn cục. ƒ Trong một ngữ cảnh (cùng 1 thủ tục, cùng 1 module, hay cấp toàn cục), không thể dùng hai biến cùng tên (VB không phân biệt chữ HOA hay chữ thường). Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 152 76
  13. Thời gian sống của biến ƒ Biến là 1 thực thể nên cũng có thời gian sống hữu hạn, thời gian sống của biến thường phụ thuộc vào tầm vực của biến đó: o biến cục bộ trong thủ tục : được tạo ra lúc thủ tục được gọi và mất đi khi thủ tục kết thúc việc xử lý và điều khiển được trả về lệnh gọi. o biến cục bộ trong module : được tạo ra lúc module được tạo ra và mất đi khi module bị xóa. • Các (standard) modules có thời gian sống từ lúc chương trình chạy cho đến khi chương trình kết thúc. • Các đối tượng của class module hay form module được tạo ra khi có yêu cầu cụ thể. Tạo đối tượng nghĩa là tạo các thuộc tính của nó, các thuộc tính của đối tượng sẽ mất đi khi đối tượng bị xóa. o biến toàn cục : được tạo ra lúc chương trình bắt đầu chạy và chỉ mất đi khi chương trình kết thúc. Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 153 Thời gian sống của biến (tt) ƒ Muốn kéo dài thời gian sống của 1 biến, ta thường dùng 2 cách sau : o nâng cấp tầm vực : từ cục bộ trong thủ tục lên cục bộ trong module hay lên toàn cục Cách này ít được dùng tường minh vì nó sẽ thay đổi tầm vực của biến. Để khắc phục điều này, VB cung cấp khái niệm "Static" kết hợp với biến : biến có thuộc tính "Static" sẽ tồn tại mãi và chỉ mất đi khi chương trình kết thúc bất chấp tầm vực của nó ra sao. Private Sub Command1_Click() Dim strGreeting As String 'biến cục bộ Static strAddr As String 'biến cục bộ có thời gian sống lâu dài theo ứng dụng. End Sub o ghi giá trị biến ra môi trường chứa tin bền vững (file trên đĩa) trước khi biến bị xóa. Khi cần lại giá trị của biến này, ta đọc giá trị của nó từ file vào. Đây là phương pháp thông dụng để trao đổi dữ liệu giữa 2 ứng dụng khác nhau hay giữa 2 lần chạy khác nhau của cùng 1 ứng dụng. Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 154 77
  14. 5.5 Hằng gợinhớ ‰ Như ta đãbiết, ta định nghĩabiến để lưutrữ dữ liệucủachương trình. Ngay sau khi được định nghĩa, giá trị ban đầucủabiến thường chưa đượcxácđịnh tường minh, do đótaphảithiếtlập (gán) giá trị cho biếntrước khi dùng lạitrị củabiến. ‰ Có 3 cách khác nhau để thiếtlập (gán) giá trị cho 1 biến: ƒ từ tương tác vớingười dùng, biếnkếthợpvới đốitượng giao diện tương ứng sẽ được gán giá trị mà người dùng nhập vào. ƒ các tham số đượctruyềnkhigọithủ tục, khi hoàn thành code trong thủ tụcsẽ gán trị vào tham số. ƒ nhưng cách cơ bảnvàphổ biếnnhất là dùng phát biểu gán vớicú pháp sau : AVariable = AExpression Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 155 Hằng gợi nhớ ‰ Biểu thức đơn giản nhất là 1 giá trị, giá trị này có thể được dùng nhiều nơi trong chương trình. ‰ Hằng gợi nhớ (Constant) là khái niệm cho phép người lập trình kết hợp 1 tên gợi nhớ với 1 giá trị để khi cần dùng giá trị đó, ta không viết lại chi tiết cụ thể của trị mà chỉ dùng tên gợi nhớ. ‰ Cú pháp của phát biểu định nghĩa hằng gợi nhớ : Const ConstName = Value Ví dụ : Const PI = 3.1416 ‰ LợI ích của việc dùng hằng gợi nhớ : ƒ Chương trình sẽ trong sáng, dễ đọc hơn, dẫn đến việc bảo trì, nâng cấp chương trình được thuận tiện hơn. ƒ 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 Môn : Tin học Khoa Công nghệ Thông tin Chương 5 : Các kiểu dữ liệu trong VB Trường ĐH Bách Khoa Tp.HCM Slide 156 78