Vấn đề mấu chốt của việc dùng máy tính gi ải quyết công việc ngoài đời là lập trình (đƣợc hiểu nôm na là qui trình xác định trình tự đúng các lệnh máy để thực hiện công việc).. Cho đ[r]
(1)MÔN TIN HỌC ĐẠI CƢƠNG
Đối tƣợng: SV đại học quy tồn trƣờng
Nội dung gồm 12 chƣơng:
Phƣơng pháp gi ải tốn máy tính s ố
Thể liệu máy tính s ố Tổng quát v ề lập trình VB Qui trình thiết kế trực quan
giao diện
Các ki ểu liệu VB
Các l ệnh định nghĩa & khai báo
Biểu thức VB
Các l ệnh thực thi VB
Định nghĩa thủ tục & sử dụng Tƣơng tác gi ữa ngƣời dùng & chƣơng trình
Quản lý h ệ thống file
Linh kiện phần mềm & truy xuất database
Tài li ệu tham khảo:
Tập slide giảng & thực hành môn học CD MSDN Microsoft Visual Studio
Khoa Công nghệ Thông tin Mơn: Tin học
(2)MƠN TIN H ỌC
Chƣơng
PHƢƠNG PHÁP GI ẢI QUYẾT BÀI TỐN
BẰNG MÁY TÍNH S Ố
1.1 Các khái ni ệm máy tính s ố 1.2 Lịch sử phát tri ển máy tính s ố
1.3 Dữ liệu & chƣơng trình
1.4 Qui trình tổng qt gi ải tốn b ằng máy tính s ố
1.5 Phân tích tốn t ừ-trên-xu ống
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải tốn b ằng máy tính s ố
(3)1.1 Các khái ệnim cơ bản về máy tính số
Con ngƣời thơng minh động vật khác nhi ều Trong sống, họ ch ế tạo ngày nhiều công cụ, thiết bị để hỗ trợ hoạt động Các cơng c ụ, thiết bị ngƣời chế tạo ngày tinh vi, phức tạp thực nhiều công việc trƣớc M ỗi công cụ, thiết bị thƣờng thực đƣợc vài công việc cụ thể Thí dụ, ch ổi để qt, radio để bắt nghe đài audio
Máy tính s ố (digital computer) thiết bị, nhƣng thay thực số chức cụ thể, sát v ới nhu cầu đời thƣờng
ngƣời, thực số hữu hạn ch ức (tập lệnh), lệnh sơ khai chƣa giải trực tiếp đƣợc nhu cầu đời thƣờng ngƣời Cơ chế thực l ệnh tự động, lệnh đƣợc định lệnh lệnh cuối Danh sách l ệnh đƣợc thực đƣợc gọi
chƣơng trình
Khoa Cơng nghệ Thơng tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải tốn b ằng máy tính s ố
(4)Các khái ệnim cơ bản về máy tính số
Các l ệnh mà máy hi ểu thực đƣợc đƣợc gọi lệnh máy Ta dùng ngôn ngữ để miêu t ả l ệnh Ngơn ngữ lập trình cấu thành từ yếu tố yếu: cú pháp ng ữ nghĩa Cú pháp qui định trật tự kết hợp ph ần tử để cấu thành lệnh (câu), ngữ nghĩa cho biết ý ngh ĩa lệnh
Bất kỳ cơng việc (bài tốn ) ngồi đời đƣợc chia
thành trình tự nhiều cơng việc nhỏ Trình tự cơng vi ệc nhỏ đƣợc gọi giải thuật giải cơng việc ngồi đời Mỗi cơng việc nhỏ đƣợc chia nhỏ cịn phức tạp, ⇒ cơng việc ngồi đời đƣợc miêu t ả 1 trình tự l ệnh máy (ch ƣơng trình ngơn ngữ máy)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải toán b ằng máy tính s ố
(5)Các khái ệnim cơ bản về máy tính số
Vấn đề mấu chốt việc dùng máy tính gi ải cơng việc ngồi đời lập trình (đƣợc hiểu nơm na qui trình xác định trình tự lệnh máy để thực công việc) Cho đến nay, lập trình cơng việc ngƣời (với trợ giúp ngày nhi ều máy tính)
Với cơng nghệ phần cứng nay, ta chế tạo máy tính mà tập lệnh máy r ất sơ khai, lệnh máy ch ỉ thực công việc nhỏ đơn giản ⇒ cơng việc ngồi đời thƣờng tƣơng đƣơng với trình tự lớn (hàng triệu) l ệnh máy ⇒ Lập trình ngơn ngữ máy r ất phức tạp, tốn nhiều thời gian, công sức, kết khó bảo trì, phát tri ển
Ta muốn có máy lu ận lý v ới tập lệnh (đƣợc đặc tả ngơn ngữ lập trình) cao cấp gần gủi với ngƣời Ta thƣờng thực máy máy v ật lý + ch ƣơng trình dịch Có loại chƣơng trình dịch: trình biên d ịch (compiler) trình thơng dịch (interpreter)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải toán b ằng máy tính s ố
(6)Trình biên dịch (Compiler)
Chƣơng trình biên d ịch nhận chƣơng trình nguồn (thƣờng đƣợc viết ngơn ngữ cấp cao) tạo chƣơng trình
đối tƣợng tƣơng ứng về chức nhƣng thƣờng đƣợc viết
bằng ngôn ngữ cấp thấp (thƣờng ngơn ngữ máy)
Nếu có lỗi xảy lúc d ịch, trình biên d ịch báo l ỗi, cố gắng tìm vị trí k ế tiếp tiếp tục dịch… Nh vậy, lần dịch chƣơng trình, ta xác định đƣợc nhiều lỗi có Sau lần dịch, khơng có ỗli, trình biên d ịch tạo file chứa chƣơng trình đối tƣợng (thí dụ file chƣơng trình khả thi *.exe Windows)
Để chạy chƣơng trình, ngƣời dùng ch ỉ cần kích hoạt file khả thi (ngƣời dùng không cần quan tâm đến file
chƣơng trình nguồn)
Khoa Cơng nghệ Thơng tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải tốn b ằng máy tính s ố
(7)Trình thơng d ịch (Interpreter)
Chƣơng trình thơng dịch khơng tạo lƣu giữ chƣơng trình đối tƣợng
Mỗi lần thơng dịch chƣơng trình nguồn lần cố gắng chạy chƣơng trình theo cách th ức sau:
Dịch chuyển sang mã th ực thi lệnh nhờ máy chạy đoạn lệnh tƣơng ứng
Nếu có lỗi báo l ỗi, khơng có ỗli thơng dịch lệnh kế tiếp hết chƣơng trình
Nhƣ vậy, lần thơng dịch chƣơng trình, trình thơng dịch thơng dịch l ệnh luồng thi hành cần thiết không thông dịch hết lệnh chƣơng trình nguồn Do đó, sau khi thơng dịch thành cơng chƣơng trình, ta khơng thể kết luận rằng chƣơng trình khơng có ỗli
Khoa Cơng nghệ Thơng tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải tốn b ằng máy tính s ố
(8)So sánh trình biên ịdch & trình thông d ịch
Mọi hoạt động xử lý m ọi mã ngu ồn chƣơng trình (kiểm tra lỗi, dịch
các l ệnh đối tƣợng tƣơng đƣơng, ) đƣợc chƣơng trình biên d ịch thực để tạo đƣợc chƣơng trình đối tƣợng Do sau dịch file mã ngu ồn
chƣơng trình, khơng có ỗli, ta kết luận chƣơng trình khơng thể có lỗi thời điểm dịch (từ vựng, cú pháp) Quá trình biên d ịch trình th ực thi chƣơng trình tách r ời nhau: biên d ịch lần chạy nhiều lần cần cập nhật version chƣơng trình
Chƣơng trình thơng dịch thơng dịch lệnh theo luồng thi hành
chƣơng trình điểm nhập chƣơng trình, thơng dịch lệnh gồm hoạt động: biên d ịch lệnh thực thi l ệnh kết Nếu đoạn lệnh cần đƣợc thực thi lặp lại trình thơng dịch phải thơng dịch lại tất đoạn lệnh Điều làm cho việc chạy chƣơng trình chế độ thơng dịch khơng hiệu
Việc chạy chƣơng trình chế thơng dịch địi hỏi chƣơng trình thơng dịch chƣơng trình ứng dụng cần chạy phải tồn đồng thời nhớ máy tính, có nguy chạy khơng đƣợc ch ƣơng trình lớn tài ngun máy khơng đủ cho chƣơng trình thơng dịch chƣơng trình ứng dụng
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải toán b ằng máy tính s ố
(9)Các khái ệnim cơ bản về máy tính số
Gọi ngơn ngữ máy v ật lý N 0 Trình biên d ịch ngôn ngữ N1 sang ngôn ngữ N0 nhận đầu vào chƣơng trình đƣợc viết ngơn ngữ N1, phân tích t ừng lệnh N1 chuyển thành danh sách l ệnh ngơn ngữ N0 có chức tƣơng đƣơng Để viết chƣơng trình dịch từ ngôn ngữ N1 sang N0 dễ dàng, độ phức tạp lệnh ngôn ngữ N1 không cao so v ới lệnh ngôn ngữ N0
Sau có máy lu ận lý hi ểu đƣợc ngơn ngữ luận lý N 1, ta định nghĩa thực máy lu ận lý N 2 theo cách ti ếp tục đến ta có máy lu ận lý hi ểu đƣợc ngôn ngữ Nm gần gũi với ngƣời, dễ dàng miêu t ả giải thuật toán c ần giải Nhƣng qui trình ch ƣa có điểm dừng, với yêu c ầu ngày cao kiến thức ngày nhiều, ngƣời ta tiếp tục định nghĩa
ngôn ngữ với tập lệnh ngày gần gũi với ngƣời để miêu t ả giải thuật dễ dàng, gọn nhẹ sáng h ơn
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải toán b ằng máy tính s ố
(10)Các cấp độ ngơn ng ữ lập trình
Ngôn ngữ máy vật lý lo ại ngôn ngữ thấp mà ngƣời lập trình bình thƣờng dùng đƣợc Các l ệnh tham số lệnh đƣợc miêu t ả s ố binary (hay hexadecimal - đƣợc miêu t ả chi tiết chƣơng 2) Đây lo ại ngôn ngữ mà máy v ật lý hiểu trực tiếp, nhƣng ngƣời gặp nhiều khó khăn việc viết bảo trì chƣơng trình cấp
Ngơn ngữ assembly gần với ngôn ngữ máy, nh ững lệnh ngôn ngữ assembly tƣơng ứng với lệnh máy nh ƣng đƣợc biểu diễn dƣới dạng gợi nhớ Ngoài ra, ngƣời ta tăng cƣờng thêm khái niệm "lệnh macro" để nâng s ức mạnh miêu t ả giải thuật
Ngôn ngữ cấp cao theo trƣờng phái l ập trình cấu trúc nh ƣ Pascal, C, Tập lệnh ngôn ngữ m ạnh gần với tƣ ngƣời bình thƣờng
Ngơn ngữ hƣớng đối tƣợng nhƣ C++, Visual Basic, Java, C#, cải tiến phƣơng pháp c ấu trúc ch ƣơng trình cho sáng, ổn định, dễ phát tri ển thay linh kiện
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải toán b ằng máy tính s ố
(11)1.2 Lịch sử phát triển máy tính số
Máy tính xu ất từ lâu theo nhu c ầu buôn bán trao đổi tiền tệ
Bàn tính tay abacus dạng sơ khai máy tính
đơn vị
đơn vị
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải toán b ằng máy tính s ố
(12)Các thế hệ máy tính số
Blaise Pascal (Pháp-1642)
Charles Babbage (Anh-1830) ENIAC (1946) 18.000 bóng đèn Intel 8080 (1974) đƣợc xem nhƣ CPU đầu
1500 rờ le tiên đƣợc tích hợp
30 chip
140 KW
IBM 360 (1965)
Von Neumann (1945)
Cơ PDP-1 (1961)
Đèn
80x86 (1978)
điện tử
Transistors
IC ?
(1642 - 1945)
Herman Hollerith lập IBM (International Business Machine) Mỷ - 1890
(1945 - 1955)
Bộ nhớ dây tr ễ, tĩnh điện Giấy, phiếu đục lổ Băng từ
(1955 - 1965) (1965 - 1980) (1980 - ????)
Bộ nhớ xuyến từ Băng từ, trống từ, đĩa từ
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải tốn b ằng máy tính s ố
(13)1.3 Dữ liệu & chƣơng trình
Các l ệnh chƣơng trình (code) truy xuất (đọc và/hoặc ghi) thông
tin (dữ liệu)
Chƣơng trình giải tốn truy xuất nhiều liệu khác v ới tính chất đa dạng Để truy xuất liệu cụ thể, ta cần thơng tin liệu đó:
tên nhận dạng (identifier) xác định vị trí liệu kiểu dữ liệu (type) miêu t ả cấu trúc c liệu
tầm vực truy xuất (visibility) xác định l ệnh đƣợc phép truy xuất liệu tƣơng ứng
Chƣơng trình cổ điển = liệu + giải thuật
Chƣơng trình (function, subroutine, ) đoạn code thực chức đƣợc dùng nhi ều lần nhiều vị trí chƣơng trình,
đƣợc nhận dạng thơng qua tên g ọi Chƣơng trình cho phép cấu trúc ch ƣơng trình, sử dụng lại code
Khoa Cơng nghệ Thông tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải tốn b ằng máy tính s ố
(14)Cấu trúc chƣơng trình cổ điển Chƣơng trình = cấu trúc d ữ liệu + giải thuật
module global data
(package) local data entry 'start' of module local data of function
Khoa Công nghệ Thông tin Chƣơng 1: Phƣơng pháp gi ải tốn b ằng máy tính s ố Môn: Tin học
(15)1.4 Qui trình tổng qt giải quyết tốn bằng máy tính số
Dữ liệu cần xử lý b ằng
máy tính (ch ữ số, hình
ảnh, âm thanh, )
CDROM, đĩa, băng,
Kết có đƣợc sau xử lý b ằng máy
tính (chữ số, hình ảnh, âm thanh, )
Mã hóa liệu
thành dạng chuỗi bit
Lƣu giữ liệu số để dùng l ại
Xử lý d ữ liệu dạng chuỗi bit
Giải mã chu ỗi bit dạng ngƣời, thiết bị hiểu đƣợc
Máy tính s ố
Khoa Cơng nghệ Thông tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải tốn b ằng máy tính s ố
(16)Mơ hình máy tính số Von Neumann
chứa code data thực thi lệnh giao tiếp với bên
đang thực thi chƣơng trình (thƣờng ngƣời) để
nhập/xuất tin
Bộ nhớ Đơn vị xử lý Các thiết bị
(Memory) (CPU) vào (I/O)
Bus giao tiếp
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải toán b ằng máy tính s ố
(17)Hình dạng vật lý c ủa vài máy tính
màn hình thùng máy
loa
bàn phím chuột
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải toán b ằng máy tính s ố
(18)1.5 Phƣơng pháp phân tích từ-trên-xuống
Trong kh ứ, phƣơng pháp th ƣờng sử dụng để phân tích toán phƣơng pháp t ừ-trên-xu ống (top-down analysis)
Nội dung phƣơng pháp xét xem, mu ốn giải vấn đề cần phải làm công việc nhỏ Mỗi công việc nhỏ tìm đƣợc lại đƣợc phân thành nh ững công việc nhỏ nữa, nhƣ công việc phải làm công việc thật đơn giản, thực dễ dàng
Thí dụ việc học lấy kỷ sƣ CNTT khoa CNTT ĐHBK TP.HCM bao gồm cơng việc nhỏ học học kỳ từ tới 9, học học kỳ i học n môn học học kỳ đó, học mơn học học m chƣơng mơn đó,
Hình vẽ slide kế cho thấy trực quan việc phân tích top-down
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải toán b ằng máy tính s ố
(19)Phƣơng pháp phân tích từ-trên-xuống
chia thành nhi ều công việc nhỏ hơn, đơn giản để giải quyết hơn
Công việc cần giải (A)
Công việc Công việc
Công việc
A1 A2 An
Công việc Công việc Công việc Công việc Công việc Công việc
A 11 A 12 A 1n A n1 A n2 A nn
Các công vi ệc đủ nhỏ để đƣợc miêu t ả
1 lệnh hay lời gọi hàm/thủ tục có
Khoa Cơng nghệ Thơng tin Chƣơng 1: Phƣơng pháp gi ải toán b ằng máy tính s ố Mơn: Tin học
(20)Phƣơng pháp phân tích từ-trên-xuống Cơng việc cần giải
đối tƣợng phức hợp A
Đối tƣợng Đối tƣợng
Đối tƣợng
A1 A2 An
Đối tƣợng Đối tƣợng Đối tƣợng Đối tƣợng Đối tƣợng Đối tƣợng
A 11 A 12 A 1n A n1 A n2 A nn
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 1: Phƣơng pháp gi ải toán b ằng máy tính s ố
(21)MÔN TIN H ỌC
Chƣơng
THỂ HIỆN DỮ LIỆU
TRONG MÁY TÍNH S Ố
2.1 Cơ việc lƣu trữ xử lý tin máy tính
2.2 Cơ hệ thống số
2.3 Các ph ƣơng pháp chuy ển miêu t ả số 2.4 Biểu diễn liệu máy tính
2.5 Hệ thống file
2.6 Quản lý h ệ thống file
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(22)2.1 Cơ bản về việc lƣu trữ x ử lý tin máy tính
Phần tử nhớ nhỏ máy tính s ố chứa giá tr ị: (ta gọi bit)
Ta kết hợp nhiều phần tử nhớ để miêu t ả đại lƣợng lớn Thí dụ ta dùng bit để miêu t ả 28 = 256 giá tr ị khác Dãy bit nh đƣợc gọi byte, ô nhớ nhớ máy tính
Bộ nhớ máy tính đƣợc dùng để chứa liệu code chƣơng trình thực thi Nó dãy đồng ô nh bit, ô nhớ đƣợc truy xuất độc lập thông qua địa (tên nh ận dạng) Thƣờng ta dùng ch ỉ số từ - n để miêu t ả địa ô nhớ
Mặc dù đời ta quen dùng h ệ thống số thập phân, nh ƣng phần cứng bên máy tính, máy ch ỉ chứa xử lý tr ực tiếp liệu dạng nhị phân Do chƣơng này, ta giới thiệu khái ni ệm tảng hệ thống số cách miêu t ả liệu máy tính
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(23)2.2 Cơ bản về hệ thống số
Hệ thống số (number system) công cụ để biểu thị đại lƣợng Một hệ thống số gồm thành phần chính:
cơ số: số lƣợng ký s ố (ký hi ệu để nhận dạng s ố bản)
qui luật kết hợp ký số để miêu t ả đại lƣợng
các phép tính ơc bản trên s ố
Trong thành phần trên, ch ỉ có thành phần khác gi ữa h ệ thống số, cịn thành phần giống h ệ
thống số
Thí dụ: - hệ thống số thập phân ( hệ thập phân ) dùng 10 ký s ố:
0,1,2,3,4,5,6,7,8,9
- hệ nhị phân dùng ký s ố: 0,1
- hệ bát phân dùng ký s ố: 0,1,2,3,4,5,6,7
- hệ thập lục phân dùng 16 ký s ố: đến 9,A,B,C,D,E,F
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(24)Cơ bản về hệ thống số - Qui luật miêu ảt lƣợng Biểu diễn lƣợng Q hệ thống số B (B>1) là:
dndn-1 d1d0d-1 d-m
Q = dn*Bn + dn-1*Bn-1 + +d0*B0 +d-1*B-1 + +d
-m*B
-m
di ký s ố hệ thống B
Trong thực tế lập trình ngơn ngữ cấp cao, ta thƣờng dùng h ệ thống số thập phân để miêu t ả liệu số chƣơng trình (vì quen) Chỉ số trƣờng hợp đặc biệt, ta dùng h ệ thống số thập lục phân (d ạng ngắn nhị phân) để miêu t ả vài giá tr ị
nguyên, tr ƣờng hợp này, qui luật biểu diễn lƣợng nguyên Q hệ thống số B đơn giản là:
dndn-1 d1d0
Q = dn*Bn + dn-1*Bn-1 + +d1*B1+d0*B0 di ký s ố hệ thống B
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(25)Cơ bản về hệ thống số - Vài thí d ụ Thí dụ biểu diễn l ƣợng h ệ thống số:
lƣợng "mƣời bảy" đƣợc miêu t ả 17 hệ thập phân vì: 17 = 1*101+7*100
lƣợng "mƣời bảy" đƣợc miêu t ả 11 hệ thập lục phân vì: 11 = 1*161+1*160
lƣợng "mƣời bảy" đƣợc miêu t ả 10001 hệ nhị phân vì: 10001 = 1*24+0*23+0*22+0*21+1*20
Trong môi trƣờng sử dụng đồng thời nhiều hệ thống số, để tránh nh ằm lẫn bi ểu diễn l ƣợng khác nhau, ta s ẽ thêm ký t ự nhận dạng hệ thống số đƣợc dùng bi ểu diễn liên quan Thí d ụ ta viết:
17D để xác định biểu diễn hệ thống số thập phân 11H (hệ thống số thập lục phân.)
10001B (hệ thống số nhị phân.)
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(26)2.3 Các phƣơng pháp chuyển miêu ảt số
Để chuyển miêu t ả số từ hệ thống số sang hệ thống số khác, ta c ần dùng ph ƣơng pháp chuy ển thích hợp Có phƣơng pháp sau t ƣơng ứng với yêu c ầu chuyển tƣơng ứng:
chuyển từ hệ thống số khác v ề thập phân
chuyển từ nhị phân v ề thập lục phân (hay bát phân) 3 chuyển từ thập lục phân (hay bát phân) v ề nhị phân
4 chuyển từ hệ thống số thập phân v ề hệ thống số khác
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(27)Chuyển từ hệ thống khác về thập phân
Để chuyển miêu t ả số từ hệ thống số khác (nh ị phân, th ập lục phân hay bát phân) sang h ệ thập phân, ta dùng công th ức tính Q
Thí dụ:
1A2H = 1*162+10*161+2*160 = 256+160+2 = 418D 642O = 6*82+4*81+2*80 = 384+32+2 = 418D
110100010B = 28 + 27+25+21 = 256+128+32+2 =418D
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(28)Chuyển từ hệ thống nhị phân v ề thập lục phân
Lƣu ý r ằng có mối quan hệ mật thiết hệ nhị phân th ập lục phân (hay bát phân), ký số nhị phân t ƣơng đƣơng với 1 ký s ố thập lục phân (hay ký s ố nhị phân t ƣơng đƣơng với
ký s ố bát phân) theo b ảng tra sau:
Dec Hex Oct Binary
0 0 00 0000
1 1 01 0001
2 2 02 0010
3 3 03 0011
4 4 04 0100
5 5 05 0101
6 6 06 0110
7 7 07 0111
Dec Hex Oct Binary
8 8 10 1000
9 9 11 1001
10 A 12 1010
11 B 13 1011
12 C 14 1100
13 D 15 1101
14 E 16 1110
15 F 17 1111
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(29)Chuyển từ hệ thống nhị phân v ề thập lục phân
Để đổi số nhị phân v ề thập lục phân (hay bát phân), ta từ phải sang trái chia thành t ừng nhóm ký s ố nhị phân (hay ký s ố nhị phân), sau đổi nhóm ký s ố (hay ký s ố) thành ký s ố thập lục phân t ƣơng đƣơng (hay ký s ố bát phân tƣơng đƣơng)
Thí dụ:
110100010B = 0001.1010.0010 = 1A2H 110100010B = 110.100.010 = 642O
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(30)Chuyển từ hệ thống thập lục phân v ề nhị phân
Để đổi số thập lục phân (hay bát phân) v ký s ố thập lục phân (hay bát phân) thành t phân (hay ký s ố nhị phân)
Thí dụ:
nhị phân, ta đổi ừng nhóm ký s ố nhị
1A2H = 0001.1010.0010 = 110100010B
642O = 110.100.010 = 110100010B
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(31)Chuyển từ hệ thống thập phân v ề hệ thống khác
Để đổi số thập phân v ề hệ thống số khác, ta chia s ố cần đổi cho số đích để có đƣợc thƣơng dƣ số, ta lặp lại hoạt động chia thƣơng số cho số đích để có đƣợc thƣơng dƣ số mới, lặp thƣơng số = dừng lại Ghép d ƣ số theo chiều ngƣợc chiều lặp để tạo kết (đó miêu t ả số tƣơng đƣơng nhƣng hệ thống số khác) Thí dụ chuyển số 418 miêu t ả tƣơng ứng hệ thập lục:
418D 16
2 26 16
10 1 16
1 0
Kết 418D = 1A2H
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(32)Chuyển từ hệ thống thập lục phân v ề bát phân
Để đổi số thập lục phân v ề bát phân (hay ng ƣợc lại), ta nên chuyển từ thập lục phân v ề nhị phân, r ồi từ nhị phân v ề bát phân
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(33)Cơ bản về hệ thống số - Các phép tính Các phép tính c hệ thống số là:
1 phép cộng (+)
2 phép trừ (-)
3 phép chia (/)
4 phép nhân (*)
5 phép dịch trái n ký s ố (<< n) phép dịch phải n ký s ố (>> n)
Ngoài đặc điểm hệ nhị phân, h ệ cịn cung cấp số phép tính sau (các phép tính lu ận lý):
1 phép OR bit (|)
2 phép AND bit (&)
3 phép XOR bit (^)
4
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(34)Thí dụ về phép cộng, trừ, nhân
Thí dụ phép tính c (các giá tr ị đƣợc biểu diễn bằng hệ nhị phân:
0 1 1 0 1 0 + 0 1 - 0 1 * 1 1 0 0 1 1 0
0 0
1 0
1 1
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(35)Thí dụ về phép chia
Thí dụ phép tính c (các giá tr ị đƣợc biểu diễn bằng hệ nhị phân):
số bị chia
1 1 1 số chia
thƣơng số
- 1 1
0 1 1
0 dƣ số
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(36)Thí dụ về phép dịch ký s ố
Thí dụ phép tính d ịch ký s ố (các giá tr ị đƣợc biểu diễn hệ nhị phân):
0 0 1 bị dịch trái bit thành 0 0 1
0 (tƣơng dƣơng với nhân 2)
0 0
1 bị dịch phải bit thành
0 0 1 0 0 1 0
(tƣơng dƣơng với chia 22)
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(37)Các phép tính ủca đại số Boole
Đại số Boole nghiên c ứu phép toán th ực bi ến có giá tr ị 1, tƣơng ứng với hai thái c ực luận lý "sai" " đúng" (hay "không" "có") đời thƣờng Các phép tốn g ồm:
x y not x x and y x nand y x or y x nor y x xor y
0 1
0 1 1
1 0 1
1 1 0
Biểu thức Boole biểu thức toán hoc c ấu thành từ phép toán Boole toán h ạng bi ến chứa trị
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(38)Hàm Boole
Một hàm Boole theo n biến boole (hàm n ngôi) biểu thức boole cấu thành từ phép toán Boole bi ến boole
Thay miêu t ả hàm boole biểu thức boole, ta miêu t ả hàm boole bảng thực trị Bảng thực trị hàm boole n biến có 2n hàng, hàng miêu t ả tổ hợp trị cụ thể bi ến giá trị cụ thể hàm tƣơng ứng với tổ hợp trị (xem slide trƣớc)
Nhƣ hàm boole n biến đƣợc miêu t ả nhƣ chuỗi 2n bit ⇒ có chính xác 2 2 n hàm boole n khác C ụ thể có:
221 hàm boole khac
222 24 16 hàm boole khac
223 28 256 hàm boole khac
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(39)Cácđơn vị nhớ thƣờng dùng
Máy tính dùng tr ực tiếp hệ nhị phân, cácđơn vị biểu diễn thông tin thƣờng dùng là:
bit: miêu t ả 2 giá tr ị khác ( đúng/sai, 0/1, )
byte: 8bit, có thể miêu t ả đƣợc 28 = 256 giá tr ị khác nhau.
word: 2 byte, có thể miêu t ả đƣợc 216 = 65536 giá tr ị khác nhau.
double word: byte, có thể miêu t ả đƣợc 232
= 4.294.967.296 giá tr ị khác nhau.
KB (kilo byte) = 210 = 1024 byte.
MB (mega byte) = 220 = 1024KB = 1.048.576 byte.
GB (giga byte) = 230 = 1024MB = 1.073.741.824 byte.
TB (tetra byte) = 240 = 1024GB = 1.099.511.627.776 byte.
Thí dụ, RAM máy b ạn 512MB, đĩa cứng 300GB
(40)(41)2.4 Biểu diễn số nguyên Visual Basic
Tùy ngơn ngữ lập trình mà cách bi ểu diễn số máy có nh ững khác biệt định Riêng VB có nhi ều phƣơng pháp bi ểu diễn số khác nhau, cách th ƣờng dùng s ố nguyên s ố thực
Máy dùng word (2 byte) để chứa liệu nguyên (Integer) theo qui định cụ thể slide sau
Vì nhớ máy tính ch ỉ chứa đƣợc byte, ta phải dùng nhi ều ô liên ti ếp (2 hay 4) để chứa số nguyên Có cách ch ứa byte c số nguyên (hay d ữ liệu khác) vào ô nh ớ: BE & LE
Cách BE (Big Endian) ch ứa byte trọng số cao vào nhớ địa thấp trƣớc, sau lần lƣợt đến byte l ại Cách LE (Little Endian) ch ứa byte số nhỏ vào ô nhớ địa thấp trƣớc, sau lần lƣợt đến byte l ại
VB sử dụng cách LE để chứa số nguyên vào b ộ nhớ (Integer Long)
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(42)Biểu diễn số nguyên Visual Basic
Phần dƣơng có 32768 số từ số tới 32767, đƣợc miêu t ả theo công thức Q
Phần âm có 32768 s ố từ - 32768 tới -1, đƣợc miêu t ả ở dạng số bù nh ƣ sau:
Số bù của số n bit n bit mà bit ngƣợc với bit gốc (0 0)
Số bù của số n bit số bù c số tăng lên 1 đơn vị
Sự biểu diễn giá trị
00000000 00000000 0
00000000 00000001 1
01111111 11111111 32767 10000000 00000000 -32768 10000000 00000001 -32767
11111111 11111111 -1
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(43)Biểu diễn số nguyên VB - Thí dụ
Số 15 đƣợc miêu t ả dƣới dạng nhị phân 16 bit nh ƣ
sau: 0000 0000 0000 1111
Do đó, dùng ki ểu Integer để lƣu số 15, ta dùng 16 bit nh ƣ trên hay viết ngắn gọn 000FH Nếu lƣu vào nhớ dạng LE ơ nhớ có địa thấp (i) chứa byte 0FH, ô nhớ kế (i+1) chứa byte 00 Nếu dùng ki ểu Long để lƣu số 15, ta dùng byte
0000000F H lƣu vào nhớ dạng LE tốn ô nhớ với giá tr ị lần lƣợt từ địa thấp đến cao 0FH, 00, 00, 00
Số bù c 15 1111 1111 1111 0000, số bù c 15 1111 1111 1111 0001
Nhƣ -15 đƣợc lƣu vào máy d ạng Integer byte có giá tr ị FFF1H Nếu lƣu vào nhớ dạng LE nhớ có địa thấp (i) chứa byte F1H, ô nhớ kế (i+1) chứa byte FFH
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(44)Biểu diễn số thực Visual Basic
Để miêu t ả đƣợc giá tr ị nguyên n ằm phạm vi từ -32768 đến 32767, VB cung cấp kiểu 'Long', kiểu dùng byte để miêu t ả giá tr ị nguyên v ới nguyên t ắc nhƣ kiểu Integer Kết kiểu Long
miêu tả s ố nguyên ph ạm vi từ -2 tỉ đến tỉ
Trong khoa học, ta miêu t ả số thực theo dạng m*Be, m gọi định trị, B số e số mũ Nhƣ số thực cụ thể đƣợc miêu tả nhiều miêu t ả khác nhau, miêu t ả có 0.1m<1 đƣợc gọi miêu t ả tắc số thực Đây miêu t ả mà máy tính s ẽ dùng
± m B e m (mantissa) quyB (base) ết định độ xác
e (exponent) quyết định độ lớn/nhỏ
9135.512 10-1 913.551 0.9135512 103
91355.12 10-2 2 9.135512 102
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(45)Biểu diễn số thực Visual Basic
Trƣớc lƣu vào máy tính, s ố thực đƣợc đổi dạng miêu t ả nhị phân d ƣới dạng 1.m*2e (m chuỗi bit nhị phân miêu t ả phần lẻ) VB lƣu số thực theo chuẩn IEEE 754, dùng d ạng lƣu:
Chính xác đơn (Single): VB dùng byte - ô nhớ (32 bit) để lƣu
số thực theo dạng thức cụ thể sau: trong bit S = (âm), =0 (d ƣơng)
M = m & E = 127 + e S E M
1 8 23
Chính xác kép (Double) : VB dùng byte - ô nhớ (64 bit)
để lƣu số thực theo dạng thức cụ thể sau:
trong bit S = (âm), =0 (d ƣơng); M = m & E = 1023 + e
S E M
1 11 52
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(46)Biểu diễn số thực VB - Thí dụ
Thí dụ giá tr ị -1.5 đƣợc miêu t ả dạng nhị phân -1.1*20
Do dùng ki ểu Single chứa số thực -1.5, ta tốn byte (32 bit) với thành ph ần S = 1, M = 10 (22 bit 0), E = 127 Kết quả, giá tr ị byte miêu t ả số -1.5 nhƣ sau : BF C0 00 00
Tƣơng tự, dùng ki ểu Double chứa số thực -1.5, ta tốn byte (64 bit) với thành ph ần S = 1, M = 10 (51 bit 0), E = 1023 Kết quả, giá tr ị byte miêu t ả số -1.5 nhƣ sau : BF F8 00 00 00 00 00 00
VB dùng cách ch ứa LE, giá tr ị -1.5 đƣợc lƣu vào nhớ theo kiểu Single chiếm byte theo giá tr ị lần lƣợt từ địa thấp đến cao 00 00 C0 BF Tƣơng tự miêu t ả -1.5 vào nhớ theo kiểu Double cần ô nhớ với giá tr ị lần lƣợt từ địa thấp đến cao 00 00 00 00 00 00 F8 BF
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(47)Biểu diễn chuỗi ký t ự Visual Basic
Chuỗi ký t ự danh sách nhi ều ký t ự, ký t ự đƣợc miêu t ả máy n bit nhớ:
mã ASCII dùng bit (dùng byte nh ƣng bỏ bit 8) để miêu t ả ký t ự ⇒ tập ký t ự mà mã ASCII miêu t ả đƣợc 128
mã ISO 8859-1 dùng bit (1 byte) để miêu t ả ký t ự ⇒ tập ký t ự mà mã ISO 8859-1 miêu t ả đƣợc 256
mã Unicode Windows dùng 16 bit (2 byte) để miêu t ả ký t ự
⇒ tập ký t ự mà mã Unicode Windows miêu t ả đƣợc 65536
Hiện có nhiều loại mã ti ếng Việt khác nhau, đa số dùng mã ISO 8859-1 qui định lại cách hi ển thị số ký t ự thành ký t ự Việt Riêng Unicode mã th ống toàn cầu, cóđủ ký t ự Việt
Khoa Cơng nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(48)Bảng mã ASCII bit
Mã ASCII dùng giá tr ị (mã) t - 127 để miêu t ả ký t ự:
mã t - 31 mã điều khiển nhƣ CR=13 (Carriage Return), LF=10 (Line Feed), ESC=27 (Escape)
mã 32 miêu t ả ký t ự trống, 33 miêu t ả ký t ự !, theo bảng sau:
" # $ % & ' ( ) * + , - / 9: ; < = > ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(49)Bảng mã ISO8859 -1 (8 bit)
Mã ISO 8859-1 dùng giá tr ị (mã) t - 255 để miêu t ả ký t ự (128 mã ký t ự đầu qui định giống nhƣ mã ASCII):
mã t - 31 mã điều khiển nhƣ CR=13 (Carriage Return), LF=10 (Line Feed), ESC=27 (Escape)
mã 32 miêu t ả ký t ự trống, 33 miêu t ả ký t ự !, theo bảng sau:
" # $ % & ' ( ) * + , - / 9: ; < = > ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ţ Ř ř Ŗ ŗ • Ŕ ŕ ˜™ š › œ ţ Ÿ
Â Ê Ô Ơ Ư Đ ă â ê ô đ ả à ằ ẳ ẵ ắ
ặ ầ È É Ê Ë Ì Í Ỵ Ï Ð Đ Ị Ĩ Ơ Õ Ư × Ø Ù Ú Û ĩ í ị ò ỏ õ ó ọ ổ ỗ ố ộ ỡ ợ ï ð đ ị ó õ ÷ ø ự ỳ ỷ ỹ ý ỵ
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(50)Bảng mã ti ếng Việt ĐHBK byte
Mã ĐHBK byte có đƣợc cách hi ệu chỉnh bảng mã ISO 8859-1: mã t - 31 mã điều khiển nhƣ CR=13 (Carriage Return), LF=10 (Line Feed), ESC=27 (Escape)
mã 32 miêu t ả ký t ự trống, 33 miêu t ả ký t ự !, theo bảng sau:
! " # $ % & ' ( ) * + , - / 9: ; < = > ?
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
Á ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ị Ř ř Ŗ ŗ • Ŕ ŕ ˜ ™ š › œ Ặ Ÿ
¡ ¢ £ Ô Ơ Ư Đ ă â ê ô đ ả Ã ằ ẳ ẵ ắ
ặ ầ ẩ ẫ ấ ậ Ì Í Ỵ Ï Ð Đ Ị Ĩ Ơ Õ ệ ì ỉ ĩ í ị ò ỏ õ ó ọ ổ ỗ ố é ê ë ì í ỵ ï ð đ ị ó õ ÷ ø ù ú û ü ý ỵ
Khoa Cụng ngh Thụng tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(51)Một phần mã ti ếng Việt Unicode Mã Unicode Windows dùng byte để miêu t ả ký t ự:
256 mã đầu từ - 255 giống y nhƣ mã ISO 8859-1
mã t 256 trở chứa ký t ự hầu hết ngôn ng ữ giới (quá kh ứ, tƣơng lai)
thí dụ sau phần mã ti ếng Việt mã Unicode:
mã 1ea0 H biểu diễn ký t ự Ạ mã 1ef9 H biểu diễn ký t ự ỷ
ạ Ả ả Ấ ấ Ầ ầ Ẩ ẩ Ẫ ẫ Ậ ậ Ắ ắ Ằ ằ Ẳ ẳ Ẵ ẵ Ặ ặ Ẹ ẹ Ẻ ẻ Ẽ ẽ Ế ế Ề ề Ể ể Ễ ễ Ệ ệ Ỉ ỉ Ị ị Ọ ọ Ỏ ỏ Ố ố Ồ Ổ ổ Ỗ ỗ Ộ ộ Ớ Ờ Ở Ỡ ỡ Ợ ợ Ụ ụ Ủ ủ Ứ ứ Ừ Ử Ữ ữ Ự ự Ỳ ỳ Ỳ ỳ Ỵ ỵ Ỷ ỷ
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(52)Mã hóa d ữ liệu của ứng dụng
Số nguyên (Integer, Long), s ố thực (Single, Double), chuỗi ký t ự (String) dạng mã hóa liệu phổ dụng, ngồi ứng dụng cần có cách mã hóa riêng để mã hóa liệu đặc thù c nhƣ hình ảnh, âm thanh,
Trong chƣơng s ẽ trình bày chi tiết ki ểu liệu mà ngôn ngữ VB hỗ trợ
Nhƣng ta trình bày slide 15 (ch ƣơng 1), dù dùng cách mã hóa cụ thể kết việc mã hóa phải chuỗi bit (hay chuỗi
byte) để đƣợc lƣu trử xử lý bên máy tính
Bộ nhớ máy tính th ƣờng có dung lƣợng khơng lớn nên ta ch ỉ dùng để chứa code liệu chƣơng trình thực thi
máy tính có th ể lƣu trữ nhiều chƣơng trình liệu chúng thi ết bị chứa tin (bộ nhớ ngoài) nhƣ đĩa mềm, đĩa cứng,
CDROM,
(53)(54)2.5 Hệ thống file
code chƣơng trình, chuỗi byte miêu t ả liệu đƣợc lƣu trữ thiết bị chứa tin phần tử chứa tin luận lý đƣợc gọi file thiết bị chứa tin thƣờng chứa nhiều file Để nhận dạng truy xuất file, ta dùng tên nh ận dạng gán cho m ỗi file Để dễ dùng file,
tên nh ận dạng dạng tên g ợi nhớ (chuỗi ký t ự miêu t ả ngữ nghĩa nội dung file), thí dụ nhƣ file "luận án t ốt nghiệp.doc" chứa toàn nội dung luận án t ốt nghiệp ngƣời dùng máy
Nếu ta dùng không gian phẳng để đặt tên cho file thi ết bị chứa tin số lƣợng file l ớn nên ta khó lịng đặt tên, nh ận dạng, xử lý, (nói chung quản lý) t ừng file
Để giải vấn đề ta dùng không gian th ứ bậc để tổ chức quản lý file t ừng thiết bị chứa tin
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(55)Thiết bị chứa tin: Không gian th ứ bậc Để tạo không gian th ứ bậc, ta dùng khái ni ệm thƣ mục
(directory)
thƣ mục phần tử chứa nhiều phần tử bên nó: file hay thƣ mục Thƣờng ta dùng th ƣ mục để chứa phần tử có mối quan hệ mật thiết đó, thí dụ nhƣ thƣ mục chứa ảnh kỵ niệm, thƣ mục chứa file nh ạc ƣa thích,
Thiết bị chứa tin vật lý ( đĩa mềm, đĩa cứng, CDROM, ) đƣợc trừu tƣợng hóa nhƣ thƣ mục (ta gọi thƣ mục đặc biệt thƣ mục gốc) Thƣ mục gốc chứa nhiều phần tử bên trong, m ỗi phần tử thƣ mục gốc thƣờng thƣ mục nhƣng file Mỗi thƣ mục lại chứa nhiều thƣ mục hay file ta hình thành th ứ bậc th ƣ mục file
Ta dùng tên g ợi nhớ để nhận dạng thƣ mục Trong không gian th ứ bậc, ta dùng khái ni ệm đƣờng dẫn (pathname) để nhận dạng file hay thƣ mục
Khoa Công nghệ Thông tin Trƣờng ĐH Bách Khoa Tp.HCM
Môn: Tin học
Chƣơng 2: Thể liệu máy tính s ố
(56)Thí dụ về hệ thống file Cây th ứ bậc ổ c: \
config.sys Windows AudioFile VideoFile
System Fonts USAFilm ChinaFilm VNFilm
win.com
arial.ttf Dịng đời.mpg
Khoa Cơng nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(57)Đƣờng dẫn tuyệt đối t ƣơng đối
Đƣờng dẫn (pathname) thơng tin để tìm kiếm (xác định) phần tử
từ vị trí đó, chứa danh sách xác tên g ợi nhớ ph ần tử mà ta phải qua xuất phát t vị trí đầu để đến phần tử cần tìm
ta dùng d ấu ngăn đặc biệt để ngăn cách tên g ợi nhớ liên ti ếp đƣờng dẫn (trong Windows, dấu ngăn '\')
Tên th ƣ mục gốc ln '\'
Có khái ni ệm đƣờng dẫn: đƣờng dẫn tuyệt đối đƣờng dẫn
tƣơng đối Đƣờng dẫn tuyệt đối đƣờng dẫn xuất phát t thƣ mục gốc, đƣờng dẫn tƣơng đối xuất phát t thƣ mục làm việc (working directory)
Trƣớc ứng dụng bắt đầu chạy, hệ thống khởi động thƣ mục làm việc cho ứng dụng (theo chế đó) Trong q trình th ực thi, ứng dụng có quyền thay đổi thƣ mục làm việc theo yêu c ầu riêng
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(58)Đƣờng dẫn tuyệt đối t ƣơng đối (tt)
Xét th ứ bậc ổ c: slide 54, đƣờng dẫn tuyệt đối sau nhận dạng xác file arial.ttf th ƣ mục 'Fonts':
c:\Windows\Fonts\arial.ttf
Nếu thƣ mục working chƣơng trình c:\Windows\Fonts ta dùng đƣờng dẫn tƣơng đối sau để xác định file arial.ttf: arial.ttf
Đƣờng dẫn tuyệt đối thƣờng dài đƣờng dẫn tƣơng đối nhƣng ln có giá trị bất chấp ứng dụng thƣ mục working
Đƣờng dẫn tƣơng đối thƣờng gọn (đa số chứa tên file c ần truy xuất ứng dụng thiết lập thƣ mục working thƣ mục chứa file mà ứng dụng truy xuất) nhƣng có giá tr ị với thƣ mục working cụ thể
Trong vài trƣờng hợp đặc biệt, ta phải dùng đƣờng dẫn tƣơng đối dài phức tạp đƣờng dẫn tuyệt đối
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(59)2.6 Quản lý h ệ thống file
Hình dạng cấu trúc c hệ thống file thiết bị chứa tin ngƣời dùng thi ết lập nhờ tác v ụ phổ biến nhƣ: tạo/xóa thƣ mục, tạo/xóa file, copy/move file/thƣ mục từ nơi đến nơi khác
Nhƣng trƣớc thực tác v ụ đó, ngƣời dùng th ƣờng duyệt file: làm hiển thị cấu trúc c hệ thống file dạng để quan sát dễ dàng
Hệ thống dùng nhi ều chế khác để bảo vệ việc truy xuất file ngƣời dùng c chế mà Windows XP dùng k ết hợp với file số thuộc tính truy xuất, thuộc tính đƣợc lƣu trữ bit:
Read Only, = hệ thống khơng cho ứng dụng xóa/hiệu chỉnh phần tử
Hidden, = hệ thống dấu khơng hiển thị phần tử ứng dụng duyệt file
Archive đƣợc thiết lập =1 phần tử bị hiệu chỉnh nội dung
(phục vụ cho chế backup tăng dần) Môn: Tin học
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố
(60)Tiện ích quản lý h ệ thống file
Tất tác v ụ liên quan đến hệ thống file đƣợc gọi tác v ụ quản lý h ệ thống file
hệ thống cung cấp ứng dụng (tiện ích) để ngƣời dùng d ễ dàng thực tác v ụ quản lý file Thí d ụ Windows ta th ƣờng dùng tiện ích "Windows Explorer" để quản lý h ệ thống file
Có cách ph ổ biến để chạy ứng dụng (tiện ích):
1 double-click vào icon miêu t ả ứng dụng hình desktop (phải tạo icon shortcut chƣơng trình trƣớc dùng cách ch ạy này)
2 duyệt chọn ứng dụng từ menu Start.Programs
3 chạy trình Windows Explorer (từ menu
Start.Programs.Accessories.Windows Explorer), duyệt thƣ mục tìm file ứng dụng, ấn kép chuột vào file để chạy
4 vào menu Start.Run, nhập hàng lệnh chứa đƣờng dẫn xác định file chƣơng trình tham số hàng lệnh
Khoa Công nghệ Thông tin
Trƣờng ĐH Bách Khoa Tp.HCM Slide 58
Môn: Tin học
(61)Cửa sổ của WE & phần tử giao diện
MenuBar chứa tất tác v ụ mà ứng dụng hỗ trợ
Toolbar chứa icon tác v ụ
thƣờng dùng
TreeCtrl hiển thị hệ thống file dạng ListCtrl hiển thị phần tử thƣ mục StatusBar
Taskbar
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(62)Các thao tác duyệt hệ thống file
Click vào ô - để thu nhỏ nội dung thƣ mục Click vào + để chi tiết hóa nội dung thƣ mục
Nhƣng tốt double-click vào tên thƣ mục để chi tiết hóa/thu nhỏ nội dung Click vào tên th ƣ mục để hiển thị nội dung chi tiết
Khoa Cơng nghệ Thơng tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(63)Các tácụv xử lý file
Qui trình chung để thực
tác vụ hay nhi ều phần tử là:
chọn hay nhiều phần tử cần xử lý
chọn option menu hay icon toolbar thực tác v ụ mong muốn Chọn nhiều phần tử liên ti ếp:
o chick vào phần tử đầu,
p ấn giử phím Shift,
q click vào phần tử cuối r thả phím Shift
Khoa Cơng nghệ Thơng tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(64)Các tácụv xử lý file
Chọn nhiều phần tử rời rạc: chick vào phần tử đầu,
o ấn giử phím Ctrl,
p dời mouse đến phần tử cần chọn click vào q lặp lại bƣớc nhiều lần
cho nhiều phần tử thả phím Ctrl
Khoa Cơng nghệ Thơng tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(65)Tạo thƣ mục/file mới
Thƣờng việc tạo file
đƣợc thực bên
ứng dụng Qui trình tạo thƣ mục/file WE nhƣ sau:
duyệt th ƣ mục cửa sổ bên trái chọn thƣ mục mà bạn muốn tạo thƣ mục/file
chọn menu File.New
muốn tạo thƣ mục, chọn Folder
muốn tạo file,
chọn loại file danh sách
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(66)Xóa th ƣ mục/file đang tồn tại
Qui trình xóa thƣ mục/file WE nhƣ sau:
duyệt th ƣ mục
trong cửa sổ bên trái chọn thƣ mục mà bạn muốn xóa thƣ mục/file
chọn ph ần tử
cần xóa ListCtrl bên phải
chọn menu File hay
ấn phải chuột vào vị trí chọn ph ần tử để hiển thị menu tác vụ thực
chọn option "Delete"
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(67)Copy thƣ mục/file vào clipboard
Qui trình copy thƣ mục/file WE nhƣ sau:
duyệt th ƣ mục
trong cửa sổ bên trái chọn thƣ mục mà bạn muốn copy thƣ mục/file
chọn ph ần tử
cần copy
ListCtrl bên phải
chọn menu Edit hay
ấn phải chuột vào vị trí chọn ph ần tử để hiển thị menu tác vụ thực
chọn option "Copy"
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(68)Dán thƣ mục/file từ clipboard
Qui trình dán th ƣ mục/file từ clipboard vào thƣ mục chứa nhƣ sau:
duyệt th ƣ mục
trong cửa sổ bên trái chọn thƣ mục mà bạn muốn dán th ƣ mục/file
chọn menu Edit để hiển thị menu tác vụ thực
chọn option "Paste"
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(69)Di chuyển (move) thƣ mục/file
Việc di chuyển thƣ mục/file đƣợc thực tác v ụ copy/paste/delete nhƣ đƣợc trình bày Qui trình move
thƣ mục/file khác nh ƣ sau: duyệt th ƣ mục
cửa sổ bên trái ch ọn thƣ mục mà bạn muốn copy thƣ mục/file
chọn ph ần tử cần copy ListCtrl bên ph ải
chọn menu Edit để hiển thị menu tác v ụ thực
chọn option "Move to Folder" xác định thƣ mục đích
Khoa Cơng nghệ Thơng tin Chƣơng 2: Thể liệu máy tính s ố Môn: Tin học
(70)Load file vào b ộ nhớ để hiệu chỉnh
Qui trình chạy ứng dụng load file vào nhớ để hiệu chỉnh nội dung file nhƣ sau:
duyệt th ƣ mục
trong cửa sổ bên trái ch ọn thƣ mục chứa file cần hiệu chỉnh
chọn file cần hiệu chỉnh ListCtrl bên ph ải
ấn phải chuột vào file chọn để hiển thị
menu tác v ụ thực
chọn option "Open with" xác định ứng dụng đƣợc dùng để hiệu chỉnh file
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(71)Hiển thị cửa sổ thông tin v ề file/thƣ mục
Qui trình làm hiển thị cửa sổ thông tin thƣ mục/file nhƣ sau:
duyệt th ƣ mục
trong cửa sổ bên trái ch ọn thƣ mục/file cần hiển thị thông tin
chọn thƣ mục/file cần hiển thị thông tin ListCtrl bên ph ải
ấn phải chuột vào file chọn để hiển thị
menu tác v ụ thực
chọn option "Properties" để làm hiển thị cửa sổ thông tin thƣ mục/file
tƣơng ứng
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(72)Xem hi ệu chỉnh thuộc tính file/thƣ mục
Khi cửa sổ thông tin thƣ mục/file đƣợc hiển thị, chọn trang
general/Version để thấy thông tin t ƣơng ứng Trang bên ph ải trang General
xem thu ộc tính file muốn thay đổi
thuộc tính đó, ấn chuột vào checkbox tƣơng ứng Thuộc tính chuyển từ khơng thành có hay ngƣợc lại muốn cập nhật
các hiệu chỉnh ấn chuột vào button OK
Khoa Công nghệ Thông tin Chƣơng 2: Thể liệu máy tính s ố Mơn: Tin học
(73)MƠN TIN H ỌC
Chƣơng
TỔNG QUÁT V Ề LẬP TRÌNH
BẰNG VISUAL BASIC
3.1 Các khái ni ệm mơ hình hƣớng đối tƣợng 3.2 Các đối tƣợng giao diện VB 6.0
3.3 Hiệu chỉnh thuộc tính đối tƣợng giao diện
3.4 Tạo thủ tục xử lý s ự kiện đối tƣợng giao diện
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(74)3.1 Các khái niệm cơ bản về mơ hình h ƣớng đối tƣợng
Hình vẽ sau t kết cấu trúc c ứng dụng đƣợc lập trình cấu trúc:
module global data
(package) local data entry 'start' of module local data of function
Khoa Công nghệ Thông tin Chƣơng 3: Tổng quát v ề lập trình Visual Basic Môn: Tin học
Trƣờng ĐH Bách Khoa Tp.HCM Slide 72
(75)Từ lập trình cấu trúcđến OOP
Xét cấu trúc ch ƣơng trình cổ điển slide trƣớc, ta thấy có nhƣợc điểm sau:
Rất khó đảm bảo tính qn đắn liệu tồn cục lệnh hàm truy xuất chúng
Nếu chƣơng trình cần đồng thời nhiều 'instance' module chế lập trình cấu trúc khơng cho phép tạo tự động 'instance'
Để khắc phục nhƣợc điểm (và b ổ sung nhiều ƣu điểm khác), ta lập trình theo hƣớng đối tƣợng (OOP - Object Oriented Programming) chƣơng trình tập đối tƣợng sống tƣơng tác (xem slide kế tiếp)
Visual Basic ngôn ngữ hỗ trợ việc lập trình theo hƣớng đối tƣợng, VB cịn mơi trƣờng lập trình trực quan (visual) nên r ất dễ dùng
Khoa Công nghệ Thông tin Chƣơng 3: Tổng qt v ề lập trình Visual Basic Mơn: Tin học
(76)Cấu trúc của ứng dụng OOP
Chƣơng trình = tập đối tƣợng tƣơng tác đối tƣợng (object) local data entry of object local data of operation
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(77)(78)Đối tƣợng (Object)
Mơ hình đối tƣợng quan niệm chƣơng trình bao gồm đối tƣợng sinh sống tƣơng tác v ới
Đối tƣợng bao gồm nhiều thành phần, thành phần thuộc loại:
Thuộc tính (attribute): mang giá tr ị định thời điểm
Tác vụ (operation): thực cơng việc
Implementation (class)
Interface (abstract type)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(79)Kiểu trừu tƣợng (Abstract type)
Abstract type (type) định nghĩa interface sử dụng đối tƣợng Ta
dùng tên nh ận dạng để đặt tên cho ki ểu để nhận dạng Interface tập hợp 'entry' mà bên ngồi có th ể giao tiếp với đối tƣợng
Ta dùng signature để định nghĩa 'entry' Signature gồm: Tên tác v ụ (operation, function)
Danh sách tham số hình thức, tham số đƣợc đặc tả bởi 3
thuộc tính: tên, type chi ều di chuyển (IN, OUT, INOUT)
Đặc tả chức của tác v ụ (thƣờng ở dạng thích)
Ta dùng tên c abstract type (chứ class) để đặc tả kiểu cho biến, thuộc tính, tham số hình thức
User không cần quan tâm đến class (hiện thực cụ thể) đối tƣợng
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(80)Class (Implementation)
Ta dùng tên nh ận dạng để đặt tên cho class để nhận dạng Class định nghĩa chi tiết thực đối tƣợng:
Định nghĩa thu ộc tính liệu, thuộc tính đƣợc đặc tả thơng tin v ề nhƣ tên nh ận dạng, kiểu liệu, tầm vực truy xuất, Kiểu thuộc tính type cổ điển (số ngun, th
ực, ký t ự, chuỗi ký t ự, ) hay 'abstract type', trƣờng hợp sau thuộc tính tham khảo đến đối tƣợng khác Tr ạng thái c đối tƣợng tập giá tr ị thời điểm tƣơng ứng tất thuộc tính đối tƣợng Trong thời gian tồn hoạt động, trạng tái c đối tƣợng thay đổi
„Coding' tác v ụ (miêu t ả giải thuật chi tiết hoạt động tác vụ) 'internal function'
Định nghĩa tác v ụ tạo (create) xóa (delete) đối
tƣợng Định nghĩa tác v ụ 'constructor' 'destructor' User không cần quan tâm đến class đối tƣợng
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(81)Tính bao đóng (encapsulation)
Bao đóng: che dấu chi tiết thực đối tƣợng, khơng cho bên ngồi th truy xuất ⇒ đảm bảo tính độc lập cao giữa đối tƣợng, nghĩa độ phụ thuộc (hay tính ghép nối - coupling đối tƣợng) thấp, nhờ dễ bảo trì, phát triển ứng dụng:
Che dấu thu ộc tính liệu: cần cho phép truy
xuất 1 thuộc tính từ bên ngồi, ta t ạo tác v ụ get/set tƣơng ứng để giám sát vi ệc truy xuất che dấu chi tiết thực bên
Che dấu chi tiết thực tác v ụ
Che dấu 'internal function' và sự hiện thực chúng
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(82)Tính thừa kế (inheritance)
Viết ứng dụng OOP định nghĩa type/class c đối tƣợng cấu thành ứng dụng
Tính thừa kế cho phép giảm nhẹ cơng sức định nghĩa type/class: ta định nghĩa type/class không ph ải từ đầu mà cách k ế thừa type/class có s ẵn, ta định nghĩa thêm chi tiết mà thơi (thƣờng ít)
Đa thừa kế hay đơn thừa kế
Mối quan hệ supertype/subtype superclass/subclass Có thể 'override' thực tác v
quả override có tác d ụng con
class cha, kết đối tƣợng class Đối tƣợng class đóng vai trị đối tƣợng cha nhƣng ngƣợc lại khơng
Khoa Công nghệ Thông tin Chƣơng 3: Tổng quát v ề lập trình Visual Basic Mơn: Tin học
(83)Tính bao gộp (aggregation)
1 đối tƣợng chứa nhiều đối tƣợng khác nh mối quan hệ bao gộp cách đệ qui đối tƣợng
Có góc nhìn tính bao gộp: ngữ nghĩa thực Góc nhìn ngữ nghĩa Góc nhìn
thực O2
O4
O 1 O4 O2
O1
O3 O5
O5 O3
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(84)Thông điệp (Message)
Thông điệp phép gọi tác v ụ đối tƣợng từ tham khảo Thông điệp bao gồm phần:
Tham khảo đến đối tƣợng đích Tên tác v ụ muốn gọi
Danh sách tham s ố thực cần truyền theo (hay nhận từ) tác v ụ
Ví dụ: aCircle.Draw (pWnd)
Truy xuất thuộc tính interface:
aCircle.Radius = 10 aCircle.SetRadius(10)
r = aCircle.Radius r = aCircle.GetRadius()
Thông điệp phƣơng tiện giao tiếp (hay tƣơng tác) nh ất đối tƣợng
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(85)Hai thành ph ần của ứng dụng
Xem lại slide 15 miêu t ả qui trình tổng quát c việc dùng máy tính giải vấn đề đời, ta thấy ứng dụng gồm phần thành phần chính:
Giao diện ngƣời dùng: là phƣơng tiện cho ngƣời dùng
tƣơng tác v ới chƣơng trình để nhập/xuất liệu, để điều khiển/giám sát ho ạt động chƣơng trình Trong OOP, giao diện ngƣời dùng t ập đối tƣợng giao diện nhƣ form, form chứa nhiều đối tƣợng nhỏ nhƣ menu, toolbar, button, textedit, listbox, treeview
Giải thuật xử lý bên trong: đƣợc thể hiện method
của đối tƣợng giao diện đối tƣợng bên ứng dụng Mỗi method danh sách l ệnh thực thi (cấu trúc điều khiển) để miêu t ả giải thuật mà tác v ụ tƣơng ứng thực hiện.
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(86)Thiết kế trực quan cácđối tƣợng giao diện
Định nghĩa đối tƣợng giao diện cách vi ết code tƣờng minh cơng việc khó khăn tốn nhiều cơng sức, thời gian
Để giảm nhẹ công sức định nghĩa đối tƣợng giao diện, môi
trƣờng lập trình trực quan (visual) vi ết sẵn số đối tƣợng giao diện thƣờng dùng cung c ấp cơng cụ để ngƣời lập trình thiết kế trực quan giao diện ứng dụng cách tích h ợp đối tƣợng giao diện có sẵn này: ngƣời lập trình đóng vai trị họa sĩ để vẽ/hiệu chỉnh kích thƣớc, di chuyển vị trí ph ần tử giao diện cần cho ứng dụng
Ngồi mơi trƣờng trực quan cịn cho phép ngƣời lập trình tự tạo đối tƣợng giao diện (ActiveX Control) để dùng ứng dụng đƣợc viết sau Qui trình viết ứng dụng theo chế đƣợc gọi viết ứng dụng cách l ắp ghép linh ki ện phần mềm, giống nhƣ việc lắp máy tính t linh ki ện phần cứng nhƣ CPU, RAM, disk, keyboard, monitor, ⇒ dễ dàng nhanh chóng
Khoa Cơng nghệ Thơng tin Mơn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(87)3.2 Cácđối tƣợng giao diện có VB Control buttons
Window Form, Dialogbox
Title bar
Textbox
Command Button
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(88)Cácđối tƣợng giao diện có VB (tt)
Label
DriveListBox
Combobox
Textbox + ListBox
DirListBox
FileListBox ListBox
Image Picture
Khoa Công nghệ Thông tin Chƣơng 3: Tổng quát v ề lập trình Visual Basic Môn: Tin học
(89)Cácđối tƣợng giao diện có VB (tt)
Frame
OptionButton
Checkbox
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(90)Cácđối tƣợng giao diện có VB (tt) MenuBar
Toolbar
CommandButton
Pop-up Menu
1 window chứa document ứng dụng
StatusBar
Khoa Công nghệ Thông tin Chƣơng 3: Tổng quát v ề lập trình Visual Basic Mơn: Tin học
(91)Các tính chất chung của cácđối tƣợng giao diện Đối tƣợng giao diện có tính chất giống nhƣ đối tƣợng bình thƣờng, ngồi chúng cịn có số đặc điểm riêng
Đối tƣợng giao diện đƣợc cấu thành từ loại thành phần: thuộc tính tác v ụ
Mỗi đối tƣợng giao diện chứa nhi ều thuộc tính liên quan đến nhiều loại trạng thái khác nhau:
Thuộc tính 'Name': thu ộc tính đặc biệt, xác định tên nh ận dạng đối tƣợng, giá tr ị thuộc tính trở thành biến tham khảo đến đối tƣợng, code ứng dụng dùng bi ến để truy xuất đối tƣợng
Các thu ộc tính xác định vị trí kích thƣớc: Left, Top, Height, Width thu ộc tính xác định tính chất hiển thị: Caption, Picture,
BackColor,
Các thu ộc tính xác định hành vi: Enable,
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(92)3.3 Hiệu chỉnh thuộc tính của cácđối tƣợng giao diện
Khi tạo trực quan đối tƣợng giao diện, môi
trƣờng gán giá tr ị ban đầu cho thu ộc tính, thƣờng ta cần thay đổi vài thuộc tính đáp ứng đƣợc yêu c ầu riêng Có cách để hiệu chỉnh giá tr ị thuộc tính:
Trực quan thơng qua cửa sổ thuộc tính đối tƣợng giao diện
Lập trình truy xuất thuộc tính đối tƣợng giao diện
Khoa Cơng nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(93)3.4 Sự kiện - Thủ tục xử lý s ự kiện
Mỗi đối tƣợng giao diện có nhi ều tác v ụ (operation), hầu hết chúng đƣợc gọi
thủ tục xử lý s ự kiện chế gọi thủ tục chủ yếu trực tiếp từ ngƣời dùng ứng dụng thông qua tƣơng tác tr ực tiếp với đối tƣợng, từ tạo kiện kích khởi thủ tục xử lý t ƣơng ứng chạy
Thí dụ ta ấn chuột vào button tên "Command1", h ệ thống tạo kiện "Click" để kích khởi thủ tục Command1_Click() chạy
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(94)Cách ạto hàm x ử lý s ự kiện của đối tƣợng
Qui trình tổng quát c việc tạo thủ tục xử lý cho s ự kiện đối tƣợng:
Chọn menu View.Code để
hiển thị cửa sổ code
Chọn tên đối tƣợng liên
quan danh sách đối tƣợng
Chọn kiện cần tạo thủ
tục xử lý danh sách s ự kiện, template thủ tục xử lý s ẽ đƣợc tạo tự động
Sử dụng kiến thức giải
thuật & cú pháp ngôn ng ữ
VB để viết code cho thủ
tục xử lý
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(95)Tổng kết qui trình viết ứng dụng bằng VB Trƣớc hết phải nắm bắt yêu c ầu phần mềm để xác định ch ức
năng mà ứng dụng phải cung cấp cho ngƣời dùng
Phân tích s lƣợc chức tìm class phân tích c ấu thành chức tƣơng ứng
3 Thiết kế chi tiết class phân tích: xác định thu ộc tính tác v ụ nhƣ phác h ọa giải thuật tác v ụ
Hiện thực phần mềm VB gồm cơng việc chính:
Thiết kế trực quan formgiao diện ngƣời dùng: mỗi form chứa
nhiều phần tử giao diện, ph ần tử giao diện thƣờng có sẵn, không ta phải tạo thêm số đối tƣợng giao diện (ActiveX Control) Ứng với phần tử giao diện vừa tạo ra, nên thiết lập giá tr ị đầu cho thuộc tính "Name" vài thuộc tính cần thiết
Tạo thủ tục xử lý s ự kiện cho s ự kiện cần thiết ph ần tử giao diện viết code cho thủ tục xử lý s ự kiện vừa tạo
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 3: Tổng quát v ề lập trình Visual Basic
(96)MÔN TIN H ỌC
Chƣơng
QUI TRÌNH THIẾT KẾ TRỰC QUAN GIAO DIỆN CỦA ỨNG DỤNG
4.1 Dự án ứng dụng
4.2 Tạo/xóa đối tƣợng giao diện
4.3 Hiệu chỉnh giá tr ị thuộc tính đối tƣợng giao diện 4.4 Tạo menubar
4.5 Tạo Toolbar
4.6 Tạo viết thủ tục xử lý s ự kiện
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(97)4.1 Dự Án Và Ứng Dụng
1 ứng dụng VB đƣợc cấu thành từ nhiều đối tƣợng thuộc nhiều loại: Các ph ần tử giao diện
Các "class module", m ỗi class đặc tả loại đối tƣợng cần dùng cho giải thuật chƣơng trình
Các đối tƣợng khác nh ƣ th ƣ viện liên k ết động, database,
Để quản lý ứng dụng đƣợc dễ dàng ta sử dụng phƣơng tiện "Dự án" (Project) Dự án th ứ bậc ph ần tử cấu thành ứng dụng Viết ứng dụng qui trình tạo dự án, thêm/b ớt, hiệu chỉnh phần tử dự án
Thao tác để thực tác v ụ gi ống với thao tác mà ta biết h ệ thống file thứ bậc máy tính
Khoa Cơng nghệ Thơng tin Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng Môn: Tin học
(98)Khởi động VB 6.0
VB ứng dụng nhƣ bao ứng dụng khác Để khởi động ứng dụng, ta có nhiều cách khau nhau:
Chọn menu Start.Programs.Microsoft Visual Basic 6.0.Microsoft Visual Basic 6.0
Ấn kép chuột vào icon shortcut VB hình desktop (ta phải tạo trƣớc icon shortcut này)
Chọn menu Start.Run, nhập hàng lệnh chạy ứng dụng, thí dụ nhƣ "c:\Program Files\Microsoft Visual Studio\VB98\VB6.exe"
Dùng trình qu ản lý h ệ thống file WE, duyệt đến thƣ mục chứa file chƣơng trình VB (thí dụ c:\Program Files\Microsoft Visual Studio\VB98), ấn kép vào file chƣơng trình VB6.exe
Sau VB đƣợc khởi động, ta thƣờng thấy cửa sổ hình nhƣ sau:
Khoa Cơng nghệ Thơng tin Mơn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(99)Cửa sổ khởi động VB
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(100)Tạo mới dự án
Cửa sổ New Project VB có ba thẻ (Tab):
New: tạo dự án (tab này đƣợc chọn default)
Existing: Mở 1 dự án đã có sẵn máy (d ự án c ũ nào đó)
Recent: Mở 1 dự án n d ự án g ần
Với tab New đƣợc chọn, bạn tạo dự án theo lo ại đó, nhƣng ứng dụng thông thƣờng ta dùng lo ại dự án
"Standard EXE" Ấn kép vào icon "Standard EXE" để tạo dự án tƣơng ứng form đƣợc tạo tự động để bạn thiết kế trực quan form giao diện
Qui trình thiết kế giao diện thiết kế form theo yêu
cầu, muốn tạo form khác (hay đối tƣợng vào dự án), b ạn ấn kép chuột vào cửa sổ Project, dời chuột đến menu
"Add", chọn mục "Form" danh sách
Khoa Cơng nghệ Thơng tin Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng Môn: Tin học
(101)Thí dụ về form thiết kế: MiniCalculator Control buttons
Window Form, Dialogbox
Title bar
Menu
Toolbar
Textbox
Command Button
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(102)4.2 Tạo đối tƣợng giao diện form
Để hiển thị làm việc trực quan với form, ấn kép chuột vào mục tên form cửa sổ Project
Để tạo đối tƣợng giao diện form, dùng chu ột chọn icon tƣơng ứng với đối tƣợng cửa sổ Toolbox vẽ đối tƣợng vị trí kích thƣớc mong muốn form
Bạn tạo đối tƣợng giao diện dùng c chế sinh sản vơ tính: chọn đối tƣợng có, ấn button Copy Toolbar r ồi ấn button Past Toolbar, đối tƣợng sinh giống y nhƣ đối tƣợng có sẵn (nên đặt lại tên khác b ằng cách ch ọn button "No"
trong hộp thoại yêu c ầu sau ấn icon Past) Đây nhi ều cách để tạo nhiều đối tƣợng có kích thƣớc giống hệt
Thí dụ slide sau miêu t ả trạng thái c form sau ta vẽ đƣợc textbox hiển thị số button bên trái nh ất máy tính
Khoa Cơng nghệ Thơng tin Mơn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(103)4.3 Thiết lập giá trị cho thuộc tính Để dễ cân ch ỉnh vị trí
và kích thƣớc đối tƣợng, ta nên thiết lập thu ộc tính sau: "Name",
"Caption" Thuộc tính "Name" đƣợc dùng để truy xuất đối tƣợng lúc l ập trình, cịn thuộc tính "Caption" đƣợc hiển thị ph ần tử (không phải đối tƣợng có Caption)
Khoa Cơng nghệ Thơng tin Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng Môn: Tin học
(104)Thiết lập giá trị cho thuộc tính (tt) Để xem hiệu chỉnh
giá tr ị thu ộc tính đối tƣợng giao diện, bạn ấn
chuột chọn đối tƣợng, cửa sổ Properties bên ph ải hình
hiển thị thu ộc tính đối tƣợng đƣợc chọn Bạn duyệt thuộc tính từ xuống nhập vào giá tr ị cho thuộc tính mong muốn
Khoa Cơng nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(105)Cân ch ỉnh kích thƣớc cácđối tƣợng
Nếu vẽ tay đối tƣợng khó lịngđảm bảo kích thƣớc chúng nhau, bạn nên dùng c chế sinh sản vơ tính (Copy-Paste) Tuy nhiên lỡ tạo tay đối tƣợng để làm kích thƣớc nhiều đối tƣợng giống y nhau, bạn chọn đối tƣợng chọn menu Format.Make Same Size.Both
(bằng kích thƣớc đối tƣợng đƣợc chọn cuối cùng)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(106)Đồng chỉnh vị trí cácđối tƣợng
Tƣơng tự, vẽ tay đối tƣợng khó lịng đảm bảo khoảng cách gi ữa chúng Để khoảng cách d ọc đối tƣợng nhau, bạn chọn đối tƣợng chọn menu Format.Vertical Spacing.Make Equal (cố định vị trí đối tƣợng xa theo chiều dọc chỉnh dọc đối tƣợng lại)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(107)Kết quả tạm thời của form MiniCalculator
Với qui trình tạo đối tƣợng, thiết lập
thuộc tính cần thiết chỉnh dạng đối
tƣợng giao diện nhƣ đã đƣợc trình bày, bạn tiếp tục tạo đối tƣợng lại form MiniCalculator Kết nhƣ sau:
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình tủhiết kế trực quan giao diện ứng dụng
(108)Danh sách thuộc tính cácđối tƣợng
Danh sách giá tr ị thu ộc tính đƣợc thiết lập cho đối tƣợng (sẽ đƣợc tham khảo code chƣơng trình đƣợc viết sau):
Caption = , Name = cmdMemStatus Caption = +, Name = cmdAdd
Caption = MC, Name = cmdMC Caption = -, Name = cmdSub
Caption = MR, Name = cmdMR Caption = *, Name = cmdMul
Caption = MS, Name = cmdMS Caption = /, Name = cmdDiv
Caption = MA, Name = cmdMA Caption = +/-, Name = cmdPosNeg
Caption = 0, Name = cmd0 Caption = , Name = cmdPoint
Caption = 1, Name = cmd1 Caption = =, Name = cmdEqual
Caption = 2, Name = cmd2 Caption = 1/x, Name = cmd1x
Caption = 3, Name = cmd3 Caption = %, Name = cmdPercent
Caption = 4, Name = cmd4 Caption = sqrt, Name = cmdSqrt
Caption = 5, Name = cmd5 Caption = C, Name = cmdC
Caption = 6, Name = cmd6 Caption = CE, Name = cmdCE
Caption = 7, Name = cmd7 Caption = Backspace, Name =
Caption = 8, Name = cmd8 cmdBack
Caption = 9, Name = cmd9 Text = 0., Name = txtDisplay
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình tủhiết kế trực quan giao diện ứng dụng
(109)4.4 Thiết kế menu bar cho form giao diện
Giả sử form MiniCalculator cần có hệ thống menu nhƣ sau:
Để tạo menu bar cho form đó, ta hiển thị cửa sổ chứa form (ấn kép mục tên form cửa sổ Project chứa th ứ bậc ph ần tử) chọn menu Tools.Menu Bar Cửa sổ slide sau lên:
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình tủhiết kế trực quan giao diện ứng dụng
(110)Dùng Menu Editor để thiết kế menu bar
VB tạo sẵn mục trống hàng cuối danh sách Thêm phần tử chọn mục nhập thuộc tính Caption Name
Button Next cho phép dời mục chọn xuống hàng
Button Insert cho phép chèn mục trống vào trƣớc mục đƣợc chọn hành
Button Delete cho phép xóa mục đƣợc chọn
Các button , cho phép dời mục
đƣợc chọn lên hay xu ống vị trí
Các button , cho phép dời mục
đƣợc chọn vô thêm hay bớt cấp hệ thống phân c ấp menu
Khoa Công nghệ Thông tin Mơn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(111)Dùng Menu Editor để thiết kế menu bar (tt)
Dựa vào đặc tả menu bar slide trƣớc đây, nh ập lần lƣợt m ục sau: Caption = File, Name = mnuFile
Caption = Copy, Name = mnuFileCopy, ấn button để vô thêm cấp
Caption = Paste, Name = mnuFilePaste
Caption = View, Name = mnuView, ấn button để cấp
Caption = Standard, Name = mnuViewStand, ấn button để vô thêm cấp
Caption = Scientific, Name = mnuViewScien Caption = -, Name = mnuViewBar
Caption = Digital grouping, Name = mnuViewDigital
Caption = Help, Name = mnuHelp, ấn button để cấp
Caption = Help Topics, Name = mnuHelpTopics, ấn button để vô thêm
cấp
Caption = -, Name = mnuHelpBar
Caption = About MiniCalculator, Name = mnuHelpAbout
Khoa Công nghệ Thông tin Mơn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(112)Dùng Menu Editor để thiết kế menu bar (tt)
Sau đặc tả xong menu, cửa sổ menu editor có dạng nhƣ sau Lƣu ý lúc b ạn chƣa thấy menu cách tr ực quan:
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(113)Kết quả của hoạt động thiết kế menubar
Sau tạo menu xong, hãy ấn nút OK để đóng tiện ích "Menu Editor", form giao diện
chƣơng trình giống nhƣ hình bên:
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(114)4.5 Thiết kế Toolbar cho form giao diện
Để tạo Toolbar cho form project, trƣớc hết ta phải thêm tập điều khiển "Window Common Controls 6.0" vào cửa sổ Toolbox project:
Ấn phải chuột vào vị trí trống Toolbox, chọn mục Components
Chọn tab Controls, duyệt chọn mục tƣơng ứng, chọn OK
icon đƣợc thêm vào Tool- box
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(115)Qui trình tạo Toolbar của form
Toolbar cửa sổ chứa nhiều button (icon), button cho phép thực chức ứng dụng Các button có kích th ƣớc đều nhau, nên k ết hợp ảnh bitmap với button, nội dung ảnh gợi ý cho ng ƣời dùng v ề chức tƣơng ứng (thí dụ ảnh dạng kéo g ợi ý ch ức Cut, )
Công việc c ần thực dùng trình so ạn thảo đồ họa (Paint, CorelDraw, ) để thiết kế (vẽ) ảnh bitmap gợi ý cho button Toolbar Bạn dùng trình "Screen
Capture" cắt icon có s ẵn ứng dụng chạy dán vào vùng soạn thảo ảnh trình soạn thảo đồ họa Sau soạn
xong ảnh, ta cất ảnh lên file d ạng *.bmp Lƣu ý r ằng ảnh phải có kích th ƣớc (thí dụ 16*16, 20*20,32*32, ) Slide kế miêu t ả cửa sổ trình soạn thảo đồ họa Paint
Khoa Công nghệ Thông tin Mơn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(116)Vẽ ảnh cho button bằng trình Paint Soạn thảo button vẽ pixel
ảnh Để dễ vẽ, bạn nên phóng to ảnh lên khoảng 400% trở lên
Trƣớc vẽ pixel, ch ọn màu vẽ thích hợp
Sau vẽ xong, dùng menu File.Save As để cất ảnh lên file thích h ợp:
copy.bmp paste.bmp standard.bmp scientific.bmp help.bmp
about.bmp
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(117)Qui trình tạo Toolbar của form (tt)
> Dùng qui trình t ạo phần tử giao diện form nhƣ gi ới thiệu để tạo đối tƣợng ImageList, đối tƣợng chứa ảnh bitmap đƣợc dùng cho icon Toolbar, v ị trí kích thƣớc đối tƣợng ImageList khơng quan trọng bị ẩn chƣơng trình chạy
2.1 Ấn phải chuột vào đối tƣợng ImageList chọn mục Properties để hiển thị cửa sổ "Properties Page" đối tƣợng ImageList
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(118)Qui trình tạo Toolbar của form (tt)
2.2 Chọn tab General, chọn checkbox Custom nhập kích thƣớc button Toolbar vào field Height Width
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(119)Qui trình tạo Toolbar của form (tt)
2.3 Chọn tab Images thêm ảnh button vào ImageList trình tự: ấn Insert Picture, duyệt chọn file image, nhập giá tr ị cho field Key Để truy xuất ảnh button, ta dùng ho ặc thuộc tính Index thuộc tính Key (tên g ợi nhớ)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(120)Qui trình tạo Toolbar của form (tt)
2.4 Sau lần insert
icon vào ImageList, ta có kết nhƣ hình bên B ạn chọn lại
icon để kiểm
tra/hiệu chỉnh thu ộc tính
Khoa Cơng nghệ Thơng tin Mơn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(121)Qui trình tạo Toolbar của form (tt)
= Tạo đối tƣợng Toolbar, vị trí kích thƣớc đối tƣợng khơng quan trọng ln đƣợc xếp dƣới menubar
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(122)Qui trình tạo Toolbar của form (tt)
3.1 Mở cửa sổ thuộc tính
Toolbar, chọn tab
General, chọn ImageList kết hợp với Toolbar listbox ImageList Nếu muốn hình ảnh icon khác cho t ừng trạng thái (ch ƣa chọn, đƣợc chọn, bị cấm), bạn phải tạo ImageList
khác: HotImageList (tr ạng thái đƣợc chọn) DisableImageList (trạng thái b ị cấm)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(123)Qui trình tạo Toolbar của form (tt) 3.2 Chọn tab Buttons, thêm
từng button vào Toolbar thiết lập thuộc tính trình tự ho ạt động sau:
Ấn Insert Button để thêm button mới,
Nhập giá tr ị thuộc tính "Key",
Nhập số "Images" ImageList đƣợc dùng cho button,
Nhập trị cho thuộc tính "ToolTipText"
Khoa Cơng nghệ Thơng tin Mơn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(124)Qui trình tạo Toolbar của form (tt) 3.3 Sau thêm button vào Toolbar Toolbar có dạng sau:
Khoa Công nghệ Thông tin Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng Môn: Tin học
(125)Ghi về qui trình tạo giao diện
Thƣờng form giao diện nhƣ MiniCalculator không cần chứa menubar Toolbar Giao diện dạng đƣợc gọi Dialog based
Còn dạng giao diện ứng dụng phổ biến khác là:
SDI (Single Document Interface): cửa sổ chƣơng trình
gồm menubar, hay nhiều Toolbar cửa sổ làm việc nhất Từng thời điểm, cửa sổ làm việc cho phép hiển thị/hiệu chỉnh document ứng dụng
và MDI (Multiple Document Interface): cửa sổ chƣơng trình gồm menubar, hay nhiều Toolbar n cửa sổ làm việc
khác nhau, m ỗi cửa sổ làm việc cho phép hiển thị/hiệu chỉnh document ứng dụng
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(126)Giao diện SDI (Single Document Interface)
Menubar Toolbar
Working region
(tại thời điểm
chỉ có để xử lý
document ứng dụng)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(127)Giao diện MDI (Multiple Document Interface)
Menubar Toolbar
Working region (tại thời điểm mở cửa sổ để xử lý n document khác
nhau)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(128)Ghi về qui trình tạo giao diện (tt)
Để tạo giao diện trực quan ứng dụng SDI MDI đƣợc dễ dàng, VB cung cấp cho ngƣời dùng d ạng Project tên "VB Application Wizard"
Chọn dạng Project tạo Project, VB hƣớng dẫn ngƣời dùng t ạo ph ần tử giao diện dễ dàng, đối tƣợng menubar Toolbar đƣợc VB tạo tự động, ngƣời lập trình cần hiệu chỉnh lại theo yêu c ầu riêng
Khoa Cơng nghệ Thơng tin Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng Môn: Tin học
(129)4.6 Tạo thủ tục xử lý s ự kiện cho cácđối tƣợng giao diện Sau thi ết kế trực quan giao diện ứng dụng theo yêu c ầu, bạn tạo th ủ tục xử lý s ự kiện cần thiết cho đối tƣợng giao diện
Để tạo thủ tục xử lý cho option menu, b ạn chọn menu tƣơng ứng, dời chuột option cần tạo thủ tục chọn nó, template thủ tục đƣợc tạo
Các ch ƣơng tới giới thiệu cú pháp VBđể bạn viết code cho thủ tục
Khoa Công nghệ Thông tin Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng Môn: Tin học
(130)Tạo thủ tục xử lý s ự kiện cho cácđối tƣợng giao diện (tt) Để tạo thủ tục xử lý cho button Toolbar, b ạn ấn kép chuột vào button đó, template thủ tục đƣợc tạo (lƣu ý ch ỉ có thủ tục xử lý cho t ất button Toolbar, thủ tục dựa vào thuộc tính Button.Key để biết button đƣợc chọn)
Để tạo thủ tục xử lý cho command button, b ạn ấn kép chuột vào command button đó, template thụ tục đƣợc tạo ra:
Khoa Công nghệ Thông tin Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng Môn: Tin học
(131)Tạo thủ tục xử lý s ự kiện cho cácđối tƣợng giao diện (tt) Cách t quát để tạo thủ tục xử lý s ự kiện mở cửa sổ code
(View.Code), chọn tên đối tƣợng danh sách r ồi chọn kiện cần xử lý, th ủ tục xử lý tƣơng ứng đƣợc tạo ra:
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 4: Qui trình thiết kế trực quan giao diện ứng dụng
(132)MÔN TIN H ỌC
Chƣơng
CÁC KI ỂU DỮ LIỆU TRONG VB
5.1 Biến liệu & định nghĩa biến
5.2 Các ki ểu liệu định sẵn VB 6.0 5.3 Việc dùng & t ạo class đối tƣợng
5.4 Các tính ch ất yếu biến liệu 5.5 Hằng gợi nhớ
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(133)5.1 Biến dữ liệu
Mỗi ứng dụng thƣờng xử lý nhi ều liệu, ta dùng khái ni ệm "biến" để lƣu trữ liệu nhớ máy tính, m ỗi biến lƣu trữ liệu chƣơng trình
Mặc dù VB khơng địi hỏi, nhƣng ta nên định nghĩa rõ ràng t ừng biến trƣớc truy xuất để code chƣơng trình đƣợc sáng, d ễ hiểu, dễ bảo trì phát tri ển
Định nghĩa biến là:
Định nghĩa tên nh ận dạng cho biến,
Kết hợp kiểu với biến để xác định cấu trúc d ữ liệu biến, Định nghĩa tầm vực truy xuất biến
Cú pháp đơn giản lệnh định nghĩa biến:
[Static|Public|Private|Dim] AVariable As Type
tại thời điểm, biến chứa giá tr ị (nội dung) cụ thể Theo thời gian nội dung biến bị thay đổi theo tính chất xử lý c code
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(134)Định nghĩa tên biến
Cách đặt tên cho bi ến (hay cho phần tử chƣơng trình): Tên bi ến dài đến 255 ký t ự,
Ký t ự ph ải ký t ự chữ (letter),
Các ký t ự ký t ự chữ (letter), ký s ố (digit), dấu gạch dƣới,
Tên bi ến không đƣợc chứa ký t ự đặc biệt nhƣ ký t ự: ^, &, ), (,%, $, #, @, !, ~, +, -, *, …
VB không phân bi ệt chữ HOA hay chữ thƣờng 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: có dấu chấm
+ ThisIsLongButOk + Base&1: có dấu &
1Base_Ball: ký t ự đầu số
Nên ch ọn tên bi ến ngắn gọn nhƣng thể rõ ý ngh ĩa Ví dụ: Ta muốn có 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 Irate không nên dùng tên bi ến IR…
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(135)Đị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 dòng lệnh
IE = T*IR
Khi viết tên bi ến ta nên vi ết hoa chữ c từ có ý nghĩa
Ví dụ: InterestRate dễ đọc interestrate hay iNTERestRaTe…
Không đƣợc dùng tên bi ến trùng v ới t khoá nh ƣ: Print, Sub, End… (t ừ khóa từ mà ngơn ngữ VB đã dùng cho nh ững thành phần xác định ngôn ngữ)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(136)5.2 Các kiểu dữ liệu cơ bản định sẵn của VB
Byte: 1 byte, to 255
Boolean: 2 bytes, True or False Integer: 2 bytes, -32,768 to 32,767
Long (long integer): 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): bytes -1.79769313486231E308 to -4.94065645841247E-324;
4.94065645841247E-324 to 1.79769313486232E308
Currency (scaled integer): bytes
-922,337,203,685,477.5808 to 922,337,203,685,477.5807
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(137)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 số khác nh ỏ
Date: bytes; từ January 1, 100 tới December 31, 9999
Object: 4 bytes; chứa tham khảo đến đối tƣợng String (variable-length): 10 bytes + độ dài
chuỗi tới 2G ký t ự
String*n (fixed-length): chuỗi có độ dài cố
định tới 65,400 ký t ự
Variant (with numbers) : 16 bytes
Bất kỳ số nằm phạm vi kiểu Double
Variant (with characters): 22 bytes + độ dài chuỗi độ dài nhƣ kiểu String
User-defined (using Type): kiểu ngƣời dùng định nghĩa
(record) gồm nhiều field, field có kiểu riêng theo yêu c ầu
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(138)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, phần tử đƣợc
truy xuất độc lập nhờ số dãy
Ví dụ: Dim vector(10) As Integer
định nghĩa biến vector dãy g ồm 10 phần tử nguyên, vector(i) tên nh ận dạng phần tử thứ i dãy
Ngoài ki ểu liệu định sẵn, VB cịn cung cấp cho ngƣời lập trình phƣơng tiện để họ định nghĩa kiểu liệu chƣa cung cấp sẵn nhƣng lại
cần thiết cho ứng dụng họ, ta gọi ki ểu kiểu ngƣời dùng định
nghĩa Thí dụ sau phát bi ểu định nghĩa kiểu miêu t ả thông tin 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
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(139)Đặc tính chi tiết về kiểu String Kiểu String (chuỗi ký t ự):
String kiểu liệu đƣợc dùng để lƣu trữ chuỗi ký t ự (độ dài bất kỳ)
Giá tr ị chuỗi ký t ự đƣợc đặt cặp dấu nháy kép (vd: "Môn Tin học")
Trên lý thuy ết, biến thuộc kiểu String lƣu trữ đƣợc đến tỵ ký t ự nhƣng thực tế, độ dài chuỗi bị hạn chế theo dung lƣợng nhớ máy tính
Có thể thực đƣợc phép toán n ối kết chuỗi (+,&) chu ỗi ký t ự có nhi ều hàm xử lý chu ỗi có sẵn
Có thể định nghĩa biến thuộc kiểu String nhƣ sau: Dim AStringVariable As String
Dim AStringVariable As String*100
Hay Dim AStringVariable$
Tiếp vĩ ngữ $ sau tên bi ến dùng để khai báo m ột biến thuộc kiểu String (nhƣng ta không nên dùng cách t ối nghĩa, khó bảo trì)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(140)Đặc tính chi tiết về kiểu Integer
Kiểu Integer (Số nguyên):
Integer kiểu liệu đƣợc dùng để lƣu trữ s ố nguyên ng ắn nằm khoảng từ - 32768 đến 32767
Số nguyên đƣợc lƣu trữ nhớ byte
Có thể thực đƣợc phép toán s ố học (nhƣ +,-,*,/, ) 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ữ % 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
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(141)Đặc tính chi tiết về kiểu Long
Kiểu Long (Số nguyên dài):
Dùng để lƣu trữ s ố nguyên l ớn nằm khoảng từ: -2,147,483,648 đến 2,147,483,647
Số nguyên dài đƣợc lƣu trữ nhớ byte
Có thể thực đƣợc phép toán s ố học (nhƣ +,-,*,/, ) 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ữ & 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
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(142)Đặc tính chi tiết về kiểu Byte
Kiểu Byte (Số nguyên d ƣơng nhỏ):
Dùng để lƣu trữ s ố nguyên không âm n ằm tầm trị từ: đến 255
Chiếm byte nhớ
Có thể thực đƣợc phép tốn s ố học (nhƣ +,-,*,/, ) d ữ liệu thuộc kiểu Byte
Kiểu liệu hiệu dụng việc lƣu trữ s ố ngun nhỏ chiếm nhớ, tốc độ xử lý nhanh Ví dụ: Khi cần lƣu tuổi ngƣời không nên
dùng kiểu Integer hay Long mà nên dùng ki ểu Byte tuổi của ngƣời ln số khơng âm, có giá tr ị tối đa thƣờng nhỏ 120
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(143)Đặ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 liệu lƣu trữ hai giá tr ị luận lý True/False Đƣợc lƣu trữ máy tính b ằng byte
Khai báo
Dim ABooleanVariable As Boolean
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(144)Đặc tính chi tiết về kiểu Single Kiểu Single (số thực có độ xác đơn - Single Precision):
Lƣu trữ s ố thực có độ xác đơn (gần v ới giá tr ị gốc với độ xác mức chữ số)
Ví dụ số 1234.567 ký s ố (bên ph ải nhất) khơng xác Kiểu liệu chiếm byte nhớ miêu t ả giá tr ị phạm
vi: Từ -3.402823E38 đến -1.401298E-45 cho giá tr ị âm từ 1.401298E-45 đến 3.402823E38 cho giá tr ị dƣơng
Có thể thực phép tốn s ố học ki ểu liệu nhƣng thƣờng
chậm so vớI bi ến thuộc kiểu Integer hay Long Do cách ch ứa số Single
chỉ mức gần nên phép toán d ữ liệu thuộc kiểu tạo kết gần (nh ƣng đủ dùng đạ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ữ dấu !
Ví dụ:
Dim InterestRate As Single, Earned!, Total As Single Earned = InterestRate * Total
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(145)Đặc tính chi tiết về kiểu Double Kiểu Double (số thực có độ xác kép - Double Precision):
Lƣu trữ s ố thực có độ xác kép (g ần v ới giá tr ị gốc với độ xác mức 16 chữ số)
Ví dụ số 1234.57890123456 ký s ố bên ph ải (6) khơng xác Kiểu liệu chiếm byte nhớ miêu t ả giá tr ị phạm vi:
-1.797693234862232E308 đến -4.94065645841247E-324 4.94065645841247E-324 đến 1.797693234862232E308
Có thể thực phép toán s ố học ki ểu liệu nhƣng chậm (chậm kiểu Single) Do cách ch ứa số Double mức gần nên phép toán d ữ liệu thuộc kiểu tạo kết gần (nh ƣng đủ dùng đạ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ữ dấu #
Ví dụ:
Dim InterestRate As Double, Earned#, Total As Double Earned = InterestRate * Total
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(146)Đặc tính chi tiết về kiểu Currency Kiểu Currency (Tiền Tệ)
Kiểu Currency đƣợc dùng để lƣu d ữ liệu thuộc kiểu tiền tệ (số lƣợng tiền)
Đƣợc lƣu trữ nhớ byte
Có thể có chữ số bên ph ải dấu chấm thập phân 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 đƣợc phép toán s ố học ki ểu liệu nhƣng tốc độ xử lý r ất chậm nhƣ s ố thực có độ xác kép, song kiểu liệu ƣa dùng cho phép tính tài Khai báo: Dim ACurrencyVariable As Currency
HayDim ACurrencyVariable@ 'Tiếp vĩ ngữ dấu @
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(147)Đặc tính chi tiết về kiểu Date
Kiểu Date (Ngày tháng)
Dùng để lƣu trữ d ữ liệu thuộc kiểu ngày cho thời điểm từ 0h00 ngày 01/01/100 đến 0h00 ngày 31/12/9999
Kiểu Date đƣợc lƣu trữ máy tính b ằng bytes
Dữ liệu thuộc kiểu Date phải đƣợc bao 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 VB mặc nhận lúc 0:0:0 ngày
Có thể dùng d ạng thức AM/PM hay dạng 24 để biểu diễn cho giá tr ị 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ó ếtip vĩ ngữ
Ví dụ: Dim PreMillenium As Date
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(148)Đặc tính chi tiết về kiểu Variant
Kiểu Variant (Kiểu liệu biến đổi)
Kiểu liệu đƣợc thiết kế để lƣu liệu thuộc kiểu định sẵn VB Ví dụ nhƣ: Date, String, Double, Integer…
Nếu không khai báo ki ểu rõ ràng cho bi ến biến đƣợc hiểu thuộc kiểu
VB chuyển đổi liệu thuộc kiểu Variant thành kiểu 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ƣ s ẽ dẫn đến nhiều lỗi không lƣờng trƣớc đƣợc
Dùng ki ểu Variant thay cho kiểu cụ thể làm chậm tốc độ xử lý c chƣơng trình phải tốn thờI gian chuyển đổi tốn nhiều nhớ
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 kiểu Variant
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(149)5.3 Việc dùng classđối tƣợng có s ẵn
Nhƣ trình bày ch ƣơng 3, VB hỗ trợ việc lập trình OOP mức độ định:
VB cung cấp số class đối tƣợng, ngƣời lập trình dùng chúng
bất kỳ project ứng dụng nào, ta nói tên c class định sẳn kiểu định sẵn VB
VB cho phép dùng 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 chƣơng 12)
o VB cho ngƣời lập
trình định nghĩa class
trong project phần mềm họ nhờ khái niệm "class module" (sẽ đƣợc trình bày chi tiết chƣơng 6)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(150)Việc dùng classđối tƣợng có s ẵn (tt)
Dù dạng nào, class có tên nh ận dạng, tên tên ki ểu đƣợc dùng 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ó tham khảo (phƣơng tiện truy xuất) đến đối tƣợng Do trƣớc dùng bi ến đối tƣợng, 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 vào biến nhƣ thí dụ
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(151)Qui trình tạo class mới để dùng project
Ấn chuột phải cửa sổ Project, dời chuột tới mục "Add" chọn mục "Class Module" danh sách
Khi cửa sổ "Add class module" hiển thị, chọn icon "Class module" ấn "Open" để tạo class
thiết lập tên class module cho phù h ợp (trong cửa sổ thuộc tính), tên tên ki ểu đƣợc dùng phát bi ểu định nghĩa biến đối tƣợng
ấn kép chuột vào mục tên class tạo để hiển thị cửa sổ code đặc tả cho class
Khoa Cơng nghệ Thơng tin Mơn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(152)Cửa sổ đặc tả class
Định nghĩa thuộc tính liệu method class theo cú pháp VB (sẽ đƣợc trình bày sau)
Debug method class xem hoạt động ch ức mong muốn trƣớc dùng (s ẽ trình bày hoạt động debug sau)
Mỗi class có method đặc biệt:
o Private Sub
Class_Initialize(): miêu t ả hành động đối tƣợng vừa đƣợc tạo
o Private Sub
Class_Terminate(): miêu t ả hành
động đối tƣợng sửa bị xóa
Khoa Cơng nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(153)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 biến, nhờ tăng độ dễ đọc cho chƣơng trình
Ví dụ: sngInterestRate: Biến có độ xác đơn (Single) intCount: Biến thuộc kiểu Integer
strName: Biến thuộc kiểu String
Qui ƣớc g ọi ký hi ệu Hungarian (do Charles Simonge, lập trình viên g ốc Hungari Miscrosoft) đề xƣớng Lƣu ý r ằng bạn phải khai báo ki ểu cho bi ến 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 tiếp đầu ngữ tƣơng ứng:
String str Integer int Single sng Currency cur
Boolean bln Long lng Double dbl Variant vnt
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(154)Các ƣlu ý v ề biến
Trong ngữ cảnh (trong chƣơng trình con, module, cấp tồn cục), khơng thể dùng hai bi ến tên (VB không phân bi ệt chữ HOA hay chữ thƣờng)
Tên bi ến 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% biến a! trùng nhau, VB s ẽ đƣa thông báo l ỗi: “Duplicate Definition”
Sau định nghĩa biến, VB khởi động trị ban đầu cho biến Ví dụ:
Biến thuộc kiểu Variant có giá tr ị ngầm định “Empty” (r ỗng), giá tr ị
“Empty” biến ta gán cho bi ến giá tr ị cụ thể
Biến chuỗi có giá tr ị ngầm định chuỗI rỗng "" (hai dấu nháy li ền
nhau) o Biến số có giá tr ịngầmđịnh
Không nên tin vào tr ị ngầm định biến, phải gán giá tr ị cho biến trƣớc dùng chúng
1 biến tƣơng ứng với vùng nh ớ, gán m ột giá tr ị cho biến, giá tr ị cũ biến bị
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(155)Tầm vực truy xuất biến
Tầm vực biến tập l ệnh đƣợc phép truy xuất biến
Nhƣ đƣợc miêu t ả silde (chƣơng 1), VB cho phép cấp độ tầm vực sau:
Cục bộ thủ tục: lệnh thủ tục truy xuất
đƣợc biến cục thủ tục Private Sub Command1_Click()
Dim strGreeting As String 'Khai báo c ục
End Sub
Cục bộ module: lệnh module truy xuất
đƣợc biến cục module
Private strAddr As String 'biến cục
module Public strName As String 'biến toàn cục
Toàn c ục: lệnh chƣơng trình truy xuất
đƣợc biến toàn cục
Trong ngữ cảnh (cùng th ủ tục, module, hay c ấp tồn cục), khơng
thể dùng hai bi ến 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 liệu VB
(156)(157)Thời gian sống của biến
Biến thực thể nên c ũng có thời gian sống hữu hạn, thời gian sống biến thƣờng phụ thuộc vào tầm vực biến đó:
Biến cục bộ thủ tục: đƣợc tạo lúc th ủ tục đƣợc gọi thủ tục kết thúc vi ệc xử lý điều khiển đƣợc trả lệnh gọi Biến cục bộ module: đƣợc tạo lúc module đƣợc tạo module bị xóa
Các (standard) modules có th ời gian sống từ lúc ch ƣơng trình chạy chƣơng trình kết thúc
Các đối tƣợng class module hay form module đƣợc tạo có yêu c ầu cụ thể Tạo đối tƣợng nghĩa tạo thu ộc tính nó, thu ộc tính đối tƣợng đối tƣợng bị xóa Biến tồn c ục: đƣợc tạo lúc ch ƣơng trình bắt đầu chạy
chỉ chƣơng trình kết thúc
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(158)Thời gian sống của biến (tt)
Muốn kéo dài thời gian sống biến, ta thƣờng dùng cách sau:
Nâng c ấp tầm vực: từ cục thủ tục lên c ục module hay
lên toàn cục Cách đƣợc dùng t ƣờng minh thay đổi tầm
vực 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" tồn ch ỉ chƣơng trình kết thúc b ất chấp tầm vực
Private Sub Command1_Click()
Dim strGreeting As String 'biến cục Static strAddr As String
'biến cục có thời gian sống lâu dài theo ứng dụng
End Sub
Ghi giá trị biến môi tr ƣờng chứa tin bền vững (file đĩa) trƣớc
khi biến bị xóa Khi cần lại giá tr ị biến này, ta đọc giá tr ị từ file
vào Đây ph ƣơng pháp thông d ụng để trao đổi liệu ứng
dụng khác hay lần chạy khác c ứng dụng
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(159)5.5 Hằng gợi nhớ
Nhƣ ta bi ết, ta định nghĩa biến để lƣu trữ liệu
chƣơng trình Ngay sau đƣợc định nghĩa, giá tr ị ban đầu
của biến thƣờng chƣa đƣợc xác định tƣờng minh, ta phải thiết lập (gán) giá tr ị cho biến trƣớc dùng l ại trị biến Có cách khác để thiết lập (gán) giá tr ị cho biến:
Từ tƣơng tác v ới ngƣời dùng, bi ến kết hợp với đối tƣợng giao diện tƣơng ứng đƣợc gán giá tr ị mà ngƣời dùng nh ập vào Các tham s ố đƣợc truyền gọi thủ tục, hoàn thành code thủ tục gán tr ị vào tham số
Nhƣng cách c phổ biến dùng phát bi ểu gán v ới cú pháp sau:
AVariable = AExpression
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(160)Hằng gợi nhớ
Biểu thức đơn giản giá tr ị, giá tr ị đƣợc dùng nhiều nơi chƣơng trình
Hằng gợi nhớ (Constant) khái ni ệm cho phép ngƣời lập trình kết hợp tên g ợi nhớ với giá tr ị để cần dùng giá tr ị đó, ta không viết lại chi tiết cụ thể trị mà dùng tên g ợi nhớ
Cú pháp c phát bi ểu định nghĩa gợi nhớ:
Const ConstName = Value Ví dụ: Const PI = 3.1416
Lợi ích việc dùng h ằng gợi nhớ:
Chƣơng trình 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
Tiết kiệm đƣợc nhớ so với việc dùng bi ến Rút ng ắn đƣợc câu l ệnh dài
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 5: Các ki ểu liệu VB
(161)MÔN TIN H ỌC
Chƣơng
CÁC L ỆNH ĐỊNH NGHĨA & KHAI BÁO VB
6.1 Tổng quát v ề 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 Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(162)6.1 Tổng quát về code của ứ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
và hành vi giống
Form module là trƣờng hợp đặc biệt class module, miêu t ả
hiện thực lớp đối tƣợng đặc biệt: form giao diện
(Standard) Module là đơ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
Ngồi vài ngoại lệ nhỏ, tổ chức code cho loại module hồn tồn gi ống nhau: 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 Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(163)Tổng quát về 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
cơ 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ử đƣợc 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ử đƣợc tạo Vì ngơn ngữ VB ngơn ngữ lập trình cho máy tính th ực nên s ẽ 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
cùng 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 Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(164)Các ký hiệu cơ bản của 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ố đƣợc dùng ch ủ yếu
Qui tắc cấu tạo danh hiệu đƣợc trình bày Slide 113 (chƣơng 5) danh hiệu đƣợc 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 đƣợ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ó, nhƣng 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 đƣợc chia làm nhóm chính:
Các ệlnh định nghĩa: xác định hành động thời điểm dịch
Và 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 Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(165)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 s ẽ bỏ qua (vì máy hiểu ý ngh ĩa đƣợc 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 c lệnh thích r ất đơn giản: qui định bắt đầu lệnh ký t ự ' đƣợc 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 Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(166)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 Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(167)6.3 Các ệlnh định nghĩa
1 module VB (form, class, standard) gồm loại phần tử: thuộc tính liệu
các method (th ủ tục) Các l ệnh định nghĩa cho phép ta định nghĩa tính chất
của 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)
2 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ớ bản:
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 nhƣ lệnh họ
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(168)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 Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(169)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 ch ỉ 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 đƣợc đặ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 đƣợc 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 Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(170)6.4 Phát biểu định nghĩa biến
Cú pháp c định nghĩa biến cục function, Sub, Property:
Dim AVariable [As Type]
Static AVariable [As Type]
Cú pháp c định nghĩa biến cục module (class, form, standard):
Private AVariable [As Type]
Static AVariable [As Type]
Cú pháp c đị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 tồ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 Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(171)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 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 Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(172)6.5 Phát biểu định nghĩa kiểu của 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 d ữ 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 nh ƣ sau:
Type TypeName
[AfieldName As Type]+
End Type
Ví dụ:
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
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(173)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 c nhƣ sau:
Dim varname[([subscripts])] [As [New] type]
trong subscripts danh sách t đến n chiều cách b ằng 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 dƣới chiều khơngđƣợc 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 dƣới 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 dƣới
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 Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(174)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ố nhƣ sau:
Option Base
Dim matran(100,100) As Double
Nhƣng đạ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 nh ƣ 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 Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(175)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, m ỗi 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 ống kê, module hàm x lý d ữ liệu giác, module hàm th
multimedia,
Windows dùng k ỷ thuật liên k ết động module vào ứng dụng
dùng chúng, m ỗi module đƣợc 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, ) c th ủ tục có sẵn module *.dll để gọi ngữ cảnh (module)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(176)Lệnh khai báo Declare (tt)
Cú pháp 1:
[Public | Private] Declare Sub name Lib "libname" [Alias
"aliasname"] [([arglist])]
Cú pháp 2:
[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
là libname, ta gọi subroutine tên khác aliasname
và 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 là aliasname và
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 đƣợc trình bày chƣơng 10
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(177)Thí dụ về ệlnh đị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 s ẽ đị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 h ằng 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 ' biến lƣu giá tr ị hiển thị
Private dblOldValue As Double ' biến lƣu giá tr ị trƣớc
Private dblMemValue As Double ' biến lƣu giá tr ị nhớ
Private blnFpoint As Boolean ' trạng thái nh ập số nguyên/l ẻ
Private bytPosDigit As Byte ' vị trí lý s ố lẻ nhập
Private intPosNeg As Integer ' trạng thái miêu t ả giá tr ị âm/d ƣơng
Private bytOperationId As Byte ' id phép toán c ần thực
Private blnFAfterOp As Boolean ' trạng thái nh ập ký s ố đầu sau phép tốn
Khoa Cơng nghệ Thơng tin Mơn: Tin học
Chƣơng 6: Các l ệnh định nghĩa & khai báo VB
(178)MÔN TIN H ỌC
Chƣơng
BIỂU THỨC VB
7.1 Tổng quát v ề 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 c tốn t
Khoa Cơng nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(179)7.1 Tổng quát về biểu thức VB
Ta bi ết toán h ọc công thức phƣơng tiện miêu t ả qui trình tính tốn s ố
Trong VB (hay ngơn ngữ lập trình khác), ta dùng bi ểu thức để miêu t ả qui trình tính tốn d ữ liệu ⇒ biểu thức giống nhƣ cơng thức tốn h ọc, tổng quát h ơn (xử lý nhi ều loại liệu khác nhau) ph ải tuân theo qui t ắc cấu tạo khắt khe cơng thức tốn h ọc
Để hiểu đƣợc biểu thức, ta cần hiểu đƣợc thành ph ần nó: Các tốn h ạng: bi ến, liệu,
Các toán t tham gia biểu thức: +,-,*,/,
Qui tắc kết hợp toán t toán h ạng để tạo biểu
thức Qui trình mà máy dùng để tính trị biểu thức Kiểu biểu thức kiểu kết tính tốn bi ểu thức
Khoa Cơng nghệ Thơng tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(180)Các biểu thức cơ bản
Biểu thức phần tử nhỏ cấu thành biểu thức Một ph ần tử sau đƣợc gọi biểu thức bản:
Biến,
Hằng gợi nhớ,
Giá tr ị liệu cụ thể thuộc kiểu (nguyên, th ực, ) Lời gọi hàm,
1 biểu thức đƣợc đóng dấu ()
Qui trình tạo biểu thức qui trình đệ qui: ta kết hợp tốn t với tốn h ạng nó, tốn h ạng biểu thức biểu thức sẵn có (đã đƣợc xây d ựng trƣớc nên đóng dấu () để biến trở thành biểu thức bản)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(181)7.2 Các toánửt
Dựa theo số toán h ạng tham gia, có loại tốn t thƣờng dùng nh ất: Tốn ửt ngơi : cần tốn h ạng Ví dụ tốn t '-' để tính phần âm đại lƣợng
Tốn ửt ngơi : cần dùng tốn h ạng Ví dụ tốn t '*' để tính tích đại lƣợng
VB thƣờng dùng ký t ự đặc biệt để miêu t ả tốn t Ví dụ: Toán ửt '+': cộng đại lƣợng
Toán ửt '-': trừ đại lƣợng khỏi đại lƣợng Toán ửt '*': nhân 2 đại lƣợng
Toán ửt '/': chia đại lƣợng cho đại lƣợng Trong vài trƣờng hợp, VB dùng ký t
toán t khác Trong tr ƣờng hợp này, giải nhằm lẫn
đặc biệt để miêu t ả nhiều ngữ cảnh đƣợc dùng để Ngữ cảnh thƣờng kiểu toán h ạng tham gia thiếu tốn hạng tốn t đƣợc hiểu tốn t ngơi
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(182)Các toánửt (tt)
Dựa theo độ ƣu tiên c tốn t qui trình tính tốn bi ểu thức, có loại tốn t ử:
Tốn ửt số học: có độ ƣu tiên cao nh ất qui trình tính tốn biểu thức
Tốn ửt so sánh: có độ ƣu tiên k ế tiếp
Tốn ửt luận lý bitwise : có độ ƣu tiên th ấp
Trong slide sau, s ẽ trình bày chi tiết tốn t VB thuộc loại
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(183)Các toánửt số học
Tùy thu ộc kiểu toán h ạng tham gia mà ta đƣợc phép dùng nh ững toán t chúng ⇒ số lƣợng toán t có giá tr ị t ừng kiểu liệu khác ⇒ phải học nhớ từ từ
Dữ liệu số loại liệu thƣờng đƣợc xử lý nh ất ứng dụng (may mắn cho ta quen v ới toán h ọc)
Các toán t d ữ liệu số là:
Toán ửt '&': nối kết chuỗi thành chuỗi Toán ửt '+': cộng đại lƣợng
Toán ửt '-': trừ đại lƣợng khỏi đại lƣợng Toán ửt '*': nhân 2 đại lƣợng
Toán ửt '/': chia đại lƣợng cho đại lƣợng Toán ửt '\': chia nguyên
Toán ửt Mod: lấy phần dƣ phép chia nguyên Tốn ửt '^': lũy thừa
Khoa Cơng nghệ Thơng tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(184)Toán ửt '&' để nối kết chuỗi Cú pháp:
expr1 & expr2 ( kết quả)
Nối kết toán h ạng kiểu chuỗi thành chuỗi mới, toán hạng thuộc kiểu số đƣợc đổi thành dạng chuỗi trƣớc
thực nối kết Ví dụ:
Dim MyStr As String
MyStr = "Hello" & " World" ' kết "Hello World"
MyStr = "Check " & 123 & " Check" ' kq "Check 123 Check"
Lƣu ý nên có ký t ự trống chu ỗi cho nối kết chuỗi kết dễ đọc
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(185)Toán ửt '+' dữ liệu số Cú pháp:
expr1 + expr2 ( kết quả) + expr1
Nếu tốn h ạng số kiểu kết kiểu xác nh ất phép + theo thứ tự sau: Byte, Integer, Long, Single, Double, Currency, Decimal với ngo ại lệ sau:
Nếu thì kết quả là:
1 tốn h ạng Single,1 toán h ạng Long Double
kết kiểu Variant chứa giá tr ị Single, Long, Date bị Variant chứa Double tràn
kết kiểu Variant chứa giá tr ị Byte bị tràn Variant chứa Integer kết kiểu Variant chứa giá tr ị Integer bị tràn Variant chứa Long toán h ạng Date,1 tốn h ạng kiểu khác Date
Khoa Cơng nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(186)Toán ửt '+' dữ liệu số (tt)
Nếu kiểu tốn h ạng Variant việc xác định ngữ nghĩa phép + kiểu kết theo qui luật bảng sau:
Nếu thì:
cả toán h ạng Variant chứa số Cộng
cả toán h ạng Variant chứa chuỗi Nối kết chuỗi Variant chứa số, Variant chứa chuỗi Cộng
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(187)Toán ửt '+' dữ liệu số (tt)
Nếu tốn h ạng khơng phải Variant việc xác định ngữ nghĩa phép + kiểu kết theo qui luật bảng sau:
Nếu thì:
cả toán h ạng liệu số Cộng
cả toán h ạng chuỗi Nối kết chuỗi số, Variant giá tr ị khác Null C ộng
1 chuỗi, Variant giá tr ị khác Null N ối kết chuỗi
1 biểu thức Variant chứa Empty kết tốn h ạng cịn lại số chuỗi A Type mismatch error toán h ạng Null kết Null
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(188)Toán ửt '-' dữ liệu số Cú pháp:
expr1 - expr2 ( kết quả) - expr1
Kiểu kết thƣờng kiểu xác nh ất phép - theo thứ tự sau: Byte, Integer, Long, Single, Double, Currency, Decimal với ngo ại lệ sau:
Nếu thì kết quả là:
1 toán h ạng Single,1 toán h ạng Long Double
kết kiểu Variant chứa giá tr ị Single, Long, Date bị Variant chứa Double tràn
kết kiểu Variant chứa giá tr ị Integer bị tràn Variant chứa Long toán h ạng Date,1 toán h ạng kiểu khác Date
cả toáng h ạng Date Double
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(189)Toán ửt '*' dữ liệu số Cú pháp:
expr1 * expr2 ( kết quả)
Kiểu kết thƣờng kiểu xác nh ất phép * theo thứ tự sau: Byte, Integer, Long, Single, Double, Currency, Decimal với ngo ại lệ sau:
Nếu thì kết quả là:
1 toán h ạng Single,1 toán h ạng Long Double
kết kiểu Variant chứa giá tr ị Single, Long, Date bị Variant chứa Double tràn
kết kiểu Variant chứa giá tr ị Byte bị tràn Variant chứa Integer kết kiểu Variant chứa giá tr ị Integer bị tràn Variant chứa Long
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(190)Toán ửt '/' dữ liệu số Cú pháp:
expr1 / expr2 ( kết quả)
Kiểu kết thƣờng kiểu Double hay Variant chứa Double với ngoại lệ sau:
Nếu thì kết quả là:
cả toán h ạng Byte, Integer,Single Single, tràn báo sai
cả tốn h ạng variant chứa trị Byte, Integer, Single Variant chứa Single, tràn đổi thành Variant chứa Double
1 tốn h ạng Decimal Decimal
Khoa Cơng nghệ Thơng tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(191)Toán ửt '\' Mod dữ liệu số Cú pháp:
expr1 \ expr2 ( kết quả)
Đây phép chia nguyên, toán h ạng đƣợc đổi dạng nguyên (đƣợc làm tròn) trƣớc thực phép chia
Kiểu kết Byte, Integer, Long Variant chứa trị Byte, Integer, Long
Ví dụ: 19 \ 6.7 kết quảlà Cú pháp:
expr1 Mod expr2 ( kết quả)
Đây phép l phần dƣ phép chia nguyên, toán h ạng đƣợc đổi dạng nguyên ( đƣợc làm tròn) trƣớc thực phép chia Kiểu kết Byte, Integer, Long Variant chứa trị Byte, Integer, Long
Ví dụ: 19 Mod 6.7 kết quảlà
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(192)Toán ửt '^' dữ liệu số Cú pháp:
number ^ exponent ( kết quả)
Đây phép l ũy thừa, toán h ạng thuộc kiểu số (Byte, Integer, Long, Single, Double, ) với hạn chế phần mũ số nguyên phần số (number) đƣợc phép âm
Kiểu kết Double Variant chứa trị Double Ví dụ: (-5) ^ kết -125.0 ^ ^
3 kết 19683.0
3.2 ^ 2.7 kết quảlà 23.115587799
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(193)Các toánửt so sánh dữ liệu Cú pháp:
expr1 op expr2 ( kết quả)
2 toán h ạng thƣờng kiểu số hay chuỗi Kết kiểu luận lý (nhận trị True, False)
op toán t so sánh sau: : phép toán nh ỏ
<= : phép toán nh ỏ : phép toán l ớn
>= : phép toán l ớn : phép toán so sánh b ằng
<> : phép tốn khác (khơng b ằng)
Ngồi tốn t so sánh thơng th ƣờng trên, VB cịn cung c ấp toán t so sánh đặc biệt sau (với ngữ nghĩa đặc biệt đƣợc trình bày slide sau):
expr1 Like expr2 ( kết quả)
expr1 Is expr2 ( kết quả)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(194)Toán ửt Like Cú pháp:
string Like pattern ( kết quả)
xác định xem chuỗi cụ thể string có thuộc pattern khơng Nếu thuộc cho kết True, khơng thuộc cho kết False
Ví dụ:
MyCheck = "aBBBa" Like "a*a" ' Returns True MyCheck = "F" Like "[A-Z]" ' Returns True MyCheck = "F" Like "[!A-Z]" ' Returns False MyCheck = "a2a" Like "a#a" ' Returns True MyCheck = "aM5b" Like "a[L-P]#[!c-e]" ' Returns True MyCheck = "BAT123khg" Like "B?T*" ' Returns True MyCheck = "CAT123khg" Like "B?T*" ' Returns False
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(195)Toán ửt Like (tt)
Hành vi toán t Like phụ thuộc vào chế độ phát bi ểu "Option Compare" qui định:
Option Compare Binary ' default
Option Compare Text
Trong chế độ so sánh Binary, VB d ựa vào thứ tự xếp ký t ự c sở mã nh ị phân c ký t ự Trong bảng mã ISO 8859-1, ta có:
A < B < E < Z < a < b < e < z < À < Ê < Ø < < ê < ø
Trong chế độ so sánh Text, VB d ựa vào thứ tự xếp ký t ự c sở ngữ nghĩa ký t ự thông tin "locale" Windows (do khơng phân biệt chữ thƣờng hoa):
(A=a) < (À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø)
Thông tin chế độ so sánh c ũng đƣợc áp d ụng cho tốn t so sánh thơng thƣờng chu ỗi
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(196)Toán ửt Like (tt)
Toán h ạng string chuỗi ký t ự cụ thể, cịn tốn h ạng pattern chuỗi chứa ký t ự cụ thể và/hoặc ký t ự đặc biệt có ý nghĩa theo bảng sau:
Ký t ự pattern Tƣơng ứng với:
? Bất kỳ ký t ự
* chuỗi ký t ự (dài từ ký t ự trở lên)
# Bất kỳ ký s ố thập phân (0–9)
[!charlist] Bất kỳ ký t ự khơng có trongcharlist [charlist] Bất kỳ ký t ự có charlist
dùng '-' để miêu t ả phạm vi xác định dùng cú pháp [c] để miêu t ả ký t ự đặc
cận dƣới biệt
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(197)Toán ửt Is Cú pháp:
ObjVar1 Is ObjVar1 ( kết quả)
xác định xem biến ObjVar1 ObjVar2 có chứa tham khảo đến đối tƣợng không Nếu v ậy kết biểu thức True, không trị biểu thức False
Ví dụ:
Dim MyObject, YourObject, ThisObject, ThatObject Dim MyCheck As Boolean
Set YourObject = New Clipboard ' tạo object gán tham khảo Set ThisObject = YourObject
Set ThatObject = New Clipboard
MyCheck = YourObject Is ThisObject ' kết True MyCheck = ThatObject Is ThisObject ' kết False
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(198)Các toánửt luận lý
Các toán t luận lý cho phép thực hành vi luận lý hay toán hạng thuộc kiểu luận lý kết giá tr ị luận lý
Các toán t luận lý là:
toán ửt And: phép toán 'và' toán ửt Or: phép toán 'ho ặc' toán ửt Xor: phép toán lo ại trừ toán ửt Not: phép toán đảo
toán ửt Eqv: phép toán t ƣơng đƣơng toán ửt Imp: phép toán kéo theo
Nếu tốn h ạng số phép toán s ẽ thực hành vi chúng t ừng cặp bit tƣơng ứng toán h ạng (sẽ giải thích cụ thể sau)
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(199)Toán ửt luận lý And
Cú pháp:
expr1 And expr2 ( kết quả)
kết đƣợc xác định theo bảng sau: Ghi chú:
kết True toán h ạng True
Kết False có tốn h ạng False
expr1 expr2 kết quả
True True True True False False True Null Null False True False False False False False Null False Null True Null Null False False Null Null Null
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB
(200)Toán ửt bitwise And Cú pháp:
expr1 And expr2 ( kết quả)
2 toán h ạng thuộc kiểu số toán t And thực hành vi cặp bit tƣơng ứng toán h ạng, kết t ừng cặp bit đƣợc xác định theo bảng sau:
biti of expr1 biti of expr2 kết quả
1 1
1 0
0
0 0
Khoa Công nghệ Thông tin Môn: Tin học
Chƣơng 7: Biểu thức VB