You are on page 1of 73

Gio trnh tin hc i cng

gn ng lp trnh

MC LC
BI 1: THUT TO V THUT GII .................................................................................................................. 4
I. THUT TON ............................................................................................................................................................. 4
1. Thut ton gii mt bi ton l :............................................................................................................................. 4
2. Cc c trng khc ca thut ton.............................................................................................................................. 4
3. Cc phng php biu din thut ton........................................................................................................................ 5
4. Thut ton quy ........................................................................................................................................................ 7
II.THUT GII................................................................................................................................................................ 8
1. Thut gii Heuristic ..................................................................................................................................................... 9
BI 2: G G LP TRH .............................................................................................................................. 11
I. Khi nim v ngn ng lp trnh & chng trnh my tnh........................................................................................ 11
II. Cc loi ngn ng lp trnh thng dng ................................................................................................................... 11
1. :gn ng my............................................................................................................................................................ 11
2. Hp ng ..................................................................................................................................................................... 11
3. :gn ng cp cao ...................................................................................................................................................... 12
4. Cc ngn ng lp trnh thng dng ........................................................................................................................... 12
5. Trnh thng dch v bin dch .................................................................................................................................... 13
6. Lp trnh cu trc ...................................................................................................................................................... 14
7. Lp trnh hng i tng......................................................................................................................................... 15
III. Cc bc xy dng chng trnh............................................................................................................................. 16
1. Xc nh vn - bi ton. ........................................................................................................................................ 16
2. La chn phng php gii....................................................................................................................................... 16
3. Xy dng thut ton hoc thut gii.......................................................................................................................... 17
4. Ci t chng trnh.................................................................................................................................................. 17
5. Hiu chnh chng trnh. ........................................................................................................................................... 17
6. Thc hin chng trnh.............................................................................................................................................. 17
BI 3: LM QUE VI BORLAD PASCAL ...................................................................................................... 18
I. Khi ng v thot Borland Pascal : ......................................................................................................................... 18
1. Khi ng Borland Pascal : ...................................................................................................................................... 18
2 Thot khi BorlandC .................................................................................................................................................. 19
II. Trnh son tho ca Borland Pascal......................................................................................................................... 19
1. M tp tin son tho mi ........................................................................................................................................... 19
2. Lu tp tin.................................................................................................................................................................. 19
3 M tp tin.................................................................................................................................................................... 20
III. Cc tp tinh chnh ca Borland Pascal ................................................................................................................... 20
IV. Khai bo s dng th vin chuTn: ........................................................................................................................... 21
V. Cc phm, t hp phm thng dng ......................................................................................................................... 21
1. Cc phm di chuyn con tr ....................................................................................................................................... 21
2. Cc phm thao tc trn khi....................................................................................................................................... 22
3. Cc thao tc xa ........................................................................................................................................................ 22
4. Cc thao tc sao chp v di chuyn........................................................................................................................... 23
5. Cc thao tc khc ...................................................................................................................................................... 23
VI. Sa li c php v g ri chng trnh ................................................................................................................... 24
1. Sa li c php .......................................................................................................................................................... 24
2. G ri chng trnh ................................................................................................................................................... 24
BI 4: CC THH PH TROG G G PASCAL ............................................................................... 27
I. TP K T DNG TRONG NGN NG PASCAL: ................................................................................................................ 27
II. T KHO : ................................................................................................................................................................... 27
III. TN : ......................................................................................................................................................................... 28

Gv: Trnh Huy Hong

Trang 1

Gio trnh tin hc i cng

gn ng lp trnh

IV. KIU D LIU V KHAI BO BIN :............................................................................................................................... 29


1 Kiu s nguyn............................................................................................................................................................ 29
2 Kiu s thc - real ...................................................................................................................................................... 29
3 Kiu logic - boolean.................................................................................................................................................... 30
4 Kiu k t - char ......................................................................................................................................................... 30
5. Kiu hng s: ............................................................................................................................................................. 31
BI 5: CU TRC C B CA CHG TRH ........................................................................................... 32
I. CU TRC CHNG TRNH PASCAL............................................................................................................................... 32
1. Cc khai bo trong Pascal......................................................................................................................................... 32
2. Pht biu gn v th tc nhp xut............................................................................................................................ 32
3. Li ch thch :............................................................................................................................................................ 33
BI 6: CC CU TRC IU KHI ................................................................................................................... 35
I. CU TRC R NHNH .................................................................................................................................................... 35
1. Cu trc iu kin: .................................................................................................................................................... 35
2. Cu trc la chn: ..................................................................................................................................................... 36
II. Cu trc vng lp...................................................................................................................................................... 37
1. Cu trc vng lp khng xc nh ............................................................................................................................. 37
2. Cu trc vng lp xc nh........................................................................................................................................ 39
BI 7: CHG TRH CO ................................................................................................................................. 44
I. TH TC PROCEDURE ................................................................................................................................................. 45
II. HM FUNCTION ....................................................................................................................................................... 45
III. THAM S .................................................................................................................................................................... 47
IV. CU TRC KHI TRONG CHNG TRNH PASCAL: ....................................................................................................... 48
V. TM VC...................................................................................................................................................................... 48
VI. HM QUI : ............................................................................................................................................................. 49
1 : nh ngha ................................................................................................................................................................ 49
2. Cc bi ton c th dng qui : .............................................................................................................................. 50
3. Cch xy dng hm qui : ...................................................................................................................................... 50
BI 8: CC KIU D LIU DO GI DG NH GHA ......................................................................... 53
I. CC KIU D LIU RI RC ............................................................................................................................................. 53
1. Kiu lit k ................................................................................................................................................................. 53
2. Kiu min con ............................................................................................................................................................ 53
II. CC KIU D LIU C CU TRC ................................................................................................................................... 53
1. Kiu mng.................................................................................................................................................................. 53
2. Kiu chui.................................................................................................................................................................. 56
3. Kiu tp hp............................................................................................................................................................... 57
4. Kiu bn ghi............................................................................................................................................................... 58
4. Kiu tp tin ................................................................................................................................................................ 63
TI LIU THAM KHO ........................................................................................................................................... 73

Gv: Trnh Huy Hong

Trang 2

Gio trnh tin hc i cng

gn ng lp trnh

Phn II.

G G LP TRH

Gv: Trnh Huy Hong

Trang 3

Gio trnh tin hc i cng

gn ng lp trnh

BI 1: THUT TO V THUT GII


I. THUT TO
1. Thut ton gii mt bi ton l :

Mt dy hu hn cc bc.
Cc thao tc c sp xp theo mt trnh t xc nh.
Sau khi thc hin dy thao tc , t gi thit ta tm c kt qu ca bi ton.

T Thut ton" (Algorithm)? xut pht t tn mt nh ton hc ngi Trung l


Abu Abd - Allah ibn Musa alKhwarizmi, thng gi l alKhwarizmi. ng l tc gi mt
cun sch v s hc, trong ng dng phng php m t rt r rng, mch lc cch gii
nhng bi ton. Sau ny, phng php m t cch gii ton ca ng c xem l mt chuNn
mc v c nhiu nh ton hc khc tun theo. T algorithm ra i da theo cch phin m
tn ca ng.

2. Cc c trng khc ca thut ton


Bn cnh 3 c trng chnh l xc nh, hu hn v ng, thut ton cn c thm 3 c trng
ph khc.
 u vo v u ra (input/output) : mi thut ton, d c n gin n my cng phi
nhn d liu u vo, x l n v cho ra kt qu cui cng.
 Tnh hiu qu (effectiveness) : tnh hiu qu ca thut ton c nh gi da trn mt
s tiu chuNn nh khi lng tnh ton, khng gian v thi gian khi thut ton c thi
hnh. Tnh hiu qu ca thut ton l mt yu t quyt nh nh gi, chn la cch
gii quyt vn -bi ton trn thc t.
 Tnh tng qut (generalliness) : thut ton c tnh tng qut l thut ton phi p dng
c cho mi trng hp ca bi ton ch khng phi ch p dng c cho mt s
trng hp ring l no .
V d 1: Thut ton gii phng trnh bc nht ax+b=0
 Bc 1 : N hp a, b.
 Bc 2 : N u a = 0 th quay li bc 1, ngc li th qua bc 3.
 Bc 3 : Gn cho x gi tr -b/a, ri qua bc 4.
 Bc 4 : a ra kt qu x v kt thc.
V d 2: Thut ton tm gi tr nh nht trong dy a1, a2, a3an
 Bc 1 : N hp n v cc phn t ca dy a1, a2, a3, ,an.
 Bc 2 : t Min=a1, i=2.
 Bc 3 : N u i<=n th thc hin bc 4, cn khng th qua bc 5.
 Bc 4 : N u Min > ai th t Min = ai
Tng i ln mt n v ri quay v bc 3.
Gv: Trnh Huy Hong

Trang 4

Gio trnh tin hc i cng

gn ng lp trnh

 Bc 5: a ra Min ri kt thc.

3. Cc phng php biu din thut ton


Khi chng minh hoc gii mt bi ton trong ton hc, ta thng dng nhng ngn t ton
hc nh : "ta c", "iu phi chng minh", "gi thuyt",... v s dng nhng php suy lun ton
hc nh php suy ra, tng ng, ...Thut ton l mt phng php th hin li gii bi ton
nn cng phi tun theo mt s quy tc nht nh. c th truyn t thut ton cho ngi
khc hay chuyn thut ton thnh chng trnh my tnh, ta phi c phng php biu din
thut ton. C 3 phng php biu din thut ton :
1. Dng ngn ng t nhin.
2. Dng lu -s khi (flowchart).
3. Dng m gi (pseudocode).

3.1/ $gn ng t nhin


Trong cch biu din thut ton theo ngn ng t nhin, ngi ta s dng ngn ng
thng ngy lit k cc bc ca thut ton. Phng php biu din ny khng yu cu
ngi vit thut ton cng nh ngi c thut ton phi nm cc quy tc. Tuy vy, cch biu
din ny thng di dng, khng th hin r cu trc ca thut ton, i lc gy hiu lm hoc
kh hiu cho ngi c. Gn nh khng c mt quy tc c nh no trong vic th hin thut
ton bng ngn ng t nhin.

3.2/ Lu - s khi
Lu hay s khi l mt cng c trc quan din t cc thut ton. Biu din
thut ton bng lu s gip ngi c theo di c s phn cp cc trng hp v qu
trnh x l ca thut ton. Phng php lu thng c dng trong nhng thut ton c
tnh rc ri, kh theo di c qu trnh x l.
 Trong s khi, ngi ta dng mt s biu tng th hin cc thao tc nh :
Thao tc chn la (decision)
Thao tc chn la c biu din bng mt hnh thoi, bn
trong cha biu thc iu kin.

iu kin

No

Yes

Gi tr xt phn nhnh

Khc
Trng hp 1

Trng hp i

Thao tc x l (process)
Thao tc x l c biu din bng mt hnh ch nht, bn trong cha
Gv: Trnh Huy Hong

Trang 5

Gio trnh tin hc i cng

gn ng lp trnh

ni dung x l.
ng i (route)
im cui (terminator)
im cui l im khi u v kt thc ca thut ton, c biu din
bng hnh ovan, bn trong c ghi ch bt u/start/begin hoc kt thc/end.
im cui ch c cung i ra (im khi u) hoc cung i vo (im kt thc).

Start
Stop

3.3/ M gi

Tuy s khi th hin r qu trnh x l v s phn cp cc trng hp ca thut ton


nhng li cng knh. m t mt thut ton nh ta phi dng mt khng gian rt ln. Hn
na, lu ch phn bit hai thao tc l r nhnh (chn la c iu kin) v x l m trong
thc t, cc thut ton cn c thm cc thao tc lp. Khi th hin thut ton bng m gi, ta s
vay mn cc c php ca mt ngn ng lp trnh no th hin thut ton. Tt nhin, mi
ngn ng lp trnh u c nhng thao tc c bn l x l, r nhnh v lp. Dng m gi va tn
dng c cc khi nim trong ngn ng lp trnh, va gip ngi ci t d dng nm bt ni
dung thut ton. Tt nhin l trong m gi ta vn dng mt phn ngn ng t nhin. Mt khi
vay mn c php v khi nim ca ngn ng lp trnh th chc chn m gi s b ph thuc
vo ngn ng lp trnh .
V d: Mt on m gi ca thut ton gii phng trnh bc hai
if Delta > 0 then begin
x1=(-b-sqrt(delta))/(2*a)
x2=(-b+sqrt(delta))/(2*a)
xut kt qu : phng trnh c hai nghim l x1 v x2
end
else
if delta = 0 then
xut kt qu : phng trnh c nghim kp l -b/(2*a)
else {trng hp delta < 0 }
xut kt qu : phng trnh v nghim
Gv: Trnh Huy Hong

Trang 6

Gio trnh tin hc i cng

gn ng lp trnh

* Cc t in m l cc t kha ca ngn ng Pascal

4. Thut ton quy


Thut ton quy l mt trong nhng s m rng c bn nht ca khi nim thut ton. N h
bit, mt thut ton cn phi tha mn 3 tnh cht :
Tnh hu hn.
Tnh xc nh
Tnh ng n
Tuy nhin, c nhng bi ton m vic xy dng mt thut ton vi y ba tnh cht trn
rt kh khn. Trong khi , nu ta xy dng mt thut ton vi phm mt vi tnh cht trn th
cch gii li tr nn n gin hn nhiu v c th chp nhn c. Mt trong nhng trng
hp l thut ton quy.
T tng gii bi ton bng thut ton quy l a bi ton hin ti v mt bi ton cng
loi, cng tnh cht (hay ni mt cch nm na l ng dng) nhng cp thp hn (chng
hn : ln d liu nhp nh hn, gi tr cn tnh ton nh hn, ....), v qu trnh ny tip tc
cho n lc bi ton c a v mt cp m ti c th gii c. T kt qu cp
ny, ta s ln ngc gii c bi ton cp cao hn cho n lc gii c bi ton
cp ban u.
Trong ton hc ta cng thng gp nhng nh ngha v nhng i tng, nhng khi nim
da trn chnh nhng i tng, khi nim .
nh ngha giai tha
Giai tha ca mt s t nhin n, k hiu n! c nh ngha l :
0! = 1
n! = (n-1)!n vi mi n>0

nh ngha dy s Fibonacci
f0 = 1
f1 = 1
fn = fn-1 + fn-2 vi mi n>1
Gv: Trnh Huy Hong

Trang 7

Gio trnh tin hc i cng

gn ng lp trnh

Theo ton hc, nhng khi nim c nh ngha nh vy gi l nh ngha theo kiu
quy np. Chnh v vy, quy c s lin h rt cht ch vi quy np ton hc. quy mnh
im n c th nh ngha mt tp v hn cc i tng ch bng mt s hu hn cc mnh .
Tuy nhin, c tnh ny ca quy li vi phm tnh xc nh ca thut ton. V nguyn tc,
mt bc trong thut ton phi c xc nh ngay ti thi im bc c thi hnh, nhng
vi thut ton quy, bc th n khng c xc nh ngay trong ng cnh ca n m phi
xc nh thng qua mt bc thp hn. Chng hn, tnh c gi tr phn t th 5 ca dy
Fibonacci theo nh ngha trn, ta phi tnh f3+f4, nhng ta cha bit gi tr f3 v f4 ti thi
im ny. n y, ta phi li li tnh f3 v f4. tnh f3 ta li phi li v tnh f2,...Tt
nhin, l qu trnh tnh li ny phi dng sau mt s hu hn bc. Trong trng hp ny,
im dng chnh l gi tr f1 v f0.
u th ca thut ton quy l ta ch cn gii bi ton ti mt s trng hp c bit
no , cn gi l trng hp dng. Sau , cc trng hp khc ca bi ton s c xc nh
thng qua trng hp c bit ny. i vi vic tnh dy Fibonacci, trng hp dng chnh l
gi tr ca f0 v f1.
N i mt cch chnh xc, mi thut ton quy u gm hai phn:
Phn c s
L cc trng hp khng cn thc hin li thut ton (hay khng c yu cu gi
quy). N u thut ton quy khng c phn ny th s dn n b lp v hn v
sinh li khi thi hnh. V l do ny m ngi ta i lc cn gi phn c s l
trng hp dng.
Phn quy
L phn trong thut ton c yu cu gi quy, tc l yu cu thc hin li thut
ton nhng vi mt cp d liu thp hn.

II.THUT GII
Thut gii chnh l m rng t thut ton
Trong qu trnh nghin cu gii quyt cc vn - bi ton, ngi ta a ra nhng nhn xt
nh sau :
C nhiu bi ton cho n nay vn cha tm ra mt cch gii theo kiu thut ton v
cng khng bit l c tn ti thut ton hay khng.
C nhiu bi ton c thut ton gii nhng khng chp nhn c v thi gian
gii theo thut ton qu ln hoc cc iu kin cho thut ton kh p ng.
Gv: Trnh Huy Hong

Trang 8

Gio trnh tin hc i cng

gn ng lp trnh

C nhng bi ton c gii theo nhng cch gii vi phm thut ton nhng vn chp
nhn c.
T nhng nhn nh trn, ngi ta thy rng cn phi c nhng i mi cho khi nim
thut ton. N gi ta m rng hai tiu chuNn ca thut ton : tnh xc nh v tnh ng n.
Vic m rng tnh xc nh i vi thut ton c th hin qua cc gii thut quy v
ngu nhin. Tnh ng ca thut ton by gi khng cn bt buc i vi mt s cch gii bi
ton, nht l cc cch gii gn ng. Trong thc tin, c nhiu trng hp ngi ta chp nhn
cc cch gii thng cho kt qu tt (nhng khng phi lc no cng tt) nhng t phc tp v
hiu qu. Chng hn nu gii mt bi ton bng thut ton ti u i hi my tnh thc hin
nhiu nm th chng ta c th sn lng chp nhn mt gii php gn ti u m ch cn my tnh
chy trong vi ngy hoc vi gi.
Cc cch gii chp nhn c nhng khng hon ton p ng y cc tiu chuTn ca
thut ton thng c gi l cc thut gii. Khi nim m rng ny ca thut ton m
rng ca cho chng ta trong vic tm kim phng php gii quyt cc bi ton c t ra.
Mt trong nhng thut gii thng c cp n v s dng trong khoa hc tr tu nhn to
l cc cch gii theo kiu Heuristic.

1. Thut gii Heuristic


Thut gii Heuristic l mt s m rng khi nim thut ton. N th hin cch gii bi ton
vi cc c tnh sau :
Thng tm c li gii tt (nhng khng chc l li gii tt nht)
Gii bi ton theo thut gii Heuristic thng d dng v nhanh chng a ra kt qu
hn so vi gii thut ti u, v vy chi ph thp hn.
Thut gii Heuristic thng th hin kh t nhin, gn gi vi cch suy ngh v hnh
ng ca con ngi.
C nhiu phng php xy dng mt thut gii Heuristic, trong ngi ta thng da
vo mt s nguyn l c s nh sau:
$guyn l vt cn thng minh :
Trong mt bi ton tm kim no , khi khng gian tm kim ln, ta thng tm cch
gii hn li khng gian tm kim hoc thc hin mt kiu d tm c bit da vo c
th ca bi ton nhanh chng tm ra mc tiu.
$guyn l tham lam (Greedy):
Ly tiu chuNn ti u (trn phm vi ton cc) ca bi ton lm tiu chuNn chn la
hnh ng cho phm vi cc b ca tng bc (hay tng giai on) trong qu trnh tm
kim li gii.
Gv: Trnh Huy Hong
Trang 9

Gio trnh tin hc i cng

gn ng lp trnh

$guyn l th t :
Thc hin hnh ng da trn mt cu trc th t hp l ca khng gian kho st nhm
nhanh chng t c mt li gii tt.
Hm Heuristic:
Trong vic xy dng cc thut gii Heuristic, ngi ta thng dng cc hm Heuristic.
l cc hm nh gi th, gi tr ca hm ph thuc vo trng thi hin ti ca bi
ton ti mi bc gii. N h gi tr ny, ta c th chn c cch hnh ng tng i
hp l trong tng bc ca thut gii.

Bi tp:
Hy xy dng thut ton v v lu km theo cho cc bi ton sau:

1. Gii phng trnh trng phng , phng trnh bc nht hai Nn s.


2. C n hp c khi lng khc nhau v mt ci cn da. Tm cch cn
tm c hp c trng lng nng nht.
3. Cho hai s nguyn dng a v b. Tm c s chung ln nht ca a v b.
4. Cho mt dy s a c n phn t a1, a2, ...an. Tm con s ln nht trong
dy a.
5. N hp vo 4 s a, b, c, d khc nhau. Tm 2 s khng phi l s ln nht
v s nh nht.
6. Kim tra xem n c nguyn t khng?
7. Kim tra xem n c phi l s hon thin khng? (c tng cc c nh
hn n bng chnh s ).
8. N hp vo 3 s nguyn dng, kim tra xem 3 s cho c to thnh
tam gic khng? N u c l tam gic g? (u, cn, vung, vung cn,
thng).

Gv: Trnh Huy Hong

Trang 10

Gio trnh tin hc i cng

gn ng lp trnh

BI 2: G G LP TRH
I. Khi nim v ngn ng lp trnh & chng trnh my tnh
Con ngi lin lc vi nhau thng qua ngn ng, to ra cc mu t ng v m thanh. N gn ng
lp trnh cng tng t nh vy, l mt tp t ng v k hiu cho php lp trnh vin hoc ngi
dng c th ni chuyn vi my tnh. Cng ging nh ting Anh, ting Ty Ban N ha hoc ting Trung
Quc v nhng ngn ng ting ni khc, ngn ng lp trnh cng c cc lut c gi l c php
(syntax) m bo ngn ng c vn dng mt cch chnh xc.
l mt tp cc ch th (instruction) c sp xp theo mt trt t nh trc nhm hng dn
my tnh thc hin cc thao tc, hnh ng cn thit p ng mt mc tiu nh trc ca con
ngi nh truy xut d liu, tm kim, gii bi ton, ...Cc ch th ny c th c vit bng nhiu ngn
ng lp trnh khc nhau.

II. Cc loi ngn ng lp trnh thng dng


C hng trm loi ngn ng lp trnh khc nhau, mi loi ngn ng u c c php ring ca
n. Mt s ngn ng th c pht trin dng trn cc loi my tnh chuyn bit, mt s ngn ng
khc th - do s thnh cng ca n - tr thnh chuNn v c p dng trn a s cc my tnh. N gn
ng lp trnh c th c phn chia thnh 3 loi chnh : ngn ng my, hp ng v ngn ng cp cao.

1. N gn ng my
N gn ng my (m my) l ngn ng nn tng ca b vi x l. Cc chng trnh c vit
trong tt c cc loi ngn ng khc cui cng u c chuyn thnh ngn ng my trc khi chng
trnh c thi hnh. V tp lnh ca ngn ng my ph thuc vo loi vi x l nn ngn ng my s
khc nhau trn nhng my tnh c s dng b vi x l khc nhau. Li im ca vit chng trnh bng
ngn ng my l lp trnh vin c th iu khin my tnh trc tip v t c chnh xc iu mnh
mun lm. Do , cc chng trnh ngn ng my c vit tt l nhng chng trnh rt hiu qu
(tc thi hnh nhanh, kch thc nh). Bt li ca chng trnh ngn ng my l thng thng s
mt rt nhiu thi gian vit, rt kh c, theo di tm li. Thm vo , bi v chng trnh c
vit bng tp lnh ph thuc vo b vi x l nn chng trnh ch chy c trn nhng my tnh c
cng b vi x l m thi. N gn ng my cng c gi l ngn ng cp thp (low-level language)

2. Hp ng
Hp ng c pht trin nhm gip cc lp trnh vin d nh cc ch th ca chng trnh hn.
Hp ng tng t nh ngn ng my nhng li s dng cc k hiu gi nh (mnemonics hay m lnh
hnh thc - symbolic operation code) biu din cho cc m lnh ca my. Mt c im khc na l
hp ng thng thng cho php nh a ch hnh thc (symbolic addressing), ngha l mt v tr b

Gv: Trnh Huy Hong

Trang 11

Gio trnh tin hc i cng

gn ng lp trnh

nh trong my tnh c th c tham chiu ti thng qua mt ci tn hoc k hiu, chng hn nh


TOTAL thay v phi s dng a ch thc s ca n (bng con s nh phn) trong ngn ng my. Cc
chng trnh hp ng cn bao gm cc ch th v m (macro instruction) c th to ra nhiu lnh m
my. Cc chng trnh hp ng c chuyn sang m my thng qua mt chng trnh c bit gi l
trnh hp dch (assembler). Mc d hp ng tng i d dng hn m my nhng hp ng vn c
xem l ngn ng cp thp bi v n vn cn rt gn vi tng thit k ca my tnh.

3. N gn ng cp cao
Cuc cch mng ca ngn ng my tnh bt u vi s pht trin ca ngn ng cp cao vo
cui thp k 1950 v 1960. N gn ng cp cao gn gi hn vi nim ngn ng m hu ht mi ngi
u bit, n bao gm cc danh t, ng t, k hiu ton hc, lin h v cc thao tc lun l. Cc yu t
ny c th c phi hp, lin kt vi nhau to thnh mt hnh thc ca cu. Cc "cu" ny c gi l
cc mnh ca chng trnh (program statement). Chnh v nhng c im ny, cc lp trnh vin d
dng c v d hc ngn ng cp cao hn so vi ngn ng my hoc hp ng. Mt li im quan
trng l ngn ng cp cao thng thng khng ph thuc vo my tnh, ngha l cc chng trnh vit
bng ngn ng cp cao c th chy trn cc loi my tnh khc nhau (s dng cc b vi x l khc
nhau).

4. Cc ngn ng lp trnh thng dng


Mc d c hng trm ngn ng lp trnh c sinh ra, ch c mt s t l c s dng rng
ri v c xem l mt chuNn cng nghip. Cc ngn ng ny u c th c s dng trn nhiu loi
my tnh khc nhau.
 BASIC: vit tt ca cm t Beginner's All-Purpose Symbolic Instruction Code, c pht trin
bi John Kermeny v Thomas Kurtz vo nm 1964 ti trng i hc Dartmouth. Ban u, h
thit k BASIC l mt ngn ng lp trnh n gin, c tnh tng tc cc sinh vin hc tp
v s dng. BASIC tr thnh mt trong nhng ngn ng lp trnh thng dng nht c s
dng trn cc my vi tnh v my tnh mini ngy nay.
 COBOL: vit tt ca COmmon Business Oriented Language, c gii thiu vo nm 1960.
c h tr bi b quc phng Hoa K, COBOL c pht trin bi mt hi ng bao gm
cc i din t pha chnh ph v cng nghip. Grace M.Hopper l ngi chnh yu trong hi
ng v c xem l nh pht trin chnh ca ngn ng COBOL. COBOL tng l mt trong
nhng ngn ng c dng rng ri nht cho cc ng dng thng mi. Bng cch dng mt
hnh thc ta ting Anh, cc cu lnh ca COBOL c sp xp vo trong cc cu v nhm li
thnh tng on (paragraph). Hnh thc ting Anh gip COBOL d vit v c nhng cng lm
cho chng trnh ngun di hn. COBOL rt tt trong vic x l cc tp tin ln v thc hin
nhng php tnh thng mi tng i n gin.
 C: c pht trin bi tc gi Dennis Ritchie ti phng th nghim Bell vo nm 1972. Ban u,
C c thit k nh l mt ngn ng vit cc phn mm h thng, nhng ngy nay, n c
xem l mt ngn ng cng dng chung. C l mt ngn ng lp trnh mnh m i hi k nng
lp trnh chuyn nghip mi c th s dng hiu qu c. N hu cu dng C pht trin nhiu
loi phn mm k c cc ng thng mi ang gia tng. Cc chng trnh C thng c dng
vi h iu hnh Unix (phn ln h iu hnh Unix c vit bng C).
 FORTRA: vit tt ca FORmula TRAslator c pht trin bi mt nhm lp trnh vin

Gv: Trnh Huy Hong

Trang 12

Gio trnh tin hc i cng













gn ng lp trnh

ca cng ty IBM di s lnh o ca John Backus. Cng b vo nm 1957, FORTRAN c


thit k nh l mt ngn ng lp trnh dnh cho cc nh khoa hc, k s v ton hc.
FORTRAN c xem nh l ngn ng lp trnh cp cao u tin v c ch bi kh nng
ca n cho php d dng din t v tnh ton cc phng trnh ton hc.
PASCAL: ngn ng s c s dng ging dy trong gio trnh ny, c pht trin vo
nm 1968 bi N iklaus Wirth, mt nh khoa hc my tnh ti Zurich, Thy S. Pascal c pht
trin ging dy lp trnh. Tn Pascal khng phi l t vit tt, l tn ca mt nh ton hc,
Blaise Pascal (1623 - 1662) ngi u tin to ra my tnh. Pascal, dng trong c my tnh c
nhn v my tnh ln l mt trong nhng ngn ng lp trnh u tin c pht trin trong
khuyn khch phng php lp trnh cu trc.
ALGOL (ALGOrithmetic Language): ngn ng lp trnh cu trc dng cho cc ng dng khoa
hc v ton hc.
APL(A Programming Language). Mt ngn ng mnh m, d dng, rt tt trong vic x l d
liu c lu di dng bng (ma trn)
FORTH: tng t nh C, to ra cc m chng trnh nhanh v hiu qu. Ban u c pht
trin iu khin knh vin vng khng gian.
LISP - LISt Processing: ngn ng tr tu nhn to thng dng.
LOGO: ch yu c bit n nh l mt cng c dy kh nng gii quyt vn .
MODULA-3: tng t nh PASCAL, dng ch yu pht trin cc phn mm h thng.
PILOT - Programmed Inquiry Learning Or Teaching: dng bi cc nh gio dc vit cc
chng trnh hng dn CAD.
PL/I - Programming Language/ One: ngn ng thng mi v khoa hc phi hp nhiu chc
nng ca FORTRAN v COBOL.
PROLOG - PROgramming Logic: dng trong tr tu nhn to.
RPG - Report Program Generator: dng cc mu c bit gip ngi dng xc nh d liu
vo, d liu ra v cc yu cu tnh ton ca mt chng trnh.
ADA: ly tn ca Augusta Ada Bryon, ngi c xem l vit chng trnh u tin, c
thit k phc v cho vic vit, bo tr cc chng trnh ln trong mt khong thi gian di.

5. Trnh thng dch v bin dch


Mi chng trnh c vit bng cc ngn ng khng phi l ngn ng my cui cng u
phi c chuyn i sang ngn ng my trc khi c thi hnh. Chng trnh ngn ng cp cao
c dch sang ngn ng my bng mt trong hai cch : bng trnh bin dch (compiler) hoc trnh
thng dch (interpreter).

5.1/ Trnh bin dch :


S chuyn i ton b chng trnh sang m my, ri cha kt qu vo da c th thi hnh v
sau. Chng trnh ngn ng cp cao c chuyn i c gi l chng trnh ngun (source
program) v chng trnh ngn ng my c to ra c gi l chng trnh i tng (object
program) hoc m i tng (object code). Khi ngi dng mun chy chng trnh, chng trnh i
tng s c np ln b nh chnh ca CPU v cc ch th ca chng trnh s c thi hnh. Khi
c hng dn bi cc ch th ca chng trnh, CPU s truy xut d liu v to ra cc kt qu. Trnh
bin dch s kim tra c php chng trnh, thc hin cc php kim tra logic v m bo cc d liu
sp c s dng trong cc php so snh, tnh ton c nh ngha mt cch hp l mt ni no
trong chng trnh. Mt chc nng quan trng ca trnh bin dch l n s to ra mt danh sch li

Gv: Trnh Huy Hong

Trang 13

Gio trnh tin hc i cng

gn ng lp trnh

ca tt c mnh trong chng trnh vi phm c php ca ngn ng. Danh sch ny gip lp trnh
vin d dng sa i chng trnh.
Do ngn ng my ph thuc vo b vi x l nn cc my tnh khc nhau s cn c cc trnh
bin dch khc nhau i vi cng mt ngn ng cp cao. V d, mt my mainframe, my mini v my
tnh c nhn cn c cc trnh bin dch khc nhau bin dch cng mt chng trnh ngun sang m
my ca tng loi my ny.

5.2 Trnh thng dch :


Thay v chuyn i ton b chng trnh ngun nh trnh bin dch, trnh thng dch ch chuyn
i mt mnh ca chng trnh v thc hin on m kt qu ngay, sau n tip tc chuyn i
mnh th 2 ri thi hnh on m kt qu th 2 v c th. Khi s dng trnh thng dch, mi ln chy
chng trnh l mi ln chng trnh ngun c thng dch sang ngn ng my. Khng c chng
trnh i tng no c to ra.
Cc trnh thng dch thng c dng trn cc my tnh c nhn khng c b nh hoc sc
mnh tnh ton cn thit dng trnh bin dch. Li im ca trnh thng dch l lp trnh vin vn c
th chy mt chng trnh vn cn li c php. Ch n lc thng dch n cu lnh c li c php, qu
trnh thi hnh chng trnh mi b ngng li v trnh thng dch s thng bo li. im bt li l cc
chng trnh thng dch chy khng nhanh bng cc chng trnh c bin dch v qu trnh chuyn
i sang ngn ng my c thc hin cng vi qu trnh thi hnh chng trnh. V l do ny, ngy
nay, a s cc ngn ng cp cao u dng trnh bin dch.

6. Lp trnh cu trc
Lp trnh cu trc l mt phng php lp trnh c cc c trng c bn sau : tnh n th,
cu trc iu khin v tnh vo/ra n. Tun th theo nguyn tc lp trnh c cu trc s gip cc
chng trnh d vit, d c, d hiu, d kim li v d hiu chnh.

6.1/ Tnh n th (modules) :


Vi lp trnh cu trc, cc vn trong lp trnh c phn r (chia nh) thnh nhng phn nh
hn gi l cc n th. Mi n th, c gi l mt chng trnh con trong cc ngn ng lp trnh, s
thc hin mt nhim v nh trc trong chng trnh. im li chnh ca k thut ny l n n gin
ha vic pht trin chng trnh v mi n th chng trnh c th c pht trin mt cch c lp.
Khi cc n th c lp ghp li, chng to thnh mt chng trnh hon chnh to ra c kt qu
mong mun.
S cu trc (structure chart) hay cn gi l s phn cp (hierarchy chart) thng c
dng phn r v biu din cho cc n th trong chng trnh. Khi mt qu trnh phn r chng
trnh hon tt, ton b cu trc ca chng trnh s c biu din bng mt s phn cp. Sau y l
mt v d :

6.2/ Cu trc iu khin (control structure) :


Trong lp trnh cu trc, ngi ta s dng 3 cu trc iu khin to nn logic ca chng

Gv: Trnh Huy Hong

Trang 14

Gio trnh tin hc i cng

gn ng lp trnh

trnh. Mi vn logic u c th gii quyt c bng cch phi hp 3 cu trc ny. 3 cu trc ny l
: cu trc tun t (sequence), cu trc chn (selection) v cu trc lp (iteration).
Cu trc tun t : trong cu trc ny, vic cc qu trnh c thc hin tun t, t qu trnh
ny n qu trnh theo sau n.
Cu trc chn : hay cn gi l cu trc nu th ngc li (if.thenelse) cho php cc
lp trnh vin din t c cc logic iu kin trong chng trnh. ngha ca cu trc ny l nu
iu kin l ng th thc hin qu trnh ng vi iu kin ng, ngc li, thc hin qu trnh ng vi
iu kin sai.
Mt dng khc ca cu trc chn l cu trc case. Cu trc case c dng khi mt iu kin
c kim tra c th dn n 2 hay nhiu qu trnh x l khc nhau. Trong mt chng trnh, menu l
mt v d v cu trc case v n cung cp nhiu chn la x l khc nhau.
Cu trc lp : (iteration structure hoc looping structure) : cho php thc hin nhiu ln mt
qu trnh da trn mt iu kin cho trc. C 2 dng c bn ca cu trc lp l cu trc lp for v
while. Cu trc lp for cho php lp li mt qu trnh x l mt s ln xc nh trc. Cn cu trc lp
while th lp li qu trnh x l cho n lc iu kin kim tra khng cn ng na.
Chi tit ca cc cu trc ny s c gii thiu chi tit trong cc bi hc lin quan n ngn
ng PASCAL.

6.3/ Vo/ra n( single entry/exit) :


y l mt khi nim quan trng trong lp trnh cu trc. Vo/ ra n ngha l ch c mt im
vo v mt im ra i vi mi cu trc trong 3 cu trc trn. im vo l im bt u cu trc iu
khin v im ra l im kt thc cu trc iu khin.
Tnh cht ny ci thin ng k logic ca mt chng trnh, bi v, khi c mt chng trnh,
lp trnh vin c th m bo rng cho d c chuyn g xy ra trong cu trc i na th cu trc iu
khin ch i ra mt im duy nht. Trc khi c lp trnh cu trc, nhiu lp trnh vin hay c thi
quen chuyn iu khin n nhng phn khc trong chng trnh mkhng tun theo lut vo/ra n.
iu ny s dn n mt thit k chng trnh ti, cc k kh khn c v kim tra li cng nh
hiu chnh. Chng trnh vit theo li ny s ging nh mt m dy ri !!

7. Lp trnh hng i tng


Lp trnh hng i tng (Object Oriented Programming OOP) l mt tip cn mi cho
vic pht trin phn mm cho php lp trnh vin to ra cc i tng (object), mt phng php kt
hp c d liu v cc cu lnh ca chng trnh. Theo kiu lp trnh truyn thng, ngi ta thng lu
tr d liu - chng hn nh cc tp tin - c lp vi chng trnh thao tc trn d liu . Do , mi
chng trnh phi t nh ngha cch thc s dng d liu cho chnh n. iu ny thng dn n s
trng lp m lnh, hn na, mi ln d liu thay i th m chng trnh phi thay i theo. Vi lp
trnh hng i tng, cc cu lnh ca chng trnh cng nh d liu c kt hp trong cc i
tng m sau c th c dng i dng li nhiu ln bt c khi no ta cn. Cc lnh c bit gi l
phng thc (method) s nh ngha cch thc phn ng ca i tng khi i tng c dng

Gv: Trnh Huy Hong

Trang 15

Gio trnh tin hc i cng

gn ng lp trnh

trong chng trnh.


Khi dng lp trnh hng i tng, cc lp trnh vin s nh ngha ra cc lp i tng
(class). Mi lp s c nhng phng thc c trng cho lp . N goi ra, cc lp i tng cn c kh
nng truyn nhng phng thc ca n cho nhng lp thp hn gi l tha k (inheritance). Mt dn
xut (instance) ca i tng s cha tt c phng thc t cc lp cao hn cng vi cc phng thc
c trng ca n. Khi mt i tng nhn c mt ch th thc hin iu g, ngi ta ch th l
mt thng ip (message). Khng ging nh lp trnh truyn thng, thng ip khng cn phi ch r
cho i tng bit phi thc hin nh th no m ch cn bo i tng phi cung cp kt qu g. Cn
thc hin nh th no s c nh ngha trong cc phng thc ca i tng hoc tha k t cc
cp cao hn.

Lin quan n lp trnh hng i tng l cc phn mm hng i tng (object-oriented


software) v h iu hnh hng i tng (object-oriented operating system). Phn mm hng i
tng l phn mm s dng phng php lp trnh hng i tng. Cn h iu hnh hng i
tng l h iu hnh c thit k c bit chy cc ng dng hng i tng.

III. Cc bc xy dng chng trnh


Vic s dng my tnh in t (MTT) gii quyt mt vn no thng c quan
nim mt cch khng chuNn xc, n gin ch l vic lp trnh thun ty. Thc ra, l c mt qu
trnh phc tp bao gm nhiu giai on pht trin m lp trnh ch l mt trong cc giai on (thm
ch cha chc l phn vic quan trng nht). Cc bc quan trng ca ton b qu trnh c lit k
di y:

1. Xc nh vn - bi ton.
Bc u tin ca bc phn tch h thng l nhm pht biu chnh xc vn - bi ton, lm
r nhng yu cu m ngi s dng i hi. Sau khi nghin cu vn c t ra, ngi phn tch
vin thit lp mi ph thuc gia cc d kin v kt qu phi tm. Trn c s c c m hnh vn bi ton, ngi phn tch vin s nh gi, nhn nh tnh kh thi ca vn - bi ton c t ra c
ng phi gii quyt khng?

2. La chn phng php gii.


C th c nhiu cch khc nhau gii quyt vn - bi ton thit lp bc 1. Cc
phng php c th khc nhau v thi gian thc hin. chi ph lu tr d liu, chnh xc.... N i
chung khng c phng php ti u v mi phng din. Ty theo nhu cu c th m la chn phng

Gv: Trnh Huy Hong

Trang 16

Gio trnh tin hc i cng

gn ng lp trnh

php thch hp. Vic la chn trn cng cn cn c vo kh nng x l t ng m ta s s dng.

3. Xy dng thut ton hoc thut gii.


Xy dng m hnh cht ch, chnh xc hn v chi tit ha hn phng php la chn. Xc
nh r rng d liu vo, ra cho cc bc thc hin c bn v trt t thc hin cc bc c bn . N n
p dng phng php thit k c cu trc, t thit k tng th tin hnh lm mn dn tng bc.

4. Ci t chng trnh.
M t thut gii bng chng trnh. Da vo thut gii c xy dng, cn c quy tc ca
mt ngn ng lp trnh son tho ra chng trnh th hin gii thut thit lp bc 3.

5. Hiu chnh chng trnh.


bc 4, ni chung chng ta khng trnh khi sai st. bc 5 ny chng ta cho chng trnh
chy th pht hin v iu chnh cc sai st nu tm thy.
C hai loi li:
Li c php l li do khng tun th ng cc quy tc vit chng trnh trn mt ngn ng
lp trnh c th.
Li ng ngha l li lm sai lc ngha hoc dn n b tc ca chng trnh. Li c php
thng d pht hin v hiu chnh hn li ng ngha. Cn phi ni rng vic hiu chnh chng trnh
kh phc tp, mt nhiu thi gian v cng sc. Vic xy dng tt, ph hp, y cc b d liu
kim chng chng trnh l ht sc quan trng, gip pht hin ra cc li ng ngha ca chng trnh
cng nh c th c vn g b b st.

6. Thc hin chng trnh.


Cho MTT thc hin chng trnh. Tin hnh phn tch kt qu thu c. Vic phn tch kt
qu nhm khng nh kt qu c ph hp hay khng. N u khng, cn kim tra li ton b cc bc
mt ln na. N i chung, d thn trng n mc no i na th sau mi bc thc hin nu trn cng
khng khng nh c kt qu thc hin tng bc l ng n tuyt i. Hn na, nh bc 5, ta
ch hiu chnh tt c cc li c pht hin. Cn c th c sai st khc ca chng trnh vi mt b
d liu no khc phc tp hn m ta cha c c hi pht hin trc . Do , ta khng th khng
nh c rng, chng trnh ng tuyt i, khng cn sai st na. N h vy, vic gii quyt mt vn
c th thc hin qua hai giai on. Giai on u l giai on quan nim, gm cc bc phn tch,
la chn m hnh, xy dng thut gii, ci t chng trnh. Giai on sau l khai thc v bo tr
chng trnh. Trong qu trnh s dng, ni chung thng c nhu cu v ci tin, m rng chng trnh
do cc yu t ca bi ton ban u c th thay i.

Gv: Trnh Huy Hong

Trang 17

Gio trnh tin hc i cng

gn ng lp trnh

BI 3: LM QUE VI BORLAD PASCAL


I. Khi ng v thot Borland Pascal :
1. Khi ng Borland Pascal :
 N hp lnh ti du nhc ca DOS, c 2 cch:
-

G: BP (enter) nu ng dn c ci t bng lnh path trong c cha

ng dn n th mc cha tp tin BP.EXE).


-

G: < a>:\BP\BI\BP (enter) nu ng dn c ci t ti ni khc.

Khi ng ti Windows, c 2 cch:

Chn menu Start\Run g vo dng lnh nh t DOS.

M Windows Explorer, chn a c ng dn ti BP\BIN \BP.EXE.


V d :

Khi ng Borland Pascal v np tp tin VIDU1.pas cha trong th mc BAITAP


a D, nu cha c tp tin ny th s c to mi.
C:\BP\BIN \BP D:\BAITAP\VIDU1.PAS
Mn hnh sau khi khi ng thnh cng:

Thanh tiu
Hp ng

S ca s
Tn tp tin
Hp ni rng ca s
y l vng son tho
chng trnh

Ta hng:ct

Thanh trt dc

Thanh trt ngang


Thanh chc nng

Gv: Trnh Huy Hong

Trang 18

Gio trnh tin hc i cng

gn ng lp trnh

2 Thot khi BorlandC


-

N hp phm F10 (kch hot menu), chn menu File, chn Quit.

N hn t hp phm Alt-X

II. Trnh son tho ca Borland Pascal


BC c h thng menu nhiu cp. chn mc trong Menu ta c th lm theo cc cch
sau:
-

Chn F10, dng mi tn di chuyn vt sng n mc cn chn ri n Enter.

Chn F10, ri n phm c k t i mu (phm chn nhanh mu ).

N hn t hp phm Alt + phm c k t mu .

1. M tp tin son tho mi


Chn menu File, ri chn N ew, to file son tho mi c tn mc nh l N ON AME00.PAS,
N ON AME01.PAS

2. Lu tp tin
N u l tp tin son tho mi cha lu:
-

N hn F2 hoc chn File Save hoc chn File Save As


Save File As
C:\BP\BIN \N ON AME00.PAS

OK

Files
...\

Cancel

Help
<==================================>
C:\BP\BIN \N ON AME00.PAS
Directory

10:15 am

Chn ng dn cn lu tp tin hp thoi Files, chn ..\ tr v th mc cha hin


ti.
t tn tp tin hp thoi Save File As
Chn OK
Hoc c th g [ a:][ng dn]<tn tp tin >, ri chn OK

 Dng phm tab chuyn i vt sng gia cc mc trong hp thoi


Gv: Trnh Huy Hong

Trang 19

Gio trnh tin hc i cng

gn ng lp trnh

N u l tp tin son tho c lu t nht mt ln hoc m bng lnh Open:


-

N hn F2 hoc chn File Save, ni dung tp tin hin hnh s c cp nht nu c


thay i.
Chn Files Save As, xut hin hp thoi Save File As, thc hin cc bc nh i
vi tp tin mi to (tc l lu tp tin hin hnh vi ng dn v tn tp tin khc).

 bit tp tin ang son tho c lu hay cha, kim tra xem ca s di gc tri,
nu c du hoa th l vn bn c thay i cha c lu.

3 M tp tin
-

N hn F3 hoc chn File Open, hp thoi Open A File s xut hin.


Chn ng dn cn m tp tin hp thoi Files, chn ..\ tr v th mc cha hin
ti.
t tn tp tin hp thoi Files
Chn OK
Hoc c th g [ a:][ng dn]<tn tp tin >, ri chn OK
N ame

D:\BAITAP\*.PAS

OK

Files
..
Bt1.PAS
Bt2.PAS
..\
<==================================>
D:\BAITAP\*.PAS
Bt1.PAS

Replace

Cancel
Help

486 Oct 5, 2005

11:00 am

III. Cc tp tinh chnh ca Borland Pascal


chy c Borland Pascal 7.0, ch cn hai tp tin sau l :
TURBO.EXE : tp tin chnh ca TP
TURBO.TPL : tp tin cha cc th vin ca TP
N u mun v ha th phi c thm cc tp tin:
Gv: Trnh Huy Hong

Trang 20

Gio trnh tin hc i cng

gn ng lp trnh

GRAPH.TPU, tp tin cha th vin ha


*.BGI : cc tp tin mn hnh ha
*.CHR : cc tp tin to kiu ch
Trong cc tp tin mn hnh ha th thng thng ch cn tp tin EGAVGA.BGI l , v
ngy nay phn ln mn hnh u c kiu EGA hay VGA.
N u mun xem hng dn s dng Turbo Pascal th cn c thm tp tin TURBO.HLP

IV. Khai bo s dng th vin chun:


Borland Pascal c sn mt s hm v th tc chuNn, chng c phn thnh tng nhm
theo chc nng mang cc tn c trng, gi l cc th vin hay n v chng trnh (Unit),
nh: Crt, Graph, Dos, Printer,
Khai bo: Uses danh sch th vin ;
V d: Uses CRT ;
Uses CRT, GRAPH ;
C 4 th tc u thuc th vin CRT, l :
Clrscr : xa mn hnh
TextMode(C40) v TextMode(C80) : chuyn mn hnh sang ch b ngang
40 ct (ch to) hoc 80 ct (ch bnh thng).
TextBackGround(tnmu) : t li mu nn ca mn hnh.
TextColor(tnmu) : t li mu ch trn mn hnh.
Tn mu c th l mt s t 0 n 15 hoc c th vit trc tip bng ting Anh nh :
White, Black, Green, Red, Blue, ...

V. Cc phm, t hp phm thng dng


1. Cc phm di chuyn con tr
Gv: Trnh Huy Hong

Trang 21

Gio trnh tin hc i cng

Phm/T hp phm

Home
End
PgUp (Page Up)
PgDn (Page Down)
Ctrl PgUp
Ctrl PgDn
Ins (Insert)
Enter

gn ng lp trnh

Chc nng
Di chuyn con tr sang tri mt k t
Di chuyn con tr sang phi mt k t
Di chuyn con tr ln trn mt dng
Di chuyn con tr xung di mt dng
Di chuyn con tr v u dng
Di chuyn con tr v cui dng
Li li mt trang mn hnh
Lt ti mt trang mn hnh
Di chuyn con tr v u tp tin
Di chuyn con tr v cui tp tin
Chuyn i gia ch ghi chn v ghi
Xung mt dng

2. Cc phm thao tc trn khi.


Phm/T hp phm
Shift
Shift
Shift
Shift
Shift Home
Shift End
Shift PgUp
Shift PgDn
Ctrl Shift
Ctrl Shift
Ctrl Shift Home
Ctrl Shift End

Chc nng
nh du chn mt k t bn tri
nh du chn mt k t bn phi
nh du chn mt hng trn v tr con tr
nh du chn mt hng ti v tr con tr
nh du chn t u hng ti v tr con tr
nh du chn t v tr con tr ti cui hng
nh du chn mt trang lui mn hnh
nh du chn mt trang ti mn hnh
nh du chn mt t bn tri
nh du chn mt t bn phi
nh du chn t v tr con tr v u tp tin
nh du chn t v tr con tr ti cui tp tin

3. Cc thao tc xa
Phm/T hp phm
Backspace ()
Del (Delete)
Ctrl Y
Ctrl K Y
Ctrl Q Y
Ctrl T
Gv: Trnh Huy Hong

Chc nng
Xa mt k t bn tri con tr
Xa mt k t ti v tr con tr
Xa dng ti v tr con tr
Xa khi
Xa t v tr con tr n cui dng
Xa mt t ti v tr con tr
Trang 22

Gio trnh tin hc i cng

gn ng lp trnh

4. Cc thao tc sao chp v di chuyn


Phm/T hp phm
Ctrl Insert
Shift Delete
Ctrl Delete
Shift Insert
Ctrl K R
Ctrl K W

Chc nng
Sao chp khi chn vo Clipboard
Ct khi chn vo Clipboard
Xa khi chn
Dn thng tin t Clipboard vo v tr con tr
c thng tin t tp tin vo ca s son tho
Ghi thng tin t ca s son tho vo tp tin

5. Cc thao tc khc
Phm/T
hp
phm
F1
F2
F3
F5
F6
F7
F8
F9
F10
Alt F1
Alt F3
Alt F9
Alt F10
Alt X
Alt Backspace
Shift F1
Ctrl F1
Ctrl F2
Ctrl K H
Ctrl Q F
Ctrl Q A
Ctrl Q [
Ctrl Q ]

Gv: Trnh Huy Hong

Chc nng
Hin ln mn hnh thng tin v tnh trng hin ti
Ghi tp tin ang son tho vo a
N p mt tp tin vo
ng khung hoc khng ng cho ca s hin ti
Chuyn t ca s n sang ca s kia
Chuyn n v tr li trc
Chuyn n v tr li sau
Thc hin dch chng trnh
Tr v menu chnh
Cho hin li mn hnh hng dn va xem
Ly mt tp tin np vo
Dch sang tp tin OBJ
Hin mn hnh Version chng trnh
Thot khi BorlandC
Phc hi li thao tc trc
Hin ca s gip theo mc
Hin ca s gip v hm, ton t tng ng ...
ti v tr con tr
Ti lp li thc hin chng trnh
n / Hin du khi
Tm kim
Tm kim v thay th
Xc nh cp ngoc bao mt khi lnh

Trang 23

Gio trnh tin hc i cng

gn ng lp trnh

VI. Sa li c php v g ri chng trnh


1. Sa li c php
Thng thng khi son tho xong mt chng trnh, ta vn cn mc mt s li c php.
Cho nn nu thc hin bin dch hoc chy th chng trnh th trn mn hn s hin ra nhng
thng bo v cc li ny. Tt c cc li s c hin trong ca s Message xut hin cui
mn hnh ngay di ca son tho. sa li ta lm nh sau:
- Dng cc phm mi tn a hp sng ti dng thng bo li trong ca s Message ri
bm Enter.
- a con tr ti ni cn sa v tin hnh sa.
- Trong qu trnh sa c th bm phm F6 m rng ton b ca s son tho.
Lu :
V chng trnh bin dch c th sinh ra cc thng bo li khng chnh xc t mt li
trc . N n sau khi sa xong mt s li no . Ta nn bin dch li b i nhng dng
thng bo li tha trong ca s Message.

2. G ri chng trnh
Khi bin dch v chy chng trnh, c th gp cc trng hp chng trnh b quNn
hoc chy sai kt qu m khng th pht hin nguyn nhn bng cch xem tng th chng
trnh. Khi ta c th dng cc chc nng thc hin chng trnh bng cch ln tng bc
tm li, dng ca s Watch...

2.1 Ln tng bc
-

Mi bc thc hin ta bm phm F7, d li.


Dng u tin main() s c lm sng u tin.
Dng ang ch sng s c thc hin ln bm phm F7 k tip, sau tr v
mu nn bnh thng
ti lp qu trnh g ri, ta gii phng b nh dnh cho vic g ri trc bng cch vo
menu Run ri chn mc Program reset, hoc bm t hp phm Ctrl F2.

2.2 Dng ca s Watch


Vic s dng ca s theo di cc gi ca bin trong mi bc thc hin d tm ra
nguyn nhn chng trnh thc hin sai.
- Chn menu Break/watch, ri chn mc Add Watch, hoc bm t hp phm Ctrl F7
- N hp tn bin vo ti v tr con tr ri bm Enter.
- N u mun sa li tn hoc thay bin mt bin no th chn chc nng Edit watch
hoc bm Enter ri tin hnh sa li tn.
- Mun xa mt bin ta chn chc nng Delete watch, cn mun xa ton b th ta
chn chc nng Remove all watch
Lu :
Gv: Trnh Huy Hong
Trang 24

Gio trnh tin hc i cng

gn ng lp trnh

Mi ln chn chc nng ny ch c php nhp vo nhiu nht mt tn bin. Cho nn


nu mun theo di nhiu bin th phi chn nhiu ln chc nng ny.
Khi c ca s Watch, nu chy chng trnh tng bc th gi tr ca cc bin trong
ca s Watch s c hin ra v thay i theo kt qu ca tng bc thc hin.

Cc li sinh ra trong qu trnh chy chng trnh (Runtime error)


M li
1
2
3
4
5
6
12
15
16
17
100
101
102
103
104
105
106
150
151
152
154
156
157
158
159
160
161
162
200
201
202
203
204
205
206

ngha
Invalid function number
Sai s hiu hm
File not found
Khng tm thy file
Path not found
Khng tm thy ng dn
Too many open files
M qu nhiu file
File access denied
Khng truy nhp c file
Invalid file handle
S hiu file khng hp l
Invalid file access code
M truy nhp file khng hp l
Invalid drive number
S hiu thit b khng hp l
Cannot remove current directory Khng th xo hoc chuyn th mc hin hnh
Cannot rename across drives
Khng th i tn cc thit b cho nhau
Disk read error
Li khi c a
Disk write error
Li khi ghi a
File not assigned
File cha c ch nh
File not open
File cha c m
File not open for input
File cha c m ly d liu
File not open for output
File cha oc m xut d liu
Invalid numeric format
nh dng s khng hp l
Disk is write-protected
a ang c bo v chng ghi
Bad drive request struct length
ln cu yu cu cu trc thit b sai
Drive not ready
Thit b cha sn sng
CRC error in data
Li kim tra d vng trong d liu
Disk seek error
Li tm kim trn a
Unknown media type
Khng bit kiu thit b
Sector N ot Found
Khng tm thy sector c yu cu
Printer out of paper
Ht giy trn my in
Device write fault
Li ghi thit b
Device read fault
Li c thit b
Hardware failure
Li phn cng
Division by zero
Li chia cho 0
Range check error
Li trn b nh
Stack overflow error
Li trn ngn xp
Heap overflow error
Li trn vng nh Heap
Invalid pointer operation
Con tr php ton khng hp l
Floating point overflow
Trn du phNy ng
Floating point underflow
Trn du phNy ng

Gv: Trnh Huy Hong

Trang 25

Gio trnh tin hc i cng

207
208
209
210
211
212

Invalid floating point operation


Overlay manager not installed
Overlay file read error
Object not initialized
Call to abstract method
Stream registration error

gn ng lp trnh

Php ton vi s du phNy ng khng hp l


Qun l trn cha c ci t
Li trn khi c file
i tng cha c khi to
Li gi mt phng thc tru tng
Li ng k dng xut nhp

BI TP
1. Khi ng Turbo Pascal.
2. N hp vo on chng trnh sau:
Program Baimodau;
Uses Crt;
Begin
Writeln(***********************************************************);
Writeln(* Trng Dai hoc Su Pham Thanh pho Ho Chi Minh *);
Writeln(*
Khoa Toan Tin hoc
*);
Writeln(***********************************************************);
Readln;
End.
3. Dch v chy chng trnh trn.
4. Lu chng trnh vo a vi tn BT1.PAS.
5. Thot khi Pascal.
6. Khi ng li Borland Pascal.
7. M file BT1.PAS.
8. Chn thm vo dng: CLRSCR; vo sau dng BEGI
9. Dch v chy th chng trnh.
10. Lu chng trnh vo a.
11. Thot khi Pascal.
12. Vit chng trnh in ra mn hnh cc hnh sau:
*
********
*******
***
**
**
**
**
** **
**
**
**
**
**
********
**
*********
**
**
**
**
**
**
**
**
**
**
**
********
********

Gv: Trnh Huy Hong

Trang 26

Gio trnh tin hc i cng

gn ng lp trnh

BI 4: CC THH PH TROG G G PASCAL


I. Tp k t dng trong ngn ng Pascal:
Mi ngn ng lp trnh u c xy dng t mt b k t no . N gn ng C c
xy dng trn b k t sau :
 26 ch ci hoa : A B C .. Z
 26 ch ci thng : a b c .. z
 10 ch s : 0 1 2 .. 9
 Cc k hiu ton hc : + - * / = ( )
 K t gch ni : _
 Cc k t khc : . , : ; [ ] {} ! \ & % # $ ...
 Du cch (space) dng tch cc t. V d ch VIET N AM c 8 k t, cn
VIETN AM ch c 7 k t.
Lu :
-

Khi vit chng trnh, ta khng c s dng bt k k t no khc ngoi cc k t


trn.

V d phng trnh bc hai ax2 +bx+c=0 , xt = b2 - 4ac, trong ngn ng C khng


cho php dng k t , v vy ta phi dng k hiu khc thay th chng hn Delta,
bit thc Dt,...

II. T kho :
T kho l nhng t c s dng khai bo cc kiu d liu, vit cc ton t v
cc cu lnh. Bng di y lit k cc t kho ca BORLAN D PASCAL :
absolute
and
array
begin
case
const

div
do
downto
else
end
file

For
Forward
Function
Goto
If
implementat

ion
in
inline
interface
interrupt
label

mod
nil
not
of
or
packed

procedure
program
record
repeat
set
shl

shr
string
then
to
type
unit

until
uses
var
while
with
xor

Lu :
Gv: Trnh Huy Hong

Trang 27

Gio trnh tin hc i cng

gn ng lp trnh

Khng c dng cc t kho t tn cho cc hng, bin, mng, hm ...

T kho phi c vit bng ch thng.

III. Tn :
Cc bin, cc hng, cc hm, cc th tc, ...c s dng trong chng trnh u cn phi t
tn, cn gi l nh danh hay danh hiu. Cc tn ny do ngi lp trnh t t v phi m bo
ng quy tc: tn phi bt u bng ch ci, k c th l ch ci, ch s, hay du gch ni
_. Tn khng c t trng vi t kha. Thng thng tn nn t ngn gn v c tnh gi
nh. Tn l mt khi nim rt quan trng, n khng ch th hin r ngha trong chng trnh
m cn dng xc nh cc i lng khc nhau trong mt chng trnh. Chng ta c tn
hng, tn bin, tn mng, tn hm, tn con tr, tn tp, tn cu trc, tn nhn,...
Tn c t theo qui tc sau :
 Tn l mt dy cc k t bao gm ch ci, s v gch ni.
 K t u tin ca tn phi l ch hoc gch ni.
 Tn khng c trng vi tn ca t kho.
 di cc i ca tn theo mc nh l 127.
V d :
Cc tn ng : a_1, delta, S1, N um_EVEN
Cc tn sai

:
3a_1

K t u tin l s

X#1

S dng k t #

f(x)

S dng cc du ( )

Do

Trng vi t kho

te ta

S dng du trng

A-2

S dng du -

Lu :
Trong BORLAN PASCAL, tn bng ch thng v ch hoa l ging nhau v d tn
AB l ging vi ab. Tuy nhin ta nn dng ch hoa t tn cho cc hng v dng ch
thng t tn cho hu ht cho cc i lng khc nh bin, bin mng, hm, cu trc.
Gv: Trnh Huy Hong

Trang 28

Gio trnh tin hc i cng

gn ng lp trnh

IV. Kiu d liu v khai bo bin :


1 Kiu s nguyn
1.1/ Cc kiu d liu s nguyn trong Pascal:
integer -32768 32767
byte
0 . . . 255
shortint
-128 127
word
0 65535
longint -2147483648 ... 2147483647

1.2/ Cc php ton s hc trn s nguyn:


T kha
Div
Mod
+
*
/

ngha
Chia ly phn nguyn
Chia ly phn d
Cng
Tr
N hn
Chia, kt qu l s
thc

2 Kiu s thc - real


Real 2.9*10-39 ... 1.7*1038.
Cch vit:
o Vit theo kiu s thp phn bnh thng.
V d: 3.14
o Vit theo kiu c phn nh tr v phn m.
V d:
3.93E+02 = 3.93 * 102 = 393
3.14E-02 = 3.14 * 10-2 = 0.0314
Cc hm s hc dng cho s nguyn v s thc:
K hiu (x l tham s truyn cho hm)
Abs(x)
Sqr(x)
Sqrt(x)
Sin(x), cos(x)
Arctan(x)
Ln(x)
Exp(x)
Gv: Trnh Huy Hong

ngha
ly gi tr tuyt i ca x
ly bnh phng ca x
ly cn bc hai ca x
Sin x , cos x
Arctg x
ly logarit theo c s t nhin
ex
Trang 29

Gio trnh tin hc i cng

Succ(n), n nguyn
Pred(n), n nguyn
Odd(n), n nguyn
Trunc(x)
Round(x)

gn ng lp trnh

n+1
n-1
True nu n l, false nu n chn
ly phn nguyn ca x
Lm trn x

V d:
x := -3;
x := abs(x); {sau khi thc hin lnh ny x=3}
x := sqrt(x); {sau khi thc hin lnh ny x = 3 1.732}
y := trunc(x); { y = 1}
x := round(x);
{x = 2}

3 Kiu logic - boolean


Kiu boolean l mt i lng ch c th nhn hai gi tr TRUE (ng) hoc FALSE
(sai).
Cc php ton trn kiu Boolean: and, or, not.
V d:
a := true;
b := false;
c := a and b; { c = false}
d := a or b; {d = true}
e := not(a); {e = false}
Cc php ton quan h sau y s cho kt qu l kiu boolean:
K hiu
<>
=
>=
<=
>
<

ngha
Khc nhau
Bng nhau
Ln hn hoc bng
N h hn hoc bng
Ln hn
N h hn

V d:
a := 5;
b := 6;
c := (a > b); {c = false}
d := (a<>b); {d = true}

4 Kiu k t - char
Cc gi tr thuc kiu d liu ny l nhng ch vit, k hiu.
Gv: Trnh Huy Hong

Trang 30

Gio trnh tin hc i cng

gn ng lp trnh

Cch vit: cc k t c t trong hai du nhy n.


V d:
Var x: char;

x := A;
x := a;
x := +;
x := 1;
{ch s 1, khc vi s nguyn 1}
x := ;
{k t trng}
Cc hm lin quan n kiu k t
K hiu
Ord(x)
Chr(n) hay #n
Pred(x)
Succ(x)

ngha
Cho s th t ca k t x trong bng m ASCII
Cho k t c s th t l n trong bng m ASCII
Cho k t ng trc x
Cho k t ng sau x.

V d:
Var

x, y: char;
n: integer;

x := a;
n := ord(x); {n=97, v s th t ca k t a l 97}
y := chr(n); {y=a}
x := succ(y); {x=b}

5. Kiu hng s:
Hng l cc i lng m gi tr ca n khng thay i trong qu trnh tnh ton.
 Khai bo :

const tn hng = gi tr

 V d :

const MAX = 1000

Lc ny, tt c cc tn MAX trong chng trnh xut hin sau ny u c thay bng
1000. V vy, ta thng gi MAX l tn hng, n biu din s 1000.
Mt v d khc : const pi = 3.141593
t tn cho mt hng real l pi c gi tr l 3.141593.

Gv: Trnh Huy Hong

Trang 31

Gio trnh tin hc i cng

gn ng lp trnh

BI 5: CU TRC C B CA CHG TRH


I. Cu trc chng trnh Pascal
Phn khai bo
 Program
 Label
 Const
 Type
 Var
 Khai bo chng trnh con
Phn thn chng trnh
 Begin
cc pht biu, cu lnh;
 End.

1. Cc khai bo trong Pascal


 Program tenchuongtrinh;
Program N hapdulieu;
 Const tnhng=gitrhng;
Const pi=3.14159; tentruong=Dai Hoc Su Pham
 Type tnkiudliu= m t xy dng kiu
Type diemso=1..10; chucai=a..A
 Bin v khai bo bin
Bin: l nh lu tr d liu v thay i c. C kiu d liu tng ng.
var tn bin: kiu d liu;

2. Pht biu gn v th tc nhp xut


2.1/ Pht biu gn
Gn mt gi tr ca mt biu thc cho mt bin
TenBien := Bieuthuc;
2.2/ Cc thao tc xut nhp:
Write(): vit d liu ra mn hnh v con tr khng t ti v tr u dng mi
Writeln(): vit d liu ra mn hnh v con tr t ti v tr u dng mi.
Read(): vo d liu v con tr khng t ti dng mi.
Readln(): vo d liu v con tr t ti dng mi
Cc hm v th tc thng dng trong nhp xut d liu
 Hm KEYPRESSED: Hm tr v gi tr TRUE nu nh c mt phm bt k c
nhn, nu khng hm cho gi tr l FALSE.
 Hm READKEY: Hm c chc nng c mt k t t b m bn phm.
 Th tc GOTOXY(X,Y:Integer): Di chuyn con tr n ct X dng Y.
Gv: Trnh Huy Hong

Trang 32

Gio trnh tin hc i cng

gn ng lp trnh

Th tc CLRSCR: Xo mn hnh v a con tr v gc trn bn tri mn hnh.


Th tc CLREOL: Xa cc k t t v tr con tr n ht dng.
Th tc DELLIE: Xo dng ti v tr con tr v dn cc dng pha di ln.
Th tc TEXTCOLOR(color:Byte): Thit lp mu cho cc k t. Trong color
[0,15].
 Th tc TEXTBACKGROUD(color:Byte): Thit lp mu nn cho mn hnh.





3. Li ch thch :
Cc li bnh lun, cc li gii thch c th a vo bt k ch no ca chng trnh
cho chng trnh d hiu, d c hn m khng lm nh hng n cc phn khc. Li gii
thch c t gia hai du { }.
Trong mt chng trnh cn ( v lun lun cn ) vit thm nhng li gii thch
chng trnh thm r rng, thm d hiu.
V d :
File Edit Search Run Compile Debug Tool Option Window Help
Program bt1;
{Chuong trinh in ra dong chu cho truoc}
Begin
Writeln(Truong dai hoc Su Pham);
Writeln(Khoa Toan Tin hoc);
End.
F1 Help F2 Save F3 Open Alt-F9 Compile F9 Make Alt-F10 Local Menu
Bi tp
1. Vit chng trnh tnh t s pignet ca mt ngi khi bit chiu cao (Cm), vng ngc trung bnh (Cm), trng
lng (Kg). Cng thc tnh ch s pignet = Chiu cao (Vng ngc trung bnh + Trng lng)
Vng ngc trung bnh = 0.5 * (Vng ln + Vng nh)
2. Vit chng trnh nhp 2 s nguyn c ti a 4 k s ri thc hin php tr v xut ra mn hnh theo dng sau
y:
4321
- 1234
--------3087
3. Vit chng trnh nhp cc tr a, b, c, x ri in ra tr ca tam thc : ax2 + bx + c
4. Vit chng trnh nhp vo chu vi ca mt hnh ch nht, sau tnh ra din tch ln nht m hnh ch nht
c th c c. Bit rng: Din tch ln nht ca hnh ch nht l hnh vung

Gv: Trnh Huy Hong

Trang 33

Gio trnh tin hc i cng

gn ng lp trnh

5. Vit chng trnh nhp vo mt k t ri in ra m ASCII ca k t


6. Vit chng trnh nhp to x, y, z ca mt vct 3 chiu. Tnh v in ra di ca vct ny. Cng thc
tnh nh sau:
di = x 2 + y 2 + z 2
7. Vit chng trnh nhp mt s thc x. Tnh gi tr ca z theo cng thc : z = ln ( x + |sin(2x) | )
8. Vit chng trnh chuyn t Mile ( dm Anh) sang Km, bit rng 1Mile = 1.609344Km
9. Vit chng trnh nhp vo s tin M (nguyn dng). i s tin ny ra cc t giy bc 10 000, 5000,
2000, 1000, 500. Vi gi thit u tin cho t c mnh gi ln hn, in ra s t giy tin mi loi.
10. Vit chng trnh nhp 3 s nguyn dng a, b, c. Hy tnh v in ra mn hnh gi tr trung bnh cng S v
trung bnh nhn P
Bit rng: Trung bnh cng : S = (a + b + c) / 3
1/ 3

1/3

Trung bnh nhn: P = (a b c)


= e * ln (a * b * c)
11. Vit chng trnh nhp 2 s nguyn dng a, b. Hy tnh ab
b

Bit rng: a = e * ln a
12. Gi s li sut mi thng ca ngn hng ABC l q (v d nu sut l 1.75% th q = 0.0175) cho loi hnh tit
kim li nhp vn. Vi s tin gi M v q nhp vo t bn phm, hy tnh v cho bit sau bao nhiu thng th
c li ln vn tng ln gp i so vi tin gi lc u.
13. N hp vo mt s S (nguyn dng), vit chng trnh i ra gi, pht, giy tng ng.
Hng dn: s dng cc ton t Div, Mod vit thut ton.

Gv: Trnh Huy Hong

Trang 34

Gio trnh tin hc i cng

gn ng lp trnh

BI 6: CC CU TRC IU KHI
I. Cu trc r nhnh
1. Cu trc iu kin:
Ton t if cho php la chn chy theo mt trong hai nhnh ty thuc vo ng hay sai,
bng khng v khc khng ca biu thc.
C php:
IF . THE ..:
IF iu kin 1 THEN cng vic 1 ;
Hoc :
IF iu kin 1 THEN cng vic 1
ELSE IF iu kin 2 THEN cng vic 2
.
ELSE cng vic n .
Chng hn on chng trnh sau s thc hin vic tm gi tr ln nht v nh nht ca 2 gi
tr.

if a< b then
begin
Max := b;
Min := a;
end
else
begin
Max := a;
Min := b;
end
V d : Chng trnh gii phng trnh bc hai.
Program ptb2;
Uses crt;
Var a,b,c,delta,x1,x2:real;
Begin
clrscr;
writeln(N hap a, b, c:);
readln(a,b,c);
delta:=b*b-4*a*c;
Gv: Trnh Huy Hong

Trang 35

Gio trnh tin hc i cng

gn ng lp trnh

if (delta<0.0) then writeln( Phuong trinh vo nghiem )


else if (delta==0.0) writeln('\n Phuong trinh co nghiem kep x =,-b/(2*a))
else
begin
writeln(Phuong trinh co hai nghiem );
writeln( x1= ,(-b+sqrt(d))/(2*a));
writeln(x2= ,(-b-sqrt(d))/(2*a));
end;
readln;
End.
Kt qu in ra:
Vo d liu: N hap a, b, c: 1 2 1
Xut d liu Phuong trinh co nghiep kep x = -1.00

2. Cu trc la chn:
L cu trc to nhiu nhnh c bit, n cng ging nh else if nhng n linh ng v
mm do hn. Mt hn ch l kt qu ca biu thc l gi tr nguyn (c gi tr c th).
Cu trc tng qut ca n l :
CASE..OF :
CASE biu thc OF
Gi tr 1 : cng vic 1;
Gi tr 2 : cng vic 2 ;
.
Gi tr n : cng vic n ;
EN D;
Lu :
 Biu thc chn phi l biu thc c th t nh kiu integer, character, boolean.
 Biu thc chn thng phi l 1 bin.
 Cc gi tr phi cng kiu th hin tt c cc gi tr c th c ca biu thc chn.
V d :

Program InSoN gay;


{In so ngay cua mot thang khong tnh toi nam nhuan}
Var thang : integer;
Begin
write (N hap vao mot thang : );
Gv: Trnh Huy Hong

Trang 36

Gio trnh tin hc i cng

gn ng lp trnh

readln (thang);
case thang of
1, 3, 5, 7, 8, 10, 12 : writeln( Thang, thang , co 31 ngay !);
4, 6, 9, 11 :writeln( Thang, thang , co 30 ngay !);
2 : writeln( Thang, thang , co 28 ngay !);
end; {case}
End.
Kt qu in ra:
Vo du liu: N hap vao mot thanh : 7
Xut d liu Thang 7 co 31 ngay !

II. Cu trc vng lp


1. Cu trc vng lp khng xc nh
1.1/ Cu trc repeat until
C php:
REPEAT ..UTIL :
REPEAT cc cu lnh ;
UN TIL iu kin
N u iu kin dng lun l m sai th s lp cho n khi iu kin ny ng v ngc
li. cng chnh l iu kin thot khi vng lp.

V d:
program DemsoChuso;
var Sonhap, Sochuso: integer;
begin
writeln(N hap vao mot so nguyen duong:);
readln(Sonhap);
Sochuso := 0;
write(Sonhap, co);
repeat
Sonhap := Sonhap div 10;
Sochuso := Sochuso + 1;
until Sonhap = 0;
writeln(Sochuso, chu so);
end.
Kt qu in ra:
Vo d liu
N hap vao mot nguyen duong : 2536
Xut d liu 2536 c 4 chu so
Gv: Trnh Huy Hong

Trang 37

Gio trnh tin hc i cng

gn ng lp trnh

1.2/ Cu trc while do


C php:
WHILE . DO :
WHILE iu kin DO cc cu lnh ;
Trong cu trc ny cc cu lnh ch c thc hin khi iu kin ng, nn cn gi l
iu kin vo vng lp.
V d: dng vng lp while do thc hin chng trnh m s ch s ca mt s
nguyn dng v d trn nh sau.

program DemsoChuso;
var Sonhap, Sochuso: integer;
begin
writeln(N hap vao mot so nguyen :);
readln(Sonhap);
Sochuso := 0;
write(Sonhap, co);
while Sonhap <> 0 do
begin
Sonhap := Sonhap div 10;
Sochuso := Sochuso + 1;
end;
writeln(Sochuso, chu so);
end.
Lu :
 Mt khi vng lp bt u, n phi c kt thc. Do iu kin vo hoc thot khi
vng lp phi cha mt bin m tr ca n c bin i bi cu lnh ca vng lp.
Chng hn nh vng lp sau khng bao gi thot c:

dem := 0;
repeat
writleln(dem);
until dem = 100;
 Cc dng vng lp khng xc nh cng thng hay s dng trong vic tnh tng
hoc trung bnh cng ca mt dy s. Thng th phi c iu kin kt thc
dy s, ng vi dng ny ta dng mt k thut c bit l lnh canh.

Gv: Trnh Huy Hong

Trang 38

Gio trnh tin hc i cng

gn ng lp trnh

program TinhTrungbinh;
const Linhcanh = -1;
var So,Tong,Trungbinh : real;
Dem : integer;
begin
Tong := 0;
Dem := 0;
Trungbinh := 0; {Khoi tao}
writeln(N hap vao mot so :);
readln(So);
if (So = Linhcanh) {truong hop khong co du lieu}
then writeln(Khong co du lieu de tinh trung binh)
else
begin
repeat
Dem := Dem+1;
Tong := Tong + So;
writeln(N hap vao mot so :);
readln(So);
until So = Linhcanh;
Trungbinh := Tong/Dem;
writeln(Gia tri trung binh cua , Dem, so la: , Trungbinh:10:4);
end; {else}
end.

2. Cu trc vng lp xc nh
C php:
FOR .TO .. DO :
FOR bin m :=gi tr u TO gi tr cui DO
cc cu lnh ;
Hoc :
FOR bin m :=gi tr cui DOWN TO gi tr u DO
Cc cu lnh ;
Lu :
 y bin m phi l kiu th t.
 Gi tr u v cui phi l cc gi tr xc nh.
 Bin m phi c khai bo cc b, nu trong th tc c cha vng for th bin m
phi c khai bo trong th tc .
 Gn li tr trong thn vng lp l mt li.
 Tr ca bin m l khng xc nh khi ra khi vng lp for.
Gv: Trnh Huy Hong

Trang 39

Gio trnh tin hc i cng

gn ng lp trnh

 Cc vng for c th lng nhau nhng trnh lng nhiu vng for, iu c th dn n
chng trnh chy chm do kh nng tnh ton ln.
V d:

program BangChuCai;
var inchu: char;
begin
for inchu := A to Z do write(inchu);
writeln;
for inchu := z downto a do write(inchu);
writeln;
end.
Kt qu in ra:
Xut d liu ABCDEFGHIJKLMN OPQRSTUVXYZ
zyzvutsrqponmlkjihgfedcba

Bi tp
1. Vit chng trnh nhp vo mt s nguyn v kim tra xem s va nhp l s chn hay
s l.
2. Vit chng trnh tnh tng S = 1+2+...+N . Bng tt c cc vng lp c th.
3. Vit chng trnh nhp vo cc s nguyn cho n khi no gp s 0 th kt thc. Hy
m xem c bao nhiu s chn va c nhp vo.
4. Vit chng trnh tnh s Pi vi chnh xc Epsilon, bit:
Pi/4 = 1-1/3+1/5-1/7+...
Gi :
Ta thy rng, mu s l cc s l c qui lut: 2*i+1 vi i=1,...,n. Do ta dng i lm
bin chy.V tnh s Pi vi chnh xc Epsilon nn khng bit trc c c th s
ln lp, do ta phi dng vng lp WHILE hoc REPEAT. C ngha l phi lp cho
ti khi t=4/(2*i+1) Epsilon th dng.
5. Vit chng trnh nhp vo s nguyn N . In ra mn hnh tt c cc c s ca N .
6. Vit chng trnh tm USCLN v BSCN N ca 2 s a, b c nhp vo t bn phm.
Gi :
- Tm USCLN : Ly s ln tr s nh cho n khi a=b th dng. Lc : USCLN =a.
- BSCN N (a,b) = a*b DIV USCLN (a,b).
7. Vit chng trnh tm cc s c 3 ch s abc sao cho: abc = a3 + b3 + c3.
8. Vit chng trnh tm cc s nguyn a, b, c, d khc nhau trong khong t 0 ti 10 tho
iu kin: a.d2 = b.c3
Gv: Trnh Huy Hong

Trang 40

Gio trnh tin hc i cng

gn ng lp trnh

9. Gi s lng ca cng nhn c tnh theo cng thc:


TIN LN H = (MC LN G THN G * S N GY LM VIC)/24 + TIN THN G

Trong , tin thng thm cho mi ngy l 15% ca mc lng k t ngy lm vic
th 25 (nu s ngy lm vic ln hn 24 ngy). Vit chng trnh nhp mc lng, s
ngy lm vic, tnh v in ra tin lng c lnh.
10. Gi s tin truy cp Internet c tnh nh sau:
- T 7g 17g: 120/pht, c gim gi 10% nu thi gian truy cp > 6g
- T 17g 24g: 90/pht, c gim gi 12% nu thi gian truy cp > 4g
- T 0g 7g: 45/pht, khng c gim gi
Vit chng trnh tnh tin phi tr trong 1 ln truy cp khi bit gi bt u v gi kt
thc truy cp. D liu nh;p phi tho iu kin rng buc 0g gi bt u gi kt
thc 24g
11. Cc ph gi th bo m trong nc c tnh theo qui nh nh sau:
- N u trng lng trong khong nh mc 100gr u th cc ph trung bnh l 300 cho
mi gram
- N u trng lng th vt nh mc khng qu 30gr th cc ph trung bnh cho mi
gram vt nh mc l 200
- Trng hp trng lng th vt qu 130gr th tnh trung bnh 120 cho mi gram
vt qu 130gr
12. Tnh tin in phi tr khi bit s KWh tiu th v cch thc tnh theo qui nh nh sau:
- 100KWh nh mc u tin c n gi l 500/KWh
- T 101KWh n 150KWh c n gi trung bnh 650/KWh
- T 151KWh n 200KWh c n gi trung bnh 850/KWh
- T 201KWh tr i c n gi trung bnh l 1200/KWh
Vit chng trnh nhp vo ch s c, ch s mi ca in k. Tnh s KWh tiu th v
tin in. Ch trng hp in k gm 5 s b vt qu khi ch s l 99999.
13. Vit chng trnh nhp gi: pht: giy (hh:mm:ss). Cng thm mt s giy S, hy in kt
qu theo dng hh:mm:ss.
Gv: Trnh Huy Hong

Trang 41

Gio trnh tin hc i cng

gn ng lp trnh

14. Vit chng trnh nhp vo ngy, thng, nm. My s hin ln ngy, thng, nm hm
sau.
Gi :
Bin lun theo thng. Gom thng thnh 3 nhm: thng c 31 ngy (1,3,5,7,8,10,12),
thng c 30 ngy (4,6,9,11) v thng 2 (c 28 hoc 29 ngy ty theo nm nhun).
Dng lnh la chn:
CASE OF
15. Vit chng trnh in ra mn hnh cc gi tr ca bng m ASCII t 0255.
16. Vit chng trnh in ra mn hnh bng cu chng.
17. Tnh tin thu phng khi bit s ngy thu v loi phng (mt trong 3 loi A, B hoc C)
- Loi A: 250.000/ ngy
- Loi B: 200.000/ ngy
- Loi C: 140.000/ ngy
N u thu qu 1 tun th c gim phn trm trn tng s tin l: 10% nu phng loi
A, 8% nu phng loi B, ring loi C th bt 50.000 khch i li
18. Tnh tin i taxi khi bit s km i: 1Km (1000m) u tin gi 5000, t Km th 2
n Km th 5 gi trung bnh l 4500/Km, t Km th 6 n Km th 10 th gi trung
bnh l 2000/500m, t Km th 11 tr i th gi trung bnh l 1500/500m.
19. Tnh tin thu sch th vin H CL nu bit s ngy thu (khng c vt qu 30
ngy) v i tng thu l sinh vin hay cn b, vi qui nh nh sau:
- N u mn trong 7 ngy: sinh vin 1500, cn b 3000
- N u mn hn 7 ngy: mi ngy tr thm 500 nu l sinh vin v 700 nu l cn b
20. Mt im KARAOKE tnh tin khch hng theo n gi nh sau:
- Mi gi trong 3 gi u tin tnh 2.5USD/gi
- Mi gi tip theo c n gi gim 30% so vi n gi trong 3 gi u tin
N goi ra nu thi gian thu vo khong 7g 17g th c gim thm 10% trn tng s
tin.
Vit chng trnh nhp vo gi bt u, gi kt thc v tnh tin khch hng phi tr,
bit rng 7 gi bt u gi kt thc 24 v qui i 1USD = 15.630
21. Vit chng trnh nhp vo trng lng ca mt bu phNm v tnh cc ph ca bu
phNm , bit rng:
- N u bu phNm c trng lng nh hn 20Kg, cc ph l 20.000 cho mt bu phNm
- N u bu phNm c trng lng t 20Kg tr ln (nhng khng vt qu 50Kg), mi Kg
bu phNm trn 20Kg c cc ph l 1200
Gv: Trnh Huy Hong

Trang 42

Gio trnh tin hc i cng

gn ng lp trnh

- N u bu phNm c trng lng t 50Kg tr ln, mi Kg bu phNm trn 50Kg c cc


ph trung bnh l 900
22. Vit chng trnh tnh cc tng sau (nhp n>0, x ty ):
S0 = n! = 1*2*...*n
{n giai tha}
S1 = 1 + 1/2 + ... + 1/n
S2 = 1 + 1/2! + ... + 1/n!
S3 = 1 + x + x2/2! + x3/3! + ... + xn/n!
S4 = 1 - x + x2/2! - x3/3! + ... + (-1)nxn/n!
S5 = 1 + sin(x) + sin2(x) + ... + sinn(x)
S6 = 12 + 22 + ... + n 2
S7 =

1 3 5
2n
. . ....
2 4 6 2n + 1

S8 = 1.2.3 + 2.3.4 + + n.(n+1)(n+2)


23. Vit chng trnh tm li gii cho bi ton sau:
Trong gi va th va g,
Mt trm ci cng bn ba ci u.
Hi c my g my th?
24. Vit chng trnh tm li gii cho bi ton sau:
Trm tru trm b c
B li cho trn
Tru ng n nm
Tru nm n ba
N m tru ngh n mt.
Hi c bao nhiu tru ng, tru nm, tru ngh?
25. Vit chng trnh phn tch mt s ra tha s nguyn t. V d: N =100 s in ra mn
hnh:
100 | 2
50 | 2
25 | 5
5 |5
1 |

Gv: Trnh Huy Hong

Trang 43

Gio trnh tin hc i cng

gn ng lp trnh

BI 7: CHG TRH CO


 Khi nim: Chng trnh con l mt on chng trnh c tn v c gi thc hin
nhiu ni trong chng trnh chnh.
 Ti sao phi dng chng trnh con:
C cng vic cn phi c thc hin ti nhiu ni trong chng trnh => tch
cng vic thnh chng trnh con
Phn on, module chng trnh thun tin trong qun l, trnh by v pht
trin.
 Cc loi chng trnh con: Procedure & Function
 Cu trc ca mt chng trnh pascal c chng trnh con nh sau:
PROGRAM Tn_chng_trnh;
USES CRT;
CON ST ............;
TYPE ............;
VAR
............;
PROCEDURE THUTUC[(Cc tham s)];
[Khai bo Const, Type, Var]
BEGIN
..............
EN D;
FUN CTION HAM[(Cc tham s)]:<Kiu d liu>;
[Khai bo Const, Type, Var]
BEGIN
..............
HAM:=<Gi tr>;
EN D;
BEGIN {Chng trnh chnh}
...................
THUTUC[(...)];
...................
A:= HAM[(...)];
...................
EN D.

Gv: Trnh Huy Hong

Trang 44

Gio trnh tin hc i cng

gn ng lp trnh

I. Th tc Procedure
Cu trc:
Procedure TenChuongTrinhCon(danhsachthamso);
Const
Type
Var
Khai bo chng trnh con
Begin
Phn thn chng trnh con
End;
Lu : Chng trnh con c th c chng trnh con bn trong
V d:
program Doicho;
var Solon, Sobe : integer;
procedure Doihaiso( var So1,So2:integer);
var Tam : integer;
begin
Tam := So1; So1 := So2; So2 := Tam
end; {Doihaiso}
begin {chuong trinh chinh}
Solon := 10;
Sobe := 5;
writeln( Solon:3, Sobe:3);
Doihaiso(Solon,Sobe);
writeln( Solon:3, Sobe:3)
end.

II. Hm Function
Cu trc:
Function TenChuongTrinhCon(danhsachthamso):KieuDuLieuCuaTriTraVe;
Cont
Type
Var
Khai bo chng trnh con
Begin
Phn thn chng trnh con
TenChuongTrinhCon:=GiaTriTraVe;**
Gv: Trnh Huy Hong
Trang 45

Gio trnh tin hc i cng

gn ng lp trnh

End;
Lu : Trong thn chng trnh con phi c lnh gn gi tr tr v cho tn chng trnh con.
Tn chng trnh con function c th dng nh mt bin c kiu d liu chnh l kiu
ca chng trnh con function.
V d:
Program uocchunglonnhat;
Var a,b: integer;
Function ucln(a,b:integer):integer;
Var tam: integer;
Begin
while(b>0) do
begin
if a>b then
begin
tam:=b; b:=a-b; a:=tam;
end {if}
else b:=b-a;
end; {while}
ucln:=a;
End; {ucln}
Begin {chuong trinh chinh}
write('nhap hai so :'); readln(a,b);
write('uoc chung lon nhat la :',ucln(a,b));
readln;
End.
Chng trnh kt hp c hai loi chng trnh con:
Program songuyento;
Var n:integer;
Function nguyento(n:integer):boolean
Var i:integer;
Begin
i:=2;
while (i<=n div 2) and (n mod i<>0) do i:=i+1;
if i<= n div 2 then nguyento:=false
else nguyento:=true;
End; {nguyento}
Procedure snt(n:integer);
Var i:integer;
Begin
writeln('so nguyen to < n :');
Gv: Trnh Huy Hong

Trang 46

Gio trnh tin hc i cng

gn ng lp trnh

if n=1 then write (n:3)


else if n=2 then write(n:3)
else
for i:=3 to n-1 do
if nguyento(i) then write(i:3);
End; {snt}
Begin {chuong trinh chinh}
write('nhap n :'); readln(n);
snt(n);
readln;
End.

III. Tham s
 Tham s: l nhng gi tr c th thay i cho mi ln thc hin chng trnh con, thng
thng l nhng d liu c th cn cho tho tc s l ca tng trng hp gi chng
trnh con.
 Tham s hnh thc: l nhng tham s c khai bo trong danh sch tham s. Khi
chng trnh con c gi thc hin th cc tham s ny s c truyn nhng gi tr c
th cho chng trnh con thc hin.
 Tham s thc: nhng gi tr c th (bin, hng, gi tr) truyn cho cc tham s hnh thc
khi chng trnh con c gi l cc tham s thc
 Tham s thc hp l cho cc tham s hnh thc ph thuc vo loi ca tham s hnh
thc
 Tham s hnh thc c 2 loi:
o Tham s hnh thc tr
o Tham s hnh thc bin
Tham s hnh thc tr (tham tr):
 nh ngha: N hng tham s hnh thc khng i sau t kho var trong khai bo danh
sch tham s l tham s hnh thc tr
V d: procedure ABC (A: integer, var B: real, C:string);
Tham s hnh thc tr l A v C
 Khi truyn tham s, tham s thc s truyn TRN ca mnh cho tham s hnh thc tr.
 Mi s thay i ca tham s hnh thc tr trong chng trnh con KHN G nh hng g
n tr ca tham s thc truyn cho n.
 Tham s thc cho tham s hnh thc tr l mt biu thc cng kiu.
Tham s hnh thc bin (tham bin):
 nh ngha: N hng tham s hnh thc i sau t kho var trong khai bo danh sch tham
s l tham s hnh thc bin.
V d: procedure ABC (A: integer, var B: real, C:string);
Tham s hnh thc tr l A v C
 Khi truyn tham s, tham s thc s truyn a ch ca mnh cho tham s hnh thc tr.
Gv: Trnh Huy Hong

Trang 47

Gio trnh tin hc i cng

gn ng lp trnh

 Mi s thay i ca tham s hnh thc tr trong chng trnh con S nh hng trc
tip v tc thi ln chnh nh ca tham s thc, tc l nh hng ngay n chnh tham
s thc tng ng.
 Tham s thc cho tham s hnh thc tr phi l mt bin cng kiu.
 Tham s hnh thc bin cn c dng tr v cc gi tr cn thit cho chng trnh
gi sau khi chng trnh con kt thc.

IV. Cu trc khi trong chng trnh pascal:


 nh ngha: Mt khi (block) gm 2 phn:
Phn khai bo vi cc khia bo: const, type, var, chng trnh con.
Phn thn: bt u bng BEGIN , gia l cc pht biu v kt thc bng EN D
h vy:
Mt chng trnh l mt Block
Mt chng trnh con l mt Block
Trong chng trnh c chng trnh con v trong chng trnh con c chng
trnh con khc  trong block c block
Mt chng trnh l mt Block vi cc Block con lng vo nhau.
ChuongTrinhChinh
A

A1
A1
A2
A2
B1
B2

B21

B2
C

V. Tm vc
 nh ngha : Tm vc (Scope) ca mt i tng trong chng trnh l vng m n
c bit n v c th c s dng.
 Tm vc p dng trn cc i tng nh: bin, hng, kiu d liu, chng trnh con.
 Qui tc xc nh tm vc: Tm vc ca mt i tng c xc nh t v tr m n
c khai bo cho n ht Block cha khai bo , k c nhng Block bn trong ca
n. N goi tr trng hp c s khai bo li trong mt khi con.
Gv: Trnh Huy Hong

Trang 48

Gio trnh tin hc i cng

gn ng lp trnh

 Khai bo li: N u khi A cha khi B v trong c 2 khi u khai bo mt i tng


tnX th Khi B ch c th truy xut i tng X ca chnh n v khng th truy xut
i tng X ca khi A.

X
X
VI. Hm qui :
1 : nh ngha
Trong Pascal khng nhng cho php t hm ny gi ti hm khc, m n cn cho php
t mt im trong thn ca mt hm gi ti chnh hm . Hm nh vy gi l hm qui.
Khi hm gi qui n chnh n, th mi ln gi my s to ra mt tp cc bin cc b
mi hon ton c lp vi tp cc bin cc b c to ra trong cc ln gi trc.
minh ho chi tit nhng iu trn, ta xt mt v d v tnh giai tha ca s nguyn
dng n.
Cch 1 (khng s dng qui):

Cch 2 (c s dng qui):

function gt(n:integer):integer {Tnh n! n>=0}


begin
Var gtphu,i:integer;
gtphu=1;
for i:=1 to n do gtphu:=gtphu*i;
gt:=gtphu;
end;

function gt(n:integer):integer;
begin
if (n=0) gt:= 1;
else gt:=gt(n*gt(n-1));
end;

Gii thch hot ng ca hm qui giai tha:


Khi gi tr truyn vo hm giaithua qua bin n=5 qu trnh thc hin din ra nh sau:
gt(n)

n*gt(n-1))

5*gt(4) = 5 * ?

4*gt(3) = 4* ?

3*gt(2) = 3 * ?

Gv: Trnh Huy Hong

Trang 49

Gio trnh tin hc i cng

gn ng lp trnh

2*gt(1) = 2 * ?

1*gt(0) = 1 * ?

Khi tham s n=0 th tr v gi tr 1. Lc ny cc gi tr ? bt u nh tr theo th t ngc li


nh sau:
gt(n)

(n*gt(n-1))

1*gt(0) = 1 * 1

2*gt(1) = 2 * 1

3*gt(2) = 3 * 2

4*gt(3) = 4* 6

24

5*gt(4) = 5 *24

120

Lu :
Hm qui so vi hm c th dng vng lp th n gin hn, tuy nhin vi my tnh
khi dng hm qui s dng nhiu b nh trn ngn xp v c th dn n trn ngn xp. V
vy khi gp mt bi ton m c th c cch gii lp ( khng dng qui ) th ta nn dng cch
lp ny. Song vn tn ti nhng bi ton ch c th gii bng qui.

2. Cc bi ton c th dng qui :


Phng php qui thng p dng cho cc bi ton ph thuc tham s c hai c
im sau :
-

Bi ton d dng gii quyt trong mt s trng hp ring ng vi cc gi tr c bit


ca tham s (trng hp suy bin).

Trong trng hp tng qut, bi ton c th qui v mt bi ton cng dng nhng gi
tr tham s th b thay i. Sau mt s hu hn bc bin i d qui n s dn ti
trng hp suy bin.

3. Cch xy dng hm qui :


Hm qui thng c xy dng theo thut ton sau :

Gv: Trnh Huy Hong

Trang 50

Gio trnh tin hc i cng

gn ng lp trnh

if ( trng hp suy bin) then


{
Trnh by cch gii bi ton khi suy bin
}
else /* Trng hp tng qut */
{
Gi qui ti hm ( ang vit ) vi cc gi
tr khc ca tham s

V d : In ra s Fibonacci th n
Dy Fibonacci c khai bo qui nh sau:
Fibonacci(0) = 1
Fibonacci(1) = 1
Fibonacci(n) = Fibonacci(n - 1) + Fibonacci(n - 2)
Program fibonacci;
Var n,i:word;
Function fbnc(n:word):word
Begin
if n:=0 then fbnc:=1;
else if n:=1 then fbnc:= 1;
else fbnc:=fbnc(n-1)+fbnc(n-2);
End; {fbnc}
Begin
Write(Tim so hang thu n cua day Fibonaxi, n = );
Readln(n);
Fbnc(n);
Readln;
End.
Chng trnh trn ch chy c vi N =10001 v s Fibonaxi th 10001 l 65048, s Fibonaxi th
10002 vt qu phm vi kiu ca word.

BI TP
1. Vit hm Sohoanthien(n:Word):Boolean; kim tra s nguyn n c phi l s hon
thin hay khng?
Gv: Trnh Huy Hong
Trang 51

Gio trnh tin hc i cng

gn ng lp trnh

2. Vit hm quy tnh Ckn bit :


Cnn =1 , C0n = 1 , Ckn = Ck-1n-1 + Ckn-1.
3. Vit th tc in ra mn hnh s o ngc ca mt s nguyn cho trc theo 2 cch:
qui v khng qui.
4. Vit chng trnh in ra mn hnh cc hon v ca n s nguyn u tin.
5. Vit chng trnh nhp vo s nguyn dng n, thc hin tt c cc th tc hay hm
sau:
a. In ra tt c cc c s ca n.
b. In ra c chn ln nht ca n.
c. In ra c l ln nht ca n.
d. Cho bit n c bao nhiu c s v tnh tng cc c s .
e. Tnh tng 1 ti n.
f. Tnh tng bnh phng cc s t 1 ti n.
g. Tnh tng lp phng cc s t 1 ti n.
6. Vit chng trnh in ra 100 s nguyn t u tin s dng th tc.
7. Vit chng trnh nhp vo chiu cao ca mt tam gic, v hnh tam gic cn c ngc
xui, tam gic rng ngc xui, s dng th tc
*
***
*****
*******
*
*

*
*
*
*******

8. Vit hm tm c s chung ln nht ca hai s. T vit chng trnh cng, tr, nhn,
chia hai phn s, hin th kt qu dng ti gin (chng trnh s dng th tc).
9. Mt s Amstrong l mt s c c im sau: s gm n k s, tng cc ly tha bc n
ca cc k s bng chnh s . V d: 153 l mt s c 3 k s, v 13 + 53 + 33 = 1 +
125 +27 = 153. Hy tm cc s Amstrong nh hn 1000
10. Mt s hon ho l mt s c tng cc c s ca n bng chnh n. Hy tm cc s
hon ho nh hn 5000. V d: s 6 c cc c s l 1, 2, 3, v 1+2+3 = 6

Gv: Trnh Huy Hong

Trang 52

Gio trnh tin hc i cng

gn ng lp trnh

BI 8: CC KIU D LIU DO GI DG NH GHA


Kiu do ngi dng nh ngha:
c xy dng t nhng kiu c bn.
Do ngn ng lp trnh quy nh sn cu trc v phng thc truy cp
N gi dng s nh ngha bng cch xc nh c th cc gi tr ca cc thng s.

I. Cc kiu d liu ri rc
1. Kiu lit k
 nh ngha: Kiu lit k c nh ngha bng cc lit k ra cc gi tr ca kiu. Cc gi
tr l danh hiu.
 V d: ngay = (sun, mon, tue, wed, thu, fri, sat)
Var homqua, homnay, ngaymai : ngay
 Cc php ton:
C th gn cc biu thc lit k cng kiu cho bin tng ng.
V d: homqua := mon;
Thc hin php so snh d trn th t index chnh l th t lit k bt u t 0 v
tng dn. V d tue < wed
Hm ORD (), hm SUCC() , hm PRED()
Khng c dng thao tc xut nhp vi kim lit k.

2. Kiu min con


 nh ngha: Kiu min con ca mt kiu ri rc l mt min tr ca kiu ri rc (kiu
ch) c xc nh bng 2 cn l 2 gi tr ca kiu ch.
Mt gi tr thuc kiu min con nm trong phm vi gia 2 cn.
 Mc tiu s dng:
i vi mt s compiler cho php sinh m t ng kim tar tnh hp l ca d
liu thay v phi t kim tra bng dng lnh. ( ch th l {$R+} vi Turbo Pascal).
Tit kim b nh trong mt s trng hp.
Dng trong khia bo cc kiu d liu c cu trc khc nh Array.
p dng c cc php ton ca kiu ch cho kiu min con. Cn ch n
vng gi tr kt qu trnh runtime error
 C php : Tenkieu = canduoi . . Cantrn;
diem = 1 . . 10;
chu = a .. z

II. Cc kiu d liu c cu trc


1. Kiu mng
1.1/ nh ngha:
Gv: Trnh Huy Hong

Trang 53

Gio trnh tin hc i cng

gn ng lp trnh

Array l mt dy gm nhiu phn t cng mt kiu. Hay ni cch khc mt d liu kiu
array l mt dy ca nhiu d liu thuc cng mt kiu.
 Cc phn t ca mt dy phi c cng kiu gi l kiu c s. Kiu c s c th l mt
kiu bt k ca Pascal.
 Cc phn t c mi quan h v v tr trong dy c xc nh bng ch s (index).
Chnh l th t v v tr ca n trong dy

1.2/ Khai bo dy:


tenkieuday = array[kieuchiso] of kieucoso
S phn t ca dy chnh l s gi tr c th c ca kiu ch s.
Index c gi tr t gi tr nh nht n gi tr ln nht ca kiu ch s
V d : daynguyen = array [1..100] of integer;
dayreal = array [char] of real;
Dy nguyn c 100 phn t kiu integer;index t 1 n 100.
Dy dayreal c 256 phn t kiu real; index t k t c chr(0) n chr(255).

1.3/ Cc php ton trn mng:


 C th thc hin php gn gi tr ca cc bin ca cng mt kiu array cho nhau.
V d: var a ,b : daynguyen; ta c th gn a:= b;
 Pht biu ny gn gi tr ca tng phn t trong dy b sang phn t tng ng ca
dy a.
 C th truy xut n tng phn t ca dy trc tip bng cch dng tenbien[index].
V d: a[5] := b[8]
 C th s dng tng phn t ca dy nh l mt bin ca kiu d liu c s.
V d: for i:= 1 to 100 do readln(a[i])

1.4/ Cc c tnh ca mng:


 S phn t ca kiu array l c nh ngay t khi khai bo. D l ta dng bao nhiu
phn t th cng chim ng s b nh m dy khai bo.
 Do thng thng phi khai bo d hn s thng dng trnh b thiu => lng
ph b nh.
 Cc phn t ca dy c xp lin tc trong b nh do :
o Cho php kh nng truy xut ngu nhin => nhanh
o Cn c vng nh trng lin tc ln khi cp pht b nh cho dy. => kh
cp pht.

1.5/ Cc gii thut trn mng:


 Khi t chc lu tr trn array ca nhiu phn t, thao tc thng phi thc hin l
tm kim (search) v sp xp (sort) cc phn t trong dy
 Vic tm kim (search) dng truy vn thng tin.
 Vic sp xp (sort) dng trnh by thng tin v gip cho thao tc search hiu qu
hn.
 Mt s gii thut:
o Tm kim tuyn tnh - Linear search: dng cho mng sp xp hoc cha
sp xp.
o Tm kim nh phn - Binary search: dng cho mng c sp xp.
o Thut ton ni bt - Buble sort: dng sp xp mng theo th t.
Gv: Trnh Huy Hong

Trang 54

Gio trnh tin hc i cng

gn ng lp trnh

Thut ton tuyn tnh:


 Xem xt tng phn t xem c phi gi tr cn tm hay khng cho n khi tm thy
hoc ht s phn t ca array th kt lun c khng c.
Timthay := 0;
For i:= 1 to n do if a[i]=giatricantim then timthay:= i;
if timthay= 0 then writeln(Khng c)
else writeln(C ti , timthay);
Hoc:
i:=1
while (i<=n)and(a[i]<>giatricantim) do i:= i + 1;
 S phn t tng qut cn duyt ti a l N . C th p dng cho dy bt k, tuy nhin
nu dy c th t th c th duyt nhanh hn mt t.
Tm kim nh phn:
 p dng cho dy c th t. N guyn tc chnh l da vo tnh th t ca dy
thc hin s php so snh ti thiu bng cch ly phn t gia so snh vi gi tr cn
tm:
N u bng c ngha l tm thy ti v tr .
N u khng bng th phn na s phn t s c loi b khng cn xt v chc
chn khng th bng.
 Gii thut ny cho tc tm kim rt cao. V d dy c 1 triu phn t ch tn
khng n 20 php so snh l xc nh c trong khi vi linear search l 1 triu
php so snh.
 Ci t:
Dy A c n phn t t 1..n . Gi tr cn tm l X.
i:=1; j:=n; timthay:=false;
while (i<j) and (not (timthay)) do
begin
m:=(i+j) div 2;
if a[m] = X then timthay:=true
else if a[m] > X then j:=m
else i:=m;
end;
if timthay then writeln(Tim co phan tu, X)
else writeln(Khong co phan tu, X);
Chng trnh sp xp ni bt:
 Dng sp th t mt dy.
 N guyn tc :
o Tm phn t ln nht t vo v tr cui cng A[n] bng cch so snh ln lt
cc cp t a[j], a[j+1] vi j t 1=> n-1. N u phn t a[i] >a[j] th hon i 2
phn t ny
Gv: Trnh Huy Hong

Trang 55

Gio trnh tin hc i cng

gn ng lp trnh

o Lp li bc trn vi s phn t c dy cn li gim dn t n -> 2 .


o Khi hon tt dy s c th t tng dn.
 u im ca gii thut l n gin. Tuy nhin tc sp th t khng cao.
 C mt gii thut khc kh mnh l QuickSort
 Ci t:
Gii thut bubble Sort cho dy c n phn t v tng dn.
For i:= 1 to n do
For j:= 1 to n-i do
if A[j]>A[j+1] then
Begin
t:= a[i];
a[j]:=a[j+1];
a[j+1]:=t;
End;

1.6/ Mng nhiu chiu


 Kiu c s ca array c th l mt array khc, hnh thnh nn cu trc array of array.
Trong Pascal h tr sn kin trc ny vi kiu d liu array nhiu chiu
(multi-dimension array).
 Khai bo
tenkieu= array [index1, index2,.., indexN ] of kieucoso;
V d: matran = array[1..10, 1..20] of real;
table = array [1..100, a..z] of integer;
 Tng phn t ca array nhiu chiu c th c truy cp trc tip bng cch ch r
index trn tng chiu.
V d : a[3,5] hay b[11,h]
 Cc phn t ny cng c th c s dng nh l mt bin kiu c s.

2. Kiu chui
2.1/ nh ngha
Kiu chui (string) l kiu d liu tp hp ca cc phn t k t, k hiu hoc khong
trng.

2.2/ Khai bo:


TYPE TnKiu = STRIG[Max];
VAR
Tn bin : TnKiu;
hoc khai bo bin trc tip:
VAR
Tn bin : STRIG[Max];
Trong Max l s k t ti a c th cha trong chui (Max [0,255]). N u khng c khai
bo [Max] th s k t m mc nh trong chui l 255.
V d:
Type
Hoten = String[30];
St80 = String[80];
Gv: Trnh Huy Hong
Trang 56

Gio trnh tin hc i cng

Var

gn ng lp trnh

N ame : Hoten;
Line : St80;
St : String; {St c ti a l 255 k t}

2.3/. Truy xut d liu kiu chui


- C th s dng cc th tc xut nhp Write, Writeln, Readln truy xut cc bin kiu
String.
- truy xut n k t th k ca xu k t, ta s dng c php sau: Tnbin[k].

2.4/ Cc php ton trn chui k t


Php ni xu: +
Cc php ton quan h: =, <>, <, <=, >, >=.
Ch : Cc php ton quan h c so snh theo th t t in.

2.5/ Cc th tc v hm v chui k t
 LEGTH(St : String):Integer;
Hm ly chiu di ca xy k t
 Hm COPY(St : String; Pos, um: Byte): String;
Ly ra mt xu con t trong xu St c di N um k t bt u t v tr Pos .
 Hm POS(SubSt, St :String):Byte;
Kim tra xu con SubSt c nm trong xu St hay khng? N u xu SubSt nm
trong xu St th hm tr v v tr u tin ca xu con SubSt trong xu St, ngc
li hm tr v gi tr 0.
 Th tc DELETE(Var St:String; Pos, um: Byte);
Xo trong xu St N um k t bt u t v tr Pos.
 Th tc ISERT(SubSt: String; Var St: String; Pos: Byte);
Chn xu SubSt vo xu St bt u ti v tr Pos.
 Th tc STR(um; Var St:String);
i s nguyn hay thc N um thnh dng xu k t, kt qu lu vo bin St.
 Th tc VAL(St:String; Var um; Var Code:Integer);
i xu s St thnh s v gn kt qu lu vo bin N um. N u vic chuyn i
thnh cng th bin Code c gi tr l 0, ngc li bin Code c gi tr khc 0 (v
tr ca li).

3. Kiu tp hp
 nh ngha: D liu kiu tp hp l mt tp hp ca nhiu d liu thuc cng mt
kiu ri rc.
 Khai bo: Tnkieu = set of kiu c s
V d: tapnguyen = setof integer;
 Mt d liu kiu tp hp l mt tp hp c biu din dng [phantu, phantu,..]
 C th gn tp hp ny cho tp hp kia nu chng c cng kiu c s.
Gv: Trnh Huy Hong

Trang 57

Gio trnh tin hc i cng

gn ng lp trnh

V d: t1 := [1,3,5,8] hay t2:=t1


Cc php ton trn kiu tp hp:
Vi cc bin kiu tp hp ta c cc php ton
Php ton = : cho gi tr TRUE nu hai tp hp bng nhau
Php ton <>: cho gi tr TRUE nu hai tp hp khc nhau
Php ton <= : A<=B l TRUE nu A bao hm trong B
Php ton >= : A>=B l TRUE nu A cha B
Php ton IN : X IN A cho gi tr TRUE nu trong A ch phn t X
Php hp + : A+B l hp ca hai tp A, B
Php giao +*: A*B l giao ca hai tp A, B
Php hiu - : A-B l hiu ca hai tp A,B

4. Kiu bn ghi
Khi nim: Cc phn trnh by trc cho thy ngn ng Pascal rt mnh trong vic gii quyt
cc bi ton thin v tnh ton. Trong phn ny chng ta s thy thm mt kh nng mnh m
na ca ngn ng Pascal trong lnh vc qun l: qun l nhn s, qun l vt t, qun l ti
chnh...
Xt danh sch sinh vin nh di y:
Stt

H v tn

M s

N guyen Van An

1973208

Tran Thi N ga

1974564

Ton

tb

8.0

7.0

7.5

5.0

8.0

6.5

Mi dng lit k cc d liu v mt ngi, mi ct l mt d liu thnh phn cung cp thng


tin v mt thuc tnh c th ca nhng ngi .
Trong ngn ng Pascal:
-

Mi dng c gi l mt RECORD (dch l bn ghi hay th ghi).

Mi ct l mt FIELD (dch l trng hay thnh phn, hay thuc tnh cho st vi thc t).
Khai bo
TYPE
Tnkiu = RECORD
Tntrng1 : Kiudliu1;
Tntrng2 : Kiudliu2;
...
Tntrngk : Kiudliuk;
End;

Gv: Trnh Huy Hong

V d 1: Ta nh ngha mt kiu KSVIEN nh sau:


TYPE
KSVIEN = RECORD
Hoten:String[20];
Maso : String[8];
Toan, Ly, DTB: Real;
End;
Trang 58

Gio trnh tin hc i cng

gn ng lp trnh

Mi i tng cn qun l c th c nhiu trng, song ty yu cu qun l m ta ch la


chn v khai bo nhng trng tht s cn thit. Khai bo tha th hao ph b nh, nhng nu
thiu th cng tc qun l s kh khn do thiu thng tin. V vy, nn khai bo cc trng vi
s lng t nht nhng dng.
S dng bn ghi :
Kiu bn ghi sau khi c nh ngha c th dng khai bo cho cc bin.
V d :

Var

X, Y, Z : KSVIE;

Trong KSVIEN l bn ghi m t phn trn.Theo khai bo ny, X ,Y v Z l ba


bin kiu bn ghi KSVIEN , mi bin u c 5 trng Hoten, Maso, Toan, Ly v DTB.
thm nhp vo mt trng ca bn ghi ta vit tn bin kiu bn ghi, sau l du
chm . v tn trng, tc l : Tnbin .Tntrng
Cc lnh di y gn gi tr cho tng trng ca bin X :
X.Hoten :=Ly Van An;
X.Maso :=1973208;
X.Toan :=8.0;
X.Ly :=7.0;
X.DTB :=(X.Toan+X.Ly)/2;
nhp d liu cho trng Hoten ca bin Y, ta vit:
Write(N hap ho ten sinh vien Y : );
Readln(Y.Hoten);
i vi cc bn ghi lng nhau, cch truy xut n tng trng cng tng t.
Hai bin bn ghi cng kiu c th gn cho nhau.
Lnh : Y:=X; gn gi tr ca tng trng ca bin X cho trng tng ng ca bin Y.
Vy lnh trn tng ng vi khi 5 lnh sau :

Gv: Trnh Huy Hong

Trang 59

Gio trnh tin hc i cng

gn ng lp trnh

begin
Y.Hoten :=X.Hoten;
Y.Maso :=X.Maso;
Y.Toan :=X.Toan;
Y.Ly :=X.Ly;
Y.DTB :=X.DTB;
end;
Cc bn ghi c th so snh bng nhau hoc khc nhau:
V d:

If X=Y then writeln( X v Y l mt ngi );


If X<>Y then writeln( X khc Y );
Tuy nhin khng c php so snh <, <=, >, >= cho cc bn ghi.
Hai bn ghi c th hon i gi tr cho nhau theo ngha hon i tng cp gi tr ca cc

trng tng ng. Ging nh cc bin n gin, hon i hai bn ghi X v Y ta dng ba
lnh:
Z:=X; X:=Y; Y:=Z;
(trong Z l bin trung gian cng kiu bn ghi vi X v Y)
Cu lnh WITH :
Khi lm vic vi nhiu trng ca mt bin bn ghi th cch thm nhp trn t ra
rm r v phi vit nhiu ln tn bin trc tn trng.
n gin cch vit, Pascal a ra cu lnh :
WITH Tnbin DO Lnh P;
Tn bin thuc kiu bn ghi.
N u Lnh P c truy xut n cc trng ca Tn bin th khng cn phi vit Tn bin
v du chm trc cc tn trng.
V d, thay v vit:

ta c th vit :

X.Hoten:= N guyen Van An;

WITH X DO Hoten:= N guyen Van An;

Gv: Trnh Huy Hong

Trang 60

Gio trnh tin hc i cng

gn ng lp trnh

in cc trng ca bin X ln mn hnh, ta vit:


WITH X DO
Begin
Writeln( H v tn : , Hoten);
Writeln( M s sinh vin : , Maso);
Writeln( im Ton : , Toan: 4:1);
Writeln( im L : , Ly: 4:1);
Writeln( im trung bnh : , DTB :4:1);
End;
Tt c cc tn trng nm trong khi begin v end c hiu l cc trng ca bin X (nu
khng ghi r tn bin no khc).
Mng cc bn ghi :
Trong thc t, ta thng phi qun l mt danh sch sinh vin ca mt lp, mt danh sch cc
quyn sch trong th vin. V th mng cc bn ghi c dng rt ph bin.
Khi khai bo :
VAR
DS : Array[1..50] of KSVIEN ;
hoc :
TYPE
KMang = Array[1..50] of KSVIEN ;
VAR
DS: KMang;
Ta c mt mng DS gm 50 phn t DS[1],..., DS[50] cng kiu bn ghi KSVIEN . Mi DS[i],
i=1,..., 50 l mt bn ghi c 5 trng Hoten, Maso, Toan, Ly, DTB lu tr cc thng tin v sinh
vin th i trong danh sch. nhp d liu ( Hoten, Maso, Toan, Ly ) ri tnh im trung bnh
cho 50 sinh vin ny, ta dng vng lp For phi hp vi cu lnh WITH :

Gv: Trnh Huy Hong

Trang 61

Gio trnh tin hc i cng

gn ng lp trnh

For i:=1 to 50 do
WITH DS[i] DO
begin
Write(N hap ho ten sinh vien thu,i, :); Readln(Hoten);
Write(N hap ma so sinh vien thu ,i, :); Readln(Maso);
Write(N hap im Toan, Ly sinh vien thu ,i, :);
Readln(Toan, Ly);
DTB:=(Toan + Ly)/2;
end;

sp xp danh sch sinh vin theo trt t gim ca DTB sao cho ngi c DTB cao th
ng trc, ngi c DTB thp th ng sau, ta c th p dng phng php sp xp mng, song
ch ly trng DTB lm tiu chuN n so snh:
For i:=1 to 49 do
For j:=i+1 to 50 do
If DS[i].DTB < DS[j].DTB then
begin { i ch DS[i] v DS[j] }
Z:=DS[i];
DS[i]:=DS[j];
DS[j]:=Z;
end;
y Z l bin bn ghi cng kiu vi cc phn t DS[i].
Khi sp xp theo DTB tng hoc gim th trng DTB c gi l "kha" ( key) sp xp.
Mt cch tng t, c th sp xp danh sch sinh vin theo kha l im Toan, hoc im
Ly, hoc Maso, hoc theo Hoten.
in danh sch sp xp ln mn hnh, ta dng lnh :
For i:=1 to 50 do WITH DS[i] DO
Writeln( i:2, Hoten:25, Maso:9 , Toan:5:1, Ly:5:1, DTB:5:1);

Gv: Trnh Huy Hong

Trang 62

Gio trnh tin hc i cng

gn ng lp trnh

4. Kiu tp tin
Khi nim:
Tp tin (file) trong Pascal l mt kiu d liu c cu trc. Mi tp tin l mt tp hp cc
phn t c cng chung mt kiu d liu c nhm li thnh mt dy v c ghi trn a di
mt ci tn chung. Khi nim tp tin v mng c nhng im rt gn nhau. Song tp tin khc
mng nhng im sau y:
-

Mng c t chc trong b nh cn tp tin ch yu c t chc trn a.

S phn t ca mng c xc nh ngay khi khai bo, cn s phn t ca tp tin th khng.

Cc tp tin c kt thc bng mt du hiu c bit gi l EOF ( End Of File).

Cc phn t ca mng c truy xut thng qua ch s. Cc phn t ca tp tin c truy xut
nh mt bin trung gian ch im vo v tr ca chng trn a, gi l con tr tp. Ti mi thi
im, con tr s ch vo mt v tr no trong tp tin, gi l v tr hin thi.
Di y s trnh by hai loi tp tin thng gp l tp tin c nh kiu v tp tin vn bn.

4.1/ Tp tin c nh kiu:


Tp tin m cc phn t ca n c cng mt kiu d liu gi l tp tin c nh kiu. Kiu d
liu ca cc phn t ca tp tin c th l kiu n gin ( nguyn, thc, k t , l gic, chui k
t...) hoc kiu c cu trc ( mng, bn ghi).
Cch khai bo kiu tp tin nh sau:
Type
V d:

Tnkiutptin = File of Kiuphnt ;


Type Ksvien = Record
Ten: String[20];
N amsinh : Integer;
DTB : Real;
end;
KieuT1 = File of Integer;
KieuT2 = File of String[20];
KieuT3 = File of Ksvien ;

Gv: Trnh Huy Hong

Trang 63

Gio trnh tin hc i cng

gn ng lp trnh

Theo khai bo trn th KieuT1 l tp tin c cc phn t kiu nguyn ( Integer ), KieuT2 l
tp tin c cc phn t l cc chui k t ( String[20] ), cn KieuT3 l tp tin c cc phn t l cc
bn ghi kiu Ksvien.
Khi c kiu tp tin, ta c th khai bo cc bin tp tin :

Var

F1 : KieuT1;
F2 : KieuT2;
F3 : KieuT3;

F1, F2, F3 l cc bin kiu tp tin, mt loi bin c bit, khng dng gn gi tr nh cc
bin nguyn, thc hay chui. Mi bin ny i din cho mt tp tin m thng qua cc bin ta
c th thc hin cc thao tc trn tp tin nh : to tp tin, m, ng, xa tp tin, ghi d liu vo
tp tin v c d liu t tp tin, ...
N goi ra Pascal cn cho php khai bo trc tip cc bin tp tin nh sau:
Var

TnbinTtin : File of Kiuphnt ;

V d: c th khai bo ba bin F1, F2, F3 ni trn theo cch sau :


Type
Ksvien = Record
Ten: String[20];
N amsinh : Integer;
DTB : Real;
end;
Var

F1 : File of Integer;
F2 : File of String[20];
F3 : File of Ksvien ;

a. Cc th tc chun:
Stt
1

Th tc
ASSIG(bintptin, tntptin)
Assign(F1,DLIEU.DAT );

REWRITE( bintptin)

Rewrite(F1)
RESET(bintptin)
Reset ( F1)

Gv: Trnh Huy Hong

ngha
Gn tn tp tin cho bin tp tin. y tn tp tin l mt biu thc
kiu chui l tn thc s ca tp tin.
Bin F1 ng nht vi tp tin DLIEU.DAT, mi thao tc trn bin
F1 chnh l thao tc trn tp tin DLIEU.DAT.
Khi to tp tin mi, nu tp tin c trn a th n xa i v to
mi.
Khi to tp tin DLIEU.DAT
M tp tin c s dng. Con tr tp tin tr vo phn t u
tin.
M tp tin QLSV.DAT

Trang 64

Gio trnh tin hc i cng


gn ng lp trnh
WRITE( bintptin, b1, b2, ..., b) Tun t ghi vo tp tin cc ga tr ca cc bin b1, b2, ..., bN . Cc
bin b1, ..., bN phi cng kiu d liu vi cc phn t ca tp tin.
Ghi ln lt tng gi tr ca i, j, k vo F1
(i=10, k=20, k=100) Write(F1, i, j, k )
c tun t cc phn t ca tp tin t v tr hin thi ca con tr tp
READ( bintptin, b1, b2, ..., b)
tin v gn cho cc bin b1, b2, ..., bN (cng kiu cc phn t ca tp
tin). Mi khi c xong mt phn t, con tr tp tin t ng di n
phn t tip theo.
Lnh Read(F1, i, j);
c hai s nguyn trong tp tin DLIEU.DAT ( k t v tr hin thi)
v gn cho cc bin nguyn i, j .

6
7

CLOSE( bintptin)
SEEK( bintptin, k )

Seek(F1, 10); Read(F1, i); Write(i);


8
9

ERASE( bintptin)
REAME( bintptin, tnmi )

ng tp tin
t con tr tp tin vo phn t th k trong tp tin khng cn phi
theo tun t.
c phn t th 10 ca tp tin DLIEU.DAT v gn cho bin
nguyn i ri in gi tr ca i
Xa tp tin trn a
i tn tp tin (tp tin phi ang ng th mi xa hay i tn
c)

b. Cc hm chun:
1

EOF(bintptin)

2
3

FILESIZE(bintptin)
FILEPOS(bintptin)
Seek( F1, FileSize(F1) )

V d :

Cho kt qu True khi con tr tp tin ang cui tp, trong cc


trng hp khc hm cho ga tr False.
Cho s phn t ca tp tin. N u tp tin rng th s phn t bng 0.
Cho v tr hin thi ca con tr tp tin. Phn t u tin c s th t
l 0. Phn t cui cng c s th t bng FileSize -1.
t tr vo cui tp tin F1

N hp mt danh sch sinh vin gm H tn, im Ton, L, tnh im trung bnh ri lu vo tp

tin HOSO.DAT. Sau c d liu tp tin ny v in ra mn hnh. Trong chng trnh , ch no c du ~


th thay bng mt k t trng.
Const Tenttin = HOSO.DAT;
Type

Ksvien= Record
Hoten: String[20];

Toan, Ly, Dtb : Real;


end;
KieuTtin = File of Ksvien ;
Var F : KieuTtin ;
X : Ksvien ;
i: Integer;

Chng trnh con

Gv: Trnh Huy Hong

Chng trnh chnh

Trang 65

Gio trnh tin hc i cng


Procedure Hienthi ( Var F : KieuTtin)
begin

gn ng lp trnh
BEGI
Assign(F, TenTtin); Rewrite(F);

Writeln(#32 :5, H V T, #32:6 ,


TO~~~L~~~~DTB);

i:=0;
Repeat

Reset(F);

Clrscr;

While ot Eof(F) do

Gotoxy(10,4);Write( HP SIH VI TH?, i , :


( Enter kt thc) );

begin
With X do
Read(F, X);
begin
Writeln(X.Hoten,#32:20Length(X.Hoten),
X.Toan:4:1,#32:3
, X.Ly:4:1, #32:3, X.DTb:4:1);

Gotoxy(10,6);Write(Ho va ten:);
Gotoxy(10,8);Write(iem Toan:);

end;
Gotoxy(10,10); Write(iem Ly :);
end; {Ht hin th}
Gotoxy(20,6); Readln(Hoten);
If Hoten<> then
begin
Gotoxy(20,8); Readln(Toan);
Gotoxy(20,10); Readln(Ly);
DTB:=(Toan+Ly)/2;
end;
end;
If X.Hoten<> then Write(F,X);
i:=i+1;
Until X.Hoten=;
Close(F); Hienthi(F); Close(F);
Readln;
ED.

Gv: Trnh Huy Hong

Trang 66

Gio trnh tin hc i cng

gn ng lp trnh

Lu : N u tham s trong chng trnh con l tp tin th n phi l tham s bin, khng th
l tham s tr.
4.2/ Tp tin vn bn:
Trong Pascal c 1 kiu tp tin c nh ngha sn, l kiu TEXT hay tp tin vn bn.
khai bo F l bin tp tin vn bn ta vit :

Var

F: Text;

Cc phn t ca tp tin vn bn l cc k t c ghi thnh tng dng c di khc nhau.


Cc dng c phn cch nh cc du kt thc dng ( End of line). l hai k t iu khin CR
( Carriage return : nhy v u dng) v LF ( Line feed: xung dng di). V d, on vn bn
sau :
Tap tin van ban Text
12345

Tap tin van ban CR


Text

LF

12345 CR LF

Het Eof

Het
c cha trong tp tin vn bn thnh mt dy nh trn.
Cc th tc Assign, Rewrite, Reset, Write, Read, Close, Erase, Rename u dng c
cho tp tin vn bn. N goi ra cn c thm th tc Append(bintptin) dng m tp tin vn
bn v cho php ghi thm d liu vo cui tp tin.
i vi tp tin vn bn, khng th ng thi va ghi va c d liu nh tp tin c nh
kiu.
ghi d liu, trc tin phi khi to tp tin bng lnh Rewrite hay m tp tin v a tr
v cui tp bng lnh Append. Sau ghi d liu vo tp tin bng th tc Write hay Writeln.
c d liu mt tp tin c, trc tin ta phi m tp tin bng lnh Reset. Sau c
d liu bng th tc Read hay Readln.
N u m tp tin bng Rewrite hoc Append th khng th c c bng Read v Readln.
N u m tp tin bng Reset th khng th ghi c bng Write hay Writeln.
Ghi d liu vo tp tin vn bn :
Th tc WRITE( bintptin, bt1, bt2, ..., bt) : cho php tun t ghi cc gi tr ca cc
biu thc bt1, bt2, .. btN vo tp tin vn bn. Cc biu thc bt1, bt2, .. btN phi thuc kiu n
gin chuN n ( nguyn, thc, k t, lgic) hay kiu chui, v chng khng cn phi c kiu ging
nhau. V d :

Write(F, 3, 10:4, a:2, Text, 4.5:6:2);

s ghi vo tp tin thnh dy nh sau ( Du ~ hiu l mt k t trng): 3~~10~aText~~4.50

Gv: Trnh Huy Hong

Trang 67

Gio trnh tin hc i cng

gn ng lp trnh

Chng trnh di y s to tp tin vn bn T1.TXT :


Program VIDU;
Var

F: Text; A : Integer;

B : Real;

Begin
A:=100; B:=1234.5;
Assign(F, T1.TXT); Rewrite(F);
Write(F, Ket qua= :10, A:5, B:8:2);
Close(F);
End.

N i dung ca tp tin T1.TXT l :

~~Ket qua=~~100~123.45

Lu :
-

N h vy, cch ghi d liu vo tp tin vn bn hon ton ging nh khi in d liu ln mn
hnh.

Th tc WRITEL cng c cng dng nh WRITE, nhng ghi xong d liu th a con
tr tp tin xung dng di. c bit, lnh Writeln(F); khng ghi g c, ch a con tr tp
tin xung dng.

N i dung ca cc tp tin vn bn to bng Pascal hon ton c th xem c bng lnh Type
ca MSDOS, bng N orton hay bng chnh Turbo Pascal, ...
c d liu ca tp tin vn bn :
Th tc READ( bintptin, bin1, bin2, ..., bin) c tun t cc gi tr t tp tin v

gn cho cc bin. Cc bin1, bin2, ..., binN phi c kiu d liu ph hp vi d liu cn c ti
v tr tng ng trong tp tin.
V d: N u tp tin T1.TXT c ni dung nh sau: ~~Ket qua=~~100~123.45
th c li cc d liu ny, ta phi khai bo:
Var

V dng cc lnh:
Reset(F);

St :String[10];

Read(F, St, i, Z);

i: Integer ; Z : Real;
Gv: Trnh Huy Hong

Trang 68

Gio trnh tin hc i cng

gn ng lp trnh

Gi tr ca St, i, Z s l: St=~~Ket qua=, i=100, Z=123.45.


N u khai bo St c kiu String[9] th s b li v sau khi c xong 9 k t u, my s c
tip gi tr =~~100 cho bin nguyn i, nhng v ga tr ny bt u l du = nn khng i ra s
nguyn c.
Th tc READL(bintptin, bin1, bin2, ..., bin ) c d liu cho cc bin xong s
a tr tp tin xung u dng di.
c bit, lnh READL( bintptin); khng c g c, ch a con tr tp tin xung
dng.
Lu :
-

Hm Eof(F) cng dng c cho tp tin vn bn, ngoi ra cn c hm EOL(F) cho kt qa


l True hoc False ty theo con tr tp tin c ang cui dng hay khng. Khi Eof(F)=True
th Eoln(F) cng c gi tr l True.

Th tc Seek v cc hm FileSize, FilePos khng dng cho tp tin vn bn.


Cc tp tin vn bn ngm nh:
Trong Pascal c hai bin tp tin vn bn c khai bo sn l Input v Output , tc l

my ngm khai bo :
Var

Input , Output : Text ;

Input thng l bn phm cn Output thng l mn hnh.


Lnh Readln(Input, x); c vit tt thnh Readln( x) ;
Lnh Writeln(Output, x); c vit tt thnh Writeln(x);
My in cng l mt tp tin vn bn, c ngm khai bo vi tn l LST. in cc biu thc
bt1, bt2, ..., btn ra my in, ta phi khai bo s dng th vin chuN n PRIN TER, v dng lnh :
Write(LST, bt1, bt2, ... , btN );
So snh tp tin vn bn vi tp tin nh kiu:
Cc tp tin c nh kiu cho php va c va ghi v truy nhp trc tip vo tng phn t
gn ging nh thao tc vi mng.
Cc tp tin vn bn khng cho php ng thi c, ghi v ch c th c hoc ghi tun t,
nhng cho php ta c th xem, sa trc tip mt cch d dng bng cc h son tho vn bn n
gin, nh N C hay chnh Turbo Pascal.

Gv: Trnh Huy Hong

Trang 69

Gio trnh tin hc i cng

V d :

gn ng lp trnh

Cho tp tin vn bn tn l T2.TXT v c ni dung l:

dong=4
cot =7
0 5 3 -2 6 11 1
2020702
4 2 0 11 12 9 3
-1 0 13 0 -7 9 4

Hy c tp tin ny a vo mt ma trn A v in ma trn A ln mn hnh. S dng v s


ct ca ma trn A c ghi hai dng u tin trong tp tin T2.TXT.
Program VIDU; { vi du ve File Van ban }
Type

MAN G = array[1..20,1..20] of integer ;

Var

A : MAN G;
N , M : integer;
F : Text;

BEGIN

Clrscr; N hap; InMatran; Readln;

EN D.

Chng trnh con 1

Chng trnh con 2

Procedure N hap;

Procedure InMatran;

Var

Var

i,j : Byte;
st: string[5];

Begin
Assign(F, 'T2.TXT'); Reset(F);

i, j : Integer;

Begin
For i:=1 to N do
begin

Readln(F, St, N );

for j:=1 to M do write( A[i,j]:4);

Readln(F, St, M);

writeln;

For i:=1 to N do

end;
End;

Gv: Trnh Huy Hong

Trang 70

Gio trnh tin hc i cng

gn ng lp trnh

begin
For j:=1 to M do Read(F, A[i,j]); Readln(F);
end;
Close(F);
End;

Bi tp
1.
a.
b.
c.
d.
e.
f.
g.
h.
i.
j.
k.
l.
m.
2.
a.
b.
c.
d.
e.
f.
g.
h.
i.
j.
3.

Vit chng trnh nhp vo mt mng n s nguyn (n<=100):


Xt xem mng c i xng khng.
In ra mng theo th t tng dn.
Chn thm mt gi tr sao cho mng vn trng thi tng dn.
In trung bnh cng cc s dng.
In trung bnh cng cc s m.
Xp xp mng sao cho cc s l nm u dy, cc s chn cui dy, gia l s 0.
In ra cc s nguyn t c trong mng, v cho bit s nguyn t ln nht.
In ra gi tr xut hin nhiu nht trong mng.
Loi b cc gi tr trng nhau trong mng v in ra mng theo th t nh dn.
N hp 1 gi tr x, xt xem x c bao nhiu ln xut hin.
Tm s nguyn t b hn v gn gi tr x nht.
In ra tt c cc phn t khng phi l gi tr ln nht v nh nht ca mng.
Tm v in ra s chn ln nht v s l nh nht.
N hp vo ma trn Amxm :
m xem c bao nhiu s dng v tnh tng cc s dng c trong ma trn.
Kim tra xem ma trn c dng no m cc phn t tng dn t tri qua phi?
Kim tra xem A c phi l ma trn i xng qua ng cho chnh hay khng?
In ra ma trn chuyn v ca A.
In ra ma trn AxA
m xem c bao nhiu s 0 xut hin trong ma trn.
Tm gi tr ln nht trn mi dng v in ra.
Tm gi tr nh nht trn mi ct v in ra.
Sp xp cc phn t trn ng cho chnh theo th t tng dn.
Sp xp cc phn t trn ng chp ph theo th t gim dn.
Cho cu trc N HAN VIEN nh sau:
MaN V: kiu s nguyn c gi tr trong khong 0..65535
Hoten: kiu chui.
Diachi: kiu chui.
CBQL: c gi tr 1 nu nhn vin ny l cn b qun l.
Vit chng trnh thc hin:

Gv: Trnh Huy Hong

Trang 71

Gio trnh tin hc i cng

gn ng lp trnh

a. N hp vo thng tin ca cc nhn vin.


b. Xa cc nhn vin l cn b qun l ra khi danh sch.
4. N hp vo danh sch cc sinh vin trong t ca mnh vi cc thng tin: H, Tn, Qu qun,
im STT, im N N , im KTCT, im THC:
a. Tuyn ra nhng bn c im trung bnh cc mn trn 6.5
b. In ra nhng bn c im trung bnh cao nht vi iu kin khng c mn no di 6.5.
5. N hp vo mt chui:
a. m s k t trng c trong chui.
b. B cc k t trng tha (bn phi, bn tri v gia).
c. Xut cc t phn bit, c vit hoa cc k t u mi t.
d. m s t c trong chui.
e. ng vi mi t , o v tr k t u v k t cui trong mt t.
6. Vit chng trnh nhp 1 chui t bn phm:
a. i chui k t sang ch hoa v xut kt qu ra mn hnh.
b. i chui k t sang ch thng v xut kt qu ra mn hnh.
c. m xem c bao nhiu k t ch s xut hin trong chui.
d. Xa ht tt c k t ch s.
e. Xa ht nhng khong trng tha trong chui.
f. Lit k cc t c trong chui, mi t xut hin trn mt dng.
g. In ra chui o ngc theo hai cch: qui v khng qui.
h. In ra cc t o ngc trong chui.
i. In ra mt t c di ln nht trong chui.
j. Xut ra mn hnh chui c cc k t in hoa u mi t.
7. N hp 2 chui k t:
a. m s k t ch ci thng trong chui 1, m s k t khng phi l ch ci trong
chui 2.
b. Ghp chui 2 vo chui 1 t v tr th k bt k trong chui 1.
c. m s ln xut hin chui vt trong chui va c ghp.
d. Xa cc chui vt va tm thy cu trn.

Gv: Trnh Huy Hong

Trang 72

Gio trnh tin hc i cng

gn ng lp trnh

TI LIU THAM KHO


Ti liu c son mt phn ly tng chnh t cun Tin hc i cng ca
GS.TSKH Hong Kim, do i hc Quc gia n bn - 2001. Xin chn thnh cm n
tc gi.
1. on N guyn Hi N guyn Trung Trc N guyn Anh Dng, Lp trnh cn bn
i hc Bch khoa TpHCM-1993
2. N iklaus Wirth , Cu trc d liu + Gii thut = Chng trnh,
N XB i hc v Gio dc chuyn nghip- 1991
3. Quch Tun N gc, gn ng lp trnh Pascal, i hc Bch khoa H ni-1990

Gv: Trnh Huy Hong

Trang 73

You might also like