You are on page 1of 175

MN TIN HC

i tng : SV i hc chnh quy ton trng


Ni dung chnh gm 12 chng :
1. Phng php gii quyt bi ton
bng my tnh s.
2. Th hin d liu trong my tnh s.
3. Tng qut v lp trnh bng VB.
4. Qui trnh thit k trc quan giao
din.
5. Cc kiu d liu ca VB.
6. Cc lnh nh ngha & khai bo.

7.
8.
9.
10.

Biu thc VB.


Cc lnh thc thi VB.
nh ngha th tc & s dng.
Tng tc gia ngi dng &
chng trnh.
11. Qun l h thng file.
12. Linh kin phn mm & truy
xut database.

Ti liu tham kho :


Tp slide bi ging & thc hnh ca mn hc ny.
3 CD MSDN trong Microsoft Visual Studio.
Mn : Tin hc

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Slide 1

MN TIN HC
Chng 1

PHNG PHP GII QUYT BI TON


BNG MY TNH S
1.1 Cc khi nim c bn v my tnh s
1.2 Lch s pht trin my tnh s
1.3 D liu & chng trnh
1.4 Qui trnh tng qut gii quyt bi ton bng my tnh s
1.5 Phn tch bi ton t-trn-xung
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 2

1.1 Cc khi nim c bn v my tnh s


Con ngi thng minh hn cc ng vt khc nhiu. Trong cuc sng,
h ch to ngy cng nhiu cng c, thit b h tr mnh trong
hot ng. Cc cng c, thit b do con ngi ch to ngy cng tinh vi,
phc tp v thc hin nhiu cng vic hn trc y. Mi cng c, thit
b thng ch thc hin c 1 vi cng vic c th no . Th d, cy
chi qut, radio bt v nghe i audio...
My tnh s (digital computer) cng l 1 thit b, nhng thay v ch thc
hin 1 s chc nng c th, st vi nhu cu i thng ca con ngi,
n c th thc hin 1 s hu hn cc chc nng c bn (tp lnh), mi
lnh rt s khai cha gii quyt trc tip c nhu cu i thng no
ca con ngi. C ch thc hin cc lnh l t ng, bt u t lnh
c ch nh no ri tun t tng lnh k tip cho n lnh cui
cng. Danh sch cc lnh c thc hin ny c gi l chng trnh.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 3

Cc khi nim c bn v my tnh s


Cc lnh m my hiu v thc hin c c gi l lnh my.
Ta dng ngn ng miu t cc lnh. Ngn ng lp trnh cu
thnh t 2 yu t chnh yu : c php v ng ngha. C php qui
nh trt t kt hp cc phn t cu thnh 1 lnh (cu), cn
ng ngha cho bit ngha ca lnh .
Bt k cng vic (bi ton) ngoi i no cng c th c chia
thnh trnh t nhiu cng vic nh hn. Trnh t cc cng vic
nh ny c gi l gii thut gii quyt cng vic ngoi i. Mi
cng vic nh hn cng c th c chia nh hn na nu n
cn phc tp,... cng vic ngoi i c th c miu t bng
1 trnh t cc lnh my (chng trnh ngn ng my).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 4

Cc khi nim c bn v my tnh s


Vn mu cht ca vic dng my tnh gii quyt cng vic ngoi i
l lp trnh (c hiu nm na l qui trnh xc nh trnh t ng cc
lnh my thc hin cng vic). Cho n nay, lp trnh l cng vic
ca con ngi (vi s tr gip ngy cng nhiu ca my tnh).
Vi cng ngh phn cng hin nay, ta ch c th ch to cc my tnh
m tp lnh my rt s khai, mi lnh my ch c th thc hin 1 cng
vic rt nh v n gin cng vic ngoi i thng tng ng vi
trnh t rt ln (hng triu) cc lnh my Lp trnh bng ngn ng
my rt phc tp, tn nhiu thi gian, cng sc, kt qu rt kh bo tr,
pht trin.
Ta mun c my lun l vi tp lnh (c c t bi ngn ng lp
trnh) cao cp v gn gi hn vi con ngi. Ta thng hin thc my
ny bng 1 my vt l + 1 chng trnh dch. C 2 loi chng trnh
dch : trnh bin dch (compiler) v trnh thng dch (interpreter).
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 5

Trnh bin dch (Compiler)

Chng trnh bin dch nhn mt chng trnh ngun (thng c


vit bng ngn ng cp cao) v to ra mt chng trnh i tng
tng ng v chc nng nhng thng c vit bng ngn ng
cp thp (thng l ngn ng my).
Nu c li xy ra trong lc dch, trnh bin dch s bo li, c gng
tm v tr ng k tip ri tip tc dch Nh vy, mi ln dch 1
chng trnh, ta s xc nh c nhiu li nht c th c.
Sau mi ln dch, nu khng c li, trnh bin dch s to ra file
cha chng trnh i tng (th d file chng trnh kh thi *.exe
trn Windows).
chy chng trnh, ngi dng ch cn kch hot file kh thi
(ngi dng khng bit v khng cn quan tm n file chng
trnh ngun).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 6

Trnh thng dch (Interpreter)

Chng trnh thng dch khng to ra v lu gi chng trnh i


tng.

Mi ln thng dch 1 chng trnh ngun l 1 ln c gng chy


chng trnh ny theo cch thc sau :
dch v chuyn sang m thc thi tng lnh mt ri nh my
chy on lnh tng ng.
Nu c li th bo li, nu khng c li th thng dch lnh k
tip... cho n khi ht chng trnh.
Nh vy, mi ln thng dch chng trnh, trnh thng dch ch
thng dch cc lnh trong lung thi hnh cn thit ch khng
thng dch ht mi lnh ca chng trnh ngun. Do , sau khi
thng dch thnh cng 1 chng trnh, ta khng th kt lun
rng chng trnh ny khng c li.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 7

So snh trnh bin dch & trnh thng dch

Mi hot ng x l trn mi m ngun ca chng trnh (kim tra li, dch ra


cc lnh i tng tng ng,...) u c chng trnh bin dch thc hin
to c chng trnh i tng. Do sau khi dch cc file m ngun ca
chng trnh, nu khng c li, ta c th kt lun chng trnh khng th c li
thi im dch (t vng, c php). Qu trnh bin dch v qu trnh thc thi
chng trnh l tch ri nhau : bin dch 1 ln v chy nhiu ln cho n khi cn
cp nht version mi ca chng trnh.
Chng trnh thng dch s thng dch tng lnh theo lung thi hnh ca
chng trnh bt u t im nhp ca chng trnh, thng dch 1 lnh gm 2
hot ng : bin dch lnh v thc thi cc lnh kt qu. Nu 1 on lnh cn
c thc thi lp li th trnh thng dch s phi thng dch li tt c on lnh
. iu ny s lm cho vic chy chng trnh trong ch thng dch khng
hiu qu.
Vic chy chng trnh bng c ch thng dch i hi chng trnh thng dch
v chng trnh ng dng cn chy phi tn ti ng thi trong b nh my tnh,
do c nguy c chy khng c cc chng trnh ln nu ti nguyn ca
my khng cho c 2 chng trnh thng dch v chng trnh ng dng.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 8

Cc khi nim c bn v my tnh s


Gi ngn ng my vt l l N0. Trnh bin dch ngn ng N1 sang
ngn ng N0 s nhn u vo l chng trnh c vit bng ngn
ng N1, phn tch tng lnh N1 ri chuyn thnh danh sch cc lnh
ngn ng N0 c chc nng tng ng. vit chng trnh dch t
ngn ng N1 sang N0 d dng, phc tp ca tng lnh ngn ng
N1 khng qu cao so vi tng lnh ngn ng N0.
Sau khi c my lun l hiu c ngn ng lun l N1, ta c th nh
ngha v hin thc my lun l N2 theo cch trn v tip tc n khi ta
c 1 my lun l hiu c ngn ng Nm rt gn gi vi con ngi, d
dng miu t gii thut ca bi ton cn gii quyt...
Nhng qui trnh trn cha c im dng, vi yu cu ngy cng cao
v kin thc ngy cng nhiu, ngi ta tip tc nh ngha nhng ngn
ng mi vi tp lnh ngy cng gn gi hn vi con ngi miu t
gii thut cng d dng, gn nh v trong sng hn.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 9

Cc cp ngn ng lp trnh
Ngn ng my vt l l loi ngn ng thp nht m ngi lp trnh bnh
thng c th dng c. Cc lnh v tham s ca lnh c miu t
bi cc s binary (hay hexadecimal - s c miu t chi tit trong
chng 2). y l loi ngn ng m my vt l c th hiu trc tip,
nhng con ngi th gp nhiu kh khn trong vic vit v bo tr
chng trnh cp ny.
Ngn ng assembly rt gn vi ngn ng my, nhng lnh c bn nht
ca ngn ng assembly tng ng vi lnh my nhng c biu din
di dng gi nh. Ngoi ra, ngi ta tng cng thm khi nim "lnh
macro" nng sc mnh miu t gii thut.
Ngn ng cp cao theo trng phi lp trnh cu trc nh Pascal, C,...
Tp lnh ca ngn ng ny kh mnh v gn vi t duy ca ngi bnh
thng.
Ngn ng hng i tng nh C++, Visual Basic, Java, C#,... ci tin
phng php cu trc chng trnh sao cho trong sng, n nh, d
pht trin v thay th linh kin.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 10

1.2 Lch s pht trin my tnh s

My tnh xut hin t rt lu theo nhu cu bun bn v trao i


tin t.
Bn tnh tay abacus l dng s khai ca my tnh.

5 n v

1 n v

Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 11

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Cc th h my tnh s
Blaise Pascal (Php-1642)
Charles Babbage (Anh-1830)

ENIAC (1946)
18.000 bng n
1500 r le
30 tn
140 KW

Intel 8080 (1974)


c xem nh CPU u
tin c tch hp trn 1
chip

IBM 360 (1965)


Von Neumann (1945)

n
in t

PDP-1 (1961)
80x86 (1978)
Transistors
IC

(1642 - 1945)
Herman Hollerith lp IBM
(International Business
Machine) M - 1890
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

(1945 - 1955)
B nh dy tr, tnh
in. Giy, phiu c
l. Bng t

(1955 - 1965) (1965 - 1980) (1980 - ????)


B nh xuyn t.
Bng t, trng t,
a t.
Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 12

1.3 D liu & chng trnh


Cc lnh ca chng trnh (code) s truy xut (c v/hoc ghi) thng
tin (d liu).
Chng trnh gii quyt bi ton no c th truy xut nhiu d liu
khc nhau vi tnh cht rt a dng. truy xut 1 d liu c th, ta
cn 3 thng tin v d liu :
- tn nhn dng (identifier) xc nh v tr ca d liu.
- kiu d liu (type) miu t cu trc ca d liu.
- tm vc truy xut (visibility) xc nh cc lnh c php truy xut
d liu tng ng.
Chng trnh c in = d liu + gii thut.
Chng trnh con (function, subroutine,...) l 1 on code thc hin
chc nng c dng nhiu ln nhiu v tr trong chng trnh, c
nhn dng thng qua 1 tn gi. Chng trnh con cho php cu trc
chng trnh, s dng li code...
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 13

Cu trc 1 chng trnh c in


Chng trnh = cu trc d liu + gii thut
module
(package)
entry 'start'

global data
local data
of module

local data
of function

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc

Chng 1: Phng php gii quyt bi ton bng my tnh s


Slide 14

1.4 Qui trnh tng qut gii quyt bi ton bng my tnh s
Kt qu c c sau
khi x l bng my tnh
(ch s, hnh nh, m
thanh,...)

D liu cn x l bng
my tnh (ch s, hnh
nh, m thanh,...)

CDROM, a, bng,...
M ha d liu
thnh dng
chui bit

Lu gi d liu
s dng li

Gii m chui
bit ra dng
ngi, thit b
ngoi hiu c

X l d liu
dng chui bit
My tnh s
Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 15

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

M hnh my tnh s Von Neumann


cha code v data
ang thc thi

B nh
(Memory)

thc thi tng lnh


ca chng trnh

n v x l
(CPU)

giao tip vi bn ngoi


(thng l ngi)
nhp/xut tin

Cc thit b
vo ra (I/O)

Bus giao tip

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 16

Hnh dng vt l ca vi my tnh


mn hnh

loa

bn phm

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

thng my

chut

Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 17

1.5 Phng php phn tch t-trn-xung


Trong qu kh, phng php thng s dng phn tch bi ton l
phng php t-trn-xung (top-down analysis).
Ni dung ca phng php ny l xt xem, mun gii quyt vn no
th cn phi lm nhng cng vic nh hn no. Mi cng vic nh hn
tm c li c phn thnh nhng cng vic nh hn na, c nh vy
cho n khi nhng cng vic phi lm l nhng cng vic tht n gin,
c th thc hin d dng.
Th d vic hc ly bng k s CNTT khoa CNTT HBK TP.HCM c th
bao gm 9 cng vic nh hn l hc tng hc k t 1 ti 9, hc hc k i l
hc n mn hc ca hc k , hc 1 mn hc l hc m chng ca mn
,...
Hnh v ca slide k cho thy trc quan ca vic phn tch top-down.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 18

Phng php phn tch t-trn-xung


Cng vic cn
gii quyt (A)

chia thnh nhiu cng


vic nh hn, n gin
gii quyt hn.

Cng vic
A1

Cng vic
A11

Cng vic
A2

Cng vic
A12

Cc cng vic nh
c miu t bng
1 lnh hay 1 li gi
hm/th tc c.

Cng vic
A1n

...

Cng vic
An

...

Cng vic
An1

Cng vic
An2

...

...

Cng vic
Ann

...
Mn : Tin hc

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Chng 1: Phng php gii quyt bi ton bng my tnh s


Slide 19

Phng php phn tch t-trn-xung


Cng vic cn gii quyt
i tng phc hp A
i tng
A1
i tng
A11

i tng
A2

i tng
A12

i tng
A1n

...
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

...

i tng
An

...

i tng
An1

i tng
An2

...

i tng
Ann

...

Mn : Tin hc
Chng 1: Phng php gii quyt bi ton bng my tnh s
Slide 20

10

MN TIN HC
Chng 2

TH HIN D LIU
TRONG MY TNH S
2.1 C bn v vic lu tr v x l tin trong my tnh
2.2 C bn v h thng s
2.3 Cc phng php chuyn miu t s
2.4 Biu din d liu trong my tnh
2.5 H thng file
2.6 Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 21

2.1 C bn v vic lu tr v x l tin trong my tnh


Phn t nh nh nht ca my tnh s ch c th cha 2 gi tr : 0 v 1
(ta gi l bit).
Ta kt hp nhiu phn t nh c th miu t i lng ln hn. Th
d ta dng 8 bit miu t 28 = 256 gi tr khc nhau. Dy 8 bit nh
c gi l byte, y l 1 nh trong b nh ca my tnh.
B nh trong ca my tnh c dng cha d liu v code ca
chng trnh ang thc thi. N l 1 dy ng nht cc nh 8 bit, mi
nh c truy xut c lp thng qua a ch ca n (tn nhn dng).
Thng ta dng ch s t 0 - n miu t a ch ca tng nh.
Mc d ngoi i ta quen dng h thng s thp phn, nhng v
phn cng bn trong my tnh, my ch c th cha v x l trc tip d
liu dng nh phn. Do trong chng ny, ta s gii thiu cc khi
nim nn tng v h thng s v cch miu t d liu trong my tnh.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 22

11

2.2 C bn v h thng s
H thng s (number system) l cng c biu th i lng. Mt h
thng s gm 3 thnh phn chnh :
1. c s : s lng k s (k hiu nhn dng cc s c bn).
2. qui lut kt hp cc k s miu t 1 i lng no .
3. cc php tnh c bn trn cc s.
Trong 3 thnh phn trn, ch c thnh phn 1 l khc nhau gia cc h
thng s, cn 2 thnh phn 2 v 3 th ging nhau gia cc h thng
s.
Th d : - h thng s thp phn (h thp phn) dng 10 k s :
0,1,2,3,4,5,6,7,8,9.
- h nh phn dng 2 k s : 0,1.
- h bt phn dng 8 k s : 0,1,2,3,4,5,6,7.
- h thp lc phn dng 16 k s : 0 n 9,A,B,C,D,E,F.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 23

C bn v h thng s - Qui lut miu t lng


Biu din ca lng Q trong h thng 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
trong mi di l 1 k s trong h thng B.
Trong thc t lp trnh bng ngn ng cp cao, ta thng dng h
thng s thp phn miu t d liu s ca chng trnh (v
quen). Ch trong 1 s trng hp c bit, ta mi dng h thng s
thp lc phn (dng ngn ca nh phn) miu t 1 vi gi tr
nguyn, trong trng hp ny, qui lut biu din ca lng nguyn Q
trong h thng s B s n gin l :
dndn-1...d1d0
Q = dn*Bn + dn-1*Bn-1 +...+d1*B1+d0*B0
trong mi di l 1 k s trong h thng B.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 24

12

C bn v h thng s - Vi th d
Th d v biu din cc lng trong cc h thng s :
- lng "mi by" c miu t l 17 trong h thp phn v :
17 = 1*101+7*100
- lng "mi by" c miu t l 11 trong h thp lc phn v :
11 = 1*161+1*160
- lng "mi by" c miu t l 10001 trong h nh phn v :
10001 = 1*24+0*23+0*22+0*21+1*20
Trong mi trng s dng ng thi nhiu h thng s, trnh nhm
ln trong cc biu din ca cc lng khc nhau, ta s thm k t
nhn dng h thng s c dng trong biu din lin quan. Th d ta
vit :
- 17D xc nh s biu din trong h thng s thp phn.
- 11H (h thng s thp lc phn.)
- 10001B (h thng s nh phn.)
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 25

2.3 Cc phng php chuyn miu t s


chuyn 1 miu t s t h thng s ny sang h thng s
khc, ta cn dng 1 phng php chuyn thch hp. C 4
phng php sau tng ng vi tng yu cu chuyn tng ng :
1. chuyn t h thng s khc v thp phn.
2. chuyn t nh phn v thp lc phn (hay bt phn).
3. chuyn t thp lc phn (hay bt phn) v nh phn.
4. chuyn t h thng s thp phn v h thng s khc.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 26

13

Chuyn t h thng khc v thp phn


chuyn 1 miu t s t h thng s khc (nh phn, thp lc
phn hay bt phn) sang h thp phn, ta dng cng thc tnh
Q.
Th d :
1. 1A2H = 1*162+10*161+2*160 = 256+160+2 = 418D
2. 642O = 6*82+4*81+2*80 = 384+32+2 = 418D
3. 110100010B = 28 + 27+25+21 = 256+128+32+2 =418D

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 27

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Chuyn t h thng nh phn v thp lc phn


Lu rng c 1 mi quan h mt thit gia h nh phn v thp
lc phn (hay bt phn), l 4 k s nh phn tng ng vi
1 k s thp lc phn (hay 3 k s nh phn tng ng vi 1 k
s bt phn) theo bng tra sau :
Dec

Hex

Oct

Binary

Dec

Hex

Oct

Binary

00

0000

10

1000

01

0001

11

1001

02

0010

10

12

1010

03

0011

11

13

1011

04

0100

12

14

1100

05

0101

13

15

1101

06

0110

14

16

1110

07

0111

15

17

1111

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 28

14

Chuyn t h thng nh phn v thp lc phn


i 1 s nh phn v thp lc phn (hay bt phn), ta i t
phi sang tri v chia thnh tng nhm 4 k s nh phn (hay 3
k s nh phn), sau i tng nhm 4 k s (hay 3 k s)
thnh 1 k s thp lc phn tng ng (hay 1 k s bt phn
tng ng).
Th d :
1. 110100010B = 0001.1010.0010 = 1A2H
2. 110100010B = 110.100.010 = 642O

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 29

Chuyn t h thng thp lc phn v nh phn


i 1 s thp lc phn (hay bt phn) v nh phn, ta i tng
k s thp lc phn (hay bt phn) thnh tng nhm 4 k s nh
phn (hay 3 k s nh phn).
Th d :
1. 1A2H = 0001.1010.0010 = 110100010B
2. 642O = 110.100.010 = 110100010B

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 30

15

Chuyn t h thng thp phn v h thng khc


i 1 s thp phn v h thng s khc, ta hy chia s cn
i cho c s ch c c thng v d s, ta lp li hot
ng chia thng s cho c s ch c c thng v d s
mi, c th lp mi cho n khi thng s = 0 th dng li. Ghp
cc d s theo chiu ngc chiu lp to ra kt qu ( l s
miu t s tng ng nhng h thng s khc).
Th d chuyn s 418 v miu t tng ng trong h thp lc :
418D 16
2
26 16
10
1
16
1
0
Kt qu l 418D = 1A2H
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 31

Chuyn t h thng thp lc phn v bt phn


i 1 s thp lc phn v bt phn (hay ngc li), ta nn
chuyn tun t t thp lc phn v nh phn, ri t nh phn v
bt phn.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 32

16

C bn v h thng s - Cc php tnh


Cc php tnh c bn trong 1 h thng s l :
1. php cng
(+).
2. php tr
(-).
3. php chia
(/).
4. php nhn
(*).
5. php dch tri n k s
(<< n).
6. php dch phi n k s
(>> n).
Ngoi ra do c im ca h nh phn, h ny cn cung cp 1 s php
tnh sau (cc php tnh lun l) :
1. php OR bit
(|).
2. php AND bit
(&).
3. php XOR bit
(^).
4. ....
Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 33

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Th d v php cng, tr, nhn


Th d v cc php tnh c bn (cc gi tr u c biu din
bng h nh phn :
0 1 1 0

1 0 0 1

1 0 0 1

+ 0 0 1 1

- 0 0 1 1

* 0 1 0 1

1 0 0 1

0 1 1 0

1 0 0 1
0 0 0 0
1 0 0 1
1 0 1 1 0 1

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 34

17

Th d v php chia
Th d v cc php tnh c bn (cc gi tr u c biu din
bng h nh phn) :
s b chia
1 0 1 1
- 1 0

1 0

s chia

1 0 1

thng s

0 1
- 0 0
1 1
- 1 0

d s

0 1

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 35

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Th d v php dch k s
Th d v cc php tnh dch k s (cc gi tr u c biu din
bng h nh phn) :
0 0 0 0 1 1 0 1

b dch tri 2 bit thnh 0 0 0 0 1 1 0 1 0 0


(tng dng vi nhn 22)

0 0
0 0
0 0 0 0 1 1 0 1

b dch phi 2 bit thnh

0 0 0 0 1 1 0 1

(tng dng vi chia 22)

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 36

18

Cc php tnh ca i s Boole


i s Boole nghin cu cc php ton thc hin trn cc bin ch c
2 gi tr 0 v 1, tng ng vi hai thi cc lun l "sai" v "ng" (hay
"khng" v "c") ca i thng. Cc php ton ny gm :
x

not x x and y x nand y


1

x or y

x nor y

x xor y

Biu thc Boole l 1 biu thc ton hoc cu thnh t cc php ton
Boole trn cc ton hng l cc bin ch cha 2 tr 0 v 1.
Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 37

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Hm Boole
Mt hm Boole theo n bin boole (hm n ngi) l 1 biu thc boole
cu thnh t cc php ton Boole trn cc bin boole.
Thay v miu t hm boole bng biu thc boole, ta c th miu t
hm boole bng bng thc tr. Bng thc tr ca hm boole n bin
c 2n hng, mi hng miu t 1 t hp tr c th ca cc bin v gi
tr c th ca hm tng ng vi t hp tr ny (xem slide ngay
trc).
Nh vy 1 hm
boole n bin c miu t nh 1 chui 2n bit c
2n
chnh xc 2 hm boole n ngi khc nhau. C th c :
1

22 = 4
2

2 2 = 24 = 16
3

2 2 = 2 8 = 256
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

hm boole 1 ngi khac nhau


hm boole 2 ngi khac nhau
hm boole 3 ngi khac nhau
Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 38

19

Cc n v nh thng dng
My tnh dng trc tip h nh phn, cc n v biu din thng tin
thng dng l :
1. bit : miu t 2 gi tr khc nhau (ng/sai, 0/1,..)
2. byte : 8bit, c th miu t c 28 = 256 gi tr khc nhau.
3. word : 2 byte, c th miu t c 216 = 65536 gi tr khc
nhau.
4. double word : 4 byte, c th miu t c 232 =
4.294.967.296 gi tr khc nhau.
5. KB (kilo byte) = 210 = 1024 byte.
6. MB (mega byte) = 220 = 1024KB = 1.048.576 byte.
7. GB (giga byte) = 230 = 1024MB = 1.073.741.824 byte.
8. TB (tetra byte) = 240 = 1024GB = 1.099.511.627.776 byte.
Th d, RAM ca my bn l 512MB, a cng l 300GB.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 39

2.4 Biu din s nguyn trong Visual Basic


Ty ngn ng lp trnh m cch biu din s trong my c nhng khc
bit nht nh. Ring VB c nhiu phng php biu din s khc nhau,
trong 2 cch thng dng l s nguyn v s thc.
My dng 1 word (2 byte) cha d liu nguyn (Integer) theo qui nh
c th slide sau.
V mi nh my tnh ch cha c 1 byte, do ta phi dng nhiu
lin tip (2 hay 4) cha s nguyn. C 2 cch cha cc byte ca s
nguyn (hay d liu khc) vo cc nh : BE & LE.
Cch BE (Big Endian) cha byte trng s cao nht vo nh a ch thp
trc, sau ln lt n cc byte cn li. Cch LE (Little Endian) cha
byte trong s nh nht vo nh a ch thp trc, sau ln lt n
cc byte cn li.
VB s dng cch LE cha s nguyn vo b nh (Integer v Long).
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 40

20

Biu din s nguyn trong Visual Basic


Phn dng c 32768 s
t s 0 ti 32767, c
miu t theo cng thc Q.
Phn m c 32768 s t 32768 ti -1, c miu t
dng s b 2 nh sau :
S b 1 ca 1 s n bit l n
bit m mi bit l ngc vi
bit gc (0 1 v 1 0)
S b 2 ca 1 s n bit l s
b 1 ca s ri tng ln
1 n v.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

S biu din

gi tr

00000000 00000000

00000000 00000001

....
01111111 11111111

32767

10000000 00000000

-32768

10000000 00000001

-32767

....
11111111 11111111

-1

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 41

Biu din s nguyn trong VB - Th d


S 15 c miu t di dng nh phn 16 bit nh sau :
0000 0000 0000 1111
Do , nu dng kiu Integer lu s 15, ta dng 16 bit nh trn
hay vit ngn gn l 000FH. Nu lu vo b nh dng LE th nh
c a ch thp (i) cha byte 0FH, v nh k (i+1) cha byte 00.
Nu dng kiu Long lu s 15, ta dng 4 byte 0000000FH v
lu vo b nh dng LE tn 4 nh vi gi tr ln lt t a ch
thp n cao l 0FH, 00, 00, 00.
S b 1 ca 15 l 1111 1111 1111 0000, s b 2 ca 15 l
1111 1111 1111 0001
Nh vy -15 c lu vo my dng Integer l 2 byte c gi tr
FFF1H. Nu lu vo nh dng LE th nh c a ch thp (i)
cha byte F1H, v nh k (i+1) cha byte FFH.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 42

21

Biu din s thc trong Visual Basic


miu t c cc gi tr nguyn nm ngoi phm vi t -32768 n
32767, VB cung cp kiu 'Long', kiu ny dng 4 byte miu t 1 gi tr
nguyn vi cng nguyn tc nh kiu Integer. Kt qu l kiu Long miu
t cc s nguyn trong phm vi t -2 t n 2 t.
Trong khoa hc, ta c th miu t s thc theo dng m*Be, m gi l nh
tr, B l c s v e l s m. Nh vy 1 s thc c th c th c miu t
bi rt nhiu miu t khc nhau, trong miu t c 0.1m<1 c gi l
miu t chnh tc ca s thc. y l miu t m my tnh s dng.
e

m (mantissa) quyt nh chnh xc


B (base)
e (exponent) quyt nh ln/nh

9135.512 10-1

0.9135512 103

mB

91355.12 10-2

913.5512

9.135512 102
Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 43

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Biu din s thc trong Visual Basic


Trc khi lu vo my tnh, s thc c i v dng miu t nh
phn di dng 1.m*2e (m l chui bit nh phn miu t phn l).
VB lu s thc theo chun IEEE 754, dng 1 trong 2 dng lu :
Chnh xc n (Single) : VB dng 4 byte - 4 nh (32 bit) lu
s thc theo dng thc c th sau :
trong bit S = 1 (m), =0 (dng).
M
M = m & E = 127 + e
S
E
1

23

Chnh xc kp (Double) : VB dng 8 byte - 8 nh (64 bit)


lu s thc theo dng thc c th sau :
trong bit S = 1 (m), =0 (dng); M = m & E = 1023 + e
S

11

52

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 44

22

Biu din s thc trong VB - Th d


Th d gi tr -1.5 c miu t dng nh phn l -1.1*20.
Do nu dng kiu Single cha s thc -1.5, ta tn 4 byte (32
bit) vi cc thnh phn S = 1, M = 10...0 (22 bit 0), E = 127. Kt
qu, gi tr ca 4 byte miu t s -1.5 nh sau : BF C0 00 00
Tng t, nu dng kiu Double cha s thc -1.5, ta tn 8 byte
(64 bit) vi cc thnh phn S = 1, M = 10...0 (51 bit 0), E = 1023.
Kt qu, gi tr ca 8 byte miu t s -1.5 nh sau : BF F8 00 00
00 00 00 00.
VB dng cch cha LE, do gi tr -1.5 c lu vo b nh
theo kiu Single s chim 4 byte theo gi tr ln lt t a ch
thp n cao l 00 00 C0 BF. Tng t nu miu t -1.5 vo b
nh theo kiu Double th s cn 8 nh vi gi tr ln lt t a
ch thp n cao l 00 00 00 00 00 00 F8 BF.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 45

Biu din chui k t trong Visual Basic


Chui k t l danh sch nhiu k t, mi k t c miu t trong my
bi n bit nh :

m ASCII dng 7 bit (dng lun 1 byte nhng b bit 8) miu t


1 k t tp k t m m ASCII miu t c l 128.

m ISO8859-1 dng 8 bit (1 byte) miu t 1 k t tp k t


m m ISO8859-1 miu t c l 256.

m Unicode trn Windows dng 16 bit (2 byte) miu t 1 k t


tp k t m m Unicode trn Windows miu t c l
65536.

...

Hin c nhiu loi m ting Vit khc nhau, a s dng m ISO8859-1


ri qui nh li cch hin th 1 s k t thnh k t Vit. Ring Unicode l
b m thng nht ton cu, trong c cc k t Vit.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 46

23

Bng m ASCII 7 bit


M ASCII dng cc gi tr (m) t 0 - 127 miu t cc k t :

m t 0 - 31 l cc m iu khin nh CR=13 (Carriage Return),


LF=10 (Line Feed), ESC=27 (Escape)...

m 32 miu t k t trng, 33 miu t k t !,... theo bng sau :

! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 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 { | } ~

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 47

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Bng m ISO8859-1 (8 bit)


M ISO8859-1 dng cc gi tr (m) t 0 - 255 miu t cc k t (128
m k t u qui nh ging nh m ASCII) :

m t 0 - 31 l cc m iu khin nh CR=13 (Carriage Return),


LF=10 (Line Feed), ESC=27 (Escape)...

m 32 miu t k t trng, 33 miu t k t !,... theo bng sau :

! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 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 Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 48

24

Bng m ting Vit HBK 1 byte


M HBK 1 byte c c bng cch hiu chnh bng m ISO8859-1 :

m t 0 - 31 l cc m iu khin nh CR=13 (Carriage Return),


LF=10 (Line Feed), ESC=27 (Escape)...

m 32 miu t k t trng, 33 miu t k t !,... theo bng sau :

! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 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 Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 49

Mt phn m ting Vit Unicode


M Unicode Windows dng 2 byte miu t 1 k t :

256 m u t 0 - 255 ging y nh m ISO8859-1.

m t 256 tr i cha cc k t ca hu ht cc ngn ng trn


th gii (qu kh, hin ti v tng lai).

th d sau l 1 phn m ting Vit trong m Unicode :

m 1ea0H biu din k t

m 1ef9H biu din k t

~

^  ` |

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 50

25

M ha d liu ca ng dng
S nguyn (Integer, Long), s thc (Single, Double), chui k t (String)
l nhng dng m ha d liu ph dng, ngoi ra mi ng dng c th
cn c cch m ha ring m ha d liu c th ca mnh nh hnh
nh, m thanh,...
Trong chng 5 v 6 chng ta s trnh by chi tit cc kiu d liu m
ngn ng VB h tr.
Nhng ta trnh by trong slide 15 (chng 1), d dng cch m ha
c th no th kt qu ca vic m ha phi l 1 chui bit (hay chui
byte) c th c lu tr v x l bn trong my tnh.
B nh ca my tnh thng c dung lng khng ln nn ta ch dng n
cha code v d liu ca chng trnh ang thc thi.
1 my tnh c th lu tr rt nhiu chng trnh v d liu ca chng trn
cc thit b cha tin (b nh ngoi) nh a mm, a cng, CDROM,...
Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 51

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

2.5 H thng file


code ca 1 chng trnh, chui byte miu t d liu c lu tr trn
thit b cha tin trong 1 phn t cha tin lun l c gi l file.
1 thit b cha tin thng cha rt nhiu file. nhn dng v truy
xut 1 file, ta dng tn nhn dng gn cho mi file. d dng file,
tn nhn dng ca n s dng tn gi nh (chui k t miu t ng
ngha ca ni dung file), th d nh file "lun n tt nghip.doc" cha
ton b ni dung lun n tt nghip ca ngi dng my.
Nu ta dng khng gian phng t tn cho cc file trn 1 thit b
cha tin th v s lng file qu ln nn ta kh lng t tn, nhn
dng, x l,... (ni chung l qun l) tng file.
gii quyt vn trn ta dng khng gian cy th bc t chc
v qun l cc file trn tng thit b cha tin.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 52

26

Thit b cha tin : Khng gian cy th bc


to khng gian cy th bc, ta dng khi nim th mc (directory).
th mc l phn t cha nhiu phn t bn trong n : c th l file hay
th mc. Thng ta s dng th mc cha nhng phn t con c
mi quan h mt thit no , th d nh th mc cha cc nh k
nim, th mc cha cc file nhc a thch,...
Thit b cha tin vt l (a mm, a cng, CDROM,...) c tru
tng ha nh l 1 th mc (ta gi th mc c bit ny l th mc
gc). Th mc gc cha nhiu phn t con bn trong, mi phn t
con ca th mc gc thng l th mc con nhng cng c th l file.
Mi th mc con li c th cha nhiu th mc con hay file... v c
th ta s hnh thnh 1 cy th bc cc th mc v file.
Ta cng dng tn gi nh nhn dng tng th mc. Trong khng
gian cy th bc, ta s dng khi nim ng dn (pathname)
nhn dng 1 file hay 1 th mc.
Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 53

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Th d v h thng file
\

Cy th bc ca c:

config.sys

System

Windows

win.com

arial.ttf

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

AudioFile

...

USAFilm

Fonts

...

VideoFile

ChinaFilm

VNFilm

Dng i.mpg

...

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 54

27

ng dn tuyt i v tng i
ng dn (pathname) l thng tin tm kim (xc nh) 1 phn t
t 1 v tr no , n cha danh sch chnh xc cc tn gi nh ca
cc phn t m ta phi i qua xut pht t v tr u n phn t
cn tm.
ta dng 1 du ngn c bit ngn cch 2 tn gi nh lin tip nhau
trong ng dn (trong Windows, du ngn l '\')
Tn th mc gc lun l '\'.
C 2 khi nim ng dn : ng dn tuyt i v ng dn tng
i. ng dn tuyt i l ng dn xut pht t th mc gc,
ng dn tng i xut pht t th mc lm vic (working
directory).
Trc khi ng dng bt u chy, h thng s khi ng th mc
lm vic cho ng dng (theo c ch no ). Trong qu trnh thc thi,
ng dng c quyn thay i th mc lm vic theo yu cu ring.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 55

ng dn tuyt i v tng i (tt)


Xt cy th bc ca c: trn slide 54, ng dn tuyt i sau s
nhn dng chnh xc file arial.ttf trong th mc 'Fonts' :
c:\Windows\Fonts\arial.ttf
Nu th mc working ca chng trnh hin l c:\Windows\Fonts th ta
c th dng ng dn tng i sau y xc nh file arial.ttf :
arial.ttf
ng dn tuyt i thng di hn ng dn tng i nhng n
lun c gi tr bt chp ng dng ang th mc working no.
ng dn tng i thng gn hn (a s ch cha tn file cn truy
xut v ng dng s thit lp th mc working l th mc cha cc file
m ng dng truy xut) nhng ch c gi tr vi 1 th mc working c
th.
Trong 1 vi trng hp c bit, ta phi dng ng dn tng i
ngay c n di v phc tp hn ng dn tuyt i.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 56

28

2.6 Qun l h thng file


Hnh dng v cu trc ca 1 h thng file ca 1 thit b cha tin s do
ngi dng thit lp nh cc tc v ph bin nh : to/xa th mc,
to/xa file, copy/move file/th mc t ni ny n ni khc.
Nhng trc khi thc hin 1 tc v no , ngi dng thng duyt file
: lm hin th cu trc ca h thng file 1 dng no quan st n
d dng.
H thng dng nhiu c ch khc nhau bo v vic truy xut file bi
ngi dng. 1 trong cc c ch m Windows XP dng l kt hp vi
mi file 1 s thuc tnh truy xut, mi thuc tnh c lu tr trong 1 bit :
Read Only, nu = 1 th h thng khng cho cc ng dng
xa/hiu chnh phn t.
Hidden, nu = 1 th h thng s du khng hin th phn t bi
cc ng dng duyt file.
Archive c thit lp =1 nu phn t b hiu chnh ni dung
(phc v cho c ch backup tng dn).
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 57

Tin ch qun l h thng file

Tt c tc v lin quan n h thng file c gi l tc v qun l h


thng file.
h thng s cung cp 1 ng dng (tin ch) ngi dng d dng
thc hin cc tc v qun l file. Th d trn Windows ta thng dng
tin ch "Windows Explorer" qun l h thng file.
C 4 cch ph bin chy 1 ng dng (tin ch) :
1. double-click vo icon miu t ng dng trn mn hnh desktop
(phi to icon shortcut chng trnh trc khi dng cch chy ny).
2. duyt v chn ng dng t menu Start.Programs...
3. chy
trnh
Windows
Explorer
(t
menu
Start.Programs.Accessories.Windows Explorer), duyt th mc tm
file ng dng, n kp chut vo file chy n.
4. vo menu Start.Run, ri nhp hng lnh cha ng dn xc nh
file chng trnh v cc tham s hng lnh.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 58

29

Ca s ca WE & cc phn t giao din chnh


MenuBar cha tt c
tc v m ng dng
h tr
Toolbar cha cc
icon tc v thng
dng
TreeCtrl hin th h
thng file dng cy
ListCtrl hin th cc
phn t trong th mc
StatusBar
Taskbar
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 59

Cc thao tc duyt h thng file


Click vo - thu
nh ni dung th mc
Click vo + chi
tit ha ni dung th
mc.
Nhng tt nht l
double-click vo tn
th mc chi tit
ha/thu nh ni dung
Click vo tn th mc
hin th ni dung
chi tit ca n
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 60

30

Cc tc v x l file
Qui trnh chung thc hin tc
v trn 1 hay nhiu phn t no
l :
1. chn 1 hay nhiu phn t
cn x l.
2. chn option trong menu hay
icon trong toolbar thc hin
tc v mong mun.
Chn nhiu phn t lin tip :
1. chick vo phn t u,
2. n v gi phm Shift,
3. click vo phn t cui.
4. th phm Shift.
Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 61

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Cc tc v x l file
Chn nhiu phn t ri rc :
1. chick vo phn t u,
2. n v gi phm Ctrl,
3. di mouse n tng phn t
cn chn ri click vo n.
4. lp li bc 3 nhiu ln cho
nhiu phn t
5. th phm Ctrl.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 62

31

To th mc/file mi
Thng vic to file mi c
thc hin bn trong ng
dng. Qui trnh to mi 1
th mc/file trong WE
nh sau :
1. duyt cy th mc
trong ca s bn tri
v chn th mc m
bn mun to th
mc/file mi.
2. chn menu File.New
3. nu mun to th
mc, chn Folder.
4. nu mun to file,
chn loi file trong
danh sch.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 63

Xa th mc/file ang tn ti
Qui trnh xa 1 th mc/file
trong WE nh sau :
1. duyt cy th mc
trong ca s bn tri v
chn th mc m
bn mun xa th
mc/file.
2. chn cc phn t cn
xa trong ListCtrl bn
phi.
3. chn menu File hay n
phi chut vo v tr
chn cc phn t
hin th menu cc tc
v c th thc hin.
4. chn option "Delete"
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 64

32

Copy th mc/file vo clipboard


Qui trnh copy th mc/file
trong WE nh sau :
1. duyt cy th mc
trong ca s bn tri v
chn th mc m
bn mun copy th
mc/file.
2. chn cc phn t cn
copy trong ListCtrl bn
phi.
3. chn menu Edit hay n
phi chut vo v tr
chn cc phn t
hin th menu cc tc
v c th thc hin.
4. chn option "Copy"
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 65

Dn th mc/file t clipboard
Qui trnh dn th mc/file t
clipboard vo th mc
cha nh sau :
1. duyt cy th mc
trong ca s bn tri v
chn th mc m
bn mun dn th
mc/file.
2. chn menu Edit
hin th menu cc tc
v c th thc hin.
3. chn option "Paste"

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 66

33

Di chuyn (move) th mc/file


Vic di chuyn th mc/file c
thc hin bi 3 tc v
copy/paste/delete nh c
trnh by. Qui trnh move th
mc/file khc nh sau :
1. duyt cy th mc trong ca
s bn tri v chn th mc
m bn mun copy
th mc/file.
2. chn cc phn t cn copy
trong ListCtrl bn phi.
3. chn menu Edit hin th
menu cc tc v c th thc
hin.
4. chn option "Move to
Folder" v xc nh th mc
ch.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 67

Load file vo b nh hiu chnh


Qui trnh chy ng dng v
load file vo b nh
hiu chnh ni dung file
nh sau :
1. duyt cy th mc trong
ca s bn tri v chn
th mc cha file cn
hiu chnh.
2. chn file cn hiu chnh
trong ListCtrl bn phi.
3. n phi chut vo file
chn hin th menu
cc tc v c th thc
hin.
4. chn option "Open with"
v xc nh ng dng
c dng hiu
chnh file.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 68

34

Hin th ca s thng tin v file/th mc


Qui trnh lm hin th ca s
thng tin th mc/file nh sau :
1. duyt cy th mc trong
ca s bn tri v chn
th mc/file cn hin th
thng tin.
2. chn th mc/file cn
hin th thng tin trong
ListCtrl bn phi.
3. n phi chut vo file
chn hin th menu
cc tc v c th thc
hin.
4. chn option "Properties"
lm hin th ca s
thng tin ca th mc/file
tng ng.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 69

Xem v hiu chnh thuc tnh file/th mc


Khi ca s thng tin ca th
mc/file c hin th,
chn trang
general/Version thy
cc thng tin tng ng.
Trang bn phi l trang
General.
1. xem cc thuc tnh file.
2. nu mun thay i
thuc tnh no , n
chut vo checkbox
tng ng. Thuc tnh
s chuyn t khng
thnh c hay ngc li.
3. nu mun cp nht cc
hiu chnh th n chut
vo button OK.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 2 : Th hin d liu trong my tnh s
Slide 70

35

MN TIN HC
Chng 3

TNG QUT V LP TRNH


BNG VISUAL BASIC
3.1 Cc khi nim c bn v m hnh hng i tng
3.2 Cc i tng giao din ca VB 6.0
3.3 Hiu chnh thuc tnh ca cc i tng giao din
3.4 To th tc x l s kin ca cc i tng giao din.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 71

3.1 Cc khi nim c bn v m hnh hng i tng


Hnh v sau y tng kt cu trc ca 1 ng dng c lp trnh cu
trc :
Chng trnh = cu trc d liu + gii thut
module
(package)
entry 'start'

global data
local data
of module

local data
of function
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 72

36

T lp trnh cu trc n OOP


Xt cu trc chng trnh c in ca slide trc, ta thy c 2 nhc im
chnh sau :
1. rt kh m bo tnh nht qun v ng n ca d liu ton cc v
bt k lnh no trong hm no cng c th truy xut chng.
2. nu chng trnh cn ng thi nhiu 'instance' ca cng 1 module
th c ch lp trnh cu trc khng cho php to t ng cc
'instance' ny.
khc phc 2 nhc im chnh trn (v b sung nhiu u im khc),
ta s lp trnh theo hng i tng (OOP - Object Oriented
Programming) trong chng trnh l 1 tp cc i tng sng tng tc
nhau (xem slide k tip).
Visual Basic l ngn ng h tr vic lp trnh theo hng i tng, hn
na VB cn l mi trng lp trnh trc quan (visual) nn rt d dng.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 73

Cu trc ca 1 ng dng OOP


Chng trnh = tp cc i tng tng tc nhau
i tng
(object)
entry

local data
of object

local data
of operation

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 74

37

i tng (Object)
~ M hnh i tng quan nim chng trnh bao gm cc i tng sinh sng
v tng tc vi nhau.
~ i tng bao gm nhiu thnh phn, mi thnh phn thuc 1 trong 2 loi :
thuc tnh (attribute) : mang 1 gi tr nht nh ti tng thi im.
tc v (operation) : thc hin 1 cng vic no .

Implementation
(class)

Interface
(abstract type)

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 75

Kiu tru tng (Abstract type)

Abstract type (type) nh ngha interface s dng i tng. Ta


dng tn nhn dng t tn cho kiu v nhn dng n.
Interface l tp hp cc 'entry' m bn ngoi c th giao tip vi
i tng.
Ta dng signature nh ngha mi 'entry'. Signature gm :
tn tc v (operation, function)
danh sch tham s hnh thc, mi tham s c c t bi 3
thuc tnh : tn, type v chiu di chuyn (IN, OUT, INOUT).
c t chc nng ca tc v (thng dng ch thch).
Ta dng tn ca abstract type (ch khng phi class) c t
kiu cho bin, thuc tnh, tham s hnh thc.
User khng cn quan tm n class (hin thc c th) ca i
tng.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 76

38

Class (Implementation)
~ Ta dng tn nhn dng t tn cho class v nhn dng n.
Class nh ngha chi tit hin thc i tng :
nh ngha cc thuc tnh d liu, mi thuc tnh c c t bi
cc thng tin v n nh tn nhn dng, kiu d liu, tm vc truy
xut,... Kiu ca thuc tnh c th l type c in (s nguyn, thc,
k t, chui k t,...) hay 'abstract type', trong trng hp sau thuc
tnh s l tham kho n i tng khc. Trng thi ca i tng
l tp gi tr ti thi im tng ng ca tt c thuc tnh ca i
tng. Trong thi gian tn ti v hot ng, trng ti ca i tng
s thay i.
'coding' cc tc v (miu t gii thut chi tit v hot ng ca tc
v) v cc 'internal function'.
~ nh ngha cc tc v to (create) v xa (delete) i tng.
~ nh ngha cc tc v 'constructor' v 'destructor'.
~ User khng cn quan tm n class ca i tng.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 77

Tnh bao ng (encapsulation)


~ Bao ng : che du mi chi tit hin thc ca i tng, khng
cho bn ngoi thy v truy xut m bo tnh c lp cao
gia cc i tng, ngha l ph thuc (hay tnh ghp ni coupling gia cc i tng) rt thp, nh d bo tr, pht
trin ng dng :
che du cc thuc tnh d liu : nu cn cho php truy xut
1 thuc tnh no t bn ngoi, ta to 2 tc v get/set
tng ng gim st vic truy xut v che du chi tit
hin thc bn trong.
che du chi tit hin thc cc tc v.
che du cc 'internal function' v s hin thc ca chng.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 78

39

Tnh tha k (inheritance)


~ Vit 1 ng dng OOP l nh ngha cc type/class ca cc i
tng cu thnh ng dng.
~ Tnh tha k cho php gim nh cng sc nh ngha type/class :
ta c th nh ngha cc type/class khng phi t u m bng
cch k tha cc type/class c sn, ta ch nh ngha thm cc
chi tit mi m thi (thng kh t).
a tha k hay n tha k.
Mi quan h supertype/subtype v superclass/subclass.
c th 'override' s hin thc cc tc v ca class cha, kt
qu override ch c tc dng trn cc i tng ca class
con.
i tng ca class con c th ng vai tr ca i tng cha
nhng ngc li th khng ng.
Mn : Tin hc

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Chng 3 : Tng qut v lp trnh Visual Basic


Slide 79

Tnh bao gp (aggregation)


1 i tng c th cha nhiu i tng khc nh mi quan h
bao gp 1 cch qui gia cc i tng.
C 2 gc nhn v tnh bao gp : ng ngha v hin thc.
Gc nhn ng ngha

Gc nhn hin thc

O2

O2

O1

O4

O3 O5

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

O4

O1
O3

O5

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 80

40

Thng ip (Message)
~ Thng ip l 1 php gi tc v ca 1 i tng t 1 tham kho.
~ Thng ip bao gm 3 phn :
tham kho n i tng ch.
tn tc v mun gi.
danh sch tham s thc cn truyn theo (hay nhn v t) tc
v.
v d : aCircle.Draw (pWnd)
truy xut thuc tnh trong interface :
aCircle.Radius = 10 aCircle.SetRadius(10)
r = aCircle.Radius
r = aCircle.GetRadius()
~ Thng ip l phng tin giao tip (hay tng tc) duy nht gia
cc i tng.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 81

Hai thnh phn chnh ca 1 ng dng


Xem li slide 15 miu t qui trnh tng qut ca vic dng my tnh
gii quyt 1 vn ngoi i, ta thy 1 ng dng gm 2 phn
thnh phn chnh :
1. giao din ngi dng : l phng tin cho ngi dng tng
tc vi chng trnh nhp/xut d liu, iu khin/gim
st hot ng ca chng trnh. Trong OOP, giao din ngi
dng l tp cc i tng giao din nh form, mi form cha
nhiu i tng nh hn nh menu, toolbar, button, textedit,
listbox, treeview...
2. gii thut x l bn trong : c th hin bi cc method
ca cc i tng giao din v cc i tng bn trong ng
dng. Mi method l danh sch cc lnh thc thi (cu trc
iu khin) miu t gii thut m tc v tng ng thc
hin.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 82

41

Thit k trc quan cc i tng giao din


nh ngha cc i tng giao din bng cch vit code tng minh l 1
cng vic rt kh khn v tn nhiu cng sc, thi gian.
gim nh cng sc nh ngha cc i tng giao din, cc mi
trng lp trnh trc quan (visual) vit sn 1 s i tng giao din
thng dng v cung cp cng c ngi lp trnh thit k trc quan
giao din ca ng dng bng cch tch hp cc i tng giao din c
sn ny : ngi lp trnh ng vai tr ha s v/hiu chnh kch thc,
di chuyn v tr cc phn t giao din cn cho ng dng.
Ngoi ra mi trng trc quan cn cho php ngi lp trnh t to cc
i tng giao din mi (ActiveX Control) dng trong cc ng dng
c vit sau . Qui trnh vit ng dng theo c ch ny c gi l
vit ng dng bng cch lp ghp cc linh kin phn mm, n ging
nh vic lp my tnh t cc linh kin phn cng nh CPU, RAM, disk,
keyboard, monitor,... rt d dng v nhanh chng.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 83

3.2 Cc i tng giao din c trong VB


Control buttons
Window Form,
Dialogbox
Title bar
Textbox
Command Button

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 84

42

Cc i tng giao din c trong VB (tt)


Label
DriveListBox
Combobox
Textbox + ListBox

DirListBox
FileListBox ListBox
Image Picture
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 85

Cc i tng giao din c trong VB (tt)

Frame

OptionButton

Checkbox

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 86

43

Cc i tng giao din c trong VB (tt)


MenuBar
Toolbar
CommandButton
Pop-up Menu

1 window cha 1
document ca ng
dng
StatusBar
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 87

Cc tnh cht chung ca cc i tng giao din


i tng giao din c nhng tnh cht ging nh i tng bnh thng,
ngoi ra chng cn c 1 s c im ring.
i tng giao din cng c cu thnh t 2 loi thnh phn : thuc tnh
v tc v.
Mi i tng giao din cha kh nhiu thuc tnh lin quan n nhiu loi
trng thi khc nhau :
thuc tnh 'Name' : y l thuc tnh c bit, xc nh tn nhn dng
ca i tng, gi tr ca thuc tnh ny s tr thnh bin tham kho
n i tng, code ca ng dng s dng bin ny truy xut i
tng.
cc thuc tnh xc nh v tr v kch thc : Left, Top, Height, Width...
cc thuc tnh xc nh tnh cht hin th : Caption, Picture,
BackColor,...
cc thuc tnh xc nh hnh vi : Enable, ...
...
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 88

44

3.3 Hiu chnh thuc tnh ca cc i tng giao din


Khi to trc quan 1 i tng giao din, mi trng
gn gi tr ban u cho cc thuc tnh, thng
ta ch cn thay i 1 vi thuc tnh l p ng
c yu cu ring. C 2 cch hiu chnh gi
tr 1 thuc tnh :
1. trc quan thng qua ca s thuc tnh ca i
tng giao din.
2. lp trnh truy xut thuc tnh ca i tng
giao din.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 89

3.4 S kin - Th tc x l s kin


Mi i tng giao din c
kh nhiu tc v (operation),
hu ht chng c gi l
th tc x l s kin v c
ch gi th tc ny ch yu
l trc tip t ngi dng ng
dng thng qua s tng tc
trc tip vi i tng, t
to s kin kch khi th tc
x l tng ng chy.
Th d khi ta n chut vo
button tn "Command1", h
thng to ra s kin "Click"
kch khi th tc
Command1_Click() chy.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 90

45

Cch to hm x l s kin ca i tng


Qui trnh tng qut ca vic to
th tc x l cho 1 s kin
no ca 1 i tng :
1. chn menu View.Code
hin th ca s code.
2. chn tn i tng lin
quan trong danh sch cc
i tng.
3. chn s kin cn to th
tc x l trong danh sch
cc s kin, template ca
th tc x l s c to t
ng.
4. s dng kin thc v gii
thut & c php ngn ng
VB vit code cho th
tc x l.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 91

Tng kt qui trnh vit 1 ng dng bng VB


1. Trc ht phi nm bt yu cu phn mm xc nh cc chc
nng m ng dng phi cung cp cho ngi dng.
2. Phn tch s lc tng chc nng v tm ra cc class phn tch cu
thnh chc nng tng ng.
3. Thit k chi tit cc class phn tch : xc nh cc thuc tnh v cc
tc v cng nh phc ha gii thut ca tng tc v.
4. Hin thc phn mm bng VB gm 2 cng vic chnh :
1. thit k trc quan cc form giao din ngi dng : mi form
cha nhiu phn t giao din, cc phn t giao din thng c
sn, nu khng ta phi to thm 1 s i tng giao din mi
(ActiveX Control). ng vi mi phn t giao din va to ra, nn
thit lp gi tr u cho thuc tnh "Name" v 1 vi thuc tnh cn
thit.
2. to th tc x l s kin cho cc s kin cn thit trn cc phn
t giao din ri vit code cho tng th tc x l s kin va to ra.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 3 : Tng qut v lp trnh Visual Basic
Slide 92

46

MN TIN HC
Chng 4

QUI TRNH THIT K TRC QUAN


GIAO DIN CA NG DNG
4.1 D n V ng Dng
4.2 To/xa i tng giao din.
4.3 Hiu chnh gi tr thuc tnh ca i tng giao din
4.4 To menubar
4.5 To Toolbar
4.6 To v vit th tc x l s kin
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 93

4.1 D n V ng Dng
1 ng dng VB c cu thnh t nhiu i tng thuc nhiu loi :

Cc phn t giao din

Cc "class module", mi class c t 1 loi i tng cn dng cho


gii thut ca chng trnh.

Cc i tng khc nh cc th vin lin kt ng, cc database,...

qun l ng dng c d dng ta s dng phng tin "D n"


(Project). D n l 1 cy th bc cc phn t cu thnh ng dng. Vit
ng dng l qui trnh to d n, thm/bt, hiu chnh tng phn t trong
d n.
Thao tc thc hin cc tc v trn kh ging vi cc thao tc m ta
bit trn h thng file th bc ca my tnh.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 94

47

Khi ng VB 6.0
VB l 1 ng dng nh bao ng dng khc. khi ng 1 ng dng,
ta c nhiu cch khau nhau :

chn
menu
Start.Programs.Microsoft
Visual
Basic
6.0.Microsoft Visual Basic 6.0.

n kp chut vo icon shortcut ca VB trn mn hnh desktop


(ta phi to trc icon shortcut ny).

chn menu Start.Run, ri nhp hng lnh chy ng dng, th d


nh "c:\Program Files\Microsoft Visual Studio\VB98\VB6.exe".

dng trnh qun l h thng file WE, duyt n th mc cha


file chng trnh VB (th d c:\Program Files\Microsoft Visual
Studio\VB98), n kp vo file chng trnh VB6.exe.
Sau khi VB c khi ng, ta thng thy ca s mn hnh nh
sau:
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 95

Ca s khi ng VB

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 96

48

To mi d n
Ca s New Project ca VB c ba th (Tab) :

New : to mi mt d n (tab ny c chn default)

Existing : M 1 d n c sn trn my (d n c no ).

Recent : M 1 d n trong n d n gn hin ti nht.


Vi tab New c chn, bn c th to 1 d n theo 1 loi no ,
nhng i vi cc ng dng thng thng ta s dng loi d n
"Standard EXE". n kp vo icon "Standard EXE" to mi d n
tng ng. 1 form mi c to ra t ng bn c th thit k trc
quan form giao din ny.
Qui trnh thit k giao din l tun t thit k tng form theo yu cu,
nu mun to mi 1 form khc (hay 1 i tng no vo d n),
bn n kp chut vo ca s Project, di chut n menu "Add", ri
chn mc "Form" trong danh sch.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 97

Th d v form thit k : MiniCalculator


Control buttons
Window Form,
Dialogbox
Title bar
Menu
Toolbar
Textbox
Command Button

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 98

49

4.2 To 1 i tng giao din trn form

hin th v lm vic trc quan vi 1 form, n kp chut vo mc


tn form trong ca s Project.

to mi 1 i tng giao din trong form, dng chut chn icon


tng ng vi i tng trong ca s Toolbox ri v i tng v tr
v kch thc mong mun trn form.

Bn cng c th to mi i tng giao din dng c ch sinh sn v


tnh : chn i tng c, n button Copy trn Toolbar ri n button
Past trn Toolbar, i tng mi sinh ra ging y nh i tng c sn
(nn t li tn khc bng cch chn button "No" trong hp thoi yu
cu sau khi n icon Past). y l 1 trong nhiu cch to nhiu i
tng c kch thc ging ht nhau.

Th d slide sau miu t trng thi ca form sau khi ta v c 1 textbox


hin th s v 5 button bn tri nht ca my tnh.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 99

4.3 Thit lp gi tr cho cc thuc tnh

d cn chnh v tr
v kch thc ca cc
i tng, ta nn thit
lp cc thuc tnh c
bn sau : "Name",
"Caption". Thuc tnh
"Name" c dng
truy xut i tng lc
lp trnh, cn thuc
tnh "Caption" c
hin th trn phn t
(khng phi i tng
no cng c Caption).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 100

50

Thit lp gi tr cho cc thuc tnh (tt)

xem v hiu chnh


gi tr ca cc thuc
tnh ca 1 i tng
giao din, bn n
chut chn i tng,
ca s Properties bn
phi mn hnh s
hin th cc thuc tnh
ca i tng c
chn. Bn duyt cc
thuc tnh t trn
xung v nhp vo
gi tr mi cho thuc
tnh mong mun.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 101

Cn chnh kch thc cc i tng


Nu v bng tay tun t cc i tng th kh lng m bo kch thc ca chng
bng nhau, do bn nn dng c ch sinh sn v tnh (Copy-Paste). Tuy nhin
nu l to bng tay cc i tng ri th lm kch thc nhiu i tng ging y
nhau, bn chn cc i tng ri chn menu Format.Make Same Size.Both (bng
kch thc ca i tng c chn cui cng).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 102

51

ng chnh v tr cc i tng
Tng t, nu v bng tay tun t cc i tng th kh lng m bo khong
cch gia chng u nhau. khong cch dc gia cc i tng u nhau, bn
chn cc i tng ri chn menu Format.Vertical Spacing.Make Equal (c nh v
tr 2 i tng xa nht theo chiu dc ri chnh dc cc i tng cn li).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 103

Kt qu tm thi ca form MiniCalculator


Vi qui trnh to i
tng, thit lp cc
thuc tnh cn thit v
chnh dng cc i
tng giao din nh
c trnh by, bn
tip tc to cc i
tng cn li ca form
MiniCalculator. Kt qu
nh sau :

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 104

52

Danh sch thuc tnh cc i tng


Danh sch gi tr cc thuc tnh c thit lp cho cc i tng (s c tham
kho bi code chng trnh c vit 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 Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 105

4.4 Thit k menu bar cho form giao din


Gi s form MiniCalculator cn c 1 h thng menu nh sau :

to menu bar cho 1 form no


, ta hin th ca s cha form
(n kp mc tn form trong
ca s Project cha cy th bc
cc phn t) ri chn menu
Tools.Menu Bar... Ca s trong
slide sau s hin ln :
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 106

53

Dng Menu Editor thit k menu bar


VB lun to sn 1 mc mi trng
hng cui ca danh sch. Thm 1
phn t mi l chn mc mi ny v
nhp t nht 2 thuc tnh Caption v
Name ca n.
Button Next cho php di mc chn
xung 1 hng.
Button Insert cho php chn 1 mc
trng vo trc mc c chn hin
hnh.
Button Delete cho php xa mc
c chn.
Cc button , cho php di mc
c chn i ln hay xung 1 v tr.
Cc button , cho php di mc
c chn v thm hay ra bt 1 cp
trong h thng cy phn cp menu.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 107

Dng Menu Editor thit k menu bar (tt)


Da vo c t menu bar ca slide trc y, nhp ln lt cc mc sau :
Caption = File, Name = mnuFile
Caption = Copy, Name = mnuFileCopy, n button v thm 1 cp
Caption = Paste, Name = mnuFilePaste
Caption = View, Name = mnuView, n button ra 1 cp
Caption = Standard, Name = mnuViewStand, n button v thm 1
cp
Caption = Scientific, Name = mnuViewScien
Caption = -, Name = mnuViewBar
Caption = Digital grouping, Name = mnuViewDigital
Caption = Help, Name = mnuHelp, n button ra 1 cp
Caption = Help Topics, Name = mnuHelpTopics, n button v thm 1
cp
Caption = -, Name = mnuHelpBar
Caption = About MiniCalculator, Name = mnuHelpAbout.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 108

54

Dng Menu Editor thit k menu bar (tt)


Sau khi c t xong menu, ca
s menu editor c dng nh
sau. Lu lc ny bn vn
cha thy menu 1 cch trc
quan :

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 109

Kt qu ca hot ng thit k menubar


Sau khi to menu xong,
hy n nt OK ng
tin ch "Menu Editor",
form giao din ca
chng trnh s ging
nh hnh bn :

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 110

55

4.5 Thit k Toolbar cho form giao din


to Toolbar cho 1 form trong project, trc ht ta phi thm tp cc iu
khin "Window Common Controls 6.0" vo ca s Toolbox ca project :
1. n phi chut vo v tr
trng ca Toolbox, chn
mc Components

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

2. chn tab Controls, duyt v chn mc tng ng, chn OK.


3. cc
icon
mi
c
thm
vo
Toolbox

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 111

Qui trnh to Toolbar ca form


Toolbar l 1 ca s cha nhiu button (icon), mi button cho php
thc hin 1 chc nng ca ng dng. Cc button c kch thc
u nhau, nn kt hp 1 nh bitmap vi tng button, ni dung nh
lm sao gi cho ngi dng v chc nng tng ng (th d nh
dng ci ko gi chc nng Cut,...).
1. Cng vic u tin cn thc hin l dng 1 trnh son tho ha
(Paint, CorelDraw,...) thit k (v) tng nh bitmap gi cho
tng button trong Toolbar. Bn c th dng trnh "Screen Capture"
ct cc icon c sn ca ng dng ang chy v dn vo vng
son tho nh ca trnh son tho ha. Sau khi son xong 1
nh, ta ct nh ln file dng *.bmp. Lu rng cc nh phi c
cng kch thc (th d 16*16, 20*20,32*32,...). Slide k miu t
ca s ca trnh son tho ha Paint.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 112

56

V nh cho button bng trnh Paint

son tho 1 button l v tng pixel nh.


d v, bn nn phng to nh ln
khong 400% tr ln.
trc khi v 1 pixel, hy chn mu v
thch hp.
sau khi v xong, dng menu File.Save
As ct nh ln file thch hp :
copy.bmp
paste.bmp
standard.bmp
scientific.bmp
help.bmp
about.bmp
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 113

Qui trnh to Toolbar ca form (tt)


2. Dng qui trnh to phn t giao
din trong form nh gii
thiu to 1 i tng
ImageList, i tng ny s
cha cc nh bitmap c
dng cho cc icon Toolbar, v
tr v kch thc ca i tng
ImageList khng quan trng v
n s b n khi chng trnh
chy.
2.1 n phi chut vo i tng
ImageList ri chn mc
Properties hin th ca s
"Properties Page" ca i
tng ImageList.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 114

57

Qui trnh to Toolbar ca form (tt)


2.2 chn tab General, chn checkbox Custom ri nhp kch thc ca
button Toolbar vo 2 field Height v Width.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 115

Qui trnh to Toolbar ca form (tt)


2.3 chn tab Images ri thm tng nh button vo ImageList bng trnh
t : n Insert Picture, duyt v chn file image, nhp gi tr cho field
Key. truy xut nh button, ta dng hoc thuc tnh Index hoc
thuc tnh Key (tn gi nh).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 116

58

Qui trnh to Toolbar ca form (tt)


2.4 sau 6 ln insert
icon
vo
ImageList, ta c
kt qu nh hnh
bn. Bn c th
chn li tng icon
kim tra/hiu
chnh cc thuc
tnh ca n.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 117

Qui trnh to Toolbar ca form (tt)


3. To 1 i tng Toolbar, v tr v kch thc ca i tng ny khng
quan trng v n s lun c xp ngay di menubar.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 118

59

Qui trnh to Toolbar ca form (tt)


3.1 M ca s thuc tnh ca
Toolbar,
chn
tab
General, chn ImageList
kt hp vi Toolbar trong
listbox ImageList. Nu
mun hnh nh ca tng
icon khc nhau cho tng
trng thi (cha chn,
c chn, b cm), bn
phi to 2 ImageList khc
: HotImageList (trng thi
c
chn)
v
DisableImageList (trng
thi b cm).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 119

Qui trnh to Toolbar ca form (tt)


3.2 Chn tab Buttons, thm
tng button vo Toolbar
v thit lp thuc tnh ca
n bng trnh t cc hot
ng sau :
n Insert Button
thm button mi,
nhp gi tr thuc tnh
"Key",
nhp ch s "Images"
trong ImageList c
dng cho button,
nhp tr cho thuc tnh
"ToolTipText"...
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 120

60

Qui trnh to Toolbar ca form (tt)


3.3 sau khi thm 6 button vo Toolbar th Toolbar c dng sau :

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 121

Ghi ch v qui trnh to giao din

Thng th form giao din nh MiniCalculator khng cn cha


menubar v Toolbar. Giao din dng ny c gi l Dialog
based.
Cn 2 dng giao din ng dng ph bin khc l :
SDI (Single Document Interface) : ca s ca chng trnh gm
1 menubar, 1 hay nhiu Toolbar v 1 ca s lm vic duy nht.
Tng thi im, ca s lm vic ny s cho php hin th/hiu
chnh 1 document ca ng dng.
v MDI (Multiple Document Interface) : ca s ca chng trnh
gm 1 menubar, 1 hay nhiu Toolbar v n ca s lm vic khc
nhau, mi ca s lm vic s cho php hin th/hiu chnh 1
document ca ng dng.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 122

61

Giao din SDI (Single Document Interface)


Menubar
Toolbar

Working
region
(ti tng
thi im
ch c 1
x l 1
document
ca ng
dng)
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 123

Giao din MDI (Multiple Document Interface)


Menubar
Toolbar

Working
region
(ti tng
thi im
c th m
n ca s
x l n
document
khc
nhau)

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 124

62

Ghi ch v qui trnh to giao din (tt)

to giao din trc quan ca cc ng dng SDI v MDI c d


dng, VB cung cp cho ngi dng 1 dng Project tn l "VB
Application Wizard".
Chn dng Project ny khi to Project, VB s hng dn ngi
dng to ra cc phn t giao din rt d dng, trong 2 i
tng c bn l menubar v Toolbar c VB to t ng, ngi
lp trnh ch cn hiu chnh li theo yu cu ring.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 125

4.6 To th tc x l s kin cho cc i tng giao din

Sau khi thit k trc quan giao din ca ng dng theo yu cu, bn s to
cc th tc x l s kin cn thit cho tng i tng giao din.
to th tc x l cho 1 option trong menu, bn chn menu tng ng, di
chut v option cn to th tc ri chn n, template ca th tc s c to ra.
Cc chng ti s gii thiu c php VB bn c th vit code cho th tc.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 126

63

To th tc x l s kin cho cc i tng giao din (tt)

to th tc x l cho 1 button trong Toolbar, bn n kp chut vo button ,


template ca th tc s c to ra (lu ch c 1 th tc x l cho tt c cc
button trong 1 Toolbar, th tc ny s da vo thuc tnh Button.Key bit
button no c chn).
to th tc x l cho 1 command button, bn n kp chut vo command
button , template ca th tc s c to ra :

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 127

To th tc x l s kin cho cc i tng giao din (tt)

Cch tng qut to th tc x l s kin l m ca s code (View.Code),


chn tn i tng trong danh sch ri chn s kin cn x l, th tc x l
tng ng s c to ra :

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Slide 128

64

MN TIN HC
Chng 5

CC KIU D LIU TRONG VB


5.1 Bin d liu & nh ngha bin
5.2 Cc kiu d liu nh sn ca VB 6.0.
5.3 Vic dng & to class i tng
5.4 Cc tnh cht chnh yu ca bin d liu
5.5 Hng gi nh

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 129

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

5.1 Bin d liu

Mi ng dng thng x l nhiu d liu, ta dng khi nim "bin" lu


tr d liu trong b nh my tnh, mi bin lu tr 1 d liu ca chng
trnh.
Mc d VB khng i hi, nhng ta nn nh ngha r rng tng bin
trc khi truy xut n code ca chng trnh c trong sng, d
hiu, d bo tr v pht trin.
nh ngha 1 bin l :
nh ngha tn nhn dng cho bin,
kt hp kiu vi bin xc nh cu trc d liu ca bin,
nh ngha tm vc truy xut bin.
C php n gin ca lnh nh ngha bin :
[Static|Public|Private|Dim] AVariable As Type
ti tng thi im, bin cha 1 gi tr (ni dung) c th. Theo thi gian
ni dung ca bin s b thay i theo tnh cht x l ca code.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 130

65

nh ngha tn bin

Cch t tn cho 1 bin (hay cho bt k phn t trong chng trnh):


Tn bin c th di n 255 k t,
K t u tin phi l mt k t ch (letter),
Cc k t tip theo c th l cc k t ch (letter), k s (digit), du
gch di,
Tn bin khng c cha cc k t c bit nh cc k t : ^, &, ),
(,%, $, #, @, !, ~, +, -, *,
VB khng phn bit ch HOA hay ch thng trong tn bin.
V d: Tn bin hp l
Tn bin khng hp l
+ Base1_ball
+ Base.1 : v c du chm
+ ThisIsLongButOk
+ Base&1 : v c du &
+ 1Base_Ball : k t u l 1 s
Nn chn tn bin ngn gn nhng th hin r ngha. V d: Ta mun
c mt bin lu h s li sut ngn hng (Interest Rate), ta nn dng
tn bin l: InterestRate hoc Irate ch khng nn dng tn bin l IR
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 131

nh ngha tn bin (tt)

Vi v d trc, dng lnh sau y:


IterestRateEarned = Total*InterestRate
s d hiu hn dng lnh
IE = T*IR
Khi vit tn bin ta nn vit hoa ch u tin ca mt t c
ngha.
V d : InterestRate s d c hn interestrate hay
iNTERestRaTe
Khng c dng tn bin trng vi cc t kho nh : Print, Sub,
End (t kha l nhng t m ngn ng VB dng cho nhng
thnh phn xc nh ca ngn ng)

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 132

66

5.2 Cc kiu d liu c bn nh sn ca VB


Byte : 1 byte, 0 to 255
Boolean : 2 bytes, True or False
Integer : 2 bytes, -32,768 to 32,767
Long (long integer) : 4 bytes
-2,147,483,648 to 2,147,483,647
Single (single-precision floating-point) :4 bytes
-3.402823E38 to -1.401298E-45 ;1.401298E-45 to 3.402823E38
Double (double-precision floating-point) : 8 bytes
-1.79769313486231E308 to -4.94065645841247E-324;
4.94065645841247E-324 to 1.79769313486232E308
Currency (scaled integer) : 8 bytes
-922,337,203,685,477.5808 to 922,337,203,685,477.5807
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 133

Cc kiu d liu c bn nh sn ca VB (tt)


Decimal : 14 bytes
+/-79,228,162,514,264,337,593,543,950,335 (khng c du chm thp phn)
+/-7.9228162514264337593543950335 (c 28 k s bn phi du chm)
+/-0.0000000000000000000000000001 l s khc 0 nh nht.
Date : 8 bytes; t January 1, 100 ti December 31, 9999
Object : 4 bytes; cha tham kho n bt k i tng no
String (variable-length) : 10 bytes + di ca chui
0 ti 2G k t
String*n (fixed-length) : chui c di c nh
1 ti 65,400 k t
Variant (with numbers) : 16 bytes
Bt k s no nm trong phm vi kiu Double
Variant (with characters) : 22 bytes + di chui
cng di nh kiu String
User-defined (using Type) : kiu do ngi dng nh ngha (record)
gm nhiu field, mi field c kiu ring theo yu cu.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 134

67

Cc kiu d liu c bn nh sn ca VB (tt)


Array : dy nhiu phn t c cu trc d liu ng nht, mi phn t c truy
xut c lp nh ch s ca n trong dy.
V d : Dim vector(10) As Integer
nh ngha bin vector l 1 dy gm 10 phn t nguyn, vector(i) l tn nhn
dng ca phn t th i ca dy ny.
Ngoi cc kiu d liu nh sn, VB cn cung cp cho ngi lp trnh 1 phng
tin h c th nh ngha bt k kiu d liu cha cung cp sn nhng li cn
thit cho ng dng ca h, ta gi cc kiu ny l kiu do ngi dng nh
ngha. Th d sau y l pht biu nh ngha kiu miu t cc thng tin chnh v
my tnh c nhn :
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 Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 135

c tnh chi tit v kiu String


Kiu String (chui k t) :
String l kiu d liu c dng lu tr chui cc k t ( di bt
k)
Gi tr chui k t c t trong cp du nhy kp (vd : "Mn Tin hc")
Trn l thuyt, mt bin thuc kiu String c th lu tr c n 2 t
k t nhng trong thc t, di ca chui b hn ch theo dung lng
b nh ca my tnh.
C th thc hin c cc php ton ni kt chui (+,&) trn cc chui
k t v c kh nhiu hm x l chui c sn.
C th nh ngha mt bin thuc kiu String nh sau :
Hay

Dim AStringVariable As String


Dim AStringVariable As String*100
Dim AStringVariable$

Tip v ng $ i sau tn bin dng khai bo mt bin thuc kiu


String (nhng ta khng nn dng cch ny v ti ngha, kh bo tr).
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 136

68

c tnh chi tit v kiu Integer


Kiu Integer (S nguyn) :
Integer l kiu d liu c dng lu tr cc s nguyn ngn nm
trong khong t - 32768 n 32767.
S nguyn c lu tr trong b nh bng 2 byte.
C th thc hin c cc php ton s hc (nh +,-,*,/,...) trn cc
d liu thuc kiu Integer.
Khai bo mt bin thuc kiu Integer nh sau :
Dim AnIntegerVariable As Integer
Hay
Dim AnIntegerVariable%
Tip v ng % i sau tn bin c dng khai bo mt bin thuc
kiu Integer.
Vd:
Dim Age As Integer
...
Age = 24

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 137

c tnh chi tit v kiu Long


Kiu Long (S nguyn di) :
Dng lu tr cc s nguyn ln nm trong khong t :
-2,147,483,648 n 2,147,483,647
S nguyn di c lu tr trong b nh bng 4 byte.
C th thc hin c cc php ton s hc (nh +,-,*,/,...) trn cc
d liu thuc kiu Long.
Khai bo mt bin thuc kiu Long nh sau :
Dim ALongIntegerVariable As Long
Hay
Dim AnIntegerVariable&
Tip v ng & i sau tn bin c dng khai bo mt bin thuc
kiu Long.
Vd:
Dim EarthAge As Long
...
EarthAge = 3276979

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 138

69

c tnh chi tit v kiu Byte


Kiu Byte (S nguyn dng nh) :
Dng lu tr cc s nguyn khng m nm trong tm tr t :
0 n 255
Chim 1 byte trong b nh.
C th thc hin c cc php ton s hc (nh +,-,*,/,...) trn
cc d liu thuc kiu Byte.
Kiu d liu ny rt hiu dng trong vic lu tr cc s nguyn
nh v n chim t b nh, tc x l nhanh.
V d: Khi cn lu tui ca mt ngi chng ta khng nn dng
kiu Integer hay Long m nn dng kiu Byte v tui ca mt
ngi lun l mt s khng m, c gi tr ti a thng nh hn
120.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 139

c tnh chi tit v kiu Boolean


Kiu Byte (tt) :
Khai bo cho mt bin thuc kiu Byte nh sau :
Dim AByteVariable As Byte 'khng c tip v ng
V d:
Dim Age As Byte
...
Age = 100
Kiu Boolean (gi tr lun l) :
L kiu d liu lu tr hai gi tr lun l True/False.
c lu tr trong my tnh bng 2 byte.
Khai bo
Dim ABooleanVariable As Boolean
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 140

70

c tnh chi tit v kiu Single


Kiu Single (s thc c chnh xc n - Single Precision) :
Lu tr cc s thc c chnh xc n (gn ng vi gi tr gc vi chnh
xc mc 7 ch s)
V d s 1234.567 th k s 7 (bn phi nht) c th khng chnh xc.
Kiu d liu ny chim 4 byte trong b nh v miu t cc gi tr trong phm vi :
T -3.402823E38 n -1.401298E-45 cho cc gi tr m
v t 1.401298E-45 n 3.402823E38 cho cc gi tr dng
C th thc hin cc php ton s hc trn kiu d liu ny nhng thng chm
hn so vI cc bin thuc kiu Integer hay Long. Do cch cha s Single ch
mc gn ng nn cc php ton trn cc d liu thuc kiu ny s to kt qu
gn ng (nhng dng trong i a s yu cu thc t).
Khai bo nh sau :
Dim ASingleVariable As Single
Hay
Dim ASingleVariable! 'Tip v ng l du !
V d:
Dim InterestRate As Single, Earned!, Total As Single
Earned = InterestRate * Total
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 141

c tnh chi tit v kiu Double


Kiu Double (s thc c chnh xc kp - Double Precision) :
Lu tr cc s thc c chnh xc kp (gn ng vi gi tr gc vi chnh
xc mc 16 ch s).
V d s 1234.57890123456 th k s bn phi nht (6) c th khng chnh xc.
Kiu d liu ny chim 8 byte trong b nh v miu t cc gi tr trong phm vi :
-1.797693234862232E308 n -4.94065645841247E-324
v 4.94065645841247E-324 n 1.797693234862232E308
C th thc hin cc php ton s hc trn kiu d liu ny nhng rt chm
(chm hn c kiu Single). Do cch cha s Double ch mc gn ng nn
cc php ton trn cc d liu thuc kiu ny s to kt qu gn ng (nhng
qu dng trong i a s yu cu thc t).
Khai bo nh sau :
Dim ADoubleVariable As Double
Hay
Dim ADoubleVariable# Tip v ng l du #
V d:
Dim InterestRate As Double, Earned#, Total As Double
Earned = InterestRate * Total
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 142

71

c tnh chi tit v kiu Currency


Kiu Currency (Tin T)
Kiu Currency c dng lu cc d liu thuc kiu tin t (s lng
tin).
c lu tr trong b nh bng 8 byte.
C th c 4 ch s bn phi du chm thp phn v 15 ch s bn
tri du thp phn.
C tm tr: - 922337203685477.5808 n 922337203685477.5807
C th thc hin c cc php ton s hc trn kiu d liu ny nhng
tc x l rt chm nh i vi cc s thc c chnh xc kp, song
n l kiu d liu a dng cho cc php tnh ti chnh.
Khai bo: Dim ACurrencyVariable As Currency
Hay
Dim ACurrencyVariable@ 'Tip v ng l du @

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 143

c tnh chi tit v kiu Date


Kiu Date (Ngy thng)
Dng lu tr cc d liu thuc kiu ngy gi cho bt k thi im no t
0h00 ngy 01/01/100 n 0h00 ngy 31/12/9999.
Kiu Date c lu tr trong my tnh bng 8 bytes.
D liu thuc kiu Date phi c bao bi cp du # hai u.
V d: Millenium = #January 1, 2000#
Millenium = #Jan 1, 2000#
Millenium = #1/1/ 2000#
Nu ta cha gn tr cho bin thuc kiu Date th VB mc nhn l lc 0:0:0
cng ngy.
C th dng dng thc AM/PM hay dng 24 gi biu din cho gi tr gi
V d: PreMillenium = #December 31, 1999 11:59:59PM#
hay
PreMillenium = #December 31, 1999 23:59:59#
Khai bo mt bin thuc kiu Date nh sau:
Dim ADateVariable As Date Khng c tip v ng
V d : Dim PreMillenium As Date
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 144

72

c tnh chi tit v kiu Variant


Kiu Variant (Kiu d liu bin i)
Kiu d liu ny c thit k lu mi d liu thuc kiu nh sn ca VB. V
d nh : Date, String, Double, Integer
Nu khng khai bo kiu r rng cho 1 bin th bin ny s c hiu l thuc
kiu ny.
VB s chuyn i d liu thuc kiu Variant thnh mt kiu d liu khc cho
ph hp (khi gn d liu,...).
V d : String Variant,Integer Variant,Date Variant
Tuy nhin vic chuyn i kiu nh trn s dn n nhiu li khng lng trc
c.
Dng kiu Variant thay cho mt kiu c th s lm chm tc x l ca
chng trnh do phi tn thI gian chuyn i v tn nhiu b nh hn.
Khai bo mt bin thuc kiu Variant nh sau :
Dim AVariantVariable As Variant
Hay Dim AVariantVariable 'Mc nhin thuc kiu Variant
V d: Dim x, y, z As Integer
'x,y l kiu Variant
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 145

5.3 Vic dng cc class i tng c sn


Nh chng ta trnh by trong chng 3, VB h tr vic lp trnh OOP 1 mc
nht nh :
o VB cung cp 1 s class i tng, ngi lp trnh c th dng chng bt
k project ng dng no, ta c th ni rng tn ca cc class nh sn ny
cng l kiu nh sn ca VB.
o VB cho php dng cc class i tng c ngi khc vit thng qua cng
ngh COM, ActiveX Control (s trnh by trong chng 12).

VB cho ngi lp
trnh nh ngha cc
class mi ngay trong
project phn mm
ca h nh khi
nim "class module"
(s c trnh by
chi tit trong chng
6).
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 146

73

Vic dng cc class i tng c sn (tt)

D dng no, mi class u c tn nhn dng, tn ny chnh l


tn kiu v c dng trong pht biu nh ngha bin i tng :
Dim pclipbd As Clipboard
...
Set pclipbd = New Clipboard
Lu rng bin thuc kiu class khng cha trc tip i tng,
n ch l tham kho (phng tin truy xut) n i tng. Do
trc khi dng bin i tng, nht thit phi to i tng (thng
thng qua hm New) nhn tham kho n i tng ri gn
tham kho ny vo bin nh th d trn.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 147

Qui trnh to 1 class mi dng trong project

n chut phi trong ca s Project, di chut ti mc "Add" ri chn mc "Class


Module" trong danh sch.
Khi ca s "Add class module" hin th, chn icon "Class module" ri n "Open"
to ra class mi.
thit lp tn class module cho
ph hp (trong ca s thuc
tnh), tn ny chnh l tn kiu
c dng trong pht biu nh
ngha bin i tng.
n kp chut vo mc tn class
mi to ra hin th ca s
code c t cho class .

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 148

74

Ca s c t class

nh ngha tng thuc tnh d liu v tng method ca class theo c php VB
(s c trnh by sau).
debug tng method ca class xem n hot ng ng chc nng mong mun
trc khi dng (s trnh by hot ng debug sau).
mi class c 2 method
c bit :
o Private Sub
Class_Initialize() :
miu t cc hnh
ng khi i tng
va c to ra.
o Private Sub
Class_Terminate() :
miu t cc hnh
ng khi i tng
sp sa b xa.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 149

5.4 t tn bin theo cch "k hiu Hungarian"


K hiu Hungarian
Mt s lp trnh vin thng thch b sung thm mt tip u ng vo
tn bin nu r kiu ca bin, nh tng d c cho chng
trnh.
V d:
sngInterestRate : Bin c chnh xc n (Single)
intCount: Bin thuc kiu Integer
strName: Bin thuc kiu String
Qui c trn gi l k hiu Hungarian (do Charles Simonge, mt lp
trnh vin gc Hungari ca Miscrosoft) xng. Lu rng bn vn
phi khai bo kiu cho cc bin trn v kiu phi tng thch vi tip
u ng dng vi tn bin.
Mt s kiu v tip u ng tng ng :
String
str
Integer int
Single sng
Currency cur
Boolean bln
Long
lng
Double dbl
Variant
vnt
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 150

75

Cc lu v bin

Trong mt ng cnh (trong 1 chng trnh con, trong 1 module, cp ton cc),
khng th dng hai bin cng tn (VB khng phn bit ch HOA hay ch
thng).
Tn bin l phn tn, khng k n tip v ng miu t kiu kt hp.
V d: Bin a% v bin a! l trng nhau, VB s a ra thng bo li: Duplicate
Definition
Sau khi nh ngha bin, VB s khi ng tr ban u cho bin . V d :
o Bin thuc kiu Variant c gi tr ngm nh l Empty (rng), gi tr Empty
s bin mt khi ta gn cho bin mt gi tr c th.
o Bin chui c gi tr ngm nh l chuI rng "" (hai du nhy lin nhau).
o Bin s c gi tr ngm nh l 0.
Khng nn tin vo tr ngm nh ca bin, phi gn gi tr cho bin trc khi
dng chng.
1 bin tng ng vi 1 vng nh, do khi gn mt gi tr cho bin, gi tr c
ca bin s b mt i.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 151

Tm vc truy xut bin

Tm vc ca mt bin l tp cc lnh c php truy xut bin .


Nh c miu t trong silde 7 (chng 1), VB cho php 3 cp tm vc sau :
o cc b trong th tc : bt k lnh no trong th tc u c th truy xut
c bin cc b trong th tc .
Private Sub Command1_Click()
Dim strGreeting As String 'Khai bo cc b
...
End Sub
o cc b trong module : bt k lnh no trong module u c th truy xut
c bin cc b trong module .
Private strAddr As String 'bin cc b trong module
Public strName As String 'bin ton cc
o ton cc : bt k lnh no trong chng trnh cng c th truy xut c
bin ton cc.
Trong mt ng cnh (cng 1 th tc, cng 1 module, hay cp ton cc), khng
th dng hai bin cng tn (VB khng phn bit ch HOA hay ch thng).
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 152

76

Thi gian sng ca bin

Bin l 1 thc th nn cng c thi gian sng hu hn, thi gian sng
ca bin thng ph thuc vo tm vc ca bin :
o bin cc b trong th tc : c to ra lc th tc c gi v mt
i khi th tc kt thc vic x l v iu khin c tr v lnh gi.
o bin cc b trong module : c to ra lc module c to ra v
mt i khi module b xa.
Cc (standard) modules c thi gian sng t lc chng trnh
chy cho n khi chng trnh kt thc.
Cc i tng ca class module hay form module c to ra khi
c yu cu c th. To i tng ngha l to cc thuc tnh ca
n, cc thuc tnh ca i tng s mt i khi i tng b xa.
o bin ton cc : c to ra lc chng trnh bt u chy v ch mt
i khi chng trnh kt thc.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 153

Thi gian sng ca bin (tt)

Mun ko di thi gian sng ca 1 bin, ta thng dng 2 cch sau :


o nng cp tm vc : t cc b trong th tc ln cc b trong module hay ln
ton cc... Cch ny t c dng tng minh v n s thay i tm vc ca
bin. khc phc iu ny, VB cung cp khi nim "Static" kt hp vi
bin : bin c thuc tnh "Static" s tn ti mi v ch mt i khi chng trnh
kt thc bt chp tm vc ca n ra sao.
Private Sub Command1_Click()
Dim strGreeting As String 'bin cc b
Static strAddr As String
'bin cc b c thi gian sng lu di theo ng dng.
...
End Sub
o ghi gi tr bin ra mi trng cha tin bn vng (file trn a) trc khi
bin b xa. Khi cn li gi tr ca bin ny, ta c gi tr ca n t file vo.
y l phng php thng dng trao i d liu gia 2 ng dng khc
nhau hay gia 2 ln chy khc nhau ca cng 1 ng dng.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 154

77

5.5 Hng gi nh

Nh ta bit, ta nh ngha bin lu tr d liu ca chng


trnh. Ngay sau khi c nh ngha, gi tr ban u ca bin
thng cha c xc nh tng minh, do ta phi thit lp
(gn) gi tr cho bin trc khi dng li tr ca bin.
C 3 cch khc nhau thit lp (gn) gi tr cho 1 bin :
t tng tc vi ngi dng, bin kt hp vi i tng giao din
tng ng s c gn gi tr m ngi dng nhp vo.
cc tham s c truyn khi gi th tc, khi hon thnh code trong
th tc s gn tr vo tham s.
nhng cch c bn v ph bin nht l dng pht biu gn vi c
php sau :
AVariable = AExpression
Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 155

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Hng gi nh

Biu thc n gin nht l 1 gi tr, gi tr ny c th c dng


nhiu ni trong chng trnh.
Hng gi nh (Constant) l khi nim cho php ngi lp trnh kt
hp 1 tn gi nh vi 1 gi tr khi cn dng gi tr , ta khng
vit li chi tit c th ca tr m ch dng tn gi nh.

C php ca pht biu nh ngha hng gi nh :

Const ConstName = Value


V d : Const PI = 3.1416

LI ch ca vic dng hng gi nh :

Chng trnh s trong sng, d c hn, dn n vic bo tr, nng


cp chng trnh c thun tin hn.
Tit kim c b nh so vi vic dng bin.
Rt ngn c cc cu lnh qu di
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 5 : Cc kiu d liu trong VB
Slide 156

78

MN TIN HC
Chng 6

CC LNH NH NGHA & KHAI BO VB


6.1 Tng qut v ngn ng VB
6.2 Ch thch trong chng trnh.
6.3 Lnh nh ngha hng gi nh
6.4 Lnh nh ngha bin
6.5 Lnh nh ngha kiu ngi dng
6.6 Lnh khai bo Declare
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 157

6.1 Tng qut v code ca 1 ng dng VB

Mt project VB thng qun l cc thnh phn cu thnh 1 ng dng VB.


Trong 1 project VB c 3 loi phn t c cha code (do ta cn bit c php
VB xy dng cc loi phn t ny) :
class module nh ngha s hin thc ca 1 lp i tng c cu trc v
hnh vi ging nhau.
form module l trng hp c bit ca class module, n miu t s hin
thc ca 1 lp i tng c bit : mt form giao din.
(standard) module l n v phn mm nh c 1 chc nng r rng no .
Theo trng phi lp trnh cu trc (c in), ta dng module chia ng
dng ra nhiu phn nh d qun l VB h tr c 2 phng php lp trnh
: c cu trc v OOP.
Ngoi 1 vi ngoi l nh, t chc code cho 3 loi module trn hon ton ging
nhau : l danh sch nhiu lnh VB phc v nh ngha kiu, hng, bin v
th tc trong module . Trong lnh nh ngha th tc, ta s dng cc lnh thc
thi miu t gii thut ca th tc.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 158

79

Tng qut v ngn ng VB

d tip cn ngn ng VB, ta hy nhn li ngn ng ting Vit. Ta ni ngn


ng ting Vit nh ngha 1 tp cc t c ngha c bn, cc qui tc ghp cc t
c bn ny li to thnh on cu (phrase), cu (sentence), on vn
(paragraph), bi vn (document) cng ng ngha ca cc phn t c to ra.
V ngn ng Vit l ngn ng t nhin nn thng cho php nhiu ngoi l trong
vic xy dng cc phn t.
Ngn ng lp trnh VB cng nh ngha 1 tp cc k t c bn (cha c ngha),
cc qui tc ghp cc k t to thnh cc t c ngha (identifier), biu thc
(expression), cu lnh (statement), th tc (Function, Sub, Property) cng ng
ngha ca cc phn t c to ra. V ngn ng VB l ngn ng lp trnh cho
my tnh thc hin nn s khng cho php 1 ngoi l no trong vic xy dng
cc phn t.
Nghin cu ngn ng lp trnh l hc nh r cc k t c bn ca ngn ng,
cc qui tc to danh hiu, biu thc, cc qui tc vit cc cu lnh... cng
ng ngha ca chng rt ging vi vic hc 1 ngn ng t nhin : Anh, Php,
Nht,...
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 159

Cc k hiu c bn ca ngn ng VB

V nguyn tc, VB cho php dng hu ht cc k t m bn c th nhp t bn


phm, trong cc k t ch v s c dng ch yu.
Qui tc cu to 1 danh hiu c trnh by Slide 113 (chng 5). 1 danh
hiu c th c dng t tn cho bin, hng gi nh, Function, Sub,
Property, form, class module, module,... v ng ngha ca tng danh hiu l do
s qui nh ca ngi lp trnh.
Qui tc xy dng 1 biu thc s c trnh by trong chng 7.
C nhiu loi cu lnh VB khc nhau, qui tc xy dng 1 cu lnh ph thuc
vo loi cu lnh c th ta phi nghin cu tng loi cu lnh v qui tc cu
thnh n, nhng may mn s lng loi cu lnh VB l khng nhiu (di 20
loi).
Cc cu lnh c chia lm 2 nhm chnh :
cc lnh nh ngha : xc nh 1 hnh ng no ti thi im dch.
v cc lnh thc thi : xc nh 1 hnh ng no ti thi im thc thi.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 160

80

6.2 Ch thch trong chng trnh


Cc lnh nh ngha v cc lnh thc thi m ta va trnh by l my x l,
chng tun th cc c php c th m ta s trnh by sau. Nhng tng
chung l con ngi rt kh c v hiu chng.
tr gip cho ngi c v hiu cc lnh VB trong chng trnh, VB cn cung
cp 1 lnh c bit : lnh ch thch. y l lnh m my s b qua (v my s
khng th hiu ni ngha c miu t trong lnh ny), tuy nhin lnh ny cho
php ngi lp trnh dng ngn ng t nhin ch thch ngha ca cc lnh
VB khc hu gip chnh h hay ngi khc d dng hiu chng trnh.
C php ca lnh ch thch rt n gin : ch qui nh bt u lnh bng k t '
v c th c vit trn 1 hng ring bit hay i sau lnh hin hnh.
V d :
Private Sub cmdCE_Click()
' hm x l bin c khi n nt CE (Clear Entry)
dblDispValue = 0
blnFpoint = False
bytPosDigit = 0
txtDisplay.Text = ".0"
' bt u hin th .0 ln Display
End Sub

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 161

Ch thch trong chng trnh (tt)

Vic dng ch thch trong chng trnh l s dung ha gia 2 thi cc : lm


dng v khng bao gi dng. Thng ta nn dng ch thch nhng v tr sau :
u ca mi th tc miu t chc nng ca th tc , d liu nhp vo
th tc v d liu tr v t th tc.
cc on code miu t gii thut phc tp ghi ch on code ny hin
thc gii thut no trong l thuyt hc.
hng lnh c hiu ng c bit...

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 162

81

6.3 Cc lnh nh ngha

1 module VB (form, class, standard) gm 2 loi phn t : thuc tnh d liu v


cc method (th tc). Cc lnh nh ngha cho php ta nh ngha tnh cht ca
cc thuc tnh d liu, cc lnh thc thi cho php ta miu t gii thut thi hnh
ca cc method (th tc).
2 lnh nh ngha d liu ch yu l lnh nh ngha bin v lnh nh ngha
hng, trong 2 lnh ny c s dng tn kiu d liu. Tn kiu d liu c th l
nh sn, c th do ngi lp trnh t t. Lnh nh ngha kiu s phc v vic
nh ngha kiu mi ca ngi lp trnh.
VB kim tra vic nh ngha bin bt buc trong 1 module no , ta dng
lnh sau u module .
Option Explicit
C php nh ngha hng gi nh c bn :
Const AConst = Value
Lu ta dng ch nghing miu t phn t m ngi lp trnh t xc nh
theo yu cu ring (d nhin phi tha mn qui tc VB), ch m miu t phn
t bt buc v ngi lp trnh phi vit y nh vy trong lnh ca h.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 163

Qui tc miu t cc loi gi tr

Gi tr lun l : True | False.


Gi tr thp phn nguyn : [+|-] [decdigit]+ (Vd. 125, -548)
Lu ta dng | miu t s chn la, [...] miu t c t 0 ti 1, [...]*
miu t c t 0 ti n, [...]+ miu t c t 1 ti n (n>1).
Gi tr thp lc phn nguyn : [+|-] &H[hexdigit]+ (&HFF)
Gi tr bt phn nguyn : [+|-] &O[ocdigit]+ (&O77)
Gi tr thp phn thc :
[+|-] [decdigit]+ [.[decdigit]*] [E [+|-] [decdigit]+]
3.14159, 0.31459E1,-83.1E-9,...
Gi tr chui : "Nguyen Van A"
"""Nguyen Van A"""
Lu dng 2 du nhy kp lin tip miu t 1 k t nhy kp trong
gi tr chui (c ch dng Escape gii quyt nhm ln).
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 164

82

Qui tc miu t cc loi gi tr (tt)


Gi tr ngy thng (Date) : trnh by trong slide 125, y ta
ch nhc li cho c tnh h thng.
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 ngy thng lun c t trong cp du #....#.
C nhiu dng thc khc nhau miu t gi trong ngy v miu
t ngy/thng/nm. Dng thc miu t ngy dng 2/1/2000 s
c phn gii theo thng s "locale" ca Windows (dng
dd/mm/yyyy hay mm/dd/yyyy).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 165

6.4 Pht biu nh ngha bin

C php c bn ca nh ngha bin cc b trong function, Sub,


Property :
Dim AVariable [As Type]
Static AVariable [As Type]
C php c bn ca nh ngha bin cc b trong module (class,
form, standard) :
Private AVariable [As Type]
Static AVariable [As Type]
C php c bn ca nh ngha bin ton cc :
Public AVariable [As Type]
Lu hn ch ti a vic dng bin ton cc (trong OOP ta khng
cn dng bin ton cc).
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 166

83

Pht biu nh ngha bin (tt)


C th dng tip v ng qui nh kiu (trong chng 5) thay th cho tn
kiu. Nu tn bin khng c tip v ng v khng c phn tn kiu trong
lnh nh ngha bin th bin thuc kiu Variant. Cho php nhiu pht
biu nh ngha bin trn 1 hng lnh (dng du ',' ngn cch chng).
Nn t tn bin theo k hiu Hungarian v lun miu t tn kiu kt
hp vi bin trong lnh nh ngha bin, nh vy chng trnh s rt
trong sng, d hiu v d pht trin.
V d :
Thay v dng lnh sau :
Private DispValue#
nh ngha bin thc chnh xc kp tn l "DispValue", ta nn dng
lnh nh ngha sau :
Private dblDispValue As Double

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 167

6.5 Pht biu nh ngha kiu ca ngi lp trnh

Nu trong 1 module no cn d liu c cu trc c th m VB cha cung


cp, ngi lp trnh s dng pht biu TYPE nh ngha kiu ny. Pht biu
ny kt hp tn kiu (t t) vi 1 cu trc d liu gm nhiu field d liu (do d
ta thng gi kiu ny l kiu record hay structure). C php nh sau :
Type TypeName
[AfieldName As Type]+
End Type
V d :
Type SystemInfo
CPU As Variant
Memory As Long
DiskDrives(25) As String
VideoColors As Integer
Cost As Currency
PurchaseDate As Variant
End Type
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

' Fixed-size array.

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 168

84

Pht biu nh ngha kiu Array

Nu trong 1 module no cn danh sch gm nhiu d liu c cu trc ng


nht, ta s dng pht biu nh ngha kiu array miu t danh sch ny. C
php c bn nh sau :
Dim varname[([subscripts])] [As [New] type]
trong subscripts l danh sch t 1 n n chiu cch nhau bng du ',', mi
chiu miu t phm vi ch s cc phn t thuc chiu dng :
[lower To] upper.
Nu ch s cn di ca 1 chiu no khng c miu t th VB chn gi tr
ngm nh (l 0 hay 1).
Pht biu nh ngha gi tr cn di ngm nh c c php :
Option Base {0|1}
Lu du {..} miu t c 1 v ch 1 ln. Nu khng c pht biu ny th VB
chn cn di l 0.
V d :
Dim vector(50) As Double 'vector c 51 phn t t 0 - 51
Dim MyArray (1 to 100, 1 to 50) As Double
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 169

Pht biu nh ngha kiu Array (tt)


Nu s lng phn t ca danh sch cha bit ti thi im vit chng trnh v
ch bit ti thi im chy, ta dng 1 trong 2 cch sau :
khai bo s lng tnh ti thi im vit, cch ny thng ph phm b nh hay
khai bo thiu s lng phn t.
Th d gii h n phng trnh tuyn tnh, n n s, ta c th khai bo tnh
ma trn thng s nh sau :
Option Base 1
Dim matran(100,100) As Double
nhng nu i a s ln dng ng dng ny, ta ch gii cc h phng
trnh c 2, 3,... n s th s rt ph phm b nh. Cn 1 ln chy no ,
nu ta cn gii h 200 phng trnh th chng trnh s chy sai.
khai bo s lng ng ti thi im chy. C php nh sau :
Dim varname() [As [New] type]
V d : Dim matran() As Double ' trng s lng
...
n = Val(txtInput.Text)
ReDim matran(n,n)
'phn phi phn t cho ma trn
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 170

85

6.6 Lnh khai bo Declare

Cc lnh nh ngha hng, bin, kiu, th tc cho php ta sn sinh phn


t tng ng trong phm vi ng cnh tng ng (th tc, module, ton
cc).
Ngoi ra Windows (v nhiu hng, c nhn khc) vit nhiu module
tng qut, mi module cha nhiu th tc khc nhau, cc th tc ny
gii quyt nhng vn no . Th d ta c module cc hm lng
gic, module cc hm thng k, module cc hm x l d liu
multimedia,...
Windows dng k thut lin kt ng cc module trn vo ng dng
dng chng, mi module c ct trn 1 file *.dll (dynamic link library).
VB cung cp lnh khai bo "Declare" cho php ngi lp trnh khai
bo ch k (signature, interface, prototype, header,...) ca cc th tc c
sn trong cc module *.dll gi n trong ng cnh ca mnh (module).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 171

Lnh khai bo Declare (tt)


C php 1 :
[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"]
[([arglist])]
C php 2 :
[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"]
[([arglist])] [As type]
C php 1 cho php khai bo 1 subroutine vi tn l name th vin tn
l libname, ta c th gi subroutine ny bng 1 tn khc l aliasname v
truyn cho n 1 danh sch i s tng thch vi arglist.
C php 2 cho php khai bo 1 function vi tn l name th vin tn l
libname, ta c th gi function ny bng 1 tn khc l aliasname v
truyn cho n 1 danh sch i s tng thch vi arglist. Sau khi hon
thnh, function s tr v 1 gi tr kt qu thuc kiu type.
Chi tit v s khc bit gia subroutine v function s c trnh by
trong chng 9 v 10.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 172

86

Th d v cc lnh nh ngha VB
Chng ta trnh by qui trnh thit k trc quan giao din ca trnh
MiniCalculator cho php gi lp 1 my tnh tay n gin. Chng trnh ny ch c
1 form, trong form ny chng ta s nh ngha cc hng, bin cc b sau y
phc v hot ng cho ng dng :
Option Explicit
Const IDC_EQUAL = 0
' nh ngha cc hng gi nh miu t ton t
Const IDC_ADD = 1
Const IDC_SUB = 2
Const IDC_MUL = 3
Const IDC_DIV = 4
Private dblDispValue As Double
Private dblOldValue As Double
Private dblMemValue As Double
Private blnFpoint As Boolean
Private bytPosDigit As Byte
Private intPosNeg As Integer
Private bytOperationId As Byte
Private blnFAfterOp As Boolean

' bin lu gi tr ang hin th


' bin lu gi tr trc
' bin lu gi tr trong b nh
' trng thi nhp s nguyn/l
' v tr l s l ang nhp
' trng thi miu t gi tr m/dng
' id ca php ton cn thc hin
' trng thi nhp k s u sau php ton
Mn : Tin hc
Chng 6 : Cc lnh nh ngha & khai bo VB
Slide 173

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

MN TIN HC
Chng 7

BIU THC VB
7.1 Tng qut v biu thc VB
7.2 Cc ton t
7.3 Qui trnh tnh biu thc
7.4 Quyn u tin ca cc ton t

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 174

87

7.1 Tng qut v biu thc VB

Ta bit trong ton hc cng thc l phng tin miu t 1 qui trnh
tnh ton no trn cc s.

Trong VB (hay ngn ng lp trnh khc), ta dng biu thc miu t


qui trnh tnh ton no trn cc d liu biu thc cng ging nh
cng thc ton hc, tuy n tng qut hn (x l trn nhiu loi d liu
khc nhau) v phi tun theo qui tc cu to kht khe hn cng thc
ton hc.

hiu c biu thc, ta cn hiu c cc thnh phn ca n :


Cc ton hng : cc bin, hng d liu,...
Cc ton t tham gia biu thc : +,-,*,/,...
Qui tc kt hp ton t v ton hng to biu thc.
Qui trnh m my dng tnh tr ca biu thc.
Kiu ca biu thc l kiu ca kt qu tnh ton biu thc.

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 175

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Cc biu thc c bn
Biu thc c bn l phn t nh nht cu thnh biu thc bt k. Mt
trong cc phn t sau c gi l biu thc c bn :

Bin,

Hng gi nh,

Gi tr d liu c th thuc kiu no (nguyn, thc,..)

Li gi hm,

1 biu thc c ng trong 2 du ().

Qui trnh to biu thc l qui trnh qui : ta kt hp tng ton t vi cc


ton hng ca n, trong ton hng hoc l biu thc c bn hoc l
biu thc sn c ( c xy dng trc v nn ng trong 2 du ()
bin n tr thnh biu thc c bn).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 176

88

7.2 Cc ton t
Da theo s ton hng tham gia, c 2 loi ton t thng dng nht :

ton t 1 ngi : ch cn 1 ton hng. V d ton t '-' tnh phn


m ca 1 i lng.

ton t 2 ngi : cn dng 2 ton hng. V d ton t '*' tnh tch


ca 2 i lng.
VB thng dng cc k t c bit miu t ton t. V d :

ton t '+' : cng 2 i lng.

ton t '-' : tr i lng 2 ra khi i lng 1.

ton t '*' : nhn 2 i lng.

ton t '/' : chia i lng 1 cho i lng 2...


Trong vi trng hp, VB dng cng 1 k t c bit miu t nhiu
ton t khc nhau. Trong trng hp ny, ng cnh s c dng gii
quyt nhm ln.
Ng cnh thng l kiu ca cc ton hng tham gia hoc do thiu ton
hng th ton t c hiu l ton t 1 ngi.
Mn : Tin hc
Chng 7 : Biu thc VB
Slide 177

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Cc ton t (tt)
Da theo u tin ca cc ton t trong qui trnh tnh ton biu thc, c
3 loi ton t :

ton t s hc : c u tin cao nht trong qui trnh tnh ton biu
thc.

ton t so snh : c u tin k tip.

ton t lun l v bitwise : c u tin thp nht.


Trong cc slide sau, chng ta s trnh by chi tit cc ton t VB thuc
tng loi trn.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 178

89

Cc ton t s hc
Ty thuc kiu ca cc ton hng tham gia m ta c php dng nhng
ton t no trn chng s lng ton t c gi tr trn tng kiu d liu
l khc nhau phi hc v nh t t.
D liu s l loi d liu thng c x l nht trong cc ng dng (may
mn cho chng ta v ta quen vi ton hc).
Cc ton t trn d liu s l :

ton t '&' : ni kt 2 chui thnh 1 chui.

ton t '+' : cng 2 i lng.

ton t '-' : tr i lng 2 ra khi i lng 1.

ton t '*' : nhn 2 i lng.

ton t '/' : chia i lng 1 cho i lng 2.

ton t '\' : chia nguyn.

ton t Mod : ly phn d ca php chia nguyn.

ton t '^' : ly tha.


Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 179

Ton t '&' ni kt 2 chui


C php :
expr1 & expr2 ( kt qu)
ni kt 2 ton hng kiu chui thnh 1 chui mi, nu 1 trong 2 ton
hng thuc kiu s th n s c i thnh dng chui trc khi thc
hin ni kt.
V d :
Dim MyStr As String
MyStr = "Hello" & " World"
' kt qu l "Hello World".
MyStr = "Check " & 123 & " Check" ' kq l "Check 123 Check".
lu nn c k t trng trong cc chui con sao cho ni kt chui kt
qu d c.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 180

90

Ton t '+' trn d liu s


C php :
expr1 + expr2 ( kt qu) hoc + expr1
Nu c 2 ton hng u l s th kiu kt qu l kiu chnh xc nht ca
php + theo th t sau : Byte, Integer, Long, Single, Double, Currency,
Decimal vi cc ngoi l sau :
Nu

th kt qu l :

1 ton hng Single,1 ton hng Long

Double

kt qu kiu Variant cha gi tr Single, Long, Date v b


trn

Variant cha Double

kt qu kiu Variant cha gi tr Byte v b trn

Variant cha Integer

kt qu kiu Variant cha gi tr Integer v b trn

Variant cha Long

1 ton hng Date,1 ton hng kiu khc

Date

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 181

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Ton t '+' trn d liu s (tt)


Nu kiu ca c 2 ton hng u l Variant th vic xc nh ng ngha
php + v kiu kt qu s theo qui lut ca bng sau :

Nu

th :

c 2 ton hng l Variant cha s

Cng

c 2 ton hng l Variant cha chui

Ni kt 2 chui

1 l Variant cha s, 1 l Variant cha chui

Cng

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 182

91

Ton t '+' trn d liu s (tt)


Nu t nht 1 ton hng khng phi Variant th vic xc nh ng ngha
php + v kiu kt qu s theo qui lut ca bng sau :
Nu

th :

c 2 ton hng l d liu s

Cng

c 2 ton hng l chui

Ni kt 2 chui

1 l s, 1 l Variant gi tr khc Null

Cng

1 l chui, 1 l Variant gi tr khc Null

Ni kt 2 chui

1 biu thc l Variant cha Empty

kt qu l ton hng cn li

1 l s v 1 l chui

A Type mismatch error

1 trong 2 ton hng l Null

kt qu l Null
Mn : Tin hc
Chng 7 : Biu thc VB
Slide 183

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Ton t '-' trn d liu s


C php :
expr1 - expr2 ( kt qu) hoc - expr1
Kiu kt qu thng l kiu chnh xc nht ca php - theo th t sau :
Byte, Integer, Long, Single, Double, Currency, Decimal vi cc ngoi l
sau :
Nu

th kt qu l :

1 ton hng Single,1 ton hng Long

Double

kt qu kiu Variant cha gi tr Single, Long, Date v b


trn

Variant cha Double

kt qu kiu Variant cha gi tr Integer v b trn

Variant cha Long

1 ton hng Date,1 ton hng kiu khc

Date

c 2 tong hng Date

Double

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 184

92

Ton t '*' trn d liu s


C php :
expr1 * expr2 ( kt qu)
Kiu kt qu thng l kiu chnh xc nht ca php * theo th t sau :
Byte, Integer, Long, Single, Double, Currency, Decimal vi cc ngoi l
sau :
Nu

th kt qu l :

1 ton hng Single,1 ton hng Long

Double

kt qu kiu Variant cha gi tr Single, Long, Date v b


trn

Variant cha Double

kt qu kiu Variant cha gi tr Byte v b trn

Variant cha Integer

kt qu kiu Variant cha gi tr Integer v b trn

Variant cha Long

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 185

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Ton t '/' trn d liu s


C php :
expr1 / expr2 ( kt qu)
Kiu kt qu thng l kiu Double hay Variant cha Double vi cc
ngoi l sau :
Nu

th kt qu l :

c 2 ton hng l Byte, Integer,Single

Single, nu trn th bo sai

c 2 ton hng l variant cha tr Byte, Integer, Single

Variant cha Single, nu trn th i


thnh Variant cha Double

1 ton hng Decimal

Decimal

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 186

93

Ton t '\' v Mod trn d liu s


C php :
expr1 \ expr2 ( kt qu)

y l php chia nguyn, 2 ton hng c i v dng nguyn


(c lm trn) trc khi thc hin php chia.

Kiu kt qu hoc l Byte, Integer, Long hoc l Variant cha tr


Byte, Integer, Long.
V d : 19 \ 6.7
kt qu l 2
C php :
expr1 Mod expr2 ( kt qu)

y l php ly phn d ca php chia nguyn, 2 ton hng c


i v dng nguyn (c lm trn) trc khi thc hin php chia.

Kiu kt qu hoc l Byte, Integer, Long hoc l Variant cha tr


Byte, Integer, Long.
V d : 19 Mod 6.7 kt qu l 5
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 187

Ton t '^' trn d liu s


C php :
number ^ exponent ( kt qu)

y l php ly tha, 2 ton hng thuc kiu s (Byte, Integer,


Long, Single, Double,...) vi hn ch l nu phn m l s nguyn
th phn c s (number) mi c php m.

Kiu kt qu hoc l Double hoc l Variant cha tr Double.


V d : (-5) ^ 3
kt qu l -125.0
3^3^3
kt qu l 19683.0
3.2 ^ 2.7
kt qu l 23.115587799

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 188

94

Cc ton t so snh d liu


C php :
expr1 op expr2 ( kt qu)
2 ton hng thng l kiu s hay chui. Kt qu lun l kiu lun l
(nhn 1 trong 2 tr True, False).
op l 1 trong cc ton t so snh sau :
<
: php ton nh hn
<= : php ton nh hn hoc bng
>
: php ton ln hn
>= : php ton ln hn hoc bng
=
: php ton so snh bng
<> : php ton khc nhau (khng bng)
Ngoi cc ton t so snh thng thng trn, VB cn cung cp 2 ton t
so snh c bit sau (vi ng ngha c bit s c trnh by trong cc
slide sau) :
expr1 Like expr2 ( kt qu)
expr1 Is expr2 ( kt qu)
Mn : Tin hc
Chng 7 : Biu thc VB
Slide 189

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Ton t Like
C php :
string Like pattern ( kt qu)
xc nh xem chui c th string c thuc v pattern khng. Nu
thuc v th cho kt qu True, nu khng thuc v th cho kt qu
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 Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 190

95

Ton t Like (tt)


Hnh vi ca ton t Like ph thuc vo 1 trong 2 ch do pht biu
"Option Compare" qui nh :
Option Compare Binary
' default
Option Compare Text
Trong ch so snh Binary, VB da vo th t sp xp cc k t trn c
s m nh phn ca cc k t. Trong bng m ISO8859-1, ta c :
A<B<E<Z<a<b<e<z<<<<<<
Trong ch so snh Text, VB da vo th t sp xp cc k t trn c s
ng ngha k t v thng tin "locale" ca Windows (do khng phn bit
ch thng v hoa) :
(A=a) < (=) < (B=b) < (E=e) < (=) < (Z=z) < (=)
Thng tin v ch so snh cng c p dng cho cc ton t so snh
thng thng trn cc chui.
Mn : Tin hc
Chng 7 : Biu thc VB
Slide 191

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Ton t Like (tt)


Ton hng string l chui k t c th, cn ton hng pattern l chui cha
cc k t c th v/hoc cc k t c bit c ngha theo bng sau :
K t trong pattern

Tng ng vi :

Bt k 1 k t no

bt k chui k t no (di t 0 k t tr ln)

Bt k k s thp phn no (09).

[!charlist]

Bt k k t khng c trong charlist.

[charlist]

Bt k k t c trong charlist.

dng '-' miu t 1 phm vi xc nh bi 2 cn di v trn.


dng c php [c] miu t cc k t c bit.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 192

96

Ton t Is
C php :
ObjVar1 Is ObjVar1 ( kt qu)
xc nh xem 2 bin ObjVar1 v ObjVar2 c cha cng tham kho
n 1 i tng duy nht khng. Nu ng vy th kt qu ca biu
thc l True, nu khng tr biu thc l False.
V d :
Dim MyObject, YourObject, ThisObject, ThatObject
Dim MyCheck As Boolean
Set YourObject = New Clipboard ' to object v gn tham kho.
Set ThisObject = YourObject
Set ThatObject = New Clipboard
MyCheck = YourObject Is ThisObject
' kt qu True.
MyCheck = ThatObject Is ThisObject
' kt qu False.
Mn : Tin hc
Chng 7 : Biu thc VB
Slide 193

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Cc ton t lun l
Cc ton t lun l cho php thc hin 1 hnh vi lun l trn 1 hay 2 ton
hng thuc kiu lun l cho kt qu l 1 gi tr lun l.
Cc ton t lun l l :

ton t And : php ton 'v'.

ton t Or : php ton 'hoc'.

ton t Xor : php ton loi tr.

ton t Not : php ton o.

ton t Eqv : php ton tng ng.

ton t Imp : php ton ko theo.


Nu c 2 ton hng u l s th cc php ton trn s thc hin hnh vi
ca chng trn tng cp bit tng ng ca 2 ton hng (s gii thch c
th sau).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 194

97

Ton t lun l And


C php :
expr1 And expr2 ( kt qu)

kt qu c xc nh theo bng sau :


expr1

Ghi ch :
o kt qu ch True khi c 2
ton hng l True.
o Kt qu l False nu c 1
ton hng l False.

expr2

kt 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

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 195

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Ton t bitwise And


C php :
expr1 And expr2 ( kt qu)

2 ton hng thuc kiu s v ton t And thc hin hnh vi trn tng
cp bit tng ng ca 2 ton hng, kt qu trn tng cp bit c
xc nh theo bng sau :
biti of expr1

biti of expr2

kt qu

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 196

98

Ton t lun l Or
C php :
expr1 Or expr2 ( kt qu)

kt qu c xc nh theo bng sau :


expr2

kt qu

True

True

True

True

False

True

True

Null

True

expr1

Ghi ch :
o kt qu l True nu c 1
ton hng l True.
o Kt qu ch False khi c 2
ton hng u l False.

False

True

True

False

False

False

False

Null

Null

Null

True

True

Null

False

Null

Null

Null

Null

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 197

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Ton t bitwise Or
C php :
expr1 Or expr2 ( kt qu)

2 ton hng thuc kiu s v ton t Or thc hin hnh vi trn tng
cp bit tng ng ca 2 ton hng, kt qu trn tng cp bit c
xc nh theo bng sau :
biti of expr1

biti of expr2

kt qu

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 198

99

Ton t lun l Xor


C php :
expr1 Xor expr2 ( kt qu)

kt qu c xc nh theo bng sau :


expr2

kt qu

True

True

False

True

False

True

expr1

Ghi ch :
o Nu c 1 ton hng l Null
th kt qu l Null.
o Kt qu l True nu 2 ton
hng khc nhau v khc
Null.
o Kt qu l False nu 2
ton hng ging nhau v
khc Null.

True

Null

Null

False

True

True

False

False

False

False

Null

Null

Null

True

Null

Null

False

Null

Null

Null

Null

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 199

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Ton t bitwise Xor


C php :
expr1 Xor expr2 ( kt qu)

2 ton hng thuc kiu s v ton t Xor thc hin hnh vi trn tng
cp bit tng ng ca 2 ton hng, kt qu trn tng cp bit c
xc nh theo bng sau :
biti of expr1

biti of expr2

kt qu

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 200

100

Ton t lun l Eqv


C php :
expr1 Eqv expr2 ( kt qu)

kt qu c xc nh theo bng sau :


expr1

Ghi ch :
o Nu c 1 ton hng l Null
th kt qu l Null.
o Kt qu l True nu 2 ton
hng ging nhau v khc
Null.
o Kt qu l False nu 2 ton
hng khc nhau v khc
Null.

expr2

kt qu

True

True

True

True

False

False

True

Null

Null

False

True

False

False

False

True

False

Null

Null

Null

True

Null

Null

False

Null

Null

Null

Null

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 201

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Ton t bitwise Eqv


C php :
expr1 Eqv expr2 ( kt qu)

2 ton hng thuc kiu s v ton t Eqv thc hin hnh vi trn tng
cp bit tng ng ca 2 ton hng, kt qu trn tng cp bit c
xc nh theo bng sau :
biti of expr1

biti of expr2

kt qu

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 202

101

Ton t lun l Imp


C php :
expr1 Imp expr2 ( kt qu)

kt qu c xc nh theo bng sau :


Ghi ch :
o Nu ton hng 1 l False th
kt qu l True.
o Kt qu l True nu 2 ton
hng u l True.

expr1

expr2

kt qu

True

True

True

True

False

False

True

Null

Null

False

True

True

False

False

True

False

Null

True

Null

True

True

Null

False

Null

Null

Null

Null

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 203

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Ton t bitwise Imp


C php :
expr1 Imp expr2 ( kt qu)

2 ton hng thuc kiu s v ton t Imp thc hin hnh vi trn tng
cp bit tng ng ca 2 ton hng, kt qu trn tng cp bit c
xc nh theo bng sau :
biti of expr1

biti of expr2

kt qu

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 204

102

Ton t lun l v bitwise Not


C php :
Not expr ( kt qu)

kt qu ca biu thc theo bng sau :


expr

kt qu

True

False

biti of expr

kt qu

False

True

Null

Null

C php :
Not expr ( kt qu)

ton hng thuc kiu s v ton t Not thc hin hnh vi trn tng
bit tng ng ca ton hng, kt qu trn tng bit c xc nh
theo bng trn :
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 205

7.3 Qui trnh tnh biu thc


Nu biu thc c xy dng ch trn cc biu thc c bn th qui trnh tnh biu
thc chnh l qui trnh xy dng biu thc .
Nu biu thc c xy dng trn cc biu thc con bt k th qui trnh tnh ton
nh sau : tnh t tri sang phi, mi ln gp 1 ton t (k hiu l CurrentOp) th
phi nhn trc ton t i ngay sau n (SussesorOp), so snh u tin ca 2
ton t v ra quyt nh nh sau :

nu khng c SussesorOp th tnh ngay ton t CurrentOp (trn 1 hay 2


ton hng ca n).

nu ton t CurrentOp c u tin cao hn hay bng ton t SussesorOp


th tnh ngay ton t CurrentOp (trn 1 hay 2 ton hng ca n).

nu ton t CurrentOp c u tin thp hn SussesorOp th c gng thc


hin ton t SussesorOp trc. Vic c gng ny cng c th b tm hon
nu ton t i sau ton t SussesorOp c u tin cao hn
SussesorOp,...

Khi ton t SussesorOp c thc hin xong th ton t ngay sau


SussesorOp tr thnh ton t i ngay sau CurrentOp vic kim tra xem
CurrentOp c c thc hin khng s c lp li.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 206

103

7.4 Th t u tin c th ca cc ton t


Cc ton t s hc c u tin cao nht, ri ti cc ton t so snh v
sau cng l cc ton t lun l :
Gia cc ton t s hc, quyn u tin t cao xung thp theo t t t
trn xung trong bng sau.
Cc ton t so snh c cng th t u tin.
Gia cc ton t lun l, quyn u tin t cao xung thp theo t t t
trn xung trong bng sau.
Arithmetic
Comparison
Logical
1.Exponentiation (^)
2.Negation ()
3.Multiplication and division (*, /)
4.Integer division (\)
5.Modulus arithmetic (Mod)
6.Addition and subtraction (+, )
7.String concatenation (&)

8.Equality (=)
8.Inequality (<>)
8.Less than (<)
8.Greater than (>)
8.Less than or equal to (<=)
8.Greater than or equal to (>=)
8.Like, Is

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

9. Not
10.And
11.Or
12.Xor
13.Eqv
14.Imp

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 207

Th d v qui trnh tnh biu thc


Th d sau l biu thc tnh gi tr mi ca phn t Display trong chng
trnh MiniCalculator trong trng hp ngi dng mi nhp thm 1 k s
phn l, trong :
dblDispValue l bin cha tr ca Display.
intNegative l bin miu t du ca tr Display (1 : dng, -1 : m).
d l bin cha k s mi nhp.
bytPosDigit l bin miu t v tr k s va nhp bn phi du '.'.
dblDispValue = dblDispValue + intNegative * d * (10 ^ -bytPosDigit)
Ghi ch : theo th t, ton t ly
tha c tnh trc ton t -,
2
1
nhng y tnh c lu
3
tha, ta buc phi xc nh c
ton hng i sau n v nh vy
4
5
ton t - phi c tnh trc
trong trng hp ny.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 7 : Biu thc VB
Slide 208

104

MN TIN HC
Chng 8

CC LNH THC THI VB


8.1 Tng qut v ngn ng VB
8.2 Cc lnh gn.
8.3 Cc lnh kim tra iu kin & r nhnh
8.4 Cc lnh lp
8.5 Vn lng nhau gia cc lnh
8.6 Thot t ngt khi khi cp iu khin
8.7 Lnh gi hm/th tc
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 209

8.1 Tng qut v cc lnh thc thi VB

Ta bit gii thut gii quyt 1 vn no l trnh t cc cng vic


nh hn, nu ta thc hin ng trnh t cc cng vic nh hn ny th s
gii quyt c vn ln.

VB (hay ngn ng lp trnh khc) cung cp 1 tp cc lnh thc thi, mi


lnh thc thi c dng miu t 1 cng vic nh trong 1 gii thut vi
tng chung nh sau :
Nu tn ti lnh thc thi miu t c cng vic nh ca gii thut th
ta dng lnh thc thi ny.
Nu cng vic nh vn cn qu phc tp v khng c lnh thc thi no
miu t c th ta dng lnh gi th tc (Function, Sub, Property)
trong th tc l trnh t cc lnh thc hin cng vic nh ny...

Hu ht cc lnh thc thi c cha biu thc v dng kt qu ca biu thc


ny quyt nh cng vic k tip cn c thc hin ta thng gi
cc lnh thc thi l cc cu trc iu khin.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 210

105

Tng qut v cc lnh thc thi VB (tt)

d hc, d nh v d dng, VB (cng nh cc ngn ng khc) ch cung


cp 1 s lng rt nh cc lnh thc thi :
Nhm lnh khng iu khin :
o Lnh gn d liu vo 1 bin.
o Lnh gn tham kho n i tng vo 1 bin tham kho.
Nhm lnh to quyt nh :
o Lnh kim tra iu kin lun l If ... Then ... Else
o Lnh kim tra iu kin s hc Select Case
Nhm lnh lp :
o Lnh lp Do ... Loop
o Lnh lp For ... Next
o Lnh lp For Each ... Next
Nhm lnh gi th tc :
o Lnh gi th tc
o Lnh thot khi cu trc iu khin Exit
Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 211

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

8.2 Lnh gn d liu

Lnh c dng nhiu nht trong 1 chng trnh l lnh gn gi tr d liu vo


1 vng nh lu tr li d liu ny hu s dng li n sau . Chng ta
thy lnh ny nhiu ln trong cc chng trc, by gi chng ta ni r hn v
n.

C php :
lvar = expr
biu thc bn phi s c tnh to ra kt qu (1 gi tr c th thuc 1
kiu c th), gi tr ny s c gn vo nh do lvar qui nh. Trc khi
gn, VB s kim tra kiu ca 2 phn t (qui tc kim tra s c trnh by
sau).
lvar thng l 1 bin d liu c bn, nhng c th qui theo qui tc :
o nu lvar l bin dy th 1 phn t dy c th l lvar.
o nu lvar l bin d liu ngi dng th 1 field ca n c th l lvar.
o nu lvar l bin i tng th 1 thuc tnh ca i tng c th l lvar.
V d :
dblDispValue = dblDispValue + intNegative * d * (10 ^ -bytPosDigit)

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 212

106

Lnh gn tham kho n i tng

Nh c trnh by trong chng 5, bin i tng (c kiu l Object hay


tn class module no ) ch cha tham kho n i tng ch khng cha
trc tip i tng. Khi mi nh ngha, nhng bin ny cha tham kho n
i tng c th no, do trc khi dng chng, ta phi gn tham kho ca
i tng c th vo bin.

C php :
Set lvar = expr
biu thc bn phi s c tnh to ra kt qu l 1 tham kho n i
tng, tham kho ny s c gn vo nh do lvar qui nh. Trc khi
gn, VB s kim tra kiu ca 2 phn t (qui tc kim tra s c trnh by
sau).
lvar thng l 1 bin i tng c bn, nhng c th qui theo qui tc :
o nu lvar l bin dy th 1 phn t dy c th l lvar.
o nu lvar l bin d liu ngi dng th 1 field ca n c th l lvar.
o nu lvar l bin i tng th 1 thuc tnh ca i tng c th l lvar.
V d :
Set objClipbd = New Clipboard

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 213

8.3 Lnh kim tra iu kin lun l IF

Cho php da vo kt qu lun l (tnh c t 1 biu thc lun l) quyt


nh thi hnh 1 trong 2 nhnh lnh. Sau khi thc hin 1 trong 2 nhnh lnh,
chng trnh s tip tc thi hnh lnh ngay sau lnh IF. C nhiu c php
khc nhau :

C php 1a :
If condition Then Statement1 [Else Statement2 ]

condition l 1 biu thc lun l miu t iu kin cn kim tra, n c kt


qu True/False.
Statement1, Statement2 l lnh thc thi VB bt k.
nu kt qu l True th thi hnh Statement1.
nu kt qu l False v c dng Else th thi hnh Statement2.

V d :
If blnThaybenh Then MsgBox("Thy bnh. Sinh vin v ngh")

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 214

107

Lnh kim tra iu kin lun l IF (tt)


C php 2 :
If condition Then
[Statement]+
End If

condition l 1 biu thc lun l miu t iu kin cn kim tra, n c kt


qu True/False.
[Statement]+ l danh sch cc lnh thc thi VB bt k.
nu kt qu l True th thi hnh cc lnh [Statement]+, nu kt qu l
False thi thi.

V d :
If del >=0 Then
x1 = (-b-sqr(del))/(2*a)
x2 = (-b+sqr(del))/(2*a)
MsgBox("x1= " & x1 & " ,x2= " & x2)
End If
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 215

Lnh kim tra iu kin lun l IF (tt)


C php 3 :
If condition Then
[Statement1]+
Else
[Statement2]+
End If

condition l 1 biu thc lun l miu t iu kin cn kim tra, n c kt


qu True/False.
[Statement1]+, [Statement2]+ l danh sch cc lnh thc thi VB bt k.
nu kt qu l True th thi hnh cc lnh [Statement1]+, nu kt qu l
False th thi hnh cc lnh [Statement2]+.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 216

108

Lnh kim tra iu kin lun l IF (tt)


V d :
If del >=0 Then
x1 = (-b-sqr(del))/(2*a)
x2 = (-b+sqr(del))/(2*a)
MsgBox("x1= " & x1 & " ,x2= " & x2)
Else
MsgBox("Phng trnh v nghim")
End If
V d : hiu chnh tr phn t Display khi ngi dng nhp thm k s d
If (blnFpoint) Then ' phn l
bytPosDigit = bytPosDigit + 1
dblDispValue = dblDispValue + intPosNeg * d * (10 ^ -bytPosDigit)
Else
' phn nguyn
dblDispValue = dblDispValue * 10 + intPosNeg * d
End If
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 217

Lnh kim tra iu kin s hc Select


C php :
Select Case condition
Case expr1
[Statement1]+
Case expr2
[Statement2]+
...
Case Else
[Statementn]+
End Select

condition l 1 biu thc s hc miu t iu kin cn kim tra, n c gi tr


s.
[Statement1]+, [Statement2]+ l danh sch cc lnh thc thi VB bt k.
ty gi tr ca iu kin trng vi nhnh Case no m cc lnh VB trong
nhnh c thi hnh, sau VB s thi hnh lnh ngay sau lnh Select.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 218

109

Lnh kim tra iu kin s hc Select (tt)


Th d sau l lnh Select phc v vic thc hin 1 nt lnh trong trnh
MiniCalculator m ta s thc hnh :
Select Case bytOperationId
Case IDC_ADD
' php cng
dblDispValue = dblOldValue + dblDispValue
txtDisplay.Text = Str(dblDispValue)
Case IDC_SUB
' php tr
dblDispValue = dblOldValue - dblDispValue
txtDisplay.Text = Str(dblDispValue)
Case IDC_MUL
' php nhn
dblDispValue = dblOldValue * dblDispValue
txtDisplay.Text = Str(dblDispValue)
Case IDC_DIV
' php chia
dblDispValue = dblOldValue / dblDispValue
txtDisplay.Text = Str(dblDispValue)
End Select
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 219

Lnh kim tra iu kin s hc On...GoSub


VB cn cung cp 1 lnh khc kim tra iu kin s hc, nhng yu hn
lnh Select, l lnh On...GoSub (thc ra y l lnh ca ngn ng
Basic nguyn thy, Microsoft thy cha trong sng nn mi cung cp
thm lnh Select). C php nh sau :
On condition GoSub label1, label2, label3,...

condition l 1 biu thc s hc v nn c gi tr t 1 ti n, trong n l s


lng nhn lnh c lit k sau t kha GoSub.
nu gi tr ca condition l i th my s gi 'subroutine' bt u t lnh c
nhn l labeli.
'subroutine' l 1 danh sch gm nhiu lnh thc hin 1 cng vic no
(c th ln, c th nh) vi c im lnh cui trong danh sch l lnh
Return tr iu khin v lnh gi GoSub.
xc nh c lnh cn nhy n, VB cho php dng 1 nhn gi nh
(danh hiu) hay 1 nhn s (s) kt hp vi lnh cn tham kho (ng lm
dng tnh cht ny t nhn cho mi lnh trong chng trnh).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 220

110

Lnh kim tra iu kin s hc On...GoSub (tt)


on code sau c cng dng nh slide th d dng lnh Select case (nu
IDC_ADD = 1, IDC_SUB = 2, IDC_MUL = 3, IDC_DIV = 4) :
On bytOperationId GoSub LblAdd, LblSub, LblMul, LblDiv
...
LblAdd:
dblDispValue = dblOldValue + dblDispValue
txtDisplay.Text = Str(dblDispValue)
return
' tr u khin v lnh GoSub
LblSub:
dblDispValue = dblOldValue - dblDispValue
txtDisplay.Text = Str(dblDispValue)
return
' tr u khin v lnh GoSub
LblMul:
dblDispValue = dblOldValue * dblDispValue
txtDisplay.Text = Str(dblDispValue)
return
' tr u khin v lnh GoSub
LblDiv:
dblDispValue = dblOldValue / dblDispValue
txtDisplay.Text = Str(dblDispValue)
return
' tr u khin v lnh GoSub
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 221

Lnh kim tra iu kin s hc On...GoTo


1 bin th khc ca On...GoSub l On...Goto, y iu khin s khng tr li
lnh On...Goto na. on code sau c cng dng nh slide trc :
On bytOperationId GoTo LblAdd, LblSub, LblMul, LblDiv
Continue:
...
LblAdd:
dblDispValue = dblOldValue + dblDispValue
txtDisplay.Text = Str(dblDispValue)
Goto Continue
' nhy khng iu kin v nhn Continue
LblSub:
dblDispValue = dblOldValue - dblDispValue
txtDisplay.Text = Str(dblDispValue)
Goto Continue
LblMul:
dblDispValue = dblOldValue * dblDispValue
txtDisplay.Text = Str(dblDispValue)
Goto Continue
LblDiv:
dblDispValue = dblOldValue / dblDispValue
txtDisplay.Text = Str(dblDispValue)
Goto Continue
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 222

111

8.4 Lnh lp Do...Loop


C php 1 :
Do While condition
[Statement]+
Loop
condition l 1 biu thc lun l miu t iu kin cn kim tra, n c kt
qu True/False.
[Statement]+ l danh sch cc lnh thc thi VB bt k.
tnh gi tr condition, nu kt qu l True th thi hnh cc lnh
[Statement]+, ri lp li qui trnh trn... n lc condition c gi tr False th
ngng vng lp thch hp cho vic lp t 0 ti n ln.
V d : tnh 10!
giaithua = 1
i=1
Do While i <=10
giaithua = giaithua * i
i = i+1
Loop

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 223

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Lnh lp While...Wend

VB cn cung cp 1 lnh khc c chc nng ging nh lnh Do While ...


Loop, c php ca n nh sau :
While condition
[Statement]+
Wend

condition l 1 biu thc lun l miu t iu kin cn kim tra, n c kt


qu True/False.
[Statement]+ l danh sch cc lnh thc thi VB bt k.
tnh gi tr condition, nu kt qu l True th thi hnh cc lnh
[Statement]+, ri lp li qui trnh trn... n lc condition c gi tr False th
ngng vng lp thch hp cho vic lp t 0 ti n ln.
V d : tnh 10!
giaithua = 1
i=1
While i <=10
giaithua = giaithua * i
i = i+1
Wend

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 224

112

Lnh lp Do...Loop (tt)


C php 2 :
Do
[Statement]+
Loop While condition
condition l 1 biu thc lun l miu t iu kin cn kim tra, n c kt
qu True/False.
[Statement]+ l danh sch cc lnh thc thi VB bt k.
thi hnh cc lnh [Statement]+ ri kim tra condition, nu c gi tr True th
lp li qui trnh trn n lc n c gi tr False th ngng vng lp thch
hp cho vic lp t 1 ti n ln.
V d : tnh 10!
giaithua = 1
i=1
Do
giaithua = giaithua * i
i = i+1
Loop While i <=10

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 225

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Lnh lp Do...Loop (tt)


C php 3 :
Do Until condition
[Statement]+
Loop
C php 4 :
Do
[Statement]+
Loop Until condition

condition l 1 biu thc lun l miu t iu kin cn kim tra, n c kt


qu True/False.
[Statement]+ l danh sch cc lnh thc thi VB bt k.
ging vi c php 1 v 2 nhng thay v iu kin thc hin vng lp l
True th by gi ngc li l False mi thi hnh vng lp.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 226

113

Lnh lp For...Next
C php 1 :
For counter = start To end [Step increment]
[Statement]+
Next [counter]

counter l bin iu khin s ln lp, start l biu thc qui nh gi tr u


ca counter, end qui nh gi tr cui, increment miu t bc tng (m l
gim, default l 1).
[Statement]+ l danh sch cc lnh thc thi VB bt k.
thi hnh cc lnh [Statement]+ vi s ln c qui nh bi bin iu
khin.

V d : tnh 10!
giaithua =1
for i = 1 to 10
giaithua = giaithua * i
Next i
Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 227

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Lnh lp For...Next (tt)


C php 2 :
For Each element In group
[Statement]+
Next [element]

group l 1 collection cc i tng hay 1 dy cc phn t. element l bin


cha tng i tng hay tng phn t trong group.
Statement l 1 lnh thc thi VB bt k.
thi hnh cc lnh [Statement]+ vi tng phn t trong 1 dy hay vi tng
i tng trong 1 collection.

V d : hin th cc i tng ha ca 1 ng dng


Dim objGraphObj As Object
...
For Each GraphObj In GraphObjList
GraphObj.Draw
' hin th i tng
Next GraphObj
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 228

114

8.5 Cc lnh lng nhau


Nh ta thy trong c php ca hu ht cc lnh VB u c cha
thnh phn Statement, y l 1 lnh thc thi VB bt k ta gi c
php nh ngha lnh VB l qui to ra cc lnh VB lng nhau. Ta
gi cp ngoi cng l cp 1, cc lnh hin din trong c php ca lnh
cp 1 c gi l lnh cp 2, cc lnh hin din trong c php ca lnh
cp 2 c gi l lnh cp 3,... d c, cc lnh cp th i nn dng
hng nh n k t Tab.
V d : on chng trnh tnh ma trn tng ca 2 ma trn
Dim A(N,N) As Double, B(N,N) As Double
Dim C(N,N) As Double
For i = 1 to n
' duyt theo hng
For j = 1 to n ' duyt theo ct
C(i,j) = A(i,j) + B(i,j)
Next j
Next i

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 229

8.6 Vn thot t ngt khi cp iu khin

Nh ta thy trong c php ca hu ht cc lnh VB u c cha


thnh phn [Statement]+. Theo trnh t thi hnh thng thng, cc lnh
bn trong ny s c thc thi tun t, ht lnh ny n lnh khc cho
n lnh cui, lc ny th vic thi hnh lnh cha mi c th kt thc.
Tuy nhin trong 1 vi trng thi thi hnh c bit, ta mun thot ra khi
lnh cha t ngt ch khng mun thc thi ht cc lnh con trong danh
sch. phc v yu cu ny, VB cung cp lnh Exit vi c php sau
y :
Exit [For | Do | Property | Sub | Function]
Lu VB cho php dng Exit thot khi trc tip ra nhiu cp. VB
khng cung cp lnh Exit If v Exit While thot khi lnh If v lnh
While dng lnh Do ... Loop thay th lnh While v/hoc lnh Goto
(c trnh by sau).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 230

115

Vn thot t ngt khi cp iu khin (tt)


thy vic dng cc lnh lng nhau v yu cu cn thot khi t
ngt 1 cp iu khin no , ta hy xem th tc sau, n cho php in
ra tt c cc font ch m c th dng hin th ln mn hnh ln in ra
my in.
Private Sub Form_Click()
Dim objSFont As Object, objPFont As Object
' duyt tng font mn hnh
For Each objSFont In Screen.Fonts()
' duyt tng font my in
For Each objPFont In Printer.Fonts()
If objSFont = objPFont Then
Print objSfont
End If
Next objPFont
Next objSFont
End Sub

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 231

Vn thot t ngt khi cp iu khin (tt)


Quan st lnh If ta thy rng iu kin ch ng ti a 1 ln trong vng
lp objPFont, do khi tha iu kin ri th ta nn thot khi vng
lp ny ngay ( thi gian chy t hn hiu qu hn).
Private Sub Form_Click()
Dim objSFont As Object, objPFont As Object
' duyt tng font mn hnh
For Each objSFont In Screen.Fonts()
' duyt tng font my in
For Each objPFont In Printer.Fonts()
If objSFont = objPFont Then
Print objSfont
Exit For
'thot t ngt khi vng For trong cng
End If
Next objPFont
Next objSFont
End Sub

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 232

116

Vn thot khi cp iu khin t ngt (tt)


Cng th d slide trc, nhng nu ta ch mun in tn font ch u
tin c dng bi c mn hnh v my in, th ta phi dng lnh Exit
Sub sau khi in tn font u tin ny.
Private Sub Form_Click()
Dim SFont As objObject, objPFont As Object
' duyt tng font mn hnh
For Each objSFont In Screen.Fonts()
' duyt tng font my in
For Each objPFont In Printer.Fonts()
If objSFont = objPFont Then
Print objSfont
Exit Sub
'thot t ngt khi th tc
End If
Next objPFont
Next objSFont
End Sub

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 233

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

8.7 Lnh gi th tc

Th tc l phng tin phn chia code ca module (class, form,


standard) ra nhiu n v nh hn d qun l v s dng. y l
vn kh ln v s c trnh by chi tit trong chng k.
y chng ta gii thiu 1 vi tng ban u v th tc gii
thiu lnh gi (s dng) chng. Th tc l 1 danh sch cc lnh VB
thc hin 1 chc nng r rng (v thng n gin), cc lnh ny c
hp thnh 1 n v v c gn cho 1 tn nhn dng, tn ny nn gi
c chc nng ca th tc (th d ta t danh sch cc lnh VB tnh
cos ca gc x trong 1 n v v t tn cho n l Cos).
th tc c s dng cao, khi nh ngha n ngi ta kt hp 1
danh sch tham s hnh thc vi n. Mi tham s hnh thc miu t 1
d liu m th tc s x l khi th tc c thi hnh. Cc tham s l
phng tin trao i d liu gia lnh gi v code ca th tc. Th d
ta kt hp vi th tc Cos 1 tham s l gc x, ta ni Cos (x) l th tc
tnh Cos ca gc x.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 234

117

Lnh gi th tc (tt)
Sau khi nh ngha th tc, ta c th dng (gi) n. Th tc ch
c thi hnh khi ngi ta gi n bng lnh gi th tc. C php ca
lnh gi nh sau :
[Call] name [arglist]
V d : gi s ta nh ngha (vit) 1 th tc sau y :
Private Sub Update_Display(d As Byte)
n cho php hiu chnh gi tr Display sau khi ngi dng n thm k
s d. Nh vy khi ngi dng n thm k s 5, ta s thc hin gi th
tc nh sau :
Call Update_Display (5)
hay : Update_Display (5)
Lu : Trong trng hp gi th tc khng c bt k tham s no ta nn
dng thm t kha "Call' chng trnh trong sng, d c.

Mn : Tin hc
Chng 8 : Cc lnh thc thi VB
Slide 235

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

MN TIN HC
Chng 9

NH NGHA TH TC & S DNG


9.1 Th tc & tm vc s dng th tc
9.2 C php nh ngha hm.
9.3 C php nh ngha th tc
9.4 Gi th tc
9.5 C ch truyn tham s
9.6 Cc th tc nh ngha sn

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 236

118

Nhc li cu trc t chc 1 chng trnh

Mt chng trnh thng cung cp nhiu chc nng cho ngi dng
Chng trnh thng l 1 h thng phc tp. d qun l v xy dng
chng trnh, ngi ta thng chia n ra nhiu n v nh hn. Hin c 2
phng php chia nh chng trnh :
phng php c cu trc : chng trnh c chia nh thnh nhiu
module chc nng, mi module cha nhiu im nhp (entry), mi
im nhp cung cp 1 dch v (chc nng) r rng, n gin no .
Ta gi mi im nhp l th tc thc hin chc nng tng ng.
phng php hng i tng : chng trnh c chia nh thnh
nhiu i tng, mi i tng cha nhiu im nhp (entry), mi
im nhp cung cp 1 dch v (chc nng) r rng, n gin no .
Ta gi mi im nhp l th tc thc hin chc nng tng ng.
Tm li, d dng phng php chia nh chng trnh no th n v chc
nng nh nht m ngi lp trnh c th xy dng v dng (gi) li nhiu
ln trong chng trnh l th tc.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 237

9.1 Phn loi th tc trong VB

Nu ta phn tch chng trnh theo cu trc th chng trnh VB l tp cc


standard module, trong mi module ta c th nh ngha n th tc khc nhau
thuc 1 trong 2 dng :
th tc - Sub : 1 on lnh thc thi VB thc hin 1 chc nng r rng,
n gin nhng khng tr v gi tr km theo tn th tc.
hm - Function : 1 on lnh thc thi VB thc hin 1 chc nng r rng,
n gin v tr v gi tr km theo tn hm.
Nu ta phn tch chng trnh theo hng i tng th chng trnh VB l tp
cc form hay class module, trong mi module ta c th nh ngha n th tc
khc nhau thuc 1 trong 3 dng :
th tc - Sub : 1 on lnh thc thi VB thc hin 1 chc nng r rng,
n gin nhng khng tr v gi tr km theo tn th tc.
hm - Function : 1 on lnh thc thi VB thc hin 1 chc nng r rng,
n gin v tr v gi tr km theo tn hm.
truy xut thuc tnh - Property : 1 on lnh thc thi VB c/ghi 1 thuc
tnh tng ng ca i tng. C 3 th tc loi ny l Get, Set v Let.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 238

119

Tm vc s dng th tc trong VB

Trong mi standard module, ta c th xc nh tm vc s dng ca tng th


tc :
cc b trong module : dng t kha Private trong lnh nh ngha th tc.
ton cc trong chng trnh : dng t kha Public trong lnh nh ngha th
tc.
Trong mi form hay class module, ta c th xc nh tm vc s dng ca tng
th tc :
cc b trong module (i tng) : dng t kha Private trong lnh nh ngha
th tc.
cc b trong Project : dng t kha Friend trong lnh nh ngha th tc.
cng cng (ai dng cng c) : dng t kha Public trong lnh nh ngha
th tc. Cc th tc cng cng ca i tng c gi l method phn
bit vi Sub/Function.
V nguyn tc, cc th tc Property Get, Set v Let u phi c tm vc
cng cng (dng t kha Public).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 239

9.2 C php nh ngha hm - Function

C php nh ngha 1 hm :
[Public | Private | Friend] [Static] Function name [(arglist)] [As type]
[statements]
[name = expression]
[Exit Function]
[statements]
[name = expression]
End Function
Dng t kha Public nh ngha hm c tm vc ton cc, ngha l
bt k lnh no ca chng trnh u c th gi hm Public.
Dng t kha Friend nh ngha method thuc 1 class module nhng
ch c tm vc cc b trong Project, ngha l ch c cc lnh trong cng
Project mi c th gi thng ip n hm Friend ca i tng , cn
cc lnh ngoi Project th khng thy hm Friend ca i tng ny.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 240

120

C php nh ngha hm - Function (tt)

Dng t kha Private nh ngha hm c tm vc cc b trong


module, ngha l ch c cc lnh trong cng module mi c th gi hm
Private trong module tng ng.
Dng t kha Static nh ngha cc bin cc b trong hm u l
Static, ngha l gi tr ca chng vn tn ti qua cc ln gi khc nhau
n hm ny.
[statements] l danh sch cc lnh nh ngha bin, hng, kiu cc b
trong function v cc lnh thc thi miu t chnh xc chc nng ca
hm.
Lnh gn name = expression cho php gn gi tr tr v cho lnh gi
hm.
Lnh Exit Function cho php tr ngay iu khin v lnh gi hm ny
(thay v thc thi tip cc lnh cn li ca hm).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 241

C php nh ngha hm - Function (tt)

arglist l danh sch cc tham s hnh thc, mi tham s c cch


nhau bi du ',' v c nh ngha theo c php nh sau :
[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type]
[=defaultvalue]
Dng t kha Optional khai bo rng tham s tng ng l nhim
trong lc gi hm : truyn hay khng cng c. Trong trng hp ny
ta nn dng thm thnh phn [= defaultvalue] xc nh gi tr cn
truyn nhim .
Dng t kha ByRef khai bo vic truyn tham s bng tham kho,
y l ch truyn tham s nhim . Ngc li dng t kha ByVal
khai bo c ch truyn tham s bng gi tr.
Ch c th dng t kha ParamArray cho tham s cui trong danh sch
tham s, tham s ny cho php ta truyn bao nhiu tham s c th cng
c.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 242

121

Th d nh ngha hm

on code sau nh ngha hm tnh n! giai tha theo gii thut qui :
Public Function giaithua(ByVal n As Long) As Long
If n <= 0 Then ' nu n <=0 th tr v -1
giaithua = -1
Exit Function
End If
If n = 1 Then ' nu n = 1 th tr v kt qu l 1
giaithua = 1
Exit Function
End If
' Nu n > 1 th tnh theo cng thc n! = n * (n-1)!
giaithua = n * giaithua(n - 1)
End Function
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 243

9.3 C php nh ngha th tc - Sub

C php nh ngha 1 th tc Sub :


[Private | Public | Friend] [Static] Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub
ngha ca cc t kha Public, Private, Friend, Static cng nh cc
thnh phn arglist, Exit Sub, statements ging y nh trong vic nh
ngha hm m chng ta gii thiu nhng slide trc.
S khc bit gia hm v th tc l hm lun tr v gi tr kt hp vi
tn hm, cn th tc th khng tr v tr kt hp vi tn th tc (nhng
n vn c th tr kt qu v thng qua cc tham s truyn bng tham
kho).
Nu quan st k, ta thy cc hm x l s kin cho cc i tng giao
din u l Sub, ch khng phi l Function, do t y ta dng on
cu "th tc x l s kin" thay cho "hm x l s kin".
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 244

122

C php nh ngha method Get thuc tnh i tng

C php nh ngha 1 method Get :


[Public | Private | Friend] [Static] Property Get name [(arglist)] [As
type]
[statements]
[name = expression]
[Exit Property]
[statements]
[name = expression]
End Property
ngha ca cc t kha Public, Private, Friend, Static cng nh cc
thnh phn arglist, Exit Property, statements, [name = expression]
ging y nh trong lnh nh ngha hm m chng ta gii thiu
nhng slide trc.
Method Get cho php bn ngoi c th c gi tr ca 1 thuc tnh bn
trong i tng nhng di s kim sot ca i tng .
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 245

C php nh ngha method Let thuc tnh i tng

C php nh ngha 1 method Let :


[Public | Private | Friend] [Static] Property Let name ([arglist,] value)
[statements]
[Exit Property]
[statements]
End Property
ngha ca cc t kha Public, Private, Friend, Static cng nh cc
thnh phn arglist, Exit Property, statements ging y nh trong lnh
nh ngha hm m chng ta gii thiu nhng slide trc.
Method Let cho php bn ngoi c th gn gi tr mi cho 1 thuc tnh
bn trong i tng nhng di s kim sot ca i tng .

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 246

123

C php nh ngha method Set thuc tnh i tng

C php nh ngha 1 method Set :


[Public | Private | Friend] [Static] Property Set name ([arglist,]
reference)
[statements]
[Exit Property]
[statements]
End Property
ngha ca cc t kha Public, Private, Friend, Static cng nh cc
thnh phn arglist, Exit Property, statements ging y nh trong lnh
nh ngha hm m chng ta gii thiu nhng slide trc.
Method Set cho php bn ngoi c th gn tham kho cho 1 thuc tnh
bn trong i tng nhng di s kim sot ca i tng .
S khc bit gia method Let v Set l Let gn gi tr thuc 1 kiu c
in, cn Set gn tham kho vo 1 thuc tnh c kiu l class i tng.
Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 247

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

9.4 Gi th tc

Sau khi th tc c nh ngha, ta c th s dng (gi) n nh lnh


gi th tc. C php gi th tc c miu t trong slide 216 (chng
8). Do Function l dng th tc c tr v kt qu kt hp vi tn hm
nn lnh gi hm thng c dng trong 1 biu thc (lnh gi hm l
biu thc c bn cu thnh biu thc phc tp hn).
Th d, gi s ta nh ngha hm tnh n! tn l giaithua(n) th ta c th
gi n nh sau :
n=8
MsgBox (n & "! = " & giaithua(n))
Th d, gi s ta nh ngha th tc hon v 2 s nguyn tn l
Hoanvi(a,b) th ta c th gi n nh sau :
n=8
m=4
Call Hoanvi (n,m)
' hoc Hoanvi n,m
' Lc ny n = 8 v m = 4
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 248

124

9.5 C ch truyn tham s

Cc tham s trong lnh nh ngha th tc c gi l tham s hnh


thc. Cc tham s (thng l biu thc) trong lnh gi th tc c gi
l tham s thc. Nguyn tc gi th tc l :
s lng cc tham s thc phi bng s lng cc tham s hnh
thc.
v kiu ca tng tham s thc trong lnh gi th tc phi trng (hay
tng thch) vi kiu ca tham s hnh thc tng ng trong lnh
nh ngha th tc.
Lnh gi th tc s truyn tham s thc trong lnh gi cho th tc ri
khi ng th tc chy x l tham s thc va nhn c. Theo thi
gian, th tc s c gi nhiu ln, mi ln vi danh sch tham s thc
c th.
C 2 c ch truyn tham s cho th tc ti thi im gi th tc : truyn
gi tr (ni dung ca tham s) hay truyn tham kho (a ch - v tr b
nh ca tham s). Mi c ch truyn tham s c tnh cht ring m ta s
trnh by k trong cc slide k tip :
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 249

C ch truyn tham s (tt)

Dng t kha ByVal kt hp vi tham s hnh thc khai bo n c


truyn bng gi tr. Khi gi th tc, gi tr ca tham s thc s c
truyn cho th tc cn thc thi. Nh cch truyn tham s ny m th tc
cn thc thi s khng th truy xut d liu ca th tc gi. Tuy nhin
cch truyn bng gi tr ch thch hp cho cc tham s IN (truyn t
phn t gi n th tc cn gi) c kiu v hng (scalar).
truyn hiu qu tham s c ni dung chim nhiu nh hay nhn
kt qu ta s phi dng c ch truyn bng tham kho (a ch). nh
ngha tham s hnh thc c truyn bng tham kho, ta dng t kha
ByRef kt hp vi tham s hnh thc . Khi gi th tc, a ch ca
tham s thc s c truyn cho th tc cn thc thi. Vi c im ny,
tham s thc phi l bin ch khng th l biu thc.
Lu rng nu ta khng dng t kha ByRef hay ByVal kt hp vi
tham s hnh thc th default n c truyn bng tham kho.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 250

125

C ch truyn tham s (tt)


// version truyn bng gi tr
Private Sub Hoanvi1(ByVal x As Integer, ByVal y As Integer)
Dim tmp As Integer
tmp = x
x=y
y = tmp
End Sub
// version truyn bng tham kho
Private Sub Hoanvi2(ByRef x As Integer, ByRef y As Integer)
Dim tmp As Integer
tmp = x
x=y
y = tmp
End Sub
// version truyn bng tham kho
Private Sub Hoanvi3(x As Integer, y As Integer)
Dim tmp As Integer
tmp = x
x=y
y = tmp
End Sub
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 251

C ch truyn tham s (tt)


Hy kho st k 3 th tc hon v d liu trong slide trc. By gi hy ch
ti vic s dng chng v kt qu t c :
...
Dim intN As Integer
Dim intM As Integer
intN = 4
intM = 8
Call Hoanvi1(intN, intM) ' kt qu intN = 4 v intM = 8 (khng i)
Call Hoanvi2(intN, intM) ' kt qu intN = 8 v intM = 4 ( hon v c)
Call Hoanvi3(intN, intM) ' kt qu intN = 4 v intM = 8 ( hon v c)
...

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 252

126

9.6 Cc th tc nh sn ca VB

V nguyn tc, ngi lp trnh phi nh ngha th tc (Sub, Function,


Property) trc khi c th s dng li (gi) n. Tuy nhin, VB nh
ngha rt nhiu th tc dng Sub, Function thc hin cc chc nng
rt ph bin, ngi lp trnh c th gi chng bt c khi no cn thit. Ta
gi cc th tc ny l cc th tc nh sn ca VB.
Nu cha i hi chnh xc cao, ngi ta cn gi cc th tc nh
sn ca VB l cc lnh thc thi.
Sau y ta chng ta hy lm quen vi 1 s th tc thng dng.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 253

Hm hin th form thng bo

C php MsgBox(prompt [, buttons] [, title] [, helpfile, context])


trong :
prompt l biu thc chui miu t thng bo cn hin th.
buttons l biu thc s miu t s lng v loi button c hin th
trong thng bo, nhim l 0 ngha l ch c button Ok c hin th.
title l biu thc chui miu t title bar ca form thng bo.
helpfile l biu thc chui miu t ng dn file Help c dng vi
form thng bo (theo c ch context-sensitive Help).
context l biu thc s miu t ch s ca "topic" cn dng trong file
Help

Thng gi d dng hm MsgBox, ta ch cn miu t tham s


prompt bt buc.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 254

127

Hm hin th form nhp liu (dng chui)

C php InputBox (prompt [,title] [,default] [,xpos] [,ypos]


[,helpfile,context])
trong :
prompt, title, helpfile, context l cc tham s vi ngha y nh trong
hm MsgBox.
xpos, ypos l biu thc s miu t ta (x,y) ca im trn tri ca
form thng bo trong mn hnh. Nu khng c khai bo, form
thng bo s c chnh v tr t ng (gia mn hnh).
default l biu thc chui miu t gi tr default ca chui c nhp.
Thng gi d dng hm InputBox, ta ch cn miu t tham s
prompt bt buc.

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 255

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Hm chuyn i kiu

VB cung cp cc hm sau ta c th chuyn gi tr t kiu no v


kiu xc nh :
CBool (expression) : chuyn tr ca biu thc v kiu Boolean
CByte (expression) : chuyn tr ca biu thc v kiu Byte
CCur (expression) : chuyn tr ca biu thc v kiu Currency
CDate (expression) : chuyn tr ca biu thc v kiu Date
CDbl (expression) : chuyn tr ca biu thc v kiu Double
CDec (expression) : chuyn tr ca biu thc v kiu Decimal
CInt (expression) : chuyn tr ca biu thc v kiu Integer
CLng (expression) : chuyn tr ca biu thc v kiu Long
CSng (expression) : chuyn tr ca biu thc v kiu Single
CStr (expression) : chuyn tr ca biu thc v kiu String
CVar (expression) : chuyn tr ca biu thc v kiu Variant
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 256

128

Cc hm th vin lin kt ng

Trong code VB, ngoi vic gi cc th tc c nh ngha trong Project v cc


th tc nh sn, ngi lp trnh cn c th gi cc hm trong cc th vin lin
kt ng.
1 th vin lin kt ng c dng *.dll thng c xy dng bng ngn ng
VC++ v cha 1 danh sch cc hm dch v. Khi chng trnh VB gi 1 hm
trong file th vin DLL, file c np vo b nh v hm c lin kt vo vng
nh ca chng trnh chng trnh c th gi c hm cn gi. Cc hm
th vin DLL c s dng chung cho mi phn mm ang chy, ngha l ch
c 1 bn (copy) ca hm th vin DLL trong b nh my tnh phc v cho
mi ng dng gi n.
Ta c th coi Windows nh 1 th vin phn mm DLL ln, th vin ny cung
cp rt nhiu hm dch v khc nhau, ngi ta gi cc hm ny l cc hm API
(Application Programming Interface). Chng trnh VB c th gi bt k hm
no trong th vin ny theo c ch lin kt ng nh trnh by trn.
Trc khi 1 hm DLL c dng trong module VB no , ta cn khai bo c
t hm DLL ny nh lnh Declare ca VB vi c php c trnh by trong
slide 153 (chng 6).
Mn : Tin hc
Chng 9 : nh ngha th tc & s dng
Slide 257

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

MN TIN HC
Chng 10

TNG TC GIA NGI DNG


& CHNG TRNH
10.1 Tng qut v tng tc gia ngi dng & chng trnh
10.2 Giao tip vi b2n phm.
10.3 Giao tip vi chut
10.4 V vn bn v ha ln i tng giao din
10.5 Vn in n trong VB

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 258

129

10.1 Tng qut v tng tc gia ngi dng & chng trnh

Trong lc chng trnh chy, n thng tng tc vi ngi dng. S tng tc


gm 2 hot ng chnh :
ch nhn d liu do ngi dng cung cp hay ch nhn lnh ca ngi dng
thc thi 1 chc nng no .
hin th thng bo v/hoc kt qu tnh ton ra mn hnh/my in ngi
dng bit v s dng.
S tng tc gia ngi dng v my tnh c thc hin thng qua cc thit b
nhp/xut (thit b I/O - input/output) nh bn phm/chut nhp d liu hay
lnh, mn hnh/my in xut kt qu hay thng bo...
Hin c hng trm hng khc nhau ch to thit b I/O cho my PC, mi hng
ch to rt nhiu model ca cng 1 thit b (th d hng HP ch rt nhiu
model my in phun mc, my in laser,...). Mi model thit b ca tng hng c
nhng tnh cht vt l ring v khc vi cc model khc.
gip ngi lp trnh truy xut cc thit b I/O d dng, c lp vi tnh cht
phn cng ca thit b, HH Windows v VB che du mi tnh cht phn
cng ca cc thit b v cung cp cho ngi lp trnh 1 giao tip s dng duy
nht, c lp vi thit b.
Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 259

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Kin trc tng tc gia ngi dng & ng dng VB


My Visual Basic Application

ng dng giao tip


vI cc thit b tru
tng thng qua
Windows
Windows to &
qun l cc thit
b tru tng

Screen Object

Mouse

Keyboard

Printer Object

Windows

Windows giao tip


vI c device
driver thit b
Driver

Keyboard
Driver

Mouse
Driver

AnyKey
Keyboard

Logitech
Mouse

Printer
Driver

Cc driver giao
tip vI cc thit
b vt l

ViewSonic
Monitor
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

HP Laser 5

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 260

130

Kin trc tng tc gia ngi dng & ng dng VB (tt)

Xem hnh v ca slide trc (miu t kin trc tng tc gia ngi dng & ng
dng VB), ta thy :
cp thp nht l cc thit b phn cng, mi thit b c tnh cht ring v
khc vi cc thit b khc (ngay c cng loi, cng hng nhng khc model).
cp device driver iu khin v giao tip trc tip vi phn cng nhng che
du mi tnh cht chi tit ca phn cng, n cung cp cho cp trn 1 giao tip
s dng phn cng c lp vi tnh cht phn cng Mi model thit b
phn cng ca 1 hng cn c device driver ring.
cp HH x l cc chc nng lun l (m d liu, x l sai,...) trc khi nh
device driver giao tip trc tip vi phn cng. Windows che du cc loi
phn cng v to ra nhng thit b tru tng ng dng truy xut chng d
dng v c lp vi loi thit b (i tng Printer, Screen, Mouse, Keyboard).
VB to ra nhng i tng giao din cao cp v d dng : mi i tng
giao din (form, window, listbox,...) u c th giao tip trc tip vi ngi
dng nhp/xut d liu, ch nhn s kin hay ch ng thng bo cho
user.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 261

Kin trc tng tc gia ngi dng & ng dng VB (tt)

Sau khi bit kin trc giao tip I/O ca ng dng VB, khi cn giao tip vi
ngi dng, ta nn :
dng cc i tng giao din cao cp (nh sn ca VB hay ActiveX
Control).
trong 1 s trng hp cn thit ta s dng cc i tng ca Windows nh
Printer v Screen.
trong 1 s trng hp ti cn thit ta mi gi cc hm trong giao tip ca
device driver.
v tuyt i khng nn truy xut trc tip phn cng thit b I/O v rt kh
khn, khng an ton, d b tranh chp vi cc ng dng chy ng thi.
Tng tc vi ngi dng thng qua cc i tng giao din c thc hin nh
sau :
nhp liu/nhn lnh thng qua cc th tc x l s kin ca phn t giao
din tng ng.
xut kt qu/thng bo bng cch gn kt qu vo thuc tnh tng ng ca
i tng giao din hay dng cc method v ha tng qut.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 262

131

10.2 Giao tip vi keyboard qua cc i tng giao din

Mc d c th c nhiu phn t giao din cng c hin th trn mn hnh ti


tng thi im nhng ch c 1 phn t giao din c giao tip vi thit b I/O, ta
gi phn t giao din ny l 'active' hay c 'focus'.
Lin quan n vic n th 1 phm, VB s to ra 3 s kin sau y v gi v cho
phn t c 'focus' hin hnh :
KeyDown : s kin xy ra khi ngi s dng bm (n xung) bt k mt
phm no trn bn phm.
KeyUp : s kin xy ra khi ngi s dng th phm va n ra.
KeyPress: s kin xy ra khi ngi s dng n/th bt k mt phm no trn
bn phm m to ra c 1 k t ANSI.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 263

Th tc x l s kin KeyDown, KeyUp & KeyPress


Th tc c dng sau :
Private Sub ControlName_KeyDown (KeyCode as Integer, Shift as Integer).
v Private Sub ControlName_KeyUp (KeyCode as Integer, Shift as Integer).
trong :
ControlName l tn ca iu khin nhn s kin keydown/keyup.
KeyCode l m "virtual code" ca phm c n/th.
Shift l gi tr miu t trng thi n gi cc phm iu khin (l mt dy bit
vi bit 0 cho phm SHIFT, bit 1 cho phm CTRL, bit 2 cho phm ALT).
Th tc KeyPress c dng sau :
Private Sub ControlName_KeyPress (KeyAscii As Integer)
trong :
ControlName l tn ca iu khin nhn s kin keypress.
KeyAscii l m k t ANSI ca phm c n/th.
Mi i tng c th tc x l bin c ring, th tc ny cng l method ca i
tng tng ng.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 264

132

Th d th tc x l bin c KeyDown ca 1 textbox


Private Sub Text1_KeyDown (KeyCode As Integer, Shift As Integer)
Dim ShiftDown, AltDown, CtrlDown, Txt
ShiftDown = (Shift And vbShiftMask) > 0
AltDown = (Shift And vbAltMask) > 0
CtrlDown = (Shift And vbCtrlMask) > 0
If KeyCode = vbKeyF2 Then ' Display key combinations.
If ShiftDown And CtrlDown And AltDown Then
Txt = "SHIFT+CTRL+ALT+F2."
ElseIf ShiftDown And AltDown Then
Txt = "SHIFT+ALT+F2."
ElseIf ShiftDown And CtrlDown Then
Txt = "SHIFT+CTRL+F2."
ElseIf CtrlDown And AltDown Then
Txt = "CTRL+ALT+F2."
ElseIf ShiftDown Then
Txt = "SHIFT+F2."
ElseIf CtrlDown Then
Txt = "CTRL+F2."
ElseIf AltDown Then
Txt = "ALT+F2."
ElseIf SHIFT = 0 Then
Txt = "F2."
End If
Text1.Text = "You pressed " & Txt
End If
End Sub
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 265

Dng thuc tnh KeyPreview

Thng 1 form giao din (hp thoi) cha nhiu iu khin bn trong n Khi
thao tc phm trn 1 iu khin trong form th s kin s gi cho iu khin hay
form ? qui nh c th iu ny, VB cung cp thuc tnh KeyPreview cho
form, ta c th xem/hiu chnh gi tr ca n nh lnh gn :
FormName.KeyPreview [= boolean_expr]
trong :
FormName l tn ca form lin quan.
boolean_expr l biu thc lun l c gi tr True/False.
Khi ta gn tr lun l vo thuc tnh ca form th nu :
tr = True th form s nhn v x l bin c trc ri mi ti iu khin.
tr = False th iu khin nhn v x l bin c, cn form th khng.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 266

133

10.3 Giao tip vi chut thng qua cc i tng giao din

Tng t nh bn phm, khi ngi dng thao tc chut, VB s to ra 1 trong 5


bin c sau y v gi v cho phn t c 'focus' hin hnh :
MouseMove : s kin xy ra khi ngi s dng di chuyn chut.
MouseDown : s kin xy ra khi ngi s dng n bt k nt no trn chut
(ty loi chut m n c 1/2/3 nt).
MouseUp : s kin xy ra khi ngi s dng th nt va n ra.
Click : s kin xy ra khi ngi s dng n v th chut.
DblClick : s kin xy ra khi ngi s dng 'Click' chut lin tc hai ln
trong 1 thi gian nh (do ngi dng qui nh chung cho mi trng
Windows).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 267

Th tc x l s kin MouseDown & MouseUp


Th tc c dng sau :
Private Sub ControlName_MouseDown (Button As Integer, Shift As Integer,
x As Single, y As Single)
v Private Sub ControlName_MouseUp (Button As Integer, Shift As Integer, x
As Single, y As Single)
trong :
ControlName l tn ca iu khin nhn s kin MouseDown/MouseUp.
Button l gi tr miu t trng thi cc nt ca chut c n/th (l mt dy
cc bit vi bit 0 cho nt tri, bit 1 cho nt phi v bit 2 cho nt gia).
Shift l gi tr miu t trng thi n gi cc phm iu khin (l mt dy bit
vi bit 0 cho phm SHIFT, bit 1 cho phm CTRL, bit 2 cho phm ALT).
x, y miu t ta (x,y) ca v tr chut c n/th trn mn hnh.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 268

134

Th tc x l s kin MouseMove

Th tc c dng sau :
Private Sub ControlName_MouseMove (Button As Integer, Shift As Integer,
x As Single, y As Single)
trong :
ControlName l tn ca iu khin nhn s kin MouseDown/MouseUp.
Button l gi tr miu t trng thi cc nt ca chut c n/th (l mt dy
cc bit vi bit 0 cho nt tri, bit 1 cho nt phi v bit 2 cho nt gia).
Shift l gi tr miu t trng thi n gi cc phm iu khin (l mt dy bit
vi bit 0 cho phm SHIFT, bit 1 cho phm CTRL, bit 2 cho phm ALT).
x, y miu t ta (x,y) ca v tr chut hin hnh trn mn hnh.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 269

Th tc x l s kin Click & DblClick


Th tc c dng sau :
Private Sub ControlName_Click ()
v Private Sub ControlName_DblClick ()
trong :
ControlName l tn ca iu khin nhn s kin Click/DblClick.
Th tc x l s kin Click v DblClick khng c tham s xc nh v tr
n chut hay nt chut no c n. Trong trng hp cn cc thng tin
ph ny x l chi li hn, bn nn dng th tc x l s kin MouseDown
hay MouseUp.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 270

135

Th d th tc x l cc s kin chut
' bin qui nh trng thi v/khng v
Dim PaintNow As Boolean
'Khi ng thng s v
Private Sub Form_Load ()
DrawWidth = 10
' Use wider brush.
ForeColor = RGB(0, 0, 255) ' Set drawing color.
End Sub
Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As
Single, Y As Single)
PaintNow = True ' Enable painting.
End Sub
Private Sub Form_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)
PaintNow = False ' Disable painting.
End Sub
Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As
Single)
If PaintNow Then
PSet (X, Y)
' Draw a point.
End If
End Sub
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 271

10.4 V vn bn v ha ln i tng giao din

Cc iu khin thng cha thuc tnh Text, Caption hay Value cho php
chng trnh truy xut (c/ghi) cc thuc tnh ny. Tuy nhin nhng i tng
giao din phc hp nh Form, PictureBox, Printer c th hin th nhiu ni dung
chi tit dng vn bn, ha hay nh bitmap bt k. hin th cc ni dung
ny, ta dng cc method sau ca cc i tng tng ng :
Cls : xa ton b ni dung hin th trc ca i tng.
Print : hin th 1 hay nhiu chui vn bn.
PSet : hin th 1 im pixel vi 1 mu xc nh.
Point : tr v gi tr mu ca 1 im pixel.
Line : v 1 on thng hay 1 hp hnh ch nht.
Circle : c 1 hnh trn, ellipse hay cung.
PaintPicture : v 1 nh bitmap c vo i tng.
Cc slide cn li din t chi tit cc method trn cng cc th d v vic dng
chng.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 272

136

Th tc Print : xut chui ra thit b xut lun l

Th tc c dng sau :
[objName.]Print [Spc(n) | Tab(n) | expression charpos]*
trong :
objName l tn ca i tng nhn kt qu v (Printer, Form, PictureBox),
default l form hin hnh.
Spc(n) qui nh n k t trng c in ra.
Tab(n) qui nh n k t Tab c in ra, mi Tab a pointer in qua phi thm
1 ct (v tr cc ct c qui nh trc).
expression l biu thc chui hay s cn in.
charpos qui nh v tr in d liu k tip. Nu charpos = ";" th d liu in k
tip s c in lin ngay. Nu charpos = "," th s thm 1 Tab trc khi in d
liu k. Nu khng c charpos sau cng th v tr in s di xung u dng
k tip.
Thng tin v font ch phi c thit lp trc th tc Print thng qua cc thuc
tnh sau ca i tng v : FontName, FontSize, FontItalic, FontBold,...
Nn thit lp thuc tnh CurrentX, CurrentY qui nh r rng v tr in ca mi
lnh Print.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 273

Th d v vic dng th tc Print

on code sau y s hin th 3 hng vn bn trong hp thoi About Box c


chnh gia :
Const strAbout1 = "Trinh MiniIE"
Const strAbout2 = "Version 1.0"
Const strAbout3 = "Written by : Nguyen Van Hiep"
Private Sub Form_paint()
ScaleMode = vbPixels
' Xc nh v tr chui strAbout1 nm gia hp thoi
CurrentX = (ScaleWidth - TextWidth(strAbout1)) / 2
CurrentY = 40
Print strAbout1
' Xc nh v tr chui strAbout2 nm gia hp thoi
CurrentX = (ScaleWidth - TextWidth(strAbout2)) / 2
CurrentY = 60
Print strAbout2
' Xc nh v tr chui strAbout3 nm gia hp thoi
CurrentX = (ScaleWidth - TextWidth(strAbout3)) / 2
CurrentY = 80
Print strAbout3
End Sub
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 274

137

Function Format : chnh dng d liu trc khi in

Ta thng mun format d liu s hay ngy thng theo yu cu ring trc khi
in n ra. VB h tr chc nng ny thng qua hm Format c c php sau :
Format (expression [,format[,firstdayofweek[,firstweekofyear]]])
trong :
expression l biu thc s hay ngy thng cn format.
format l chui k t nh dng hay tn gi nh miu t chui nh dng sn
c ca VB.
firstdayofweek v firstweekofyear qui nh ngy u trong tun v tun u
trong nm cn cho nh dng d liu ngy thng.
Mt s k t thng dng trong chui nh dng :
0
miu t v tr k s, nu s khng hin th ht vng nh ng
th thm s 0 trc v sau gi tr s cho y vng nh dng.
#
miu t v tr k s, khng in s 0 i trc v sau gi tr s.
.
miu t v tr du ngn n v (qui nh bi locale ca Windows)
,
miu t v tr du ngn n v ngn (qui nh bi locale).
- + % ( ) space miu t chnh xc k t tng ng.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 275

Th d v hm Format

Th d v chnh dng d liu s :


Format syntax
Result
Format(8315.4, "00000.00")
08315.40
Format(8315.4, "#####.##")
8315.4
Format(8315.4, "##,##0.00")
8,315.40
Format(315.4,"$##0.00")
$315.40
Th d v chnh dng d liu ngy thng :
Format(Now, "m/d/yy")
1/27/93
Format(Now, "dddd, mmmm dd, yyyy") Wednesday, January 27, 1993
Format(Now, "d-mmm")
27-Jan
Format(Now, "mmmm-yy")
January-93
Format(Now, "hh:mm AM/PM")
07:18 AM
Format(Now, "h:mm:ss a/p")
7:18:00 a
Format(Now, "d-mmmm h:mm")
3-January 7:18

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 276

138

Th tc PSet : v im trn thit b xut lun l

Th tc c dng sau :
[objName.]PSet [Step] (x, y), [color]
trong :
objName l tn ca i tng nhn kt qu v (Printer, Form, PictureBox),
default l form hin hnh.
(x,y) miu t ta ca v tr im cn v trn thit b lun l. Nu t kha
Step c dng th (x,y) l ta tng i so vi v tr hin hnh c xc
nh bi 2 thuc tnh CurrentX, CurrentY ca i tng v. Nu t kha Step
khng c dng th (x,y) l ta so vi im gc (0,0).
color l gi tr kiu Long miu t mu v theo h mu RGB (hoc dng hm
QBColor() hoc dng hm RGB(r,g,b) xc nh mu v).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 277

Th tc Line : v on thng/box trn thit b xut lun l

Th tc c dng sau :
[objName.]Line [Step] (x1, y1) - [Step] (x2, y2), [color], [B][F]
trong :
objName l tn ca i tng nhn kt qu v (Printer, Form, PictureBox),
default l form hin hnh.
(x1,y1) miu t ta im u ca on thng cn v trn i tng nhn
kt qu. Nu t kha Step c dng trc ta (x1,y1) th n l ta
tng i so vi v tr hin hnh c xc nh bi 2 thuc tnh CurrentX,
CurrentY ca i tng nhn kt qu. Nu t kha Step khng c dng
th (x1,y1) l ta so vi im gc (0,0).
(x2,y2) miu t ta im cui ca on thng cn v. ngha ca
(x2,y2) cng ging nh (x1,y1).
color l gi tr kiu Long miu t mu v theo h mu RGB.
nu khng c thng s B th th tc Line s v on thng qua 2 im.
nu c thng s B, th tc Line s v hnh ch nht m 2 nh cho c
xc nh bi 2 im. Trong trng hp ny nu c thng s F, hnh ch nht
s c t cng mu vi mu v, ngc li thuc tnh FillColor v FillStyle
ca i tng nhn kt qu s qui nh mu c t.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 278

139

Th tc Circle : v hnh trn/ellipse trn thit b xut lun l

Th tc c dng sau :
[objName.]Circle [Step] (x, y), radius, [color, start, end, aspect]
trong :
objName l tn ca i tng nhn kt qu v (Printer, Form, PictureBox),
default l form hin hnh.
(x,y) miu t ta tm im ca vng trn/ellipse/arc cn v trn i tng
nhn kt qu. Nu t kha Step c dng trc ta (x,y) th (x,y) l ta
tng i so vi v tr hin hnh c xc nh bi 2 thuc tnh CurrentX,
CurrentY ca i tng nhn kt qu. Nu t kha Step khng c dng
th (x,y) l ta so vi im (0,0).
radius miu t bn knh.
color l gi tr kiu Long miu t mu v theo h mu RGB.
start, end miu t gc xc nh im u v cui ca arc theo n v radian
(default im u l 0 v im cui l 2).
aspect miu t t l kch thc dc/ngang ca ellipse (default l 1 v
vng trn).
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 279

Cc thuc tnh qui nh thng s v

Khi ta gi cc method v PSet, Line, Circle, PaintPicture trn 1 i tng v


no (Printer, Form, PictureBox) th cc method ny dng cc thuc tnh sau
qui nh thng s v ca chng :
CurrentX, CurrentY miu t ta im hin hnh, n c dng lm gc
ta cho cc im v nu c dng t kha Step km theo im v .
FillStyle, FillColor xc nh mu t v mu t cc phn t c din tch (box,
circle).
BackColor xc nh mu nn ca i tng.
ForeColor xc nh mu hin th text hay v bin cc phn t (line, box,
circle).
DrawMode xc nh cch thc v (vbBlackness, vbWhiteness, vbInvert...).
DrawStyle xc nh mu v ca ng v (line, box, circle).
DrawWidth xc nh dy ca ng v (line, box, circle).
Ta c th c/hiu chnh li gi tr cc thuc tnh theo yu cu.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 280

140

Chi tit v thuc tnh qui nh n v tnh kch thc

Thuc tnh ScaleMode miu t n v tnh kch thc vi qui nh sau :


Constant
Setting Description
vbUser

vbPoints

Indicates that one or more of the ScaleHeight,


ScaleWidth, ScaleLeft, and ScaleTop properties
are set to custom values.
(Default)Twip (1440 twips per logical inch;
567 twips per logical centimeter).
Point (72 points per logical inch).

vbTwips

vbPixels

Pixel (smallest unit of monitor or printer resolution).

vbCharacters

vbInches
vbMillimeters
vbCentimeters
vbHimetric
vbContainerPosition

5
6
7
8
9

vbContainerSize

10

Character (horizontal = 120 twips per unit;


vertical = 240 twips per unit).
Inch.
Millimeter.
Centimeter.
HiMetric
Units used by the control's container to determine
the control's position.
Units used by the control's container to determine
the control's size.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 281

Chi tit v thuc tnh miu t mu

Mi mu ch TrueColor c tng hp t 3 thnh phn mu c bn Red Green - Blue. Trng s ca mi thnh phn mu c miu t bi 1 gi tr Byte
(t 0 n 255). Xc nh 1 mu l xc nh 3 thnh phn mu ca n.
Cc thuc tnh BackColor, ForeColor, FillColor c gi tr miu t mu dng RGB
vi qui nh sau :
Color
Red Value
Green Value
Blue Value
Black
0
0
0
Blue
0
0
255
Green
0
255
0
Cyan
0
255
255
Red
255
0
0
Magenta
255
0
255
Yellow
255
255
0
White
255
255
255
Th d ta vit lnh gn : Form1.BackColor = RGB(0,0,0) thit lp mu nn
ca form tn Form1 l mu en.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 282

141

Chi tit v thuc tnh miu t mu (tt)

Nu ch mun dng 1 trong 16 mu c bn ca QBasic (version Basic u tin


ca Microsoft chy trn DOS), ta c th dng hm QBColor. Bng sau lit k
16 mu c bn ny :
Number
Color
Number
Color
0
Black
8
Gray
1
Blue
9
Light Blue
2
Green
10
Light Green
3
Cyan
11
Light Cyan
4
Red
12
Light Red
5
Magenta
13
Light Magenta
6
Yellow
14
Light Yellow
7
White
15
Bright White
Th d ta vit lnh gn : Form1.BackColor = QBColor(15) thit lp mu nn
ca form tn Form1 l mu trng sng.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 283

Chi tit v thuc tnh mu t nn

Thuc tnh FillStyle c gi tr miu t 1 mu t nn vi qui nh sau :


Constant
Setting
Description
VbFSSolid
0
Solid
VbFSTransparent
1
(Default) Transparent
VbHorizontalLine
2
Horizontal Line
VbVerticalLine
3
Vertical Line
VbUpwardDiagonal
4
Upward Diagonal
VbDownwardDiagonal
5
Downward Diagonal
VbCross
6
Cross
VbDiagonalCross
7
Diagonal Cross
Th d ta vit lnh gn : Form1.FillStyle = VbVerticalLine thit lp mu t
nn ca cc phn t trong form l cc ng thng ng.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 284

142

Chi tit v thuc tnh mu v ng vin

Thuc tnh DrawStyle c gi tr miu t 1 mu v ng vin vi qui nh sau :


Constant
Setting
Description
VbSolid
0
(Default) Solid
VbDash
1
Dash
VbDot
2
Dot
VbDashDot
3
Dash-Dot
VbDashDotDot
4
Dash-Dot-Dot
VbInvisible
5
Transparent
VbInsideSolid
6
Inside Solid

Th d ta vit lnh gn : Form1.DrawStyle = VbDash thit lp mu v ng


vin ca cc phn t trong form l cc ng gch-gch di.
Lu thuc tnh DrawStyle ch c ngha theo bng trn khi ta thit lp thuc
tnh DrawWidth = 1. Trong trng hp DrawWidth > 1 th DrawStyle <> 5 u
to ra nt v lin tc.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 285

Function PaintPicture : v nh bitmap bt k

Mi i tng v c method PaintPicture cho php ta v nh bitmap bt k. C


php nh sau :
[objName.]PaintPicture picture, dx, dy, dw, dh, sx, sy, sw, sh, opcode
trong :
objName l tn ca Form, PictureBox hay Printer, nu khng c th form
hin hnh c v.
picture l nh bitmap gc c dng v.
dx, dy l to nh trn tri ca vng cha nh v trong i tng v.
dw, dh l rng, cao ca vng cha nh v trong i tng v.
sx, sy l to nh trn tri ca vng cha nh trong nh gc.
sw, sh l rng, cao ca vng cha nh trong nh gc.
opcode miu t hnh vi a nh gc vo i tng v, ta thng dng cc
m sau :
vbSrcCopy : copy nh gc vo v tr qui nh ca i tng v.
vbSrcPaint : Or tng pixel nh gc vi tng bit i tng v tng ng.
vbSrcInvert : Xor tng pixel nh gc vi tng bit i tng v tng ng.
vbSrcAnd : And tng pixel nh gc vi tng bit i tng v tng ng...
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 286

143

Th d v vic dng function PaintPicture


To 1 form trng, 'add' iu khin PictureBox cha nh gc vo form, set thuc tnh Visible
= False, thuc tnh Picture = n dn file nh, ri vit on code sau cho form :
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Form_Load()
AutoRedraw = False
' VB gi hm x l bin c Paint
End Sub
Private Sub Form_Paint()
' hin th nh chy t t sang phi
Dim x As Integer, y As Integer
ScaleMode = vbPixels
' n v tnh ca form l pixel
Picture1.ScaleMode = vbPixels
' n v tnh nh gc l pixel
x=0
' thit lp v tr u ca nh
y = 50
While True
PaintPicture Picture1, x, y, 60, 60, 0, 0, , , vbMergePaint
' v nh v tr x,y
DoEvents
' cho php ng dng p ng s kin
Sleep (10)
' ng ch 10ms
Line (x, y)-(x + 60, y + 60), BackColor, BF
' xa nh va v
x=x+4
' di chuyn v tr v bn phi 4 pixel
If (x - 60 > ScaleWidth) Then x = 0
' nu nh t l phi th set v tri
Wend
End Sub
Mn : Tin hc

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Slide 287

10.5 Vn in n trong VB

Trong chng trnh VB, ta c th in thng tin ra my in bng cch dng 1 trong
3 cch sau :
dng cc method v vn bn, ha v nh bitmap ln 1 form theo mun
ri gi method PrintForm in form kt qu ra my in. y l cch d dng
nht kim tra kt qu trc khi in ra giy thc s, nhng kt qu c
phn gii khng cao (v trng vi phn gii ca mn hnh).
dng cc method v vn bn, ha v nh bitmap theo mun trc tip
ln i tng Printer cng 2 method iu khin NewPage & EndDoc xut
kt qu trc tip ra my in default ca Windows. Cch ny cho kt qu c
phn gii ng vi my in (thng rt cao so vi phn gii mn hnh).

dng lnh Set Printer = Printers(n) chn my in c th trong danh sch


cc driver my in hin c ca Windows ri dng cc method v vn bn,
ha v nh bitmap theo mun trc tip ln i tng Printer cng 2
method iu khin NewPage & EndDoc xut kt qu trc tip ra my in
va chn.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 10: Tng tc gia ngi dng & chng trnh
Slide 288

144

MN TIN HC
Chng 11

QUN L H THNG FILE


11.1 Tng qut v truy xut file trong VB
11.2 Qui trnh in hnh truy xut Binary file
11.3 Qui trnh in hnh truy xut Random file
11.4 Qui trnh in hnh truy xut Sequential file
11.5 Cc hm truy xut thuc tnh file
11.6 Cc lnh x l th mc
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 289

Tng qut v thi gian sng ca bin d liu

Chng trnh x l d liu thng qua cc bin d liu. Nh ta bit,


mi bin d liu ch c i sng ngn ngi : hoc bng i sng ca 1
th tc, hoc bng i sng ca 1 module (hay i tng) hoc cao nht
l bng thi gian chy ng dng, t lc ng dng c np vo b nh
trong n lc chng trnh kt thc thc thi.
lu gi gi tr ca 1 s bin hu trao i d liu gia 2 ng dng khc
nhau hay gia 2 ln chy khc nhau ca cng 1 ng dng, ta s ghi gi
tr cc bin ny ra mi trng cha tin bn vng trn nhng n v cha
tin c lp c gi l file.
Trong chng 2, chng ta trnh by cc khi nim v file, cch t
chc a cng thnh cy phn cp cc file cng nh cc thao tc qun l
h thng file trc tip bi ngi dng.
Trong chng ny ta s nghin cu chi tit cc phng tin m VB cung
cp thc hin cc thao tc qun l h thng file, c bit l vic truy
xut ni dung ca file, t trong code ca ng dng VB.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 290

145

Cu trc file

cp HH, file l danh sch gm n byte cha c ng ngha.


Chnh ng dng phi t qui nh cu trc c th ca file mnh to
ra/c li v ng ngha ca tng n v cu trc ny.
VB cung cp cho ng dng 3 dng file khc nhau, ng vi mi
dng file c 1 cch thc truy xut d liu tng ng :
file tun t (Sequential File) hay file vn bn l danh sch gm n
byte, mi byte l 1 k t ANSI. Th d file source code ca cc class
VB *.bas.
file nh phn (Binary File) l danh sch gm n byte nh phn cha c
cu trc. Th d file Word, file Excel, file kh thi - executable.
file truy xut trc tip (Random File) l danh sch gm n record c
cng di, mi record cha nhiu field thng tin. Th d file cha
cc h s sinh vin.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 291

Tng qut v qun l h thng file trong VB

VB cung cp cho ngi lp trnh 2 phng php khc nhau qun l


h thng file :
gi cc th tc truyn thng nh Open, Close, Input, Write, Get,
Put... Ta c th gi cc th tc ny l cc lnh VB.
dng m hnh i tng FSO (File System Object). Vi phng
php ny, u tin ngi lp trnh s to ra i tng
FileSystemObject ri mi khi cn qun l h thng file, h ch cn gi
method tng ng ca i tng trn.
Mc d FSO l phng php hng i tng, rt thn thin v d dng,
nhng hin FSO cha mnh, ch cho php truy xut file text -vn bn,
ch cha cho php truy xut 2 dng file Binary v Random. Do trong
chng ny chng ta ch tp trung gii thiu phng php dng cc th
tc truyn thng truy xut file. Sau ny khi c iu kin, mi SV s t
nghin cu thm cch dng m hnh FSO.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 292

146

11.1 Tng qut v truy xut file trong VB

Qui trnh truy xut 1 file trong VB gm 3 bc chnh :


m/to file (gi th tc Open) : khai bo cho h thng bit ta sp sa
truy xut 1 file c xc nh bi ng dn c th cng cc ch
truy xut file c th.
lp truy xut file thng qua vic gi cc th tc Input, Get, Write,
Put,... Thng mi th tc trn ch truy xut 1 n v thng tin nh
ca file nn ta phi lp nhiu ln n khi ht file, tuy nhin ta c
quyn c/ghi ton b ni dung file vo/ra b nh.
ng file (gi th tc Close) : khai bo cho h thng bit ta khng
cn mun truy xut file na h thng cm khng cho bt k lnh
no trong ng dng ca ta truy xut file na.

gip cc bn d dng tip thu thng tin, chng ti s trnh by


qui trnh truy xut file chi tit trn tng loi file c th : Text file,
Random file v Binary File.
Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 293

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Bng cc lnh VB truy xut file


Tn pht biu

Sequential File

Random File

Binary File

Open

Close

Input #

Line Input #

Print #

Write #

Input ()

Type .... EndType

Put

Get

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 294

147

Bng cc function truy xut file

Dir : duyt cc phn t trong 1 th mc


FileCopy : nhn bn v tnh 1 file thnh file mi
FileDateTime : c/hiu chnh ngy/gi hiu chnh file ln cui
FileLen : xc nh di file cha m
FreeFile : xc nh ch s file cn trng c th dng an ton
Loc : xc nh v tr truy xut hin hnh trong file
LOF : xc nh di file m
Seek : xc nh/thit lp v tr truy xut file
GetAttr : c thuc tnh file
SetAttr : ghi thuc tnh file

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 295

11.2 Qui trnh in hnh truy xut Binary file

C php lnh open file nh phn nh sau :


Open pathname For Binary As filenumber
Nu cha bit cu trc d liu ca file, nn dng bin dy cc byte
c/ghi d liu t/ra file nh phn. Nu bit cu trc d liu ca file,
nn khai bo kiu d liu miu t cu trc ri khai bo bin c kiu
va nh ngha cha thng tin c t file vo.
Dng lnh Seek [#]filenumber, position di pointer c/ghi ti v tr
xc nh trc khi truy xut.
Dng lnh Get [#]filenumber, [position], AVariable c d liu t v tr
position ri cha vo bin AVariable. S byte c c = kch thc ca
bin d liu.
Dng lnh Put [#]filenumber, [position], AVariable ghi ni dung ca
bin AVariable ra file t v tr position. S byte c ghi = kch thc ca
bin d liu.
Sau khi x l xong file, ta dng lnh Close [#]filenum ng file li.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 296

148

Th d truy xut Binary file

Mi file kh thi (executable) u c 1 header di 20h (32) byte vi cc field nh


sau :
Index
Field
Din gii
0
Magic
Chui 2 k t magic "MZ"
...
...
cc field khc cha cn ch
18h
Offset
Offset ti bng ti nh chng trnh stub
Nu gi tr field Offset (2 byte) offset 18h (24) c gi tr l 40h (64) th file
tng ng l file executable trn Windows (*.exe, *.dll, *.ocx, *.scr, *.drv,...). Cn
nu gi tr Offset < 40h th file tng ng l file *.exe chy trn DOS.
Da vo Header trn, ta th vit 1 ng dng cho php user chn ng dn
ca 1 file bt k ri kim tra tnh cht ca file v hin th kt qu :
Khng phi file executable
File executable chy trn DOS
File executable trn Windows (*.exe, *.dll, *.ocx, *.scr, *.drv,...).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 297

Giao din ngh ca th d truy xut Binary file


Textbox hin th ng
dn file cn kho st.
Button duyt v chn
file.
Textbox cha kt qu
kho st.

CommonDialog duyt file (b n)

Option Explicit
' Th tc x l s kin Click button
Private Sub cmdBrowse_Click()
CommonDialog1.ShowOpen
' hin th ca s duyt v chn file
txtFileName.Text = CommonDialog1.FileName
CheckFileClass (txtFileName.Text)
End Sub
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 298

149

Chi tit hm kim tra loi file


Private Sub CheckFileClass(strFileName As String)
Dim FileNum As Integer
Dim strMagic As String * 2
Dim intOffset As Integer
FileNum = FreeFile
' Tm ch s file cha dng v m file
Open strFileName For Binary As FileNum
Get FileNum, 1, strMagic
' c 2 chui 2 k t magic u file
If strMagic <> "MZ" Then
txtFileClass.Text = "Khong phai file executable"
Exit Sub
End If
Get FileNum, &H19, intOffset
' c word Offset ti chng trnh Stub
If intOffset < &H40 Then
txtFileClass.Text = "File executable tren MSDOS"
Else
txtFileClass.Text = "File executable tren Windows (*.exe, *.dll, *.ocx,...)"
End If
Close #FileNum
End Sub
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 299

11.3 Qui trnh in hnh truy xut Random file

C php lnh open file Random nh sau :


Open pathname [For Random] As filenumber Len = reclength
Phi khai bo kiu d liu miu t cu trc ca tng record d liu c
c/ghi ri khai bo bin c kiu va nh ngha cha thng tin c t
/ghi ra file.
Dng lnh Seek [#]filenumber, position di pointer c/ghi ti v tr
record xc nh.
Dng lnh Get [#]filenumber, [position], AVariable c d liu t v tr
position ri cha vo bin AVariable. S byte c c = kch thc ca
record d liu.
Dng lnh Put [#]filenumber, [position], AVariable ghi ni dung ca
bin AVariable ra file t v tr position. S byte c ghi = kch thc ca
bin record d liu.
Sau khi x l xong file, ta dng lnh Close [#]filenumber ng file
li.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 300

150

Th d truy xut Random file


Type SVRecord
hoten As String *30
tuoi As Byte
diachi As String *50
lop As String*10
...
End Type
Dim MyRecord As Record ' nh ngha bin cha tng record ca file.
Dim MaxSize As Long, RecordNumber As Long
' 1. m file ch random-file.
Open "HosoSinhvien" For Random As #1 Len = Len(MyRecord)
MaxSize = LOF(1) \ Len(MyRecord) ' Tnh s record trong file.
' 2. lp c tng record t cui file ln u file
For RecordNumber = MaxSize To 1 Step - 1
Seek #1, RecordNumber ' thit lp v tr truy xut.
Get #1, , MyRecord ' c record.
' X l record va c vo
...
Next RecordNumber
' 3. ng file.
Close #1
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 301

11.4 Qui trnh in hnh truy xut Sequential file

C php lnh open file Sequential nh sau :


Open pathname [Input | Output | Append] As filenumber [Len =
buffersize]
Nu file c m ch Input & cha tn ti th li sai xy ra. Nu file
c m ch Output | Append & cha tn ti th h thng s to ra
file mi.
Dng lnh Line Input #filenumber, varname c 1 hng vn bn t
file (kt thc bi k t CR - Carriage Return hay CRLF).
Dng lnh Input #filenumber, varlist c cc chui hay s t file
(c trnh by chi tit trong slide k).
Dng hm Input(number, [#]filenumber) c 1 chui t file (c
trnh by chi tit trong slide k).
Dng lnh Write #filenumber, [outputlist] ghi cc chui hay s ra file
(c trnh by chi tit trong slide k).
Sau khi x l xong file, ta dng lnh Close [#]filenum ng file li.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 302

151

Chi tit v lnh Input #

C php : Input #filenumber, varlist


trong varlist l danh sch cc bin cha gi tr chui hay s cn
c, cc bin trong danh sch c ngn cch bng du ','.
Cch thc x l d liu trn file nhp :
Dng d liu trn file
Gi tr nhn c
du ',' hay dng trng
Empty
#NULL#
Null
#TRUE# hay #FALSE#
True hay False
#yyyy-mm-dd hh:mm:ss#
Ngy/gi
#ERROR errornumber#
m li errornumber
"abcdef"
chui abcdef
1254.386
gi tr 1254.386
Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 303

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Chi tit v hm Input

Ngoi lnh Input va gii thiu slide trc, VB cung cp thm hm


Input vi c t sau : Input number, [#]filenumber
trong number l s k t ANSI cn c t file filenumber.
Khc vi lnh Input, kt qu tr v ca hm Input gm mi k t th trn
file k c cc k t iu khin CR, LF, khong trng, ",", nhy kp...
Ch dng hm Input trn cc file c m ch Input | Binary.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 304

152

Chi tit v lnh Write #

C php : Write #filenumber, [outputlist]


trong outputlist l danh sch cc biu thc cha gi tr chui hay s
cn ghi, cc biu thc trong danh sch c ngn cch bng du ','.
Cch thc x l in d liu ra file :
Kiu d liu
Kt qu c ghi trn file
outputlist ch c du ','
dng trng (CRLF)
Null
#NULL#
lun l
#TRUE# hay #FALSE#
Date
#yyyy-mm-dd hh:mm:ss#
m li errornumber
#ERROR errornumber#
chui abcdef
"abcdef"
s
chui miu t s dng du '.'
Cc kt qu in c ngn cch vi nhau bi du ',' trn file xut.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 305

Th d truy xut Sequential file

Ta th vit ng dng cho php user chn ng dn ca 1 file text-only ri m


s t c cha trong file ny. Gi s mi t l 1 chui k t ch s (a-z hay 09) bt k c ngn cch nhau bi cc k t khng phi l ch s.
Textbox hin th ng
dn file cn kho st.
Button duyt v chn
file.
Textbox cha s t
trong file.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Option Explicit
' Th tc x l s kin Click button Browse
Private Sub cmdBrowse_Click()
CommonDialog1.ShowOpen
txtFileName.Text = CommonDialog1.FileName
txtWordCount.Text = WordCount(txtFileName.Text)
End Sub
Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 306

153

Chi tit hm m t trong file


Private Function WordCount(strFileName As String) As Long
Dim lngWcount As Long, FileNum As Integer, Char As String * 1
FileNum = FreeFile
' Tm ch s file cha dng v m file
Open strFileName For Input As FileNum
lngWcount = 0
Do While Not EOF(FileNum)
' Lp n ht file.
Do
' tm cc du ngn trc 1 t mi
Char = Input(1, #1)
Char = LCase(Char)
Loop Until ("a" <= Char And Char <= "z") Or ("0" <= Char And Char <= "9")_
Or EOF(FileNum)
If EOF(FileNum) Then GoTo CloseRet
lngWcount = lngWcount + 1 ' tng s t ln 1
Do
' tm v b cc k t ca t hin hnh
Char = Input(1, #1)
Char = LCase(Char)
Loop Until Not (("a" <= Char And Char <= "z") Or ("0" <= Char And Char <= "9"))_
Or EOF(FileNum)
If EOF(FileNum) Then GoTo CloseRet
Loop
CloseRet:
WordCount = lngWcount
Close #FileNum
End Function
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 307

Cc hm xc nh v tr truy xut trong file

Hm Loc (filenum) tr v v tr truy xut hin ti trong file filenum.


Mode
Return Value
Random ch s record c/ghi ln cui cng.
Binary
ch s byte c/ghi ln cui cng.
Output
ch s byte c/ghi ln cui cng /128
| Append (nhng thng khng dng kt qu ny)
| Input

V d : Dim MyChar As Byte


Open "TestFile" For Binary As #1 ' m file c/ghi.
Do While Not EOF(1) ' lp cho n ht file.
MyChar = Input(1, #1) ' c byte k tip.
Debug.Print Loc(1) ' hin th v tr byte va c c
Loop
Close #1 ' ng file.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 308

154

Cc hm xc nh v tr truy xut trong file (tt)

Hm Seek (filenum) tr v v tr truy xut k tip trong file filenum.


Mode
Return Value
Random
hot ng truy xut k tip s xy ra v tr record ny
Binary
hot ng truy xut k tip s xy ra v tr byte ny
| Output, v tr byte u tin l 1, k tip l 2...
| Append
| Input

V d : Dim MyChar As Byte


Open "TestFile" For Input As #1 ' m file c.
Do While Not EOF(1) ' lp cho n ht file.
MyChar = Input(1, #1) ' c k t (byte) k tip.
Debug.Print Seek(1) ' hin th v tr byte s c k tip
Loop
Close #1 ' ng file.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 309

Cc hm xc nh v tr truy xut trong file (tt)

Lnh Seek [#]filenumber, position thit lp v tr truy xut k tip trong


file filenum.
Mode
Return Value
Random
hot ng truy xut k tip s xy ra v tr record position
Binary
hot ng truy xut k tip s xy ra v tr byte position
| Output, v tr byte u tin l 1, k tip l 2...
| Append
| Input

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 310

155

11.5 Cc hm truy xut thuc tnh file

Hm FileDateTime (pathname) tr v ngy/gi hiu chnh ln cui ca


file xc nh bi thng s pathname.
V d :
Dim MyStamp As Date
MyStamp = FileDateTime ("c:\windows\win.com")
Hm GetAttr (pathname) tr v byte thuc tnh ca file xc nh bi
thng s pathname. Th t cc bit thuc tnh trong byte thuc tnh nh
sau :
Gi tr
Tn hng gi nh Din gii
0
vbNormal
Normal
1
vbReadOnly
file ch c
2
vbHidden
file n
4
vbSystem
file h thng
8
vbVolume
tn nhn a
16
vbDirectory
th mc
32
vbArchive
file b thay i t ln backup cui
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 311

Cc hm truy xut thuc tnh file (tt)


V d :

If GetAttr ("c:\windows\win.com") And vbReadOnly Then


MsgBox "c:\windows\win.com l file ch c"
End If
Hm SetAttr pathname, attributes thit lp thuc tnh ca file xc nh
bi thng s pathname theo byte attributes.
V d : on code sau s thit lp thuc tnh ca file c:\windows\win.com
v read-only.
Dim bytFileAttr As Byte
bytFileAttr = GetAttr ("c:\windows\win.com")
bytFileAttr = bytFileAttr Or vbReadOnly
' Or bitwise
SetAttr "c:\windows\win.com", bytFileAttr

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 312

156

Cc hm truy xut thuc tnh file (tt)

Hm FreeFile [(rangenumber)] tr v 1 s thuc kiu Integer miu t


ch s file cha c dng ( ta dng an ton). Thng khng cn
dng tham s khi gi hm ny.
Hm LOF (#filenum) tr v 1 gi tr thuc kiu Long miu t kch thc
ca file c m v hin c xc nh bi thng s #filenum.
V d : Dim lngFileSize As Long, filenum As Integer
filenum = FreeFile
Open "c:\windows\win.com" For Input As #filenum
' m file
lngFileSize = LOF (filenum)
' ly kch thc file m #1
...
Close #1
' ng file
Hm FileLen (pathname) tr v 1 gi tr thuc kiu Long miu t kch
thc ca file xc nh bi thng s pathname.
V d : Dim lngFileSize As Long
lngFileSize = FileLen ("c:\windows\win.com")
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 313

Lnh nhn bn v xa file

Lnh FileCopy SourcePath, DestPath.


nhn bn file SourcePath ra file DestPath. Khng c m file ri nhn
bn n.
V d : FileCopy c:\autoexec.bat c:\backup\autoexec.bat
Lnh Kill pattern
xa t 0 n n file c tn tha mn mu pattern (dng k t * v ?
miu t).
V d : Kill "c:\windows\*.tmp"

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 314

157

11.6 Cc lnh x l th mc

Lnh MkDir pathname : to th mc mi.


V d : MkDir "c:\windows\temp"
Lnh RmDir pathname : xa th mc trng c tn l pathname, nu th
mc cha trng th phi dng lnh Kill v/hoc RmDir xa cc file v
th mc con ca n trc.
V d : RmDir "c:\windows\tmp"
Hm CurDir [(drive)] : tr v ng dn ca th mc lm vic ca a
hin hnh (hoc ca a c xc nh bi thanh s).
V d : MyPath = CurDir ' tr v "c:\windows" nu ta ang lm vic
y.
Lnh ChDir pathname : chuyn th mc lm vic ca a hin hnh
v v tr qui nh bi tham s.
V d : ChDir "c:\windows\tmp"
Lnh ChDrive drive : chuyn a hin hnh v a c xc nh
trong tham s.
V d : ChDrive "e"
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 315

Hm duyt cc phn t trong 1 th mc

C php : Dir [(pattern[, attributes])]


trong pattern xc nh mu cc phn t cn tm, attributes miu t
byte thuc tnh ca phn t cn tm.
Nu c tham s pattern th hm Dir s tr v ng dn ca phn t
u tin tm c (hay chui rng nu khng tm c), nu khng c
pattern th hm Dir tr v ng dn ca phn t k tip tha pattern
c xc nh ln cui.
ngha cc bit trong byte attributes c trnh by trong silde 261.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 316

158

Th d xa file qui

Trong lc hot ng, cc ng dng thng to ra cc file tm c phn


ni rng l *.tmp, *.bak,... Khi kt thc, ng dng s xa cc file tm i.
Tuy nhin trong 1 s trng hp c bit (my treo, mt in,...) cc file
tm khng c xa ht v vn tn ti trn a cng nhiu th mc
khc nhau. Ta hy th vit 1 ng dng cho php user xc nh mu cc
file cn xa ri tm cc file tha mn mu qui nh v xa chng, vic
tm v xa nn qui t v tr mu xa trit . Th d nu ngi
dng nhp pattern c:\*.tmp, ng dng s tm v xa mi file *.tmp t th
mc gc.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 317

Giao din ngh ca ng dng


DriveListBox chn
a.
DirListBox chn th
mc.
TextBox nhp
pattern file cn xa.
Button bt u
duyt file qui v
xa.
ListBox hin th cc
file b xa.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 318

159

Code ca ng dng xa file qui


Const QMAX = 10000
Dim strDirQueue(0 To QMAX) As String
Dim iHead As Integer
Dim iTail As Integer

' Hng cha cc th mc cn duyt


' ch s trong hng cha th mc sp duyt
' ch s trong hng sp cha th mc cn duyt

Private Sub Form_Resize()


ScaleMode = vbPixels
Dir1.Move 8, 45, 170, Me.ScaleHeight - 50
FileList.Move 180, 70, Me.ScaleWidth - 185, Me.ScaleHeight - 75
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub

' th tc x l s kin chn a

Private Sub Dir1_Change()


If (Right(Dir1.Path, 1) = "\") Then
strDirQueue(0) = Dir1.Path
Else
strDirQueue(0) = Dir1.Path & "\"
End If
End Sub

' th tc x l s kin chn th mc

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 319

Code ca ng dng xa file qui (tt)


' Th tc x l s kin Click button Start
Private Sub cmdStart_Click()
Dim bytPredIdx As Byte
Dim bytCurIdx As Byte
Dim strTmp As String
bytPredIdx = 0
bytCurIdx = 1
iHead = 0
iTail = 1
While iHead < iTail
Call DuyetXoaFileDequi
iHead = iHead + 1
If (iHead > QMAX) Then iHead = 0
Wend
End Sub

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 320

160

Code ca ng dng xa file qui (tt)


Private Sub DuyetXoaFileDequi()
Dim Name As String, Path As String, strFilePath As String, intAttr As Integer
Path = strDirQueue(iHead)
Name = Dir(Path, vbDirectory)
' ly 1 phn t tha mn pattern
Do While Name <> ""
' Lp x l phn t, nu cn.
If Name <> "." And Name <> ".." Then ' b th mc hin hnh v cha ca n
strFilePath = Path & Name
intAttr = GetAttr(strFilePath)
If (intAttr And vbDirectory) = vbDirectory Then
' nu l th mc th lu gi vo hng
strDirQueue(iTail) = strFilePath & "\"
iTail = iTail + 1
If (iTail > QMAX) Then iTail = 0
Else
' nu l file kim tra xem tha pattern khng
If LCase(Name) Like txtPattern.Text Then
intAttr = intAttr And Not vbReadOnly
SetAttr strFilePath, intAttr
Kill strFilePath
FileList.AddItem strFilePath
End If
End If
End If
Name = Dir ' ly phn t k tha mn pattern.
Loop
End Sub
Mn : Tin hc
Chng 11 : Qun l h thng file
Slide 321

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

MN TIN HC
Chng 12

LINH KIN PHN MM


& TRUY XUT DATABASE
12.1 Tng qut v linh kin phn mm
12.2 Cch to v dng linh kin phn mm
12.3 Tng qut v truy xut database
12.4 Tng qut v debug m ngun VB

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 322

161

12.1 Tng qut v linh kin phn mm

Mc tiu ca qui trnh pht trin phn mm hng i tng l to ra


ng dng c cu trc thun nht : tp cc i tng sng v tng tc
ln nhau.

Mi i tng ca ng dng c th c to ra nh 1 trong cc cch


sau :

chn menu Project.Add Class Module to ra 1 class module mi miu


t cu trc chi tit ca i tng cn to ra : cc thuc tnh d liu v cc
method ca i tng.
chn menu Project.Add File ri khai bo ng dn ca file *.bas cha 1
class module ca 1 ng dng c sn copy class module ny vo
Project ng dng hin ti (y l 1 phng php tha k thnh qu).
s dng cc iu khin sn c ca VB xy dng form giao din.
'add' module *.ocx cha 1 hay nhiu ActiveX Control ang c Windows
qun l vo Project ng dng hin ti dng chng y nh cc iu khin
sn c ca VB.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 323

12.2 Cch to v dng linh kin phn mm

VB cho php to linh kin phn mm ActiveX Control nh 1 trong 3 loi


Project ActiveX EXE, ActiveX DLL v ActiveX Control. Tuy nhin qui
trnh chi tit to ActiveX Control vt qu khun kh ni dung ca
mn hc ny.

Vic dng ActiveX Control cng ging nh dng control nh sn ca


VB, ta t chng 1 cch trc quan vo cc form giao din vi kch thc
v v tr ph hp vi nhu cu. Khi vit code, ta c th truy xut cc
thuc tnh d liu v cc method ca ActiveX Control y nh truy xut
cc thnh phn trong control nh sn.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 324

162

Qui trnh 'add' 1 ActiveX Control vo Project


dng 1 linh kin phn mm ActiveX Control trong 1 form ca Project ng dng,
trc ht ta phi thm n vo ca s Toolbox ca Project theo qui trnh in hnh
sau y :
1. n phi chut vo v tr
trng ca Toolbox, chn
mc Components

2. chn tab Controls, duyt v chn mc tng ng, chn OK.


3. Ca
s
Toolbox
s cha
cc icon
miu t
cc Act.
Control
trong
module
va
chn.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 325

Th d v cch dng ActiveX Control

thy vic dng ActiveX Control hu xy dng phn mm d dng


nh th no, chng ta hy th vit 1 trnh duyt Web vi chc nng
tng t nh IE ca Microsoft, ta tm gi ng dng sp vit ny l
MyIE.

Vic vit phn mm duyt Web t u rt kh khn v bn cn phi


trang b nhiu kin thc nh : k thut hin th vn bn v ha, k
thut tng tc vi ngi dng thng qua bn phm v chut, k thut
v qui trnh vit 1 chng trnh dch, lp trnh mng dng socket, giao
thc truy xut ti nguyn Web HTTP (Hypertext Transfer Protocol),
ngn ng DHTML,...

Nhng ton b cc cng vic m 1 trnh duyt Web cn lm c


Microsoft ng gi trong 1 linh kin phn mm tn l WebBrowser.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 326

163

Th d v cch dng ActiveX Control (tt)

ActiveX Control "WebBrowser" l 1 i tng giao din ch cha 1 vng hin th


ni dung hnh ch nht vi v tr v kch thc do ngi lp trnh qui nh.
Interface ca n bao gm 3 loi : cc thuc tnh interface (khong 27), cc
method (khong 12) v cc s kin (khong 16) m ngi dng c th lp trnh
th tc p ng cho chng. y chng ta s gii thiu 1 s method m ta
dng trong vic vit ng dng MyIE :
Navigate2 (URL,...) cho php download trang Web hay file *.doc, *.xls,
*.ppt,... c xc nh bi URL, hin th ni dung ca n ln vng hin th
ri ch v x l s tng tc ca ngi dng (n vo vng lin kt,...).
GoBack cho php quay v trang Web va truy xut (ngay trc trang hin
hnh).
GoForward cho php tin ti trang Web (ngay sau trang hin hnh).
GoHome cho php hin th trang ch.
Refresh cho php download v hin th li trang hin hnh.
Stop cho php dng ngay vic download v hin th trang Web hin hnh.
ExecWB cho php thc thi 1 s hnh vi trn trang web nh thay i co ch,
in trang Web ra my in,...
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 327

Giao din ngh ca trnh MyIE

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 328

164

Chi tit cc option trong menu v toolbar (tt)

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 329

Phn tch & thit k giao din

Trnh MyIE c giao din SDI gm 1 menu bar, 1 toolbar, 1 ComboBox lit k
cc URL va truy xut, 1 ActiveX Control "WebBrowser" x l vic truy xut,
hin th cc trang Web v ch phc v cc tng tc ca ngi dng. Qui trnh
chi tit xy dng ng dng MyIE s c trnh by trong bi thc hnh s 4,
y ch tm tt cc bc chnh :
To project loi "VB Application Wizard" v tr li cc bc Wizard to
Project.
Chn Tools.Menu Editor to menu bar theo c t ca slide trc. Qui
trnh dng Menu Editor c gii thiu trong chng 4.
Cng c li chng 4 bit qui trnh to/hiu chnh Toolbar.
to (v) ComboBox nhp URL mi v lit k cc URL truy xut.
to (v) control "WebBrowser". Khng cn v ComboBox v WebBrowser
chnh xc v code s xc nh ng mi ln ca s chng trnh thay i.
to th tc x l s kin cho cc menu option v toolbar button ri vit code
cho chng. Code ca cc th tc ny ch yu lm "c" v gi cc method
tng ng trong i tng WebBrowser thc thi.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 330

165

Phn tch & thit k giao din (tt)

Lu rng trc khi thit k c giao din ca trnh MyIE, bn cn 'add' cc


linh kin ActiveX Control sau y :
Microsoft Common Dialog Control 6.0.
Microsoft Internet Control.
Microsoft Windows Common Controls 6.0.

Lu rng qui trnh Wizard cho loi Project SDI to sn cho ta 1 form ca
chng trnh tn l frmMain. Form ny cha sn 1 menu bar, 1 Toolbar.
Chng ta ch cn hiu chnh li 2 thnh phn ny ch khng cn phi to mi
chng.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 331

12.3 Tng qut v truy xut database

Trong chng 11, chng ta gii thiu qui trnh truy xut d liu trn cc file.
Mt trong cc dng file gii thiu l Random File, file ny l danh sch cc
record d liu c cu trc v di ging nhau, mi record cha nhiu field d
liu, th d file cha cc h s sinh vin, file cha cc h s nh, file cha cc
h s ng x...

Hu ht cc ng dng hin nay (nht l cc ng dng nghip v) u phi truy


xut cc random file. Vic qun l cc random file bao gm nhiu tc v nh
to file mi vi cu trc record c th, thm/bt/hiu chnh/duyt cc record,
tm kim cc record tha mn 1 tiu chun no ,... thc hin cc tc v
trn (nht l tm kim record) hiu qu, tin cy, ta cn nhiu kin thc khc
nhau v phi tn nhiu cng sc.

Random file (vi 1 s s ci tin v tng cng) c gi l database quan h.


C nhiu format database quan h khc nhau ang c dng. gii phng
cc ng dng khi vic qun l database, ngi ta xy dng ng dng c
bit : DBMS (Database Management System). ng dng s nh DBMS truy
xut database c d dng.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 332

166

Cc giao tip lp trnh truy xut database

V nguyn tc, ng dng VB (hay vit bng ngn ng khc) c th truy xut 1
database bng 1 trong cc giao tip lp trnh sau y :
ADO (ActiveX Data Objects)
DAO (Data Access Objects)
ODBC (Open Database Connectivity)
DBMS-Specific Language
Direct to database (file)

Trong cc giao tip truy xut database trn ch c ADO l d dng hn c, i


a s trng hp ta ch to trc quan cc ActiveX Control v khai bo cc
thuc tnh ca chng l truy xut c database m khng cn vit code.
Trong trng hp phi vit code th cng rt ngn v d dng.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 333

Truy xut database dng ADO thng qua cc ActiveX Control

Truy xut database dng ADO thng qua cc ActiveX Control l phng php
truy xut database trc quan v d dng nht.

a s cc database trn Windows do Access to ra trong mi file database


cha nhiu table, mi table l danh sch n record c cu trc chung no .
Qui trnh in hnh truy xut cc record ca 1 table trong 1 database Access c
th dng cc i tng sau :

Dng i tng ADODB trong th vin "Microsoft ActiveX Data Objects 2.x
Library" c th lit k cc table trong 1 database Access.

Dng i tng Microsoft Data Control 6.0 qun l 1 RecordSet cha tp


cc record ca 1 table tha mn 1 iu kin no .

Dng i tng Microsoft DataGrid Control 6.0 hin th cc record ca 1


Data Control v cho php user thm/bt/hiu chnh cc record.

thy r vic truy xut database l rt d dng, ta hy vit 1 ng dng truy


xut database dng Access c giao din nh slide sau :

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 334

167

Giao din ngh ca ng dng truy xut database


TextEdit qui nh file
cn truy xut.
ComboBox lit k
cc Table trong file.
ADODC qun l cc
record tha mn 1
iu kin mong
mun (c th n ).
DataGrid hin th
cc record trong
ADODC user
kho st v hiu
chnh.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 335

Qui trnh xy dng ng dng ca slide trc

Ta c th to project dng "Standard EXE", dng cc iu khin trong Form


ta cn 'add' cc ActiveX Control sau vo Project :
Microosft Data Control 6.0 qun l 1 RecordSet cha tp cc record
trong 1 table.
Microsoft DataGrid Control 6.0 hin th cc record ca 1 Data Control v
cho php user thm/bt/hiu chnh cc record.
Microsoft Common Dialog Control 6.0 hin th ca s duyt file v chn
file cn truy xut.

dng c i tng ADODB trong Project, ta chn


Project.References chn th vin sau :
Microsoft ActiveX Data Objects 2.x Library, vi x =1 | 2 | 3 | 4 | 5 ...

Thit k trc quan form theo slide trc, to cc th tc x l s kin cho


button Browse v s kin Click cho ComboBox.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

menu

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 336

168

Chi tit cc th tc x l s kin


' Th tc x l click button Browse
Private Sub cmdBrowse_Click()
' hin th dialog box duyt v chn file
CommonDialog1.ShowOpen
' hin th file c chn vo textbox
txtFileName.Text = CommonDialog1.FileName
' duyt cc table v hin th tn ca chng vo ComboBox
ListAccessTables (txtFileName.Text)
End Sub
' Th tc x l khi user chn Table trong danh sch
Private Sub cbTable_Click()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;_
Data Source=" & txtFileName.Text
Adodc1.RecordSource = cbTable.Text
Adodc1.Refresh
End Sub
' Th tc phc v s kin form b thay i kch thc.
Private Sub Form_Resize()
' v li DataGrid ph hp vi kch thc mi ca form
ScaleMode = vbPixels
RsList.Move 5, 60, Me.ScaleWidth - 10, Me.ScaleHeight - 65
End Sub
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 337

Chi tit th tc hin th danh sch cc Table ca database


Private Sub ListAccessTables(strDBPath As String)
Dim adoConnection As ADODB.Connection, adoRsFields As ADODB.Recordset
While cbTable.ListCount <> 0
' Xa danh sch hin hnh
cbTable.RemoveItem 0
Wend
' To 1 connection n file database
Set adoConnection = New ADODB.Connection
adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath
' Duyt cc tables, 'add' tn ca tng table vo danh sch ComboBox.
Set adoRsFields = adoConnection.OpenSchema(adSchemaTables)
With adoRsFields
Do While Not .EOF
If .Fields("TABLE_TYPE") = "TABLE" Then
cbTable.AddItem .Fields("TABLE_NAME")
End If
.MoveNext
Loop
End With
adoRsFields.Close
' ng v xa recordset cha cc table
Set adoRsFields = Nothing
adoConnection.Close
' ng v xa connection n file database
Set adoConnection = Nothing
End Sub
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 338

169

Lp trnh truy xut database dng ADO

nh ngha DSN (Data source name) miu t file database, nu c bc ny,


ng dng truy xut database thng qua tn lun l DSN m khng cn bit
chnh xc v tr ng dn file database v my cha file database. Dng icon
"ODBC ..." trong Control Panel ca Windows nh ngha DSN.

Trong ng dng ta dng i tng ADODB truy xut database theo qui
trnh in hnh sau :
1.
to 1 i tng Connection miu t database cn truy xut.
2.
gi method OpenSchema trn i tng Connection tm cc Table
trn database.
3.
khi user chn 1 Table (hay dng lnh SQL miu t iu kin xc nh
cc record), ta gi method Execute trn i tng Connection to 1
i tng RecordSet cha cc record tm c.
4.
duyt cc record trong RecordSet v x l chng theo yu cu.
5.
ng v xa RecordSet v lp li cc bc 3, 4 x l Table khc.
6.
ng v xa cc i tng to ra gii phng b nh do chng
chim.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 339

Th d lp trnh truy xut database dng ADO


TextEdit qui nh file
cn truy xut.
Button duyt v chn
file database.
ComboBox lit k
cc Table trong file.
Listbox hin th cc
record trong 1 Table
chn ( xem ch
khng hiu chnh).

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 340

170

Chi tit cc th tc x l s kin


Dim adoConnection As ADODB.Connection
Dim adoRsFields As ADODB.Recordset

' bin tham kho n Connection


' bin tham kho n RecordSet

' Th tc x l click button Browse


Private Sub cmdBrowse_Click()
' hin th dialog box duyt v chn file
CommonDialog1.ShowOpen
' hin th file c chn vo textbox
txtFileName.Text = CommonDialog1.FileName
' duyt cc table v hin th tn ca chng vo ComboBox
ListAccessTables (txtFileName.Text)
End Sub
' Th tc phc v s kin form thay b thay i kch thc.
Private Sub Form_Resize()
' v li ListBox ph hp vi kch thc mi ca form
ScaleMode = vbPixels
RsList.Move 5, 60, Me.ScaleWidth - 10, Me.ScaleHeight - 65
End Sub

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 341

Chi tit th tc hin th danh sch cc Table ca database


Private Sub ListAccessTables(strDBPath As String)
While cbTable.ListCount <> 0
' Xa danh sch hin hnh
cbTable.RemoveItem 0
Wend
' 1. To 1 connection n file database
Set adoConnection = New ADODB.Connection
adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath
' 2. Duyt cc tables, 'add' tn ca tng table vo danh sch ComboBox.
Set adoRsFields = adoConnection.OpenSchema(adSchemaTables)
With adoRsFields
Do While Not .EOF
If .Fields("TABLE_TYPE") = "TABLE" Then
cbTable.AddItem .Fields("TABLE_NAME")
End If
.MoveNext
Loop
End With
adoRsFields.Close
' ng v xa recordset cha cc table
Set adoRsFields = Nothing
' lu vn m Connection n file database hu truy xut li
End Sub
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 342

171

Chi tit cc th tc x l s kin


' Th tc x l click chn table trong ComboBox
Private Sub cbTable_Click()
Dim fcount As Integer, rcount As Integer, strBuf As String
' 3. To i tng RecordSet cha cc record ca Table c chn
Set adoRsFields = adoConnection.Execute("SELECT * FROM " & cbTable.Text)
' 4. Duyt cc record trong RecordSet v hin th chng trong ListBox
With adoRsFields
rcount = 0
' ch s record
fcount = .Fields.Count
' s field trong tng record
Do While Not .EOF
' duyt tng record trong recordset
rcount = rcount + 1
strBuf = Str(rcount) & ": " & .Fields(0).Value
For idx = 1 To fcount - 1 ' duyt tng field v ni kt vo chui strBuf
strBuf = strBuf & ", " & .Fields(idx).Value
Next
RsList.AddItem strBuf
' add chui kt qu vo Lisbox
.MoveNext
' di chuyn n record k tip
Loop
End With
adoRsFields.Close
' ng v xa recordset
Set adoRsFields = Nothing
End Sub
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 343

12.4 Tng qut v hot ng debug ng dng

Sau khi vit code cho ng dng xong, ta s th chy n xc nh


xem n gii quyt ng yu cu khng. Thng ng dng cha nhiu
li sai thuc 1 trong 2 loi sau :
cc li v t vng (tn cc phn t, t dnh ring,..) v c php ca
cc phn t cu thnh ng dng. VB s pht hin cc li ny d
dng v hin th thng bo li cho ta xem xt v sa cha. Thng
sau khi c VB thng bo v cc li ny, ta d dng sa chng.
cc li v gii thut ca ng dng. VB khng th pht hin cc li
ny v chng thuc phm tr ng ngha. ng dng s chy theo gii
thut c miu t, ta phi t nh gi tnh ng/sai v gii thut,
nhng vic tm li gii thut thng rt kh. gip ngi lp
trnh d dng tm ra cc li gii thut, VB cung cp cng c cho
php h kim sot c qui trnh chy ng dng v truy xut cc
bin d liu ca chng trnh, cng c ny c gi l 'Debug'.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 344

172

Tng qut v hot ng debug ng dng


Trong qu trnh debug, ng dng s 1 trong 2 trng thi sau :
Pause : trng thi ca ng dng trc khi chy hay khi dng li theo 1 iu
kin dng no ca ngi debug. VB s ghi nh lnh sp thi hnh trc khi
dng (lnh u tin ca ng dng nu n cha bt u chy). Do tnh lch s,
ta dng thut ng PC - program counter ni v lnh ny. trng thi ny,
ngi debug c th xem gi tr ca cc bin d liu bit ng dng chy
ng hay sai theo yu cu ri iu khin vic thi hnh tip theo ca ng
dng, lc ny ng dng s chuyn sang trng thi Running.
Running : trng thi m ng dng ang chy cc lnh ca n n khi n gp
1 iu kin dng thit lp trc, lc ny ng dng s chuyn v trng thi
Pause.
Trong qu trnh debug, ng dng trng thi Pause ch yu thi gian v ngi
debug tng tc vi ng dng ch yu trng thi ny. Mi khi ng dng c
chy tip, n chuyn qua trng thi Running, nhng s nhanh chng chy n
lnh dng v chuyn v trng thi Pause (tr phi b 'block' ch I/O hay b 'loop'
trong cc vng lp v tn).
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 345

Cc thao tc xem v hiu chnh bin d liu


xem ni dung ca 1 bin d liu, ngi debug c th :
chn menu Debug.Add Watch thm 1 biu thc (thng l bin d liu)
vo ca s Watch xem ni dung ca n.
chn menu Debug.Edit Watch hiu chnh biu thc (thng l bin d liu)
hin hnh ca s Watch (context, watch type).
di chut n tn bin trong ca s code, 1 ca s nh cha gi tr ca bin
s c hin th ngi debug xem xt.
hin th ca s cha danh sch cc th tc ang thc hin d dang (cc th tc
lng nhau theo th t), ngi debug c th :
chn menu View.Call Stacks.
xem v tr PC hin hnh (lnh sp thc hin k tip), ngi debug c th :
chn menu Debug.Show Next Statement (thng khi ng dng dng li, n
s hin th lnh chy k tip - lnh b dng vi mu t c bit v c du mi
tn l tri ca lnh).
chn menu Debug.Set Next Statement thit lp lnh cha cursor hin
hnh l lnh chy k tip (thay v lnh b dng trc )
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 346

173

Cc lnh thit lp iu kin dng


Nu iu kin dng l v tr lnh c th th ngi debug c th :
chn menu Debug.Clear All Breakpoints xa tt c cc im dng
(breakpoint) hin ti. im dng l lnh m khi ng dng chy n, ng dng
s dng li v chuyn v trng tho Pause ngi debug kim sot ni
dung d liu ca ng dng.
chn menu Debug.Toggle Breakpoint thit lp/xa im dng lnh cha
cursor hin hnh (c th thc hin nhanh chc nng ny bng cch di
cursor n l tri ca lnh cn thit lp/xa im dng ri click chut).
Nu iu kin dng l bin d liu/biu thc no b thay i hay c gi tr True
th ngi debug c th :
chn menu Debug.Add Watch, nhp biu thc (thng l 1 bin d liu) ri
chn iu kin dng "Break when value is True" hay "Break when value
changes".
chn menu Debug.Edit Watch, hiu chnh biu thc hin hnh (thng l 1
bin d liu) ri chn iu kin dng "Break when value is True" hay "Break
when value changes".
Ta c th (v nn) thit lp nhiu iu kin dng ng thi 'ro chn' lung thi
hnh ca chng trnh.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 347

Cc lnh iu khin chy tip ng dng


chy tip ng dng t v tr PC hin hnh, ngi debug c th :
o chn menu Run.Start bt u chy ng dng, ng dng ch dng li khi
gp iu kin dng no c thit lp.
o chn menu Run.Continue chy tip t v tr PC hin hnh, ng dng ch
dng li khi gp iu kin dng no c thit lp.
o chn menu Debug.Step Over chy tip 1 lnh ri dng li (Pause), nu
lnh thi hnh l lnh gi th tc th ton b th tc s c chy. y l lnh
cho php thc hin tng lnh theo mc v m.
o chn menu Debug.Step Into chy tip 1 lnh ri dng li (Pause), nu
lnh thi hnh l lnh gi th tc th ng dng s dng li lnh u tin ca
th tc. y l lnh cho php thc hin tng lnh theo mc vi m.
o chn menu Debug.Step Out chy tip cc lnh cn li ca th tc hin
hnh ri quay v v dng li sau lnh gi th tc ny (Pause).
o chn menu Debug.Run to Cursor chy tip ng dng t v tr PC hin hnh
n lnh cha cursor hin hnh ri dng li (Pause).
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 348

174

Cc lnh iu khin khc


Khi ng dng trng thi 'Pause', ngi debug c th thc hin cc lnh
sau :
chn menu Run.End kt thc vic chy ng dng.
chn menu Run.Restart kt thc vic chy ng dng ri bt u chy li t
u.
chn menu Run.Break dng t ngt vic chy ng dng, lnh ang thc
hin s c nh du ta d theo di. Chc nng ny gip ta bit ng
dng ang b 'loop' on lnh no. Nu ng dng ang b 'block' ch bin
c I/O, s khng c lnh no c dnh du c.

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM

Mn : Tin hc
Chng 12 : Linh kin phn mm & truy xut database
Slide 349

175

You might also like