các kiểu dữ liệu trong vb

16
Các kiểu dữ liệu trong Các kiểu dữ liệu trong VB VB Chương 5 Chương 5

Upload: keitaro-rin

Post on 30-Dec-2015

34 views

Category:

Documents


0 download

DESCRIPTION

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). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Các kiểu dữ liệu trong VB

Các kiểu dữ liệu trong VBCác kiểu dữ liệu trong VB

Chương 5Chương 5

Page 2: Các kiểu dữ liệu trong VB

Môn Tin họcMôn Tin họcChương 5 : Các kiểu dữ liệu trong VBChương 5 : Các kiểu dữ liệu trong VB

Slide Slide 22

Khoa Khoa học & Kỹ thuật máy tínhKhoa Khoa học & Kỹ thuật máy tínhTrường ĐH Bách Khoa Tp.HCMTrường ĐH Bách Khoa Tp.HCM

Nguyên tắc đặt tên biếnNguyên tắc đặt tên biếnTê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ố

Page 3: Các kiểu dữ liệu trong VB

Môn Tin họcMôn Tin họcChương 5 : Các kiểu dữ liệu trong VBChương 5 : Các kiểu dữ liệu trong VB

Slide Slide 33

Khoa Khoa học & Kỹ thuật máy tínhKhoa Khoa học & Kỹ thuật máy tínhTrường ĐH Bách Khoa Tp.HCMTrường ĐH Bách Khoa Tp.HCM

Các vấn đề xoay quanh tên biếnCác vấn đề xoay quanh tên biến

Người sử dụng phải lựa chọn giữa Người sử dụng phải lựa chọn giữa tên ngắntên ngắn và và tên có ý tên có ý nghĩanghĩa..Ví dụ :Ví dụ : x, y, z, a, b, c là tên ngắn nhưng ít có ý nghĩa.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.InterestingRate, InfraRed có ý nghĩa nhưng dài.

Tránh đặt tên trùng với các Tránh đặt tên trùng với các từ khóatừ khóa hay hay từ dành riêngtừ dành riêng của của ngôn ngữ.ngôn ngữ.Ví dụ : Sub, End, Print, . . .Ví dụ : Sub, End, Print, . . .

Page 4: Các kiểu dữ liệu trong VB

Môn Tin họcMôn Tin họcChương 5 : Các kiểu dữ liệu trong VBChương 5 : Các kiểu dữ liệu trong VB

Slide Slide 44

Khoa Khoa học & Kỹ thuật máy tínhKhoa Khoa học & Kỹ thuật máy tínhTrường ĐH Bách Khoa Tp.HCMTrường ĐH Bách Khoa Tp.HCM

Các kiểu dữ liệu cơ bản định sẵn của VBCác kiểu dữ liệu cơ bản định sẵn của VB

ByteByte : : dài dài 1 byte, số nguyên không dấu.1 byte, số nguyên không dấu.

BooleanBoolean : : dài dài 2 bytes, luận lý 2 bytes, luận lý TrueTrue or or FalseFalse

IntegerInteger : : dài dài 2 bytes, số nguyên (có dấu).2 bytes, số nguyên (có dấu).

LongLong : : dài 4 bytes, số nguyên.dài 4 bytes, số nguyên.

SingleSingle : : dài dài 4 bytes, số thực chính xác đơn (7 chữ số).4 bytes, số thực chính xác đơn (7 chữ số).

DoubleDouble :: dài dài 8 bytes, số thực chính xác kép (15 chữ số).8 bytes, số thực chính xác kép (15 chữ số).

CurrencyCurrency :: dài dài 8 bytes, tiền tệ (14 con số, 4 số lẻ).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.

Page 5: Các kiểu dữ liệu trong VB

Môn Tin họcMôn Tin họcChương 5 : Các kiểu dữ liệu trong VBChương 5 : Các kiểu dữ liệu trong VB

Slide Slide 55

Khoa Khoa học & Kỹ thuật máy tínhKhoa Khoa học & Kỹ thuật máy tínhTrường ĐH Bách Khoa Tp.HCMTrường ĐH Bách Khoa Tp.HCM

Các kiểu dữ liệu mở rộngCác kiểu dữ liệu mở rộngVariant : 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.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

Page 6: Các kiểu dữ liệu trong VB

Môn Tin họcMôn Tin họcChương 5 : Các kiểu dữ liệu trong VBChương 5 : Các kiểu dữ liệu trong VB

Slide Slide 66

Khoa Khoa học & Kỹ thuật máy tínhKhoa Khoa học & Kỹ thuật máy tínhTrường ĐH Bách Khoa Tp.HCMTrường ĐH Bách Khoa Tp.HCM

Kiểu dãy (array)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ụ : Dim vector(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

vector(0) vector(9)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

Page 7: Các kiểu dữ liệu trong VB

Môn Tin họcMôn Tin họcChương 5 : Các kiểu dữ liệu trong VBChương 5 : Các kiểu dữ liệu trong VB

Slide Slide 77

Khoa Khoa học & Kỹ thuật máy tínhKhoa Khoa học & Kỹ thuật máy tínhTrường ĐH Bách Khoa Tp.HCMTrường ĐH Bách Khoa Tp.HCM

Kiểu Class đối tượngKiể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 Sử dụng các class đối tượng có sẳn của VB thông qua tên class.class.

Tên class đối tượng có sẳn được xem như Tên class đối tượng có sẳn được xem như tên kiểu dữ liệutê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 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.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

Page 8: Các kiểu dữ liệu trong VB

Môn Tin họcMôn Tin họcChương 5 : Các kiểu dữ liệu trong VBChương 5 : Các kiểu dữ liệu trong VB

Slide Slide 88

Khoa Khoa học & Kỹ thuật máy tínhKhoa Khoa học & Kỹ thuật máy tínhTrường ĐH Bách Khoa Tp.HCMTrường ĐH Bách Khoa Tp.HCM

Ví dụ về class có sẳnVí dụ về class có sẳn

Tạo form có dạng sau :Tạo form có dạng sau :

Thêm đoạn code sau vàoThêm đoạn code sau vàoPrivate Sub Private Sub Form_LoadForm_Load()()

Dim Dim xx As As CommandButtonCommandButton

Set Set xx = = cmdOKcmdOK

xx.Caption = ".Caption = "OKOK""

End SubEnd Sub

Lúc chạy sẽ như hình bênLúc chạy sẽ như hình bên

(Name) = cmdOK

Page 9: Các kiểu dữ liệu trong VB

Môn Tin họcMôn Tin họcChương 5 : Các kiểu dữ liệu trong VBChương 5 : Các kiểu dữ liệu trong VB

Slide Slide 99

Khoa Khoa học & Kỹ thuật máy tínhKhoa Khoa học & Kỹ thuật máy tínhTrường ĐH Bách Khoa Tp.HCMTrường ĐH Bách Khoa Tp.HCM

Tạo class đối tượng mớiTạo class đối tượng mới

Dùng class module.Dùng class module.

Định nghĩa các Định nghĩa các thuộc tínhthuộc tính và và methode methode của đối tượng.của đối tượng.

Debug các methode . Debug các methode .

Định nghĩa thêm 2 Định nghĩa thêm 2 methodemethode đặc biệt :đặc biệt :

Class_Initialize()Class_Initialize() để để khởi tạo đối mới sinh khởi tạo đối mới sinh ra.ra.

Class_Terminate()Class_Terminate() để để thu hồi đối tượng.thu hồi đối tượng.

Page 10: Các kiểu dữ liệu trong VB

Môn Tin họcMôn Tin họcChương 5 : Các kiểu dữ liệu trong VBChương 5 : Các kiểu dữ liệu trong VB

Slide Slide 1010

Khoa Khoa học & Kỹ thuật máy tínhKhoa Khoa học & Kỹ thuật máy tínhTrường ĐH Bách Khoa Tp.HCMTrường ĐH Bách Khoa Tp.HCM

Tên biến theo phong cách HungarianTê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.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 :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

Page 11: Các kiểu dữ liệu trong VB

Môn Tin họcMôn Tin họcChương 5 : Các kiểu dữ liệu trong VBChương 5 : Các kiểu dữ liệu trong VB

Slide Slide 1111

Khoa Khoa học & Kỹ thuật máy tínhKhoa Khoa học & Kỹ thuật máy tínhTrường ĐH Bách Khoa Tp.HCMTrường ĐH Bách Khoa Tp.HCM

Lưu ý khi sử dụng biếnLưu ý khi sử dụng biến

Vấn đề trùng tên.Vấn đề trùng tên.Cùng ngữ cảnh : không được phép.Cùng ngữ cảnh : không được phép.

Khác ngữ cảnh : đượ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 Các tiếp vĩ ngữ dùng để định nghĩa tắt không được tính vào tên biến.tên biến.Ví dụ :Ví dụ : xx!! và x và x## là trùng tên. là trùng tên.

Trị ban đầu của biến.Trị ban đầu của biến.Variant : trị Empty (rỗng).Variant : trị Empty (rỗng).

String : "" (chuỗi rỗng).String : "" (chuỗi rỗng).

Số : 0Số : 0

Gán trị mới vào biến thì Gán trị mới vào biến thì trị cũ bị mấttrị cũ bị mất..

Tốt nhất nên khởi động trị cho biến trước khi sử dụng

Page 12: Các kiểu dữ liệu trong VB

Môn Tin họcMôn Tin họcChương 5 : Các kiểu dữ liệu trong VBChương 5 : Các kiểu dữ liệu trong VB

Slide Slide 1212

Khoa Khoa học & Kỹ thuật máy tínhKhoa Khoa học & Kỹ thuật máy tínhTrường ĐH Bách Khoa Tp.HCMTrường ĐH Bách Khoa Tp.HCM

Tầm vực của biếnTầm vực của biếnToàn cụcToàn cục

Dùng Dùng Public Public thay cho Dim ở thay cho Dim ở cấp module (Standard module)cấp module (Standard module)..Ví dụ :Ví dụ : Public x As SinglePublic x As Single

Cục bộ trong moduleCục bộ trong moduleDùng Dùng PrivatePrivate hay hay DimDim ở cấp module (General). ở cấp module (General).

Ví dụ : Private x As IntegerVí dụ : Private x As Integer

Cục bộ trong thủ tụcCục bộ trong thủ tụcDùng Dùng DimDim hay hay StaticStatic ở cấp độ thủ tục (trong Sub hay ở cấp độ thủ tục (trong Sub hay Function)Function)

Ví dụ :Ví dụ :Private Sub Command1_Click()Private Sub Command1_Click()

Dim x As DoubleDim x As Double. . .. . .

End SubEnd Sub

Page 13: Các kiểu dữ liệu trong VB

Môn Tin họcMôn Tin họcChương 5 : Các kiểu dữ liệu trong VBChương 5 : Các kiểu dữ liệu trong VB

Slide Slide 1313

Khoa Khoa học & Kỹ thuật máy tínhKhoa Khoa học & Kỹ thuật máy tínhTrường ĐH Bách Khoa Tp.HCMTrường ĐH Bách Khoa Tp.HCM

Thời gian sống của biếnThời gian sống của biến

Biến toàn cụcBiến toàn cục : xuất hiện và mất đi theo dự án. : xuất hiện và mất đi theo dự án.

Biến cục bộ trong moduleBiến cục bộ trong module : xuất hiện và mất đi theo module. : xuất hiện và mất đi theo module.Standard module : cùng lúc với dự án.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.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 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ụcBiến cục bộ trong thủ tục : được tạo ra khi vào thủ tục và : đượ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.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 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 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.phải xem lúc biến đó còn tồn tại.

Page 14: Các kiểu dữ liệu trong VB

Môn Tin họcMôn Tin họcChương 5 : Các kiểu dữ liệu trong VBChương 5 : Các kiểu dữ liệu trong VB

Slide Slide 1414

Khoa Khoa học & Kỹ thuật máy tínhKhoa Khoa học & Kỹ thuật máy tínhTrường ĐH Bách Khoa Tp.HCMTrường ĐH Bách Khoa Tp.HCM

Kéo dài thời gian sống của biếnKéo dài thời gian sống của biến

Chuyển Chuyển cấp khai báocấp khai báo biến. Chẳng hạn, thay vì dùng biến biến. Chẳng hạn, thay vì dùng biến cục bộ trong thủ tụccục bộ trong thủ tục thì chuyển sang dùng biến thì chuyển sang dùng biến cục bộ trong cục bộ trong modulemodule..

Dùng biến kiểu Dùng biến kiểu StaticStatic là biến có là biến có tầm vực cục bộ trong thủ tầm vực cục bộ trong thủ tụctục nhưng có nhưng có thời gian sống theo dự ánthời gian sống theo dự án..

Ví dụ :Ví dụ :

Private Sub SoNguyenTo ()Private Sub SoNguyenTo ()

DimDim i As Integer, n As Integer i As Integer, n As Integer

Static Static SoNgTo As BooleanSoNgTo As Boolean

. . .. . .

End SubEnd Sub

Lưu nội dung biến lên Lưu nội dung biến lên đĩađĩa, biến sẽ tồn tại giữa những lần , biến sẽ tồn tại giữa những lần chạy các dự án khác nhau.chạy các dự án khác nhau.

Page 15: Các kiểu dữ liệu trong VB

Môn Tin họcMôn Tin họcChương 5 : Các kiểu dữ liệu trong VBChương 5 : Các kiểu dữ liệu trong VB

Slide Slide 1515

Khoa Khoa học & Kỹ thuật máy tínhKhoa Khoa học & Kỹ thuật máy tínhTrường ĐH Bách Khoa Tp.HCMTrường ĐH Bách Khoa Tp.HCM

Trị ban đầu của biếnTrị 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ị 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.ban đầu lấy ngẫu nhiên trong bộ nhớ máy tính.

Việc Việc gán trị ban đầugán trị ban đầu cho biến trước khi sử dụng là cho biến trước khi sử dụng là cần thiếtcần thiết..

Có 3 cách thiết lập (gán) trị cho 1 biến :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 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.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.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 :Dùng phát biểu gán với cú pháp sau :

<tên biến><tên biến> == <biểu thức><biểu thức>

Biểu thứcBiểu thức là cách tính giá trị được gán vào biến (xem là cách tính giá trị được gán vào biến (xem chương 7).chương 7).

Biểu thức Biểu thức đơn giản nhất là một giá trị (xem chương 6).đơn giản nhất là một giá trị (xem chương 6).

Page 16: Các kiểu dữ liệu trong VB

Môn Tin họcMôn Tin họcChương 5 : Các kiểu dữ liệu trong VBChương 5 : Các kiểu dữ liệu trong VB

Slide Slide 1616

Khoa Khoa học & Kỹ thuật máy tínhKhoa Khoa học & Kỹ thuật máy tínhTrường ĐH Bách Khoa Tp.HCMTrường ĐH Bách Khoa Tp.HCM

Hằng gợi nhớ (Constant)Hằng gợi nhớ (Constant)

Hằng gợi nhớHằng gợi nhớ là một là một giá trịgiá trị đã được đặt tên theo qui định đã được đặt tên theo qui định của cú pháp.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.