You are on page 1of 68

B GIAO THNG VN TI TRNG I HC HNG HI B MN: TIN HC I CNG KHOA: CNG NGH THNG T IN

BI GING TIN HC I CNG


TN HC PHN M HC PHN TRNH O TO DNG CHO SV NGNH : TIN HC I CNG : 17101 : I HC CHNH QUY : TT C CC NGNH

HI PHNG 2011

Bi ging Tin hc i cng

MC LC
STT
CHNG I

NI DUNG
NHP MN TIN HC I CNG

TRANG

1.1 1.2 1.3 1.4 1.5 1.6


CHNG II

Mt vi nt v tin hc v my tnh Thng tin v x l thng tin Thnh phn ca my tnh Cc h m Phn loi my tnh Cc b phn chnh ca my tnh PC
TNG QUAN V LP TRNH Vn gii quyt bi ton bng my tnh Mt s v d NGN NG LP TRNH VISUAL BASIC

4 4 4 5 9 10

2.1 2.2
CHNG III

12 13

3.1 3.2 3.3 3.4 3.5 3.6


3.7 CHNG IV

Khi ng Visual Basic Thot khi Visual Basic To, m v lu mt d n (Project) Cc bc xy dng chng trnh Mt s i tng c bn trong Visual Basic Mt s v d v thit k giao din v lp bng thuc tnh Cc kiu d liu c bn
KHAI BO HNG BIN BIU THC CU LNH

20 20 20 21 23 29 30

4.1 4.2 4.3 4.4 4.5 4.6


4.7 4.8

Cc hng trong Visual Basic Bin Biu thc Quy nh v vit dng lnh trong Visual Basic Cch vit dng ch thch trong chng trnh Cu lnh gn Cu lnh End Lnh in d liu
_2_

36 36 37 37 37 37 38 38

Bi ging Tin hc i cng

4.9 4.10 4.11 4.12 4.13 4.14 CHNG V

Lnh nhp d liu Chuyn i kiu d liu trong qu trnh tnh gi tr biu thc Cu trc iu kin Cu lnh la chn Select Cu trc lp Mt s v d
HM V TH TC

39 40 41 43 45 48

5.1 5.2 5.3 5.4


CHNG VI

Khi nim chng trnh con Hm v th tc Truyn tham s cho chng trnh con Bin ton cc, bin a phng, khi nim tm tc dng
D LIU C CU TRC, KIU MNG

51 51 53 56

6.1 6.2 6.3 6.4

Khi nim v mng Khai bo mng tnh Khai bo mng ng (Dynamic Array) Mt s thut ton v mng

59 59 61 62

_3_

Bi ging Tin hc i cng

CHNG 1 NHP MN TIN HC I CNG 1.1. Mt vi nt v tin hc v my tnh C rt nhiu khi nim v Tin hc, song c th hiu Tin hc l ngnh khoa hc nghin cu cc qu trnh c tnh cht thut ton nhm m t v bin i thng tin. Cc qu trnh ny c nghin cu mt cch h thng v mi phng din: L thuyt phn tch, thit k, tnh hiu qu, vic ci t v cc ng dng. 1.2. Thng tin v x l thng tin 1.2.1. Thng tin v d liu Thng tin (Information): Nhng hin tng s vt phn nh v mt s kin, mt vn no trong th gii khch quan. Da vo con ngi c th hiu bit v nhn thc c th gii khch quan. Thng tin c th ghi li v truyn i. D liu (Data): L dng thng tin khi c lu tr. 1.2.2. n v o thng tin n v o thng tin l bit. y chnh l tin v h thng ch c hai trng thi ng kh nng: bng 0 hoc bng 1 (iu ny rt ph hp vi cc my tnh in t bi trong mt thi im, mch in ch c mt trong hai trng thi ng hoc m tng ng vi hai gi tr 1 hoc 0). n v o thng tin bao gm: Bit, Byte, KiloByte, MegaByte, GigaByte. Qui i gia cc n v nh sau: Byte (B): KiloByte (KB): MegaByte (MB): GigaByte (GB): Trong : 1 Byte = 8 bit (b) 1 KB = 1024 Byte 1 MB = 1024 KB 1 GB = 1024 MB

b l vit tt ca bit B l vit tt ca Byte

1.3. Thnh phn ca my tnh 1.3.1. Phn cng (Hardware) L cc thnh phn vt l cu to nn my tnh. Cc thnh phn vt l y bao gm cc thit b in t v c kh. V d: v cc phn cng my tnh nh mn hnh, bn phm, chut, b vi x l 1.3.2. Phn mm (SoftWare)
_4_

Bi ging Tin hc i cng

L tp hp cc ch th cho my tnh lm vic. Ni cch khc, ton b cc chng trnh chy trn my tnh gi l phn mm my tnh. S ra i ca phn mm khin cho hiu qu s dng phn cng c nng cao, rt nhiu cng vic ca con ngi c t ng ho, vn hnh nhanh chng. V d: Phn mm son tho vn bn, bng tnh, trnh din, ho 1.4. Cc h m 1.4.1. H m thp phn (Decimal) H thp phn l h m da vo v tr vi c s 10. H ny dng cc s t 0 n 9 biu din. Gi tr ca h thp phn c nh gi bng v tr cc con s. Cch vit: 127 hoc (127)10 Khai trin mt s h 10: (123.78)10= 1 x 102 + 2 x 101 + 3 x 100 +7 x 10-1 + 8 x 10-2 1.4.2. H m nh phn (Binary) H nh phn hay h m c s 2 ch c hai con s 0 v 1. l h m theo v tr. Gi tr ca mt s bt k no ph thuc vo v tr ca n. Cc v tr c trng s. Cc v tr ca trng s bng bc lu tha ca c s 2. Chm c s c gi l chm nh phn trong h m c s 2. Mi mt con s nh phn c gi l mt bit (Binary digit). Bit ngoi cng bn tri l bt c trng s ln nht(MSB) v bit ngoi cng bn phi l bit c trng s nh nht (LSB) nh di y: 23 MSB 1 22 0 21 1 20 0 2-1 1 2-2 1 LSB

Cch vit: (1011)2 1.4.3. H thp lc phn (HEXADECIMAL) Cc my tnh hin i thng dng h m khc l h thp lc phn. H thp lc phn l h m da vo v tr vi c s 16. H ny dng 10 ch s t 0 n 9 v 6 k t t A n F biu din. H ny thng dng vit gn cc s h nh phn H ny c biu din nh trong bng sau: Thp lc phn 0 1 2 Thp phn 0 1 2
_5_

Nh phn 0000 0001 0010

Bi ging Tin hc i cng

3 4 5 6 7 8 9 A B C D E F Cch vit : (2BC)H

3 4 5 6 7 8 9 10 11 12 13 14 15

0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

1.4.4. Chuyn i gia cc h m * Chuyn t h nh phn sang h mi Mun i t h nh phn sang h mi ch cn tnh cc gi tr 2 i tng ng vi cc ch s khc khng th i ca h s nh phn ri cng li :(v tr i tnh t phi qua tri) V d1: Ta mun i mt s h nh phn (101001)2 sang h mi, tin hnh nh sau: (101001)2= 1 x 25 + 0 x 24 + 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 32 + 0 + 8 + 0 + 0 + 1 = (41)10

Kt qu ta c s 41 h 10 V d 2: Ta mun i mt s h nh phn (101.001)2 sang h mi, tin hnh nh sau: (101.001)2 = 1 x 22 + 0 x 21 + 1 x 20 + 0 x 2-1 + 0 x 2-2 + 1 x 2-3 = 4 + 0 + 2 + 0 + 0 + 0.125= (6.125)10

Ch : Trong cc v d trn qu trnh bin i c th n gin ho bng cch loi b cc con s khng. *Chuyn t h thp phn sang h nh phn: Ly phn nguyn ca s cn i chia cho 2 v ghi nh phn d, tip theo ly thng ca php chia trc chia cho 2 v ghi nh phn d. C lm nh vy cho n khi thng bng 0 th dng li v vit phn d ngc t di ln trn. Ly phn l thp phn ca s cn i nhn vi 2, tch nhn c gm phn nguyn v phn l nh phn, ly phn l nh phn ca tch thu c nhn vi 2. C lm nh vy cho n khi khng cn
_6_

Bi ging Tin hc i cng

phn l thp phn hoc n mt chnh xc nht nh no th dng li. Vit phn nguyn t trn xung di. Sau ghp kt qu ca chng li vi nhau. V d 1: i s (41)10 t h 10 sang h nh phn:
41 2 1 20 2 0 10 2 0 5 2 1 2 2 0 1 2 1 0

Sau khi chia n thng bng 0 v vit ngc phn d t di ln trn ta c s (101001)2 nh phn. V d 2: Bin i s thp phn (41.625)10 thnh s nh phn: Trc ht bin i phn nguyn thnh s nh phn theo v d 1 c s (101001)2 Sau bin i phn l thnh s nh phn bng cch:Ly s cn i nhn vi 2, tch nhn c gm phn nguyn v phn l nh phn, ly phn l nh phn ca tch thu c nhn vi 2. C lm nh vy cho n khi c tch chn bng 1. Chn ring cc phn nguyn (phn trc du phy) ca cc tch thu c v sp xp li s c cc ch s sau du phy cn tm.
0.625 x 2 = 1.250 x 2 = 0.5 x 2 = 1.250 0.500 1.000

phn l (0.625)10 c chuyn thnh (101)2 h 2 Vy s (41.625)10 h 10 sang h nh phn l (101001.101)2 *Chuyn t h thp lc phn sang h thp phn: Cc s thp lc phn c th c bin i thnh thp phn bng cch tnh tng ca cc con s nhn vi gi tr v tr ca n. V d1: i s (5B)16 thnh s thp phn (5B)16 = 5 x 161 + B x 160 = 5 x 161 + 11 x 160 = 80 + 11 = (91)10

Kt qu l s (91)10 h 10
_7_

Bi ging Tin hc i cng

V d 2: i s (2AF)16 thnh s thp phn (2AF)16 = 2 x 162 + A x 161 + F x 160 = 2 x 162 + 10 x 161 + 15 x 160 = 2 x 256 + 10 x 16 + 15 x 1 = 512 + 160 + 15 = (687)10 Kt qu l s (687)10 h 10 *Chuyn t h thp phn sang h thp lc phn: Ly s thp phn cn i chia cho 16 v ghi nh phn d, tip theo ly thng ca php chia trc chia cho 16 v ghi nh phn d. C lm nh vy cho n khi thng bng 0 th dng li v vit phn d ngc t di ln trn. V d: i s (93)10 thnh h thp lc phn: Thng s
93 16 5 16

+ + +

s d 13 tng ng l D 5

= =

5 0

Vy kt qu l s (93)10 i thnh s (5D)16 h thp lc phn *Chuyn t h thp lc phn sang h nh phn: Thc cht cc s thp lc phn cng ch l cch biu din cc s nh phn thun li hn. Mun i t s thp lc phn sang s h nh phn ta ch cn thay th t con s thp lc phn bng 4 bit nh phn tng ng: V d: i s (C5)16 thnh h nh phn C 5

1100

0101

Kt qu s (C5)16 thnh s (11000101)2 *Chuyn t h nh phn sang h thp lc phn: bin i mt s nh phn thnh s thp lc phn tng ng ch cn nhm 4 bt tnh t phi qua tri sau chuyn tng nhm 4 bit thnh h thp lc phn v ghp li vi nhau s c s h thp lc phn. V d: i s (01011111)2 thnh s thp lc phn 0101 1111

F
_8_

Kt qu s (01011111)2 thnh s (5F)16

Bi ging Tin hc i cng

1.5. Phn loi my tnh Theo gc ngi s dng th my tnh c phn lm bn loi sau: * My tnh ln (Mainframe) My tnh ln l my c cng sut cao, tc x l nhanh v rt ln thng ng vai tr trong cc h tin hc phn tn c qui m ln. Cc my tnh ln l cc c my kch thc ln, mnh v rt t tin, c s dng trong hu ht cc c quan, t chc ln (v d nh cc ngn hng, cc c quan trng yu ca Chnh ph, cc cng ty a quc gia). Cn ch phn bit my tnh ln vi my tnh c nhn c kch thc ln. * My tnh PC (Personal Computer-PC) My tnh in t c ngun gc ra i t kh sm v c rt nhiu chng loi. Tuy nhin chic my tnh PC theo m hnh ca IBM u tin c ra i vo nm 1981. T tr i, tt c cc my tnh PC c sn xut, qua nhiu ln m rng u tng thch vi thit k ban u. Thut ng my tnh tng thch lin quan n cc my tnh c sn xut bi cc cng ty khc khng phi IBM nhng vn tng thch vi cc c im k thut truyn thng.

IBM PC (1981)

IBM PC Tng thch

* My Mac(Apple MAC) My Mac l mt my tnh, nhng khng phi l mt my PC theo m hnh IBM. My Mac l dng my tnh do hng Apple sn xut v chy H iu hnh Macintosh ca Apple c giao din ho GUI v tng thch vi n l cc phin bn c bit ca cc chng trnh ng dng ( nh b x l vn bn v cc bng tnh). Thm ch c th kt ni vi mt Mac, ngi ta cn phi la chn thm cc thit b phn cng m rng. Thi k u, iu gip cho vic phn bit my Mac v PC chnh l vic MAC s dng giao din ho cho ngi dng (GUI Graphic User Interface ), hay ni cch khc, chnh l cch m ta c th dng chut iu khin my tnh. Khi PC mi xut hin, ngi dng phi l mt nh chuyn mn mi c th s dng c chic PC . Tuy nhin, gn y s khc bit
_9_

Bi ging Tin hc i cng

c bn gia my MAC v my PC khng cn r rt nh trc, nht l khi Microsoft s dng Graphic User Interface nh l cng c tr gip ngi dng my tnh PC. (Ch : tng s dng cc giao din ho v tng tc ngi my thng qua thao tc chut l do Apple xut, khng phi do Microsoft) * My tnh xch tay (Laptop) Laptop, ting Anh c ngha l t trong lng, phn bit vi my tnh t trn mt bn l desktop. Vit Nam, ta hay gi Laptop l my tnh xch tay bi y l mt loi my tnh nh c th mang i theo, c th chy bng pin. Ngoi ra, ngi ta cn s dng tn gi Notebooks (quyn v/quyn s) ch cc my tnh xch tay c kch thc nh hn. C hai dng my tnh PC v MAC u c nhng sn phm my tnh xch tay cho ngi dng ca mnh. Do c im nh gn v nng lc x l kh tt nn my tnh xch tay rt c a chung, c bit l nhng ngi hay phi di chuyn hoc phi thuyt trnh trc m ng. Nhng ngi thng xuyn s dng my tnh xch tay c th k n nhng ngi lm cng tc kinh doanh ( chuyn i thuyt trnh sn phm), nhng ngi lm trong ngnh gio dc (ging bi bng my tnh xch tay kt ni my chiu) Ch : Thc cht my tnh xch tay cng l dng my PC hay my Mac l dng my PC nhng do hng Apple sn xut. 1.6. Cc b phn chnh ca my tnh PC 1.6.1. S cc khi chc nng v b phn chnh trong my tnh V c bn, thnh phn chnh ca mt my tnh bao gm cc khi nh: Khi thit b vo/ Khi x l/ Khi thit b ra/ Khi thit b lu tr.
THIT B VO Bn phm, chut KHI X L (CPU) + Khi iu khin (CU) + Khi tnh ton s hc + Cc thanh ghi THIT B RA Mn hnh, my in, loa

CC THIT B LU TR Cc thit b lu tr trong Cc thit b lu tr ngoi + ROM: B nh ch c + a mm + RAM: B nh truy cp ngu nhin + a cng + a CD, DVD + USB

_10_

Bi ging Tin hc i cng

1.6.2. Khi x l trung tm (Central Processing Unit CPU) Khi x l trung tm, hay cn gi l mt b vi x l hoc con chip, l b no ca my tnh. Cng vic chnh ca khi x l trung tm l tnh ton v iu khin mi hot ng trong my tnh.

1.6.3. B nh trong (Internal Memory) B nh trong my tnh dng cha cc lnh v d liu phc v cho qu trnh thc hin cc chng trnh. B nh ROM (Read Only Memory): D liu c a vo t nh sn xut, thng tin trong ROM s khng b mt khi tt my. B nh ROM khng th nng cp hoc thay th. B nh RAM (Radom Access Memory): L ni lu tr tm thi d liu ca ngi s dng trong qu trnh x l. D liu trn RAM s b mt khi tt my. B nh Ram c th c nng cp hoc thay th. 1.6.4. B nh ngoi (External Memory) B nh ngoi hay cc thit b lu tr ngoi bao gm a cng, a mm, a CD, DVD, a Zip 1.6.5. Cc thit b vo (Input device) Cc thit b vo cho php thng tin hay d liu c nhp vo my tnh, v d nh bn phm, chut, my qut 1.6.6. Cc thit b ra(Output device) Cc thit b ra cho php thng tin c th c xut ra t my tnh, v d nh my in, mn hnh, loa 1.6.7. Cc thit b ngoi vi (Peripheral device) Thit b ngoi vi l thit b m n c th gn/cm vo my tnh. Nh vy ton b cc thit b nh my qut, my in, bn phm, chut, loa u l cc thit b ngoi vi.

_11_

Bi ging Tin hc i cng

CHNG 2 TNG QUAN V LP TRNH 2.1. Vn gii quyt bi ton bng my tnh 2.1.1. Lp trnh (Programming) Lp trnh dng ch thao tc ca con ngi nhm kin to, xy dng mt kch bn bng cc thut ton gii quyt mt bi ton Tin hc trn my tnh thng qua cc ngn ng lp trnh. 2.1.2. Ngn ng lp trnh (Programming language) Ngn ng lp trnh l mt tp con ca ngn ng my tnh. y l mt dng ngn ng c chun ha (i lp vi ngn ng t nhin). N l mt h thng c k hiu ha miu t nhng tnh ton (qua my tnh) trong mt dng m c con ngi v my u c th c v hiu. Ngn ng lp trnh cng chnh l mt chng trnh, nhng c th c dng to nn cc chng trnh khc. Mt chng trnh my tnh c vit bng mt ngn ng lp trnh th nhng ch th (ca ring ngn ng y) gp phn to nn chng trnh c gi l m ngun ca chng trnh y. 2.1.3. Bi tonTin hc Bi ton tin hc khng dng ch mt bi ton c th, m dng ch mt lp cc bi ton c th thuc cng mt loi. Mt bi ton tin hc c cu to bi hai yu t sau: + Thng tin u vo(Input): L nhng thng tin bi ton cho + Thng tin u ra (Output): L cc thng tin cn tm hoc cu tr li cn thit. V d: Gii bi ton tnh din tch tam gic bng cng thc s=a*h/2 + Thng tin u vo: L cnh y a v ng cao h + Thng tin u ra: L din tch tam gic S hoc dng thng bo d liu khng hp l. 2.1.4. Thut ton Thut ton l tp hp hu hn cc bc, cc php ton c bn nht c sp xp theo mt trnh t nht nh t thng tin u vo ca bi ton sau mt tp hu hn cc bc s t c kt qu u ra nh mong mun. V d: Tr li bi ton tnh din tch tam gic, thut ton nh sau: + Bc 1: Cho gi tr ca cnh y a v ng cao h + Bc 2: Kim tra - Nu a>0 v h>0 th tnh din tch theo cng thc s=a*h/2 sau xung bc 3. - Ngc li thng bo d liu khng hp l v quay v bc 1 + Bc 3: In din tch S
_12_

Bi ging Tin hc i cng

2.1.5. Biu din thut ton qua s khi (A.Flow Chart) Biu din thut ton: L s dng cc k hiu v cc ng ni vi nhau din t cc quan h logic v trnh t thc hin cc php ton ca mt chng trnh my tnh. th hin trc quan v thut ton ngi ta dng s khi. Qua s khi ngi lp trnh c th quan st cc bc ca thut ton cng nh dng thng tin hnh thnh v bin i trong qu trnh thut ton lm vic. Vic th hin thut ton ngi ta qui c dng cc khi sau th hin. -Th hin s bt u v kt thc chng trnh - Th hin vic nhp, xut d liu - Cha cc cng thc tnh ton - Cha cc biu thc kim tra iu kin v r nhnh chng trnh - Gi chng trnh con - Ch ra hng i ca thut ton v kt ni gia cc hnh 2.2. Mt s v d V d 1: Lp thut ton v v s thut ton gii v bin lun phng trnh ax +b =0 Bi gii: Xy dng thut ton: - D liu u vo l gi tr hai s a v b (trong lp trnh thng gi tt l nhp gi tr a v b) - Kim tra iu kin ca a: Nu a = 0 th + Nu b=0 th Phng trnh v s nghim Ngc li Phng trnh v nghim Ngc li Phng trnh c nghim x=-b/a
_13_

Bi ging Tin hc i cng

S thut ton:
Bt u (BEGIN)

Nhp a,b

PT c nghim x=-b/a

a=0

b=0 S PT V nghim

PT VSN

Kt thc (END)

V d 2: Cho ba s bt k a,b,c hy tm gi tr ln nht trong ba s ny Bi gii: Xy dng thut ton: - Nhp gi tr cho ba bin a,b,c - Coi mt trong ba s l s ln nht (gi s s a) a gi tr ca a vo mt bin max M t trn c vit nh sau max=a - Kim tra gi tr ca bin max vi tng s cn li Nu max <b th max=b Nu max<c th max=c - In gi tr ln nht trong max ra mn hnh

S thut ton:
_14_

Bi ging Tin hc i cng

BEGIN

Nhp a,b,c

Max=a

Max<b S

Max=b

Max<c S

Max=c

In max

END

V d 3: Hy tnh Tng S=1+1/2+1/3+.+1/(n-1)+1/n vi n l mt s t nhin. Bi gii: Xy dng thut ton: Bc 1: Nhp gi tr cho n Bc 2: Kim tra gi tr ca n>0 + Nu sai: Tr v bc 1 + Nu ng: Chuyn sang bc 3 Bc 3: Cho S=0 Khi to bin chy i v cho i=1 Bc 4: Kim tra iu kin ca i - Nu i<=n th: + Tnh S=S+1/i + Tng i: i=i+1 + Quy tr v u bc 4
_15_

Bi ging Tin hc i cng

- Nu i>n: Chuyn sang bc 5 Bc 5: In gi tr ca S S thut ton:


BEGIN

Nhp n

n>0

S=0

i=1

i<=n S In S

S=S+1/i

i=i+1

END

V d 4: Nhp vo mt dy s nguyn gm n phn t. Sau tnh trung bnh cng cc s chia ht cho 3. Phn tch bi ton: D liu u vo: - S phn t ca dy n (n l s nguyn dng) - Dy s c n phn t bt k D liu u ra: - Trung bnh cng ca cc s chia ht cho 3 tnh c trung bnh cng ta cn phi tnh Tng v s lng cc s chia ht cho 3. Theo d liu u vo ca bi ton ta c th gii quyt theo hai hng sau:

_16_

Bi ging Tin hc i cng

Hng 1:Lu tr dy s bng mt nh Bc 1: - Xc nh s phn t ca dy, nhp gi tr cho n. Bc 2: - Kim tra iu kin n + Nu n<=0: Quay v bc 1 + Nu n>0 : Chuyn sang bc 3 Bc 3: tnh TBC trc ht ta phi tnh:

Hng 2:Lu tr dy s bng n nh Bc 1: - Xc nh s phn t ca dy, nhp gi tr cho n. Bc 2: - Kim tra iu kin n + Nu n<=0: Quay v bc 1 + Nu n>0 : Chuyn sang bc 3 Bc 3: tnh TBC trc ht ta phi tnh:

+Tng cc s tho mn, gi tng l T, +Tng cc s tho mn, gi tng l T, khi to gi tr ban u T=0 khi to gi tr ban u T=0 + S lng cc phn t tho mn, gi l d, khi to gi tr ban u d=0 - Khi to bin chy i=1 (coi nh khi i=1 ta tin hnh nhp gi tr cho phn t th nht) Bc 4: Kim tra iu kin ca i. - Nu i<=n + Nhp gi tr cho a + Kim tra: Nu a chia ht cho 3 th T=T+a d=d+1 + Tng bin i ln mt n v: i=i+1 + Quay v bc 4 - Nu i>n: Chuyn sang bc 5 Bc 5: - Sau khi tnh c T v d ta cn kim tra li d v c th xy ra trng hp trong n phn t khng c phn t no chia ht cho 3 (tng ng vi d=0) th khng th tnh c TBC. - Nu d=0 th Dy s khng c phn t tho mn i=i+1 + Quay v bc 4 - Nu i>n: Chuyn sang bc 5 Bc 5: Tnh ton TBC - Khi to bin chy i=1 Bc 6: Kim tra iu kin ca i. - Nu i<=n + Kim tra: Nu a chia ht cho 3 th T=T+a d=d+1 + Tng bin i ln mt n v: i=i+1
_17_

+ S lng cc phn t tho mn, gi l d, khi to gi tr ban u d=0 - Khi to bin chy i=1 (coi nh khi i=1 ta tin hnh nhp gi tr cho phn t th nht) Bc 4: Nhp gi tr lin mt lc cho n phn t cha vo n nh a1, a2.an Kim tra iu kin ca i. - Nu i<=n + Nhp gi tr cho phn t ai + Tng bin iln mt n v:

Bi ging Tin hc i cng

iu kin chia ht cho 3 ngc li Tnh trung bnh cng:TBC=T/d In gi tr ca TBC ra Bc 6: Kt thc

+ Quay v bc 6 - Nu i>n: Chuyn sang bc 7 Bc 7: - Sau khi tnh c T v d ta cn kim tra li d v c th xy ra trng hp trong n phn t khng c phn t no chia ht cho 3 (tng ng vi d=0) th khng th tnh c TBC. - Nu d=0 th Dy s khng c phn t tho mn iu kin chia ht cho 3 ngc li Tnh trung bnh cng:TBC=T/d In gi tr ca TBC ra Bc 8: Kt thc

S thut ton theo hng 1:


BEGIN

Nhp n
S n>0

T=0

d=0

i=1
S

i<=n S

Nhp a khng c s Tho Mn

a 3

i=i+1

In T/d

d=0

T=T+a
D=d+1

END

_18_

Bi ging Tin hc i cng

S thut ton theo hng 2:


BEGIN

Nhp n

n>0

T=0

d=0

i=1

i<=n S

Nhp ai

i=i+1

i=1
S

khng c s Tho Mn

In T/d

d=0

T=T+a D=d+1

END

_19_

i<=n

ai 3

i=i+1

Bi ging Tin hc i cng

CHNG 3 NGN NG LP TRNH VISUAL BASIC 3.1. Khi ng Visual Basic Kch chut vo nt Start\Programs\MiscoSoft Visual Studio 6.0\MicroSoft Visual Basic 6.0 3.2. Thot khi Visual Basic thot khi Visual Basic ta lm theo cch sau: Vo menu File\Exit. Khi thot khi Visual Basic nu ta cha ghi li chng trnh v cc thnh phn lin quan n chng trnh Visual Basic s nhc nh chng ta ghi li. 3.3. To, m v lu mt d n (Project) Bc 1: Trn th mc gc ca a C to th mc c tn l VIDU L do cn phi to ring ra mt th mc cho chng trnh v mt chng trnh vit bng Visual Basic bao gm nhiu thnh phn nh: Cc mn hnh giao din (Form), cc n th chng trnh (Modul), cc bo co (Report).... mi mt thnh phn s c to cc file tng ng trn a; chnh v vy qun l chng trnh cho tt phong cch lp trnh tt l hy to ring cho mi chng trnh mt th mc ring. Bc 2: Khi ng VB khi hp hi thoi New Project xut hin:

Trong hp hi thoi ny chn tab New sau chn loi Project mun to, y ta s chn StandardEXE. Hai tab cn li c ngha sau: - Existing: M Project c - Recent: M Project lm vic trong thi gian gn y nht.
_20_

Bi ging Tin hc i cng

Mt cch khc to d n mi l trong menu File chn mc New Project. Sau khi to Project mi, Visual Basic s hin mt ca s trn mn hnh. y l Form trng vi tiu l Form1 Bc 3: Lu Project Mt trong nhng vn quan trng khi vit chng trnh l lu li nhng g mnh lm. Mc d cha c thao tc g thay i trn Form trng, ta cng nn lu Form ln a. Khi ta lu Project, c 2 file c lu: 1. File cha cc thng tin Visual Basic cn trong vic xy dng Project. y l file qun l ton b cc thnh phn ca d n, file ny c phn m rng l VBP 2. File cha cc thng tin v Form. File ny c phn m rng l FRM. Cc bc thc hin lu Project nh sau: - Vo menu File chn mc Save Project As - Visual Basic hin hp hi thoi Save File As. Chn th mc C:\VIDU1 i tn mc nh ca Form trng t Form1.Frm thnh VIDU1.FRM. Lu : Khng nn dng tn mc nh m Visual Basic t cho Form, ta nn t tn form gn gi vi cc chc nng ca Form ta ang mun xy dng. - Sau khi ghi Form, Visual Basic hin tip hp hi thoi Save Project As, file Project c tn mc nh l Project1.Vbp. Ta chn th mc C:\VIDU1v i tn cho file Project l VIDU1.VBP. Lu : Khng nn dng tn mc nh m Visual Basic t cho Project, ta nn t tn Project gn gi vi chng trnh ang mun xy dng. Nh vy hai file VIDU1.FRM v VIDU1.VBP c lu vo th mc VIDU1 (lc ny Visual Basic s pht sinh mt file ph l VIDU1.VBW) 3.4. i tng v thuc tnh 3.4.1. i tng Trong Visual Basic i tng l tt c nhng thnh phn m ta s dng thit k ln giao din ngi s dng cho ng dng. i tng c th l mt biu mu, mt nt lnh, mt hp vn bn, mt nhn.... Thuc tnh (Properties) :Thuc tnh ca i tng l nhng c im ca i tng m t i tng v phn bit i tng ny vi i tng khc.V d i tng nt lnh c cc thuc tnh nh tn, kch thc, v tr, tiu .....Mi i tng trong Visual Basic u c mt tp hp thuc tnh quy nh trc. Mi i tng u c th thc hin mt s hnh ng hoc cho php thc hin mt s hnh ng trn n. Phng thc ca i tng l hnh ng m i tng c th thc hin c hoc hnh ng c php thc hin trn n. Mi i tng trong Visual
_21_

Bi ging Tin hc i cng

Basic u c mt tp hp cc phng thc quy nh trc.Cc phng thc ca i tng c thc hin nh cc th tc bin c, cc hm hoc cc modul c lp. Ch : Trong Visual Basic hai thut ng i tng (object) v iu khin (control) thng c s dng v c th thay th cho nhau nhng iu khin ch l nhng i tng t trong biu mu. 3.4.2. Mt s thuc tnh thng dng ca cc i tng Thuc tnh Name (Tn) Thuc tnh ny xc nh tn cho i tng. Tn ny c dng truy nhp i tng trong phn m lnh. Mi i tng u c tn ngm nh do Visual Basic t cho. V d: Biu mu c tn ngm nh l Form1, nt lnh c tn ngm nh l command1.... Tn i tng c t theo qui tc sau y: + Tn c i di cc i l 40 k t bao gm ch ci, ch s v du gch ni + Tn khng c trng vi t kho + Tn phi bt u bng ch ci v khng c du cch. Tn c th bao gm c ch hoa ln ch thng. Tn i tng phi gi nh, ba k t u tin ca i tng c gi l tin t. Visual Basic qui c cho mi i tng mt tin t xc nh. S dng tin t ca tn cho php d dng nhn ra loi i tng khi bit tn i tng. Di y l bng tin t ca tn cc loi i tng: Tin t Frm Cmd Lbl Txt Loi i tng Biu mu (Form) Nt lnh (Command Button) Nhn (Label) Hp vn bn (Textbox)

Ch : Quy nh v tin t l khng bt buc nhng chng ta nn tun th theo nguyn tc ny. Thuc tnh Caption (Tiu ) Thuc tnh Caption xc nh tiu cho i tng . Tiu l mt dy k t bt k do ngi s dng xc nh. Tiu ca i tng xut hin cng vi i tng trong biu mu. Tiu ca i tng cho php ngi s dng nhn ra i tng trong mn hnh giao din ca chng trnh. Thuc tnh Enabled (Kh ng) Thuc tnh ny xc nh kh nng p ng cc bin c tc ng trong thi gian thc hin chng trnh ca i tng. Thuc tnh ny c hai gi tr
_22_

Bi ging Tin hc i cng

+ Nu l True th i tng c th p ng cc bin c tc ng trong thi gian thc hin chng trnh. + Nu l False th i tng khng c kh nng . Thuc tnh Font ( Font ch) Thuc tnh ny dng xc nh Font cho i tng. Gi tr ca thuc tnh ny l tn cc Font ch ang c s dng. Ta c th gn cho thuc tnh ny tn ca Font ch bt k hin c trong my tnh vi mt kch thc xc nh. Thuc tnh BackColor (mu nn) Xc nh mu nn ca i tng. Thuc tnh ny c th nhn mu bt k trong h thng mu ang c s dng. Thuc tnh ForeColor (Mu ch) Xc nh mu ch ca i tng.Thuc tnh ny c th nhn mu bt k trong h thng mu ang c s dng. Thuc tnh Visible (Thy c) Thuc tnh ny xc nh tnh thy ca i tng. Thuc tnh ny c hai gi tri: + Nu l gi tr True th i tng c th nhn thy c trong thi gian thc hin chng trnh + Nu l gi tr False th i tng b n trong thi gian thc hin chng trnh Truy cp n gi tr ca iu khin C php chung truy nhp n gi tr ca cc iu khin t dng lnh nh sau: <tn iu khin>.<tn thuc tnh> V d: txtHovaten.Text = Nguyn Vn A optNam.Value = True st = txtHovaten.Text Tuy nhin i vi cc thuc tnh gi tr c s dng thng xuyn nn Visual Basic cho php chng ta dng tn ca iu khin truy nhp n thuc tnh gi tr. V d: Thay v vit txtHovaten.Text = Nguyn Vn A ta c th vit txtHovaten = Nguyn Vn A Ngoi cc thuc tnh chung ca cc iu khin nh phn nhm trn mt thuc tnh cng rt hay c s dng l thuc tnh TabIndex. Thuc tnh ny thit lp th t quan tm ca cc iu khin khi ngi s dng n phm TAB trn bn phm. 3.5. Mt s i tng c bn trong Visual Basic 3.5.1. Biu mu (Form)
_23_

Bi ging Tin hc i cng

Form cn gi l biu mu, l thnh phn quan trng nht trong s tt c cc thnh phn giao din. Tt c cc thnh phn giao din ngi dng ng dng u c t trong Form. Khi ng dng chy, n m ra mt form. Sau khi Form c np vo b nh, tt c cc thnh phn hm cha trong n s hin th v c th truy nhp. Chng ta c th xem Form nh mt iu khin c bit. Form trong Visual Basic c chia thnh 02 loi: Form thng v Form MDI (Multi Document InterFace). Xc nh biu mu khi u cho d n Trong mt chng trnh thng thng s c nhiu Form, cu hi t ra l chng trnh khi chy s bt u t form no? Tc l Form no s xut hin ra mn hnh trc tin khi chng trnh chy. thc hin vic xc nh form khi u ca chng trnh chng ta s thc hin nh sau: Trong menu Project chn mc <tn Project> Properties (tn Project chnh l thuc tnh name ca Project m chng ta t), khi mn hnh (hnh 16) s xut hin. Trong mn hnh ny chn th General trong danh sch th xung (combo box) Start up Object chn Form chng ta mun n xut hin u tin khi chng trnh chy.

Xo mt biu mu Trong qu trnh thit k chng trnh v mt l do no y m ta mun xo mt biu mu, ta tin hnh nh sau: Chn Project Chn Remove tn biu mu Cc thuc tnh ca biu mu Biu mu c n 50 thuc tnh. Nhng thuc tnh c bn nht v hay s dng c cho trong bng di y:
_24_

Bi ging Tin hc i cng

Thuc tnh Appearance BackColor BorderStyle Caption Enabled Font ForeColor Height Left MDIChild

ngha, tc dng Xc nh khi no biu mu c dng ba chiu Xc nh mu nn ca biu mu Xc nh kiu ng vin xung quanh biu mu Xc nh tiu cho biu mu Xc nh tnh kh ng ca i tng cho trong biu mu Xc nh Font ch cho biu mu Xc nh mu ch ca biu mu Xc nh chiu cao ca biu mu Xc nh khong cch t bin tri ca mn hnh n bin tri ca biu mu Xc nh biu mu ny c thuc kiu cha con khng. Nu thuc tnh ny l True th biu mu ny l biu mu MDI, tc l biu mu con trong biu mu cha. Nu thuc tnh ny l False (ngm nh) th biu mu ny khng phi l biu mu MDI Xc nh tn ca biu mu. Tn ngm nh ca biu mu l Form1 Xc nh khong cch t bin trn ca mn hnh n bin trn ca biu mu Xc nh tnh thy c ca biu mu Xc nh chiu rng ca biu mu

Name Top Visible Width

3.5.2. Nhn (Label Khi nim nhn

Mc ch ca iu khin ny l hin th mt on vn bn ln form thng qua thuc tnh Caption. Label khc textbox ch n khng cho php ngi s dng nhp mt on vn bn vo nh l textbox. Thng thng Label bao gi cng c s dng kt hp vi textbox vi mc ch ch thch cho tng mc d liu nm trn Form. Cc thuc tnh c bn ca nhn Nhn c n 30 thuc tnh. Nhng thuc tnh c bn nht v hay s dng c cho trong bng di y: Thuc tnh ngha, tc dng
_25_

Bi ging Tin hc i cng

Alignment Appearance BackColor BorderStyle Caption Enabled Font ForeColor Height Left Name Top Visible Width AutoSize

Xc nh kiu canh l cho vn bn c trong nhn. Thuc tnh ny c ba gi tr l: 0 canh tri, 1 canh phi, 2 canh gia Xc nh khi no nhn c dng ba chiu Xc nh mu nn ca nhn Xc nh kiu ng vin xung quanh nhn Xc nh tiu cho nhn Xc nh tnh kh ng ca nhn Xc nh Font ch cho nhn Xc nh mu ch ca nhn Xc nh chiu cao ca nhn Xc nh khong cch tri ca nhn Xc nh tn nhn. Tn ngm nh ca biu mu l Label1 Xc nh khong cch trn nhn Xc nh tnh thy c ca nhn Xc nh chiu rng ca nhn Thuc tnh ny c hai gi tr l TRUE v FALSE, nu thuc tnh ny bng TRUE th Visual Basic s t iu chnh kch thc ca nhn sao cho va hin th gi tr ca thuc tnh Caption )

3.5.3. Hp vn bn (Textbox Khi nim hp vn bn

TextBox c s dng nhp mt on vn bn hay hin th mt on vn bn. y l mt iu khin c s dng nhiu nht trong cc chng trnh vit bng Visual Basic. Cc thuc tnh c bn ca hp vn Nhn c n 30 thuc tnh. Nhng thuc tnh c bn nht v hay s dng c cho trong bng di y: Thuc tnh Alignment Appearance BackColor BorderStyle ngha, tc dng Xc nh kiu canh l cho vn bn c trong hp vn bn. Thuc tnh ny c ba gi tr l: 0 canh tri, 1 canh phi, 2 canh gia Xc nh khi no hp vn bn c dng ba chiu Xc nh mu nn ca hp vn bn Xc nh kiu ng vin xung quanh hp vn bn
_26_

Bi ging Tin hc i cng

Enabled Font ForeColor Height Left Name Top Visible Width

Xc nh tnh kh ng ca hp vn bn Xc nh Font ch cho hp vn bn Xc nh mu ch ca hp vn bn Xc nh chiu cao ca hp vn bn Xc nh khong cch tri ca hp vn bn Xc nh tn hp vn bn. Tn ngm nh ca biu mu l Text1 Xc nh khong cch trn ca hp vn bn Xc nh tnh thy c ca hp vn bn Xc nh chiu rng ca hp vn bn Thuc tnh ny l gi tr s nguyn c gi tr ln hn hoc bng 0, n quy nh chiu di ti a ca on vn bn nhp vo trong textbox. Nu thuc tnh ny t bng 0 (gi tr mc nh) th s khng gii hn chiu di ti a.

MaxLength

Thuc tnh ny thit lp k t ng vai tr mt n nhp liu. Thng thng thuc tnh ny thng c s dng trong trng hp yu cu ngi s dng nhp vo Password. Khi ngi s dng nhp cc gi tr PasswordChar vo trong textbox, mi k t nhp vo s c hin th thnh k t thit lp l mt n tuy nhin gi tr ca thuc tnh Text vn gi nguyn gi tr m ngi s dng nhp vo. Thuc tnh ny c 2 gi tr True v False nu bng True Visual Basic s t ng xung dng. Ta thng thit lp thuc tnh ny bng True trong trng hp nhp cc thng tin nh: ni dung mt on vn bn, cc ghi ch, qu trnh cng tc ca mt nhn vin... Thuc tnh ny cha ni dung ca TextBox. Thng thng ta c th nhp ti a 2048 k t vo TextBox. Nu thit lp thuc tnh MultiLine = TRUE ta c th nhp vo 32K k t.

MultiLine

Text

Thuc tnh ny c s dng thit lp ch cun vn bn trong textbox khi thuc tnh Multiline t bng True. Cc gi tr ca thuc tnh nh sau: ScroolBars + 0-None: Khng c thanh cun + 1- Horizontal: Ch c thanh cun ngang + 2-Vertical: Ch c thanh cun dc
_27_

Bi ging Tin hc i cng

+ 3- Both: C thanh cun ngang v thanh cun dc Locked Thuc tnh ny c hai gi tr True, False nu Locked = True lnh Copy vn hot ng trong khi lnh Cut v Paste khng hot ng vi TextBox

Th tc tnh hung p ng s kin - S kin Change: S kin ny xy ra mi khi thuc tnh Text ca textbox b thay i - S kin LostFocus: S kin ny xy ra mi khi Textbox mt s quan tm. - S kin GotFocus: S kin ny xy ra mi khi Textbox nhn c s quan tm. - S kin KeyPress: S kin ny xy ra mi khi ngi s dng n mt phm bt k khi textbox ang nhn c s quan tm.. Cu trc th tc tnh hung nh sau: Private Sub <tn iu khin>_KeyPress(KeyAscii As Integer) Tp hp cc lnh End Sub Th tc tnh hung ny truyn vo mt tham tr c kiu l s nguyn KeyAscii l m Ascii ca phm c bm. 3.5.4. Nt lnh (Command Button )

Khi nim: CommandButton l mt nt lnh m ta c th nhn chut vo, khi n s thc hin mt hnh ng no ko theo. Cc thuc tnh ca nt lnh - Caption: y l thuc tnh th hin nhn ca nt lnh. V d nh: Thm, Ghi, Xo, Sa, ng... Bnh thng nt lnh thc hin cng vic ca n ngi s dng c th nhn chut vo nt lnh hoc n phm Enter khi nt lnh ang c chn, nu ta mun gin cho n mt t hp phm nng ALT + <phm k t> th ng trc phm k t ta t vo du &. V d: T hp phm ALT + T chn nt lnh Thm th thuc tnh Caption ca nt lnh ta s gn cho n gi tr sau y: &Ghi. Khi nt lnh s th hin nh sau:

- Style: Thit lp nt lnh c cho php hin th hnh nh hay khng. Thuc tnh ny c hai gi tr: + 0-Standard: Nt lnh bnh thng, ch c nhn m khng c hnh nh ho hin th bn trong.
_28_

Bi ging Tin hc i cng

+ 1-Graphical: Cho php va c nhn va c hnh nh ho hin th trong nt lnh. Hnh nh ho hin th trong nt lnh do thuc tnh Picture thit lp. - Picture: Thuc tnh ny ch nh tn file ho s hin th trong nt lnh. Cc dng file ho l Bitmap, Gif, Jpeg, Metafile, Icon. Thuc tnh ny ch c tc dng khi thuc tnh Style t bng 1. - Enabled: Thuc tnh ny c hai gi tr True v False. Ngi lp trnh c th linh hot thit lp gi tr cho thuc tnh ny sao cho ph hp vi tin trnh hot ng ca chng trnh. Th tc tnh hung p ng s kin Th tc tnh hung p ng s kin quan trong nht ca nt lnh l s kin ngi s dng click chut vo nt lnh. Th tc tnh hung c khun mu nh sau: Private Sub <tn nt lnh>_Click() Cc lnh s c vit y End Sub 3.6. Mt s qui c trong ngn ng * B k t Visual Basic c xy dng vi b k t sau: - Cc ch ci: 26 ch ci hoa (A,B,......,Z) 26 ch thng (a,b,......z) - Cc ch s thp phn: 0,1,2,3,4,5,6,7,8,9 - Cc du ton hc thng dng: + - Du gch di _ - Cc k hiu c bit: * T kho (Keyword) T kho l cc t dnh ring cho Visual Basic, mi t c mt chc nng nht nh. Khi s dng phi dng ng vi chc nng. Mt s t kho: DIM CONST STATIC WEND *Tn (Indentifier)
_29_

* / > >= < <= = ( )....

. : & $ # ^ ?

END IF SELECT NEXT THEN CASE

SUB FOR TYPE

FUNCTION

PRIVATE WHILE PUBLIC

Bi ging Tin hc i cng

Tn l mt dy k t c to thnh t cc ch ci, ch s v du gch ni. Tn thng dng t tn cho cc i lng trong chng trnh nh tn bin, hng, tn kiu d liu mi vv.... K t u tin ca tn khng c l ch s. Tn khng c trng vi t kho. - Tn chun: l tn do Visual Basic nh ngha trc dng ch tn cc hm, hng, bin, th tc, hm, s kin trong Visual Basic. - Tn do ngi lp trnh t: t tu nhng phi tun th theo nguyn tc ca Visual Basic nh tn bin, tn kiu d liu mi, tn th tc, tn hm..... 3.7. Cc kiu d liu c bn 3.7.1. Kiu logic (Boolean) - Mt d liu kiu logic ch nhn mt trong hai gi tr sau: TRUE (ng) hoc FALSE (sai). D liu kiu logic chim mt 2 byte trong b nh - Quy c: FALS < TRUE. - Cc php ton i vi kiu Logic: AND, OR, XOR, NOT. 3.7.2. Kiu s nguyn - C ba kiu s nguyn c tng kt qua bng sau: Tn Byte Integer Long 0 n 255 -32768 n 32767 - 2147483648 n 2147483647 Min gi tr Yu cu b nh 1 byte 2 byte 4 byte

- Cc php tnh vi kiu s nguyn: Php tnh + * ^ ngha cng tr nhn php lu tha Php tnh / \ MOD ngha chia chia ly phn nguyn chia ly s d ca hai s nguyn

V d: 5/2=2.50 5 \ 2=2 5 MOD 2=1 Ch :


_30_

Bi ging Tin hc i cng

- Khi vit cc s nguyn phi tun theo cc quy nh: khng c khong trng gia cc s, du + hay - (nu c) phi t ngay trc ch s u tin, khng c s dng du chm thp phn. - Khi thc hin cc php tnh trn s nguyn, phi ht sc thn trng xem cc php ton c cho kt qu vt qu phm vi biu din ca s nguyn hay khng. V d a, b l d liu kiu Integer. Khi hai cu lnh sau: a=80; b=(a*1245) \ 200; cho kt qu sai v a*1245 = 99600 vt qu phm vi ca Integer. 3.7.3. Kiu s thc - C bn kiu s thc, c tng kt qua bng sau:

Tn kiu Single (S thc) C chnh xc n Double (S thc) C chnh xc kp Currency

Min gi tr -3.402823E38 n -1.401298E-45 1.401298E-45 n 3.402823E+38 -1.79769313486231 E308 n 4.94065645841247E-34 4.94065645841247E-324 n 1.79769313486232E308

Yu cu b nh 4 byte

8 byte

-922,337,203,685,477.5808 n (15 s nguyn v 4 922,337,203,685,477.5807 s thp phn) Decimal ng. C th lu s nguyn hay s thc

8 byte

14 byte

Cc gi tr thc c biu din theo hai cch: dng du phy tnh v dng du phy - Cch vit s thc theo dng du phy tnh: vit dng thp phn bnh thng. V d: 2.25, 5.0, -25.56812, 0.0256 - Cch vit s thc theo dng du phy ng: s c tch thnh hai phn l nh tr v bc. Phn nh tr l mt s nguyn hay s thc vit di dng du phy tnh. Phn bc l mt s nguyn. Hai phn cch nhau bi ch E hay e. V d: 123.456E-4 =123.456*10-4 0.12E+5 =0.12*105 = 0.0123456 =12000.0
_31_

Bi ging Tin hc i cng

-52.4E2

= -52.4*10

= 5240.0

Cc k t biu din mt s thc phi vit lin nhau. Cc php ton i vi s thc: + (cng), - (tr), * (nhn), / (chia).. Khng tn ti cc php ton \, MOD cho kiu s thc. Cc hm s hc s dng i vi d liu kiu s Tn hm Abs Atn Abs(n) Atn(number) V d: Dim pi pi = 4 * Atn(1) Cos Cos(number) number o bng Radian Exp Int Exp(x) Int(number) V d: Int(99.8)=99 Int(-99.8)=100 Fix Fix(number) V d: Fix(99.8)=99 Log10 Rnd Round Sin Logarit c s 10 Gi tr pht sinh ngu nhin Gi b to s ngu nhin t 0 n nh hn 1 Round(number) Sin(number) number o bng Radian Sqr Sqr(number) 3.7.4. Kiu xu k t (String) Mt gi tr kiu String l mt dy k t bt k t trong 2 du nhy kp. S k t ca xu ph thuc vo cch khai bo: Khai bo xu c chiu di khng c nh: Dim St as String
_32_

C php

Tc dng Tm gi tr tuyt i ca mt s Tm artangen

Tm cosine

Tm gi tr hm m ex (e=2.17..) Tr v s nguyn ln nht trong nhng s nguyn nh hn s

Tr v phn nguyn ca 1 s

Lm trn s Tm sin ca 1 s

Tnh cn bc 2 ca 1 s

Bi ging Tin hc i cng

Th di cc i ca xu l 2 t k t. Khai bo xu c chiu di c nh: Dim St as String *25 Nu ta gn cho St mt chui ngn hn 25 k t th Visual Basic s thm vo khong ui ca St cc k t khong trng cho y 25 k t. Nu ta gn cho St mt chui di hn 25 k t th Visual Basic s t ng ct b phn tha. Xu khng c k t no gi l xu rng. biu din 1 k t c th dng 1 trong 2 cch: t k t trong 2 du nhy kp, dng hm Chr(n), dng #n( trong n l m ASCIIca k t cn biu din).

V d: biu din k t A ta c th dng 2 cch: A hoc Chr(65). Kiu xu k t ch c php ton so snh, s so snh da vo m ca tng k t trong xu..

Cc php ton i vi xu k t Php ton ph bin nht c thc hin vi cc xu k t l ghp hai xu vi nhau. Du & dng ni hai chui V d: Ho = Nguyn Vn Ten = Trung Hovaten = Ho & Ten Du & ni cc xu theo th t chng ta trnh by chng. Nh vy khc vi php cng cc s, th t l quan trng khi s dng du & ni cc xu vi nhau. Trong nhiu ngn ng lp trnh, k c cc phin bn trc ca Visual Basic c s dng du + ni cc xu vi nhau. Mt s hm c bn c dng cho d liu kiu xu k t Tn hm Space String Ltrim Rtrim Space(n) n = S k t trng lp li String(n,st) LTrim(st) RTrim(st) Lp li xu k t st n ln Tr v xu k t sau khi loi b cc k t trng (nu c) u xu k t st Tr v xu k t sau khi loi b cc k t trng (nu c) cui xu k t st
_33_

C php

Tc dng Tr v xu k t ch cha n k t trng

Bi ging Tin hc i cng

Tn hm Trim Len Mid Left Right InStr Trim(st) Len(st)

C php

Tc dng Tr v xu k t sau khi loi b cc k t trng (nu c) hai u xu k t st Tr v di ca xu k t st Trch ra trong xu k t st n k t bt u t v tr th i Trch ra n k t bn pha tay tri xu k t st Trch ra n k t bn pha tay phi xu k t st Kim tra v tr ca mt xu k t trong mt xu k t khc

Mid(st,i,n) Left(st,n) Right(st,n) Instr(i, st2,st1[,vbTextCompare])

(khng phn bit ch hoa, Tm xu k t st1 trong xu k t st2 bt thng) u t v tr th i. Nu khng tm thy hm tr v gi tr = 0 Val Ucase Lcase Asc Chr Str Val(st) UCase(st) LCase(st) Asc(st) Chr(m ASCII) Str(s) Tr v gi tr s trong xu k t biu din cc ch s st Tr v xu k t in hoa Tr v xu k t ch thng Tr v m ASCII ca k t u tin trong xu k t Tr v k t tng ng vi m ASCII Tr v chui k t biu din gi tr s Tc dng Chuyn sang gi tr kiu Boolean Chuyn sang gi tr kiu Byte Chuyn sang gi tr kiu currency Chuyn sang gi tr kiu date Chuyn sang gi tr kiu Double Chuyn sang gi tr kiu Decimal Chuyn sang gi tr kiu Int Chuyn sang gi tr kiu Long Chuyn sang gi tr kiu Single
_34_

Cc hm chuyn i kiu t d liu dng k t Tn hm Cbool Cbyte Ccur Cdate CDbl Cdec Cint CLng CSng C php CBool(biu thc) Cbyte(biu thc) Ccur(biu thc) Cdate(biu thc) CDbl(biu thc) Cdec(biu thc) Cint(biu thc) CLng(biu thc) CSng(biu thc)

Bi ging Tin hc i cng

Tn hm CStr Cvar

C php CStr(biu thc) Cvar(biu thc)

Tc dng Chuyn sang gi tr kiu String Chuyn sang gi tr kiu Varial

_35_

Bi ging Tin hc i cng

CHNG 4 KHAI BO HNG, BIN, BIU THC CU LNH 4.1. Cc hng trong Visual Basic * Khi nim hng. Hng l i lng c gi tr xc nh v khng thay i khi chng trnh thc hin. Gi tr ca hng c nhn din thng qua tn ca hng. Trong Visual Basic c mt s hng nh: xu k t, hng s, hng c d liu kiu logic, kiu thi gian... * Khai bo hng. C php khai bo nh sau: Const <tn hng> = <gi tr> V d: Const UserName = Nguyn Vn A Const MaxUser As Integer = 10 Gi tr cng c th l cc biu thc s cho hng hoc khai bo cc hng cn c theo cc hng c nh ngha trc. Bn thn Visual Basic cung cp cho chng ta v s cc hng hu dng lm vic vi cc hm, cc i tng v phng thc xy dng sn. Ni chung cc hng ny bt u vi Visual Basic, cc hng c s d liu bt u vi db,... V d: Gi s gi m ca phm Enter trn bn phm thay v s dng m ASCII ca phm l 13 th Visual Basic cung cp cho ta mt hng i din cho m y l hng c tn l vbKeyReturn 4.2. Bin * Khi nim Bin l mt i lng m gi tr ca n thay i khi thc hin chng trnh. Bin l tn ca mt vng b nh lu tr d liu, mi bin phi thuc v mt kiu d liu nht nh v c t tn. * Khai bo bin. C php khai bo bin: Dim <bin> [As <kiu d liu>] V d: Dim Str As String Dim i As Integer

_36_

Bi ging Tin hc i cng

Chng ta c th khng cn nh ngha kiu d liu ca bin khi khai bo, lc bin s c kiu l Variant. C th khai bo nhiu bin trn mt cu lnh, tuy nhin khi ta phi xc nh loi d liu cho mi bin 4.3. Biu thc Mt biu thc c to bi cc ton hng v cc ton t thc hin mt cng thc ton hc. Ton hng c th l hng, hm, bin. Ch rng mt hng, mt bin, mt hm cng c xem l mt biu thc, biu thc n gin. 4.4. Quy nh v vit dng lnh trong Visual Basic. Khi vit cc dng lnh Visual Basic phi tun th cc nguyn tc sau y: - Thng mt cu lnh c vit trn mt dng ca chng trnh, mt dng ca chng trnh cha ti a 1023 k t. - Nu mt dng ca chng trnh cha nhiu cu lnh th gia cc cu lnh phi c ngn cch vi nhau bng du : (hai chm) - Trong trng hp mt cu lnh c vit trn nhiu dng th khi cui dng phi c mt k t du cch v du gch di i lin nhau. 4.5. Cch vit dng ch thch trong chng trnh. Trong qu trnh lp trnh lm sng t mt dng lnh hoc mt on chng trnh ngi ta thng a dng ch thch vo trong chng trnh. Dng ch thch c vit theo qui tc nh sau: Cch 1: ' dng ch thch' Cch 2: REM dng ch thch V d: Ch thch cho on m lnh khai bo bin i l kiu s nguyn Cch 1:'Khai bo bin i kiu s nguyn' Dim i as Integer Cch2: REM Khai bo bin i kiu s nguyn Dim i as Integer 4.6. Cu lnh gn. C php: Tn_bin= biu thc Hoc Tn_i_tng.Thuc_tnh= biu thc
_37_

Bi ging Tin hc i cng

Hot ng: khi gp lnh ny my s tnh gi tr ca biu thc bn phi ca lnh v gn gi tr cho bin hoc thuc tnh v tri . V d: s = s*b 4.7. Cu lnh END. Khi Visual Basic gp cu lnh END, my s dng li. Nu ta ang trong mi trng pht trin ng dng th s quay tr v mi trng pht trin. Trong mi trng c lp, khi gp cu lnh End tt c ca s c m ra s b ng li v chng trnh b xo khi b nh. Ta c th t cu lnh END nhiu ni trong chng trnh tuy nhin phong cch lp trnh tt l hn ch ti a cu lnh ny. Nhng lp trnh vin chuyn nghip thch dng ch 1 cu lnh End, v thng t trong tnh hung Query_UnLoad ca biu mu chnh. 4.8. Lnh in d liu 4.8.1.Cu lnh PRINT. Cu lnh ny nhm mc ch in gi tr ca biu thc ln trn mt Form. C php nh sau: Print <Biu thc>[,<Biu thc 2>]...... Gp cu lnh ny, my s tnh gi tr cc biu thc v in cc gi tr trn biu mu. Nu hai biu thc cch nhau du phy, cc gi tr c in cch nhau mt du cch. Nu hai biu thc cch nhau bi du chm phy (;) th gi tr ca biu thc sau s c in vng tip theo. Mt vng gm 14 k t i lin nhau trn mt biu mu. V d: Print Din tch tam gic l s=,str(s) Ch : Khi son tho chng trnh c th g du hi ? thay cho g t Print. Visual Basic s t thay du ? bng t Print V d: ? Din tch tam gic l s=,str(s) 4.8.2. Lnh MSGBOX Lnh MsgBox to ra trn mn hnh mt ca s nh m ta gi l hp thng bo. Hp ny cha mt thng bo m chng trnh mun gi cho ngi s dng v mt nt lnh OK. Khi ngi s dng xem xong thng bo th nhy chut vo nt lnh OK, cu thng bo ny s bin mt. Lnh ny c c php nh sau: MsgBox Thng bo, [Kiu], [Tiu ] Trong : Thng bo: L mt dy k t to nn dng thng bo n ngi s dng. Tiu : L dy k t c dng lm tiu ca hp thng bo.
_38_

Bi ging Tin hc i cng

Kiu: L mt s nguyn xc nh biu tng dng cnh bo. Tham s kiu c gi tr c lit k trong bng sau y:

Gi tr ca kiu 16 32 48 64 4096

ngha Hin biu tng STOP Hin biu tng du hi (?) Hin biu tng du chm than (!) Hin biu (information) tng ch i

S dng h thng MODAL

V d: Gi s ta c cu lnh sau: Msgbox "D liu nhp vo cha ng",32,"Thng bo v d liu" Cu lnh ny xut hin ln mn hnh hp thng bo nh sau:

4.8.3. Dng Text box C php: TnTextBox.Text=<Biu thc> V d: - In ra TextBox cu Cho Bn (tntextbox la txtkq) Txtkq.text=Cho Bn - In ra TextBox gi tr ca mt bin a Txtkq.Text=Gi tr cav a=+str(a) 4.9. Lnh nhp d liu 4.9.1. Dng Textbox C php: Bin= TnTextBox.Text V d: - Nhp vo tn ca sinh vin thng qua bin sv
_39_

Bi ging Tin hc i cng

Sv=Txtsv.Text Nhp vo gi tr cho bin a a=Val(Txta.Text) 4.9.2. Hm nhp d liu INPUTBOX C php: INPUTBOX(Li nhc, tiu , ngm nh) Trong : Li nhc: L dy k t c dng hng dn ngi s dng nhp d liu Tiu : L dy k t c dng lm tiu ca hp nhp d liu, hp ny xut hin mi khi hm nhp d liu c thc hin. Ngm inh: L dy k t c dng lm gi tr ngm nh ca d liu c nhp V d: mun nhp gi tr cho bin a a= Val(INPUTBOX(Nhp a=,"Nhp d liu cho bin a" ) Khi gp lnh ny my s thc hin hm INPUTBOX v xut hin ca s nhp liu sau:

4.10. Chuyn i kiu d liu trong qu trnh tnh gi tr biu thc Trong qu trnh tnh gi tr ca mt biu thc, cc thnh phn trong biu thc c th l cc kiu d liu khc nhau. Kiu ca kt qu s c xc nh theo yu cu ca ngi s dng. Di y l bng tm tt vic chuyn i d liu nu trn: Cu lnh Dim i as Integer Dim x as Single I=1+"2" I="1"+"2" Trong cu lnh ny chui "2" c bin thnh s nguyn 2, ri cng thm vi 1. Kt qu ca php cng ny l s 3 c gn cho bin I. Nh vy sau khi thc hin cu lnh ny bin I c gi tr l 3 Trong cu lnh ny, u tin chui "1" v "2" cng li vi nhau to
_40_

Tc dng Khai bo bin i l bin kiu s nguyn Khai bo bin x l bin kiu s thc.

Bi ging Tin hc i cng

thnh chui "12". Sau chui ny c bin i thnh s 12. S 12 c gn cho bin I. nh vy sau cu lnh ny bin I c gi tr l 12. X=5.5 X="5.5" X=5,5 Gn gi tr 5.5. cho bin X Trong cu lnh ny, u tin chui "5.5" c bin i thnh s thc 5.5, sau gn cho bin X. Sau cu lnh ny bin x c gi tr l 5.5. Trong cu lnh ny, u tin chui "5,5" c bin i thnh s thc 55, v Visual Basic b qua du , khng cho l du phy thp phn, dng ngn chia phn nguyn v phn l ca s. Sau gn cho bin X. Sau cu lnh ny bin X c gi tr l 55. Cu lnh ny khng ng v xu 5B5 khng th i thnh s c

X=5B5

4.11. Cu trc iu kin 4.11.1. Cu lnh iu kin thiu C php 1: If <biu thc iu kin> Then <cng vic> C php 2: If <biu thc iu kin> Then <cng vic> End If Gii thch <Biu thc iu kin> l gi tr kiu logic. Hot ng ca cu lnh nh sau: Nu biu thc iu kin cho gi tr ng th thc hin <cng vic> sau Then, ngc li <cng vic> s khng c thc hin v my thc hin tip nhng cu lnh ng sau cu lnh IF. C php 1 thng c s dng khi <cng vic> thng l mt cu lnh n. V d: IF Not IsNumeric(Text1.Text) THEN Msgbox y khng phi l s S thut ton:

Biu thc iu kin

Cng vic

S
Thc hin cc cu lnh sau IF

_41_

Bi ging Tin hc i cng

4.11.2. Cu lnh iu kin C php 1: If <biu thc iu kin> Then <cng vic 1> Else <cng vic 2> End If Khi gp cu lnh ny chng s kim tra biu thc iu kin, nu iu kin ng my s thc hin cng vic 1 ngc li s thc hin cng vic 2. S thut ton:

Cng vic 2

Biu thc iu kin

Cng vic 1

Thc hin cc cu lnh sau IF

C php 2: If <Biu thc iu kin 1> Then <Cng vic 1> ElseIf <Biu thc iu kin 2> Then <Cng vic 2> --------------------------------ElseIf <Biu thc iu kin n> <Cng vic n> Else <Cng vic n+1> End If
_42_

Bi ging Tin hc i cng

Khi gp cu lnh ny my tnh s kim tra biu thc iu kin 1, nu iu kin 1 ng th cng vic 1 s c thc hin ngc li s kim tra biu thc iu kin 2 nu biu thc iu kin 2 ng th cng vic 2 s c thc hin... Vi cu trc ny 1 cng vic s c thc hin khi biu thc iu kin tng ng vi n cho gi tr ng, trong trng hp khng c biu thc iu kin no no ng th s i thc hin cng vic th n+1. S thut ton:

Biu thc S iu kin

Cng vic 1

S
Biu thc iu kin

Cng vic 2 Thc hin cc cu lnh sau IF

.........................................
Biu thc iu kin

Cng vic n Cng vic n+1

4.12. Cu lnh la chn SELECT Cu lnh ny cng ging nh cu lnh If ... else .... End if. Tuy nhin cu trc ny c nhiu s la chn hn. C php ca cu lnh nh sau: Select Case <Biu thc> Case <gi tr 1> <cng vic 1> Case <gi tr 2> <cng vic 2> ............ Case <gi tr n> <cng vic n> [ Case Else
_43_

Bi ging Tin hc i cng

<cng vic n+1>] End Select Trong , gi tr c th l 1 gi tr c th hoc l min gi tr hoc mt biu thc o thc 2> <biu thc 1> To <biu thc 2>: min gi tr t <biu thc 1> n <biu

oIs <ton t so snh><Biu thc> (hay <biu thc><ton t so snh><Biu thc>) Hot ng: Gp lnh ny my s i tnh gi tr ca biu thc sau em so snh vi cc gi tr . Nu nm vo min gi tr th i th i thc hin cng vic th i, ngc li khng trng vi min gi tr no th i thc hin cng vic th n+1 S thut ton

Biu thc iu kin

Cng vic 1

S
Biu thc iu kin

Cng vic 2 Thc hin cc cu lnh sau IF

Biu thc iu kin

Cng vic n

Cng vic n+1

V d : Xc nh ma trong nm da vo thng Selelct Case Month Case Is <4 Msgbox Ma Xun Case 4,5,6 Msgbox Ma h Case 7 to 9 Msgbox Ma Thu Case Else
_44_

Bi ging Tin hc i cng

Msgbox Ma ng End Select 4.13. Cu trc lp . 4.13.1. Khi nim v lp. Lp l mt hin tng, mt cng vic c thc hin i thc li lin tip nhiu ln ti cng mt khong thi gian xc nh. Trong cc ngn ng lp trnh ngi ta chia ra lm hai loi cu trc lp: + Vng lp xc nh: L loi vng lp bit trc s ln lp + Vng lp khng xc nh l loi vng lp khng bit trc s ln lp 4.13.2. Vng lp xc nh. Vng lp xc nh l vng lp m s ln lp li ca cng vic c bit trc. Trong Visual Basic vng lp xc nh c thc hin bi cu lnh For c cu trc nh sau: For <bin> = <biu thc 1> To <biu thc 2> [Step <biu thc 3>] <cng vic> [Exit For] Next [<bin>] Trong biu thc 1 v biu thc 2 l hai ch s u v cui ca bin, biu thc 2 c th c gi tr dng hay m. Step nhm tng hay gim bin sau mi vng lp. Nu khng xc nh r th Step s c gi tr l 1. Nu s dng cu lnh Exit For th khi gp cu lnh ny my tnh s nhy ra khi vng lp. V d 1: Tnh tng cc s t 1 n 10 Dim Sum As Integer, i As Integer Sum = 0 For i = 1 to 10 Sum = Sum + i Next i V d 2: Tnh tng S=1+1/2+1/3+.+1/(n-1)+1/n Vi n l s nguyn dng Dim n as integer Dim i as integer Dim S as Single
_45_

Bi ging Tin hc i cng

n=val(Inputbox(Nhp gi tr cho n=)) S=0 For =1 to n S=S+1/i Next i Print Tong s=,str(S) 4.13.3. Vng lp khng xc nh
Vng lp While C php 1: C php 1: Vng lp UnTil

Do While <iu kin lp> <cng vic> [Exit Do] Loop C php 2: Do <cng vic> [Exit Do] Loop While <iu kin lp> C php 3: While <iu kin lp> <cng vic> Wend

Do UnTil <iu kin lp> <cng vic> [Exit Do] Loop C php 2: Do <cng vic> [Exit Do] Loop Until <iu kin lp>

Hot ng: Vng lp While ch hot ng S thut ton c php 1 khi iu kin ng cn thot khi iu kin sai.
S thut ton c php 1 Cng vic

Hot ng: Vng lp UnTilch hot ng khi iu kin sai cn thot khi iu kin ng.

kin S

Cng vic kin

_46_

Bi ging Tin hc i cng

V d1: Tnh tng cc s t 1 n 10 Dng lnh While Dim Sum As Integer, i As Integer i=0 Sum=0 Do While i<10 Sum = Sum + i i=i+1 Loop Dng lnh Until Dim Sum as Integer, i as Integer i=0 Sum = 0 Do Until i>10 Sum = Sum + i i = i+1 Loop V d 2: Tm c s chung ln nht ca hai s nguyn dng a,b Dim a as integer, b as integer Dim UCLN as Integer Do a= val(Inputbox(Nhp gi tr cho a=)) b= val(Inputbox(Nhp gi tr cho b=)) Loop Until a>0 and b>0 Do while a<>b If a>b then a=a-b Else b=b-a end if
_47_

Bi ging Tin hc i cng

Loop UCLN=a Print c s chung ln nht l:,str(UCLN) 4.14. Mt s v d: V d 1: Gii v bin lun phng trnh ax+b=0 (Dng Textbox nhp liu) Cch 1: Dng textbox nhp liu 1. Thit k giao din

2. Bng thuc tnh STT 1 Tn i tng biu mu Thuc tnh Name Caption 2 3 4 5 6 Textbox Textbox Textbox Nt lnh Nt lnh Name Text Name Text Name Text Name Caption Name Caption 3. Code lnh Private Sub CmdTinhToan_Click()
_48_

Gi tr FrmBai1_a Giai bien luan phuong trinh a*x =b :( dung textbox ) Txtnhapa Txtnhapb Txtkq cmdTinhToan tnh ton cmdThoat thot

Bi ging Tin hc i cng

Dim x As Single Dim a As Single Dim b As Single If (Not IsNumeric(Txtnhapa.Text)) Or (Not IsNumeric(Txtnhapb.Text)) Then MsgBox "ban phai nhap a, b la chu so" Exit Sub End If a = Val(Txtnhapa.Text) b = Val(Txtnhapb.Text) If a = 0 Then MsgBox "So a khong duoc la 0" Exit Sub End If x = -b / a Txtkq.Text = a & "*x + " & b & " = " & x End Sub Private Sub CmdThoat_Click() Unload Me End Sub Cch 2: Dng hm Inputbox nhp liu 1. Giao din bi ton

2. Bng thuc tnh STT 1 Tn i tng biu mu Thuc tnh Name Caption FrmBai1_b Giai bien luan phuong trinh a*x =b :( khong dung textbox )
_49_

Gi tr

Bi ging Tin hc i cng

2 3 4

Textbox Nt lnh Nt lnh 3. Code lnh

Name Text Name Caption Name Caption

TxtKq cmdTinhToan tnh ton cmdThoat thot

Private Sub CmdTinhToan_Click() Dim x As Single Dim a As single Dim b as Single Do While True a = val(InputBox("Nhap so a :")) If IsNumeric(a) Then Exit Do MsgBox "ban phai nhap a la chu so" Loop If a = 0 Then MsgBox "So a khong duoc la 0" Exit Sub End If Do While True b = val(InputBox("Nhap so b :")) If IsNumeric(b) Then Exit Do MsgBox "ban phai nhap b la chu so" Loop x = -b / a txtkq.Text = a & "*x + " & b & " = " & x End Sub Private Sub CmdThoat_Click() Unload Me End Sub
_50_

Bi ging Tin hc i cng

CHNG 5 HM V TH TC 5.1. Khi nim chng trnh con Trong thc t khi gp mt vn ln, phc tp ngi ta khng vi vng gii quyt ngay vn y m tm cch tch n thnh cc vn nh n gin hn. Vic ny tng t nh trong dy chuyn sn xut cng nghip, ngi ta chia sn phm hon chnh thnh nhiu sn phm nh v mi nh my s sn xut nhng sn phm nh , sau ghp li thnh sn phm hon chnh. Tng t nh vy trong lp trnh, mt vn ln v phc tp s tng ng vi mt chng trnh ln v cc vn nh tng ng vi cc chng trnh nh gi l cc chng trnh con (CTC). y l tng c bn ca khi nim lp trnh c cu trc, lm cho ton b chng trnh sng sa, d hiu chnh, d g ri. Vic chia nh chng trnh thnh cc chng trnh con (mi chng trnh con gi l mt Module) gi l chia tr, chia d iu khin. Mt khc, trong khi lp trnh c nhng on chng trnh c lp i lp li nhiu ln nhiu ch khc nhau. trnh rm r, vit i vit li, nhng on chng trnh ny c thay th bng cc chng trnh con tng ng, v khi cn ta ch vic gi chng trnh con modul vi cc tham s cn thit m khng phi vit li c on chng trnh y. V d: khi lm cc bi ton lng gic, thng xuyn ta cn tnh SIN ca mt gc no , nh vy ta nn lp mt chng trnh con c tn l SIN vi tham s cn thit l ln ca gc x. Tm li: Chng trnh con l mt chng trnh c vit theo nhng quy tc c bit c th c gi thc hin trong mt chng trnh khc. Chng trnh con gip cho ngi lp trnh c nhng thun li sau: + Vic th nghim, hiu chnh, g ri d dng hn. + Thc hin nguyn tc "Vit mt ln dng nhiu ln, mt ngi vit nhiu ngi dng". 5.2. Hm v th tc Hm (Function): l mt CTC dng tnh mt gi tr no v tr li gi tr thng qua tn hm, v d hm SIN cho gi tr SIN ca x thng qua SIN(x). Th tc (Sub): l mt CTC dng thc hin mt cng vic ring bit trn mt tp hp cc tham s (hoc khng cn cc tham s). S khc nhau c bn v duy nht ca hai loi CTC ny l hm tr li gi tr thng qua tn hm v do c s dng trong biu thc, th tc th khng tr li kt qu thng qua tn ca n nn cc th tc khng th vit trong cc biu thc.
_51_

Bi ging Tin hc i cng

Cu trc tng qut ca mt hm v th tc: Function Tn_hm(danh sch cc tham s) As Kiu_ d_ liu Cc lnh trong thn hm Tn_hm=biu thc gi tr End Function

Sub Tn_th_ tc(danh sch cc tham s) Cc lnh trong thn th tc End Sub Gii thch: Cc tham s sau tn hm v tn th tc chnh l cc gi tr c truyn cho hm hoc th tc khi chng c gi. Cc tham s ny l cc tham s hnh thc hay cn gi l i s. y l ty chn, ngha l trong lp trnh ngi ta c th dng CTC khng c tham s, iu ch ct gip cho lp trnh sng sa, d c. Cch xy dng hm v th tc trong Visual Basic: to hm v th tc ta lm nh sau: M ca s lnh (Code) Chn menu Tool Chn Add Procedure. Hp hi thoi Add Procedure xut hin:

Xc nh tn hm hoc th tc trong hp Name Chn Function hoc Sub xc nh kiu ca CTC l hm hay th tc Chn Private xc nh CTC l cc b trong mt biu mu hoc Pubilc xc nh CTC c tc dng trong ton b chng trnh. Chn OK
_52_

Bi ging Tin hc i cng

Xut hin mt trong hai mu sau: (gi s chn phm vi l Private trn)

Private Function Tn_hm() As Kiu_ d_ liu

End Function

Private Sub Tn_th_ tc() End Sub

V d: Vit hm tm gi tr ln nht trong ba s a, b, c Private Function Max(a As Single, b As Single, c As Single) As Single Dim ketqua As Single ketqua=a If ketqua<b Then ketqua=b End If If ketqua<c Then ketqua=c End If Max= ketqua End Function V d: Vit th tc i gi tr trong hai bin a v b Private Sub Doi(a As Single,b As Single) Dim tg As Single tg=a a=b b=tg End Sub 5.3. Truyn tham s cho chng trnh con s dng hm hoc th tc ta ch vic vit li gi chng v truyn vo cc tham s thc s (cc gi tr c th) thay th cho cc tham s hnh thc khai bo trong tiu ca CTC.
_53_

Bi ging Tin hc i cng

C php: Li gi hm Tn_Hm(Danh sch tham s thc s) Ch : hm phi lun c gi trong biu thc. Li gi th tc: Call Tn_th_tc(Danh sch cc tham s thc s) Hoc: Tn_th_tc Danh sch cc tham s thc s Li gi hm thng t trong biu thc tham gia vo qu trnh tnh gi tr ca biu thc. Li gi th tc thng c vit trong mt chng trnh chnh nh mt cu lnh c lp. V d: Khi tnh gi tr biu thc S theo x, a, b trong c s dng hm SIN v COS. Ta gi hm ny trong chng trnh chnh nh sau: S= 2*x^2 + cos(a) sin(b) Khi xy dng xong th tc DOI thc hin vic kim tra hai s x v y, nu x>y th tro i gi tr x v y cho nhau. Trong chng trnh chnh ta gi th tc y nh sau Call Doi(x,y) Hoc Doi x,y Vic chuyn tham s cho chng trnh con l mt c cu thay th tng ng, n cho php mt qu trnh c th lp i lp li nhiu ln vi cc ton hng khc nhau. V d: Call Doi(x,y) s thay th x vo v tr ca a, y vo v tr ca b, tng t vi Call Doi(c,d). S lng cc tham s thc s phi bng s lng cc tham s hnh thc, tr nhng trng hp tham s hnh thc c ch nh vi ty chn Optional. Kiu ca tham s thc s phi ph hp vi kiu ca tham s hnh thc tng ng. C hai cch truyn tham s cho chng trnh con: tham tr v tham bin a) Chuyn tham s bng bin (tham bin): Tham s hnh thc trong phn tiu ca CTC s c t sau t kha ByRef (mc nh). V d: Sub Doi(ByRef a as Single, ByRef b as Single)
_54_

Bi ging Tin hc i cng

Hoc Sub Doi(a as Single, b as Single) Cc tham s thc s l cc tham bin th gi tr ca n c th c thay i trong CTC. V d: Sub Doi(a As Single, b As Single, c As Single) Dim tg As Single tg=a a=b b=tg MsgBox Trong CTC a = + Str(a) + ; b = + Str(b) End Sub Private Sub CmdChayCT_Click() Dim a As Single, b As Single a=2 b=3 MsgBox CTC c tham bin MsgBox Truoc khi goi CTC a = + Str(a) + ; b = + Str(b) Call Doi(a,b) MsgBox Sau khi goi CTC a = + Str(a) + ; b = + Str(b) End Sub Kt qu l: CTC c tham bin Truoc khi goi CTC a = 2 ; b = 3 Trong CTC a = 3 ; b = 2 Sau khi goi CTC a = 3 ;b = 2 b) Chuyn tham s bng gi tr (tham tr) Tham s hnh thc trong phn tiu ca CTC s c t sau t kha ByVal. V d: Sub Doi(ByVal a as Single, ByVal b as Single)
_55_

Bi ging Tin hc i cng

Khi ny cc tham s hnh thc tng ng nhn gi tr ca tham s thc nh l gi tr ban u vo thi im thay vo CTC. CTC sau c th thay i gi tr ca cc tham tr ny bn trong CTC bng php gn, song n s khng lm thay i gi tr ca tham s thc. V d: Sub Doi(ByVal a as Single, ByVal b as Single) Dim tg As Single tg=a a=b b=tg MsgBox Trong CTC a = + Str(a) + ; b = + Str(b) End Sub Private Sub CmdChayCT_Click() Dim a As Single, b As Single a=2 b=3 MsgBox CTC c tham tr MsgBox Truoc khi goi CTC a = + Str(a) + ; b = + Str(b) Call Doi(a,b) MsgBox Sau khi goi CTC a = + Str(a) + ; b = + Str(b) End Sub Kt qu l: CTC c tham tr Truoc khi goi CTC a = 2 ; b = 3 Trong CTC a = 3 ; b = 2 Sau khi goi CTC a = 2 ;b = 3 5.4. Bin ton cc, bin a phng, khi nim tm tc dng Visual Basic 6 l ngn ng lp trnh th tc, hng s kin. Tp hp cc th tc, bin c, cc hm lin quan n mt biu mu c gi l n th chng trnh biu mu. Tp hp cc th tc, bin c, cc hm khng lin quan n mt biu mu c gi l n th chng trnh c lp. Tp hp th tc, hm bin c lin quan c t trong cc

_56_

Bi ging Tin hc i cng

modul hoc cc n th ring. Mt n th c th lin quan n mt biu mu hoc khng lin quan n mt biu mu no c. Mt bin c th c khai bo bn trong mt th tc/hm hay khai bo phn u ca n th lp trnh, trong phn khai bo General. i vi cc bin khai bo trong th tc hoc hm ta dng t kha Dim, khi cc bin ny ch c tc dng trong hm hoc th tc , khi ra khi hm v th tc, bin s mt tc dng. Bin kiu ny c gi l bin a phng (hay bin cc b). i vi cc bin khai bo trong cc n th chng trnh ta c th dng cc t kha Private, Dim, Public, Global. Nu dng t kha Private hoc Dim, bin s ch c tc dng trong n th chng trnh , tc l n c th c s dng cho cc hm v th tc nm trong n th . Nu dng t kha Public hoc Global th bin c phm vi tc dng trong ton b chng trnh, ngha l n c th c s dng trong cc n th chng trnh ca d n, trong tt c cc hm v th tc ca cc n th y. Khi ngi ta ni bin c phm vi ton cc. Hnh di y s cho ta thy v tr ca khai bo bin:

Bin cp modul

Bin cp procedure

Lu : cc CTC khc nhau, cc mc khai bo khc nhau, ta c th khai bo mt bin c cng tn vi bin CTC khc, mc khai bo khc. Tn bin khi ny khng phi l mt bin duy nht m l cc bin khc nhau vi tc dng khc nhau. V d trong CTC A c bin a phng X v trong CTC B c bin a phng cng tn l X. Lc , my s dng hai nh khc nhau lu tr hai bin, khi ra khi CTC A, bin a phng X trong CTC A mt tc dng v khi ra khi CTC B, bin a phng X trong B mt tc dng. Nu mt bin c khai bo vi t kha Static th bin c phm vi tc ng ton cc d n c khai bo trong hm hoc th tc. Khi gi CTC, sau mi ln s dng gi

_57_

Bi ging Tin hc i cng

tr ca bin s c nh li v thot khi CTC, gi tr ca n s gi nguyn gi tr nhn c trong CTC. V d: Fuction Cong(Number) Static SoLuong SoLuong= SoLuong + Number Cong = SoLuong End Function Vi on chng trnh trn, sau mi ln gi hm, khi thot khi hm Cong, bin SoLuong vn gi li gi tr ca mnh. Phm vi v tm tc dng ca CTC tng t nh i vi bin. Khng dng t kha Dim khi t phm vi tc dng ca CTC, c th s dng cc t kha Private, Public.

_58_

Bi ging Tin hc i cng

CHNG 6 D LIU C CU TRC KIU MNG 6.1. Khi nim v mng Mng l mt tp hp hu hn cc phn t c cng tn, cng kiu d liu. Gia cc phn t ca mng c phn bit vi nhau qua s th t ca cc phn t hay cn gi l ch s ca cc phn t. S phn t ca mng c th c xc nh ngay t khi khai bo mng (trong mng tnh) hoc c th thm cc phn t trong qu trnh x l (vi mng ng). Mng c bin trn v bin di, cc thnh phn trong mng l lin tc gia hai bin. Trong trng hp bi ton c nhiu gi tr tng t nhau, th d nh trong bi ton cn qun l im thi ca mt sinh vin, nu phi t tn khc nhau cho tng bin (th d: SV_mon1, SV_mon2, SV_mon3, SV_mon4, SV_mon5...) Khi phi t mi tn cho 1 mn hc th kh bt tin trong qu trnh x l. thun tin trong qu trnh x l c th dng mt tn chung cho tt c cc mn hc, ri ni n im ca tng mn mt bng cch dng mt con s gi l ch mc. Khi nhm cc im trn c gi l 1 mng lu cc gi tr im thi ca sinh vin. Mun truy cp n mt phn t no ca mng ta vit nh sau: <Tn mng>.(Ch s) 6.2. Khai bo mng tnh Mng tnh l mng c s phn t c xc nh ngay t khi khai bo mng v s phn t ny khng thay i trong chng trnh. 6.2.1. Khai bo mng 1 chiu khai bo mng 1 chiu c 2 cch Cch 1 : DIM Ten_mang(n) As Kiu_d_liu Trong : n l s nguyn dng ch s lng cc phn t trong mng. Nu khai bo nh trn ta s thu c mng gm n+1 phn t v phn t u tin c ch s l 0, phn t cui cng c ch s l n. Quay li vi bi ton trn gi s ta cn lu im ca 1 sinh vin trong 1 hc k vi s mn hc l 10. Khi ta s khai bo Dim StudentMarks(9) as Integer K cn nhp im ca sinh vin bng cch vit StudentMarks(i), m i l ch mc i<9. Gi d ta mun nhp tt c im ca sinh vin StudentMarks(0) = 6 Diem mon hoc 1
_59_

Bi ging Tin hc i cng

StudentMarks(1) = 6 StudentMarks(2) = 7 StudentMarks(3) = 5 StudentMarks(4) = 9 StudentMarks(5) = 6 StudentMarks(6) = 8 StudentMarks(7) = 9 StudentMarks(8) = 10 StudentMarks(9) = 6 Cch 2 :

' Diem mon hoc 2

Diem mon hoc 10

DIM Ten_mang(ch s u TO ch s cui) As Kiu_d_liu Khi khai bo theo cch 2 ta thu c mng c s phn t: n = (ch s cui - ch s u) +1. Lu : Vi phn t u c ch s bng ch s u, phn t cui c ch s bng ch s cui. Quay li vi bi ton nu ta khai bo mng lu tr im 10 mn hc ta khai bo: Dim StudentMarks(1 to 10) AS Integer Khi im mn 1 s c gn vo StudentMarks(1), im mn 10 s c gn vo StudentMarks(10). 6.2.2. Khai bo mng nhiu chiu Khi lm vic vi gi tr cc phn t ca mt ma trn n chiu cch n gin nht l khai bo mt mng c s chiu tng ng. khai bo mt mng gm n chiu ta thc hin theo 1 trong 2 cch sau: Cch 1 : Dim Tn_mng (n1, n2, n3, ,nm) As Kiu_d_liu Vi n1+1 l s phn t ca chiu 1 Vi n2+1 l s phn t ca chiu 2 Vi nm+1 l s phn t ca chiu th m V d: khi khai bo mng 2 chiu c tn Ma_Tran Dim Ma_Tran(4,5) As Integer
_60_

Bi ging Tin hc i cng

Khi ta s thu c mng 2 chiu vi s phn t ln lt l 5 v 6. Tng s phn t lc ny l 5*6=30 phn t gn gi tr cho phn t c ch s hng l 3, ch s ct l 4 ta thc hn: Ma_Tran(3,4) =10 Cch 2 : Dim Tn_mng ( a1 to b1,a2 to b2,,am to bm ) As Kiu_d_liu a1 v b1 ln lt l ch s phn t u v cui chiu 1 a2 v b2 ln lt l ch s phn t u v cui chiu 2 am v bm ln lt l ch s phn t u v cui chiu m Khi tng s phn t trong mng lc ny l: n= (b1-a1+1)*(b2-a2+1)**(bmam+1) 6.3. Khai bo mng ng (Dynamic Array) Mng ng l mng c cc phn t trong mng khng c xc nh trc, trong qu trnh x l, s lng cc phn t ca mng mi c khai bo hoc cc phn t trong mng c th b xung thm ph hp vi cc yu cu ca bi ton. khai bo mt mng ng ta khai bo : DIM Ten_mang() As Kiu_d_liu V khng mt con s gia hai du ngoc n nn VB6 bit l dng mng ng v s phn t ca n c th s thay i trong tng lai. Khi no mun thay i s phn t ca mng ng dng ReDim: ReDim Ten_mang(n) Hoc ReDim Preserve Ten_mang(m) Vi t kho ReDim VB6 s khi to li tt c cc gi tr phn t ca mng (nu chng tn ti) khi gi tr s c gn=0 vi tt c cc phn t kiu s, gn= vi cc phn t kiu xu. Vi t kho ReDim Preserve khi VB6 ch thm vo mng phn t mi v gi tr cc phn t c tn ti trong mng vn khng i. V d: Dim Matrix () As Integer Khai bo mng Matrix l mng ng ReDim Matrix(5) Gn mng Matrix l mng c 6 phn t
_61_

Bi ging Tin hc i cng

ReDim Matrix(6) Gn mng Matrix l mng c 7 phn t v cc phn t trong mng u b gn =0 ReDim Preserve Matrix (7) M rng Matrix l mng c 8 phn t trong cc phn t c ca mng vn gi nguyn gi tr. Phn t th 8 c thm vo s c gn =0 6.4. Mt s thut ton v mng Dng 1: Tm gi tr ln nht hoc nh nht trong mng V d: Nhp vo mt mng s nguyn gm n phn t. Tm gi tr ln nht trong mng. In kt qu ra mn hnh. Yu cu: S dng cc i tng Form, Lable, Textbox, Command Button, thit k giao din bi ton Vit m lnh bi ton. Hng dn: Thit k giao din
Kt Qu X L Thot txtKQ

cmdXuLy

cmdThoat

M lnh bi ton. Private Sub cmdThoat_Click() End End Sub Private Sub cmdXuLy_Click() Dim i As Integer, n As Integer, max As Integer Dim a(1 To 100) As Integer Do n = Val(InputBox("Nhap n = "))
_62_

Bi ging Tin hc i cng

Loop Until n > 0 And n <= 100 For i = 1 To n a(i) = Val(InputBox("Nhap a(" + Str(i) + ") = ")) Next i max = a(1) For i = 2 To n If a(i) > max Then max = a(i) End If Next i txtKQ.Text = "Gia Tri Lon Nhat = " + Str(max) End Sub Dng 2: Sp xp cc phn t ca mng theo th t tng hoc gim dn V d: Nhp vo mt mng s nguyn gm n phn t. Sp xp cc phn t trong mng theo th t gim dn. In kt qu ra mn hnh. Yu cu: S dng cc i tng Form, Lable, Textbox, Command Button, thit k giao din bi ton Vit m lnh bi ton. Hng dn: Thit k giao din
Kt Qu X L Thot txtKQ

cmdXuLy

cmdThoat

M lnh bi ton. Private Sub cmdThoat_Click() End End Sub Private Sub cmdXuLy_Click()
_63_

Bi ging Tin hc i cng

Dim i As Integer, j As Integer, n As Integer, tg As Integer Dim a(1 To 100) As Integer Do n = Val(InputBox("Nhap n = ")) Loop Until n > 0 And n <= 100 For i = 1 To n a(i) = Val(InputBox("Nhap a(" + Str(i) + ") = ")) Next i For i = 1 To n-1 For j = i+1 to n If a(i) < a(j) Then tg = a(i) a(i) = a(j) a(j) = tg End If Next j Next i txtKQ.Text = "" For i = 1 to n txtKQ.Text = txtKQ.Text + Str(a(i)) + ; Next i End Sub Dng 3: Chn mt phn t b vo v tr k ca mng V d: Nhp vo mt mng s nguyn gm n phn t. Chn s b vo v tr th k trong mng. In kt qu ra mn hnh. Yu cu: S dng cc i tng Form, Lable, Textbox, Command Button, thit k giao din bi ton Vit m lnh bi ton. Hng dn: Thit k giao din

_64_

Bi ging Tin hc i cng


Kt Qu X L Thot txtKQ

cmdXuLy

cmdThoat

M lnh bi ton. Private Sub cmdThoat_Click() End End Sub Private Sub cmdXuLy_Click() Dim i As Integer, b As Integer, k As Integer, n As Integer Dim a(1 To 100) As Integer Do n = Val(InputBox("Nhap n = ")) Loop Until n > 0 And n <= 100 For i = 1 To n a(i) = Val(InputBox("Nhap a(" + Str(i) + ") = ")) Next i b = Val(InputBox(Nhap b = )) Do k = Val(InputBox(Nhap k = )) Loop Until k > 0 And k <= n For i = n To k Step -1 a(i+1) = a(i) Next i a(k) = b n=n+1 txtKQ.Text = "" For i = 1 to n txtKQ.Text = txtKQ.Text + Str(a(i)) + ;
_65_

Bi ging Tin hc i cng

Next i End Sub Dng 4: Xo i phn t v tr th k ca mng V d: Nhp vo mt mng s nguyn gm n phn t. Xa i phn t v tr th k trong mng. In kt qu ra mn hnh. Yu cu: S dng cc i tng Form, Lable, Textbox, Command Button, thit k giao din bi ton Vit m lnh bi ton. Hng dn: Thit k giao din
Kt Qu X L Thot txtKQ

cmdXuLy

cmdThoat

M lnh bi ton. Private Sub cmdThoat_Click() End End Sub Private Sub cmdXuLy_Click() Dim i As Integer, k As Integer, n As Integer Dim a(1 To 100) As Integer Do n = Val(InputBox("Nhap n = ")) Loop Until n > 0 And n <= 100 For i = 1 To n a(i) = Val(InputBox("Nhap a(" + Str(i) + ") = ")) Next i Do k = Val(InputBox(Nhap k = ))
_66_

Bi ging Tin hc i cng

Loop Until k > 0 And k <= n For i = k To n - 1 a(i) = a(i+1) Next i n=n-1 txtKQ.Text = "" For i = 1 to n txtKQ.Text = txtKQ.Text + Str(a(i)) + ; Next i End Sub Dng 5: Mt s bi ton khc v mng V d: Nhp vo mt mng s nguyn gm n phn t. Tnh trung bnh cng ca cc phn t chia ht cho 3 trong mng. In kt qu ra mn hnh. Yu cu: S dng cc i tng Form, Lable, Textbox, Command Button, thit k giao din bi ton Vit m lnh bi ton. Hng dn: Thit k giao din
Kt Qu X L Thot txtKQ

cmdXuLy

cmdThoat

M lnh bi ton. Private Sub cmdThoat_Click() End End Sub Private Sub cmdXuLy_Click() Dim i As Integer, n As Integer, tbc As Single, dem As Integer Dim a(1 To 100) As Integer
_67_

Bi ging Tin hc i cng

Do n = Val(InputBox("Nhap n = ")) Loop Until n > 0 And n <= 100 For i = 1 To n a(i) = Val(InputBox("Nhap a(" + Str(i) + ") = ")) Next i tbc = 0 d=0 For i = 1 To n If a(i) MOD 3 = 0 Then tbc = tbc + a(i) d=d+1 End If Next i If d = 0 Then txtKQ.Text = "Mang khong ton tai phan tu nao chia het cho 3" Else tbc = tbc/dem txtKQ.Text = TBC = + Str(dem) End If End Sub

_68_

You might also like