1. Trang chủ
  2. » Đề thi

trường thcs hoàng xuân hãn

353 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 353
Dung lượng 14 MB

Nội dung

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 HC ĐẠI CƢƠNG

Đối tƣợng: SV đại học quy tồn trƣờng

Ni dung gm 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 kho:

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 QUYT BÀI TỐN

BNG 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ơ bn 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ơ bn 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ơ bn 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 dch (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ơ bn 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 cp độ ngơn ng lp 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 Lch s phát trin 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)

đin 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 liu & 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 nhn dng (identifier) xác định vị trí liệu kiu d liu (type) miêu t ả cấu trúc c liệu

tm vc truy xut (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)

Cu trúc chƣơng trình cổ đin 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 tng qt gii quyết tốn bng 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 vx 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 dng vt 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-xung

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-xung

chia thành nhi u công vic nh hơn, đơn gin để gii 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-xung 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 HIN D LIU

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ơ bn v vic 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ơ bn v h thng 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 lut kết hp ký số để miêu t ả đại lƣợng

các phép tính ơc bn 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 ( hthp 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 thp lc 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ơ bn v h thng s - Qui lut 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ơ bn v h thng 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 chuyn 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)

Chuyn t h thng khác v thp 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)

Chuyn t h thng nh phân v thp lc 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)

Chuyn t h thng nh phân v thp lc 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)

Chuyn t h thng thp lc 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)

Chuyn t h thng thp phân v h thng 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)

Chuyn t h thng thp lc 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ơ bn v h thng 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 cng, 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 dch 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 Biu din 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)

Biu din 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 biu din 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)

Biu din 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)

Biu din s thc 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.1m<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 độ ln/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)

Biu din s thc 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)

Biu din s thc 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)

Biu din chui 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)

Bng 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)

Bng 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)

Bng mã ti ếng Vit Đ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)

Mt phn mã ti ếng Vit 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 liu ca ng dng

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 thng 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 cha tin: Không gian th bc Để 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 thng 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 dn tuyt đố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 dn tuyt đố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 Qun lý h thng 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)

Tin ích qun lý h thng 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)

Ca s ca WE & phn t giao din

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 duyt h thng 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ácv 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ácv 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)

To thƣ mc/file mi

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 ƣ mc/file đang tn ti

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ƣ mc/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ƣ mc/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 chuyn (move) thƣ mc/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ớ để hiu chnh

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)

Hin th ca s thông tin v file/thƣ mc

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 chnh thuc tính file/thƣ mc

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

TNG QUÁT V LP TRÌNH

BNG 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 nim cơ bn 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 lp trình cu 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)

Cu trúc ca ng dng 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:

Thuc 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)

Kiu tru 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 tha 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 gp (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 đip (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 ca ng dng

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 din 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

Gii thut 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ế trc quan cácđối tƣợng giao din

Đị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 din 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 din 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 din 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 din 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 cht chung ca cácđối tƣợng giao din Đố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 Hiu chnh thuc tính ca cácđối tƣợng giao din

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 kin - Th tc x lý s kin

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 kin ca đố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)

Tng kết qui trình viết ng dng bng 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ế trc quan formgiao din 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

To th tc x lý s kin 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 THIT K TRC QUAN GIAO DIN CA NG DNG

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 Dng

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)

Khi độ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)

Ca s khi độ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)

To mi 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 To đối tƣợng giao din 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 lp giá tr cho thuc 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 lp giá tr cho thuc 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 chnh vtrí 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 tm thi ca 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 thuc 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 din

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 ca hot độ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 din

Để 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 to Toolbar ca 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 bng 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 to Toolbar ca 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 to Toolbar ca 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 to Toolbar ca 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 to Toolbar ca 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 to Toolbar ca 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 to Toolbar ca 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 to Toolbar ca 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 to Toolbar ca 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 to giao din

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 din 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 din 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 to giao din (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 To th tc x lý s kin cho cácđối tƣợng giao din 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)

To th tc x lý s kin cho cácđối tƣợng giao din (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)

To th tc x lý s kin cho cácđối tƣợng giao din (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 LIU 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 liu

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 kiu d liu cơ bn định sn ca 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 kiu d liu cơ bn định sn ca 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 kiu d liu cơ bn định sn ca 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 kiu 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 vkiu String Kiu 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 vkiu Integer

Kiu 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 vkiu Long

Kiu 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 vkiu Byte

Kiu 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 vkiu Boolean

Kiu 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

Kiu 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 vkiu Single Kiu 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 vkiu Double Kiu 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 vkiu Currency Kiu 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 vkiu 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 vkiu 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 Vic 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)

Vic 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 to class mi để 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)

Ca 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ý hiu 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)

Tm vc truy xut 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:

Cc b th tc: 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

Cc 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)

Thi gian sng ca 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 cc b th tc: đƣợ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 cc 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)

Thi gian sng ca 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 tm vc: 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 cha tin bn vng (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 Hng gi 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)

Hng gi 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 Tng quát v code ca ng dng 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)

Tng 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ý hiu cơ bn ca 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à lnh thc 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 chnghiê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 tc miêu t loi 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 tc miêu t loi 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 biu đị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 biu đị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 biu định nghĩa kiu ca ngƣời lp 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 biu định nghĩa kiu 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 biu định nghĩa kiu 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 Lnh 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)

Lnh 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

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

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

BIU THC 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 Tng quát v biu thc 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 biu thc cơ bn

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ánt

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ánt (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 hc: 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 lun 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ánt s hc

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 '&' để ni kết chui 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 liu 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 liu 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 liu 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 liu 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 liu 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 liu 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 liu 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 liu 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ánt so sánh d liu 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 vi:

? 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ánt lun 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 lun 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

Ngày đăng: 03/04/2021, 10:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w