Professional Documents
Culture Documents
Microsoft Word - Giao An Mon THDC A1 (NNLT)
Microsoft Word - Giao An Mon THDC A1 (NNLT)
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
Trang 1
gn ng lp trnh
Trang 2
gn ng lp trnh
Phn II.
G G LP TRH
Trang 3
gn ng lp trnh
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.
Trang 4
gn ng lp trnh
Bc 5: a ra Min ri kt thc.
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
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
Trang 6
gn ng lp trnh
nh ngha dy s Fibonacci
f0 = 1
f1 = 1
fn = fn-1 + fn-2 vi mi n>1
Gv: Trnh Huy Hong
Trang 7
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
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.
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:
Trang 10
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.
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
Trang 11
gn ng lp trnh
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).
Trang 12
gn ng lp trnh
Trang 13
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.
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.
Trang 14
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.
Trang 15
gn ng lp trnh
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?
Trang 16
gn ng lp trnh
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.
Trang 17
gn ng lp trnh
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
Trang 18
gn ng lp trnh
N hp phm F10 (kch hot menu), chn menu File, chn Quit.
N hn t hp phm Alt-X
2. Lu tp tin
N u l tp tin son tho mi cha lu:
-
OK
Files
...\
Cancel
Help
<==================================>
C:\BP\BIN \N ON AME00.PAS
Directory
10:15 am
Trang 19
gn ng lp trnh
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
-
D:\BAITAP\*.PAS
OK
Files
..
Bt1.PAS
Bt2.PAS
..\
<==================================>
D:\BAITAP\*.PAS
Bt1.PAS
Replace
Cancel
Help
11:00 am
Trang 20
gn ng lp trnh
Trang 21
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
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
gn ng lp trnh
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 ]
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
gn ng lp trnh
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
-
gn ng lp trnh
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
Trang 25
207
208
209
210
211
212
gn ng lp trnh
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:
*
********
*******
***
**
**
**
**
** **
**
**
**
**
**
********
**
*********
**
**
**
**
**
**
**
**
**
**
**
********
********
Trang 26
gn ng lp trnh
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
gn ng lp trnh
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
gn ng lp trnh
ngha
Chia ly phn nguyn
Chia ly phn d
Cng
Tr
N hn
Chia, kt qu l s
thc
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
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}
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
gn ng lp trnh
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 :
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.
Trang 31
gn ng lp trnh
Trang 32
gn ng lp trnh
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
Trang 33
gn ng lp trnh
1/3
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.
Trang 34
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
gn ng lp trnh
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 :
Trang 36
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 !
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
gn ng lp trnh
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.
Trang 38
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
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
gn ng lp trnh
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
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
gn ng lp trnh
1 3 5
2n
. . ....
2 4 6 2n + 1
Trang 43
gn ng lp trnh
Trang 44
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
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
gn ng lp trnh
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
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.
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
gn ng lp trnh
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):
function gt(n:integer):integer;
begin
if (n=0) gt:= 1;
else gt:=gt(n*gt(n-1));
end;
n*gt(n-1))
5*gt(4) = 5 * ?
4*gt(3) = 4* ?
3*gt(2) = 3 * ?
Trang 49
gn ng lp trnh
2*gt(1) = 2 * ?
1*gt(0) = 1 * ?
(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.
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.
Trang 50
gn ng lp trnh
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
gn ng lp trnh
*
*
*
*******
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
Trang 52
gn ng lp trnh
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.
Trang 53
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
Trang 54
gn ng lp trnh
Trang 55
gn ng lp trnh
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.
Var
gn ng lp trnh
N ame : Hoten;
Line : St80;
St : String; {St c ti a l 255 k t}
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
gn ng lp trnh
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 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;
gn ng lp trnh
Var
X, Y, Z : KSVIE;
Trang 59
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:
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 :
Trang 60
gn ng lp trnh
Trang 61
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);
Trang 62
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:
-
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.
Trang 63
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
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)
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
6
7
CLOSE( bintptin)
SEEK( bintptin, k )
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 :
Ksvien= Record
Hoten: String[20];
Trang 65
gn ng lp trnh
BEGI
Assign(F, TenTtin); Rewrite(F);
i:=0;
Repeat
Reset(F);
Clrscr;
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.
Trang 66
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;
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 :
Trang 67
gn ng lp trnh
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.
~~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];
i: Integer ; Z : Real;
Gv: Trnh Huy Hong
Trang 68
gn ng lp trnh
my ngm khai bo :
Var
Trang 69
V d :
gn ng lp trnh
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
Var
A : MAN G;
N , M : integer;
F : Text;
BEGIN
EN D.
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 );
writeln;
For i:=1 to N do
end;
End;
Trang 70
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.
Trang 71
gn ng lp trnh
Trang 72
gn ng lp trnh
Trang 73