PASCAL - CHƯƠNG TRÌNH VÀ THUẬT GIẢI

Embed Size (px)

Citation preview

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    1/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 1: Chng trnh v thut gii Trang 1

    Chng ICHNG TRNH V THUT GII

    I. Chng trnh (Program)1.Khi nim

    Chng trnh l mt dy lin tip cc lnh. Thc hin cc lnh gi lthi hnh chng trnh. Cc chng trnh u c cc tnh cht chung sau y:

    - Cc lnh c thi hnh mt cch tun t, thi hnh xong mt lnh mi thihnh lnh k tip.

    - Khi thi hnh chng trnh cn thm d liu t bn ngai, iu ny lmcho chng trnh tr nn phong ph v tng qut.

    Chng trnh c thc vit bng cc ngn ng lp trnh khc nhau.2.Ngn nglp trnh.

    C hng trm loi ngn ng lp trnh khc nhau, mi loi ngn ngu cc php ring ca n. Ngn ng lp trnh c thc phn chia thnh 3 loichnh : ngn ng my, hp ng v ngn ng cp cao.

    2.1 Ngn ngmy

    Ngn ng my (m my) l ngn ng nn tng ca b vi x l. Bao gmcc cu lnh l nhng dy s nh phn 0 v 1 rt kh c, kh vit . Chc ccchuyn gia v my tnh mi vit c. u im ca vic vit chng trnh bngngn ng my l lp trnh vin c thiu khin my tnh trc tip v t cchnh xc iu mnh mun lm, tc thi hnh chng trnh nhanh v kchthc chng trinh nh. Nhc im ca chng trnh ngn ng my l thngth!ng s" mt rt nhiu th!i gian vit, rt kh c, kh tm li v chng trnhph# thuc vo b vi x l nn chng trnh chchy c trn nhng my tnhc cng b vi x l m thi. Ngn ng my cn c gi l ngn ng cp thp(low-level language)

    2.2Hp ngHp ngc pht trin nhm gip cc lp trnh vin d$ nh cc ch th

    ca chng trnh hn. Cc chng trnh hp ng cn bao gm cc chth v%m(macro instruction) c th to ra nhiu lnh m my. Cc chng trnh hp ngc chuyn sang m my thng qua mt chng trnh &c bit gi l trnh hpdch (assembler). M&c d hp ng tng i d$ dng hn m my nhng hpng v'n c xem l ngn ng cp thp bi v n v'n cn rt gn vi tng thitk ca my tnh.

    2.3Ngn ng cp caoNgn ng cp cao gn g(i hn vi nim ngn ng m hu ht mi

    ng!i u bit, n bao gm cc danh t, ng t, k hiu hc, lin h v ccthao tc lun l. Cc yu t ny c thc phi hp, lin kt vi nhau tothnh mt hnh th)c ca cu. Cc "cu" ny c gi l cc mnh cachng 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 ho&chp ng. Mt li im quan trng l ngn ng cp cao thng th!ng khng ph#thuc vo my tnh, ngh%a l cc chng trnh vit bng ngn ng cp cao cth chy trn cc loi my tnh khc nhau (s d#ng cc b vi x l khc nhau).

    2.4Cc ngn nglp trnh thng dngHin nay c rt nhiu ngn ng lp trnh cp cao l :BASIC, COBOL, C,

    FORTRAN, PASCAL.v.v.. Ngy ny cn c thm rt nhiu cc ngn ng lptrnh hng i tng rt tin li cho cc lp trnh vin nh : C++, Visual Basic ,Visual C, Denphi, Javal .v.v..

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    2/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 1: Chng trnh v thut gii Trang 2

    3.Trnh thng dch v bin dchMi 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 thihnh. Chng trnh ngn ng cp cao c dch sang ngn ng my bng mttrong hai cch: bng trnh bin dch (compiler) ho&c trnh thng dch (interpreter).

    3.1Trnh bin dch:

    S" chuyn i ton b chng trnh sang m my, ri ch)a kt qu vo%a c th thi hnh v sau. Trnh bin dch to ra mt danh sch li ca tt cmnh trong chng trnh vi phm c php ca ngn ng. Danh sch ny giplp trnh vin d$ dng sa i chng trnh.

    3.2Trnh thng dch:Thay v chuyn i ton b chng trnh ngun nh trnh bin dch, trnh

    thng dch ch dch tng lnh v thi hnh tng lnh. Li im ca trnh thngdch l lp trnh vin v'n c th chy mt chng trnh v'n cn li c php. Chkhi thng dch n cu lnh c li c php, qu trnh thi hnh chng trnh mib ngng li v trnh thng dch s" thng bo li. ng!i lp trnh cn c) vo li sa cha.II.Thut gii.

    1. nghaThut gii l mt phng php, tng bc hng d'n, th hin l!i gii

    ca mt vn - mt bi ton .Trong khoa hc my tnh, thut giicnh ngha l mt dy hu hn cc

    bc r rng v c th thi hnhc, qu trnh hnhng theo cc bc nyphi dng v choc kt qu nhmong mun.2.Cc c trng ca thut gii

    Thut gii c cc &c trng c bn l :2.1.Xcnh :Mi thut gii u phi xc nh r rng, khng mp m!.2.2. Hu hn: Mi thut gii sau mt s hu hn bc phi kt thc v cho ra

    kt qa.2.3:ng :Thut khi thc hin xong cc bc , phi cho ra kt qung

    *n.Ngoi ra thut gii c cc &c trng khc nh :+u vo, u ra, tnh hiu

    qa v tnh tng qut.3. Cc phng php biu din thut gii

    Trong thc t ng!i ta th!ng c 2 phng php biu di$n thut :- Dng ngn ng t nhin- Dng Lu - S

    3.1. Ngn ng t nhinNg!i lp trnh dng ngn ng ca mnh m t thut . Ng!i lp trnh

    lit k c th) t cc bc ca thut gii . Tuy vy thut gii th!ng di dng khhiu v th!ng khng theo mt qui t*c nht nh.V d1 : Thut gii phng trnh bc hai ax2+bx+c=0 (a0)B*t u1. Yu cu cho bit gi tr ca 3 h s a, b, c2. Nu a=0 th

    2.1. Yu cu u vo khng m bo.2.2. Kt thc gii thut .

    3. Tr!ng hp a khc 0 th3.1. Tnh gi tr = b2-4ac

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    3/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 1: Chng trnh v thut gii Trang 3

    3.2. Nu > 0 th3.2.1. Phng trnh c hai nghim phn bit x1 v x23.2.2. Gi tr ca hai nghim c tnh theo cng th)c sau

    3.2.3. Kt thc.3.3. Nu = 0 th

    3.3.1. Phng trnh c nghim kp x03.3.2. Gi tr ca nghim kp l : x=-b/2a

    3.3.3. Kt th c.3.4. Nu < 0 th

    3.4.1. Phng trnh v nghim.Kt thc.

    V d 2 :Thut gii tm hp c trng lng n&ng nhtt vn :C n hp c khi lng khc nhau v mt ci cn %a. Hy chra

    cch cn tm c hp c trng lng n&ng nht : Thut gii c# th nh sau:B*t u

    1. Nu chc 1 hp (n=1) th1.1. Hp chnh l hp n&ng nht.1.2. Kt thc gii thut .

    2. Ngc li nu c t hai hp tr ln (n>1)2.1. Chn hai hp bt k, v &t ln bn cn.2.2. Gili hp nng hn, ct hp nh- hn sang ch khc.

    3. Nu cn hp cha c cn thc hin cc bc sau, nu khng cnhp no na, sang bc 5.

    3.1. Chn mt hp bt k, v ln %a cn cn trng.3.2. Gili hp nng hn, ct hp nh- hn sang ch khc.

    4. Tr li bc 3.5. Hp cn li trn cn chnh l hp n&ng nht.Kt thc.3.2. Lu - s khi

    Lu hay s khi l mt cng c# trc quan di$n t cc thut gii.Biu di$n thut gii bng lu s" gip ng!i c theo di c s phn cpcc tr!ng hp v qu trnh x l ca thut . Phng php lu th!ng cdng trong nhng thut c tnh r*c ri, kh theo di c qu trnh x l.

    Trong thut gii dng lu th!ng dng cc hnh v" qui c sau mt cc bc.

    Ch!ng i ca d liu

    Chim b*t u v kt thc.

    Ch)a cc thao tc x l

    Chthao tc kim tra iu kin

    a

    bx

    21

    +=

    a

    bx

    2

    2

    =

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    4/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 1: Chng trnh v thut gii Trang 4

    . trn chl cc k hiu c bn v th!ng c dng nht. Trong thct, lu cn c nhiu k hiu khc nhng th!ng chc dng trong nhnglu ln v ph)c tp.V d1 : Lu thut gii, gii Phng trnh bc hai.

    V d 2:Lu tm phn t ln nht trong dy s.

    K t thc

    a=0Thng bosai

    Nhp li

    D:=b -4ac

    D=0

    Nhp b,c

    Nh a

    Pt c nghim

    kpx1,2=-b/2a

    D>0 Pt c 2 nghim

    x1=-b+ D/2a

    x2=-b- D/2aPt v nghim

    s

    s

    s

    B*t u

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    5/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 1: Chng trnh v thut gii Trang 5

    Bi tp :1.Hy vit thut gii h phng trnh bc nht 2 /n s

    a1x+b1y =c1a2x+b2y =c2

    Bit rng :

    2.Vit thut gii tim s ln nht trong 3 s a, b, c.3.Vit thut gii tm s Pibonanci th) n vi

    F0 =0, F1=1, Fn=Fn-2+Fn-14.Vit thut gii tim cc s nguyn t trong dy s n s t a1 .. an5.Vit gii thut tm USCLN, BSCNN ca 2 s a, b.6.Vit gii thut tnh tng l0 , tng ch1n ca dy n s t nhin a1 . . an

    7.Vit thut gii tm n! =1*2*3*. .*n.8.Xc nh d liu v d liu ra cho cc thut gii sau

    a.Kim tra xem ba s cho trc a, b, c c th l di ba cnh ca mttam gic hay khng ?

    b.Tnh trung bnh cng ca 2 s a, bc.Dng mt cc ph# tro nc hai cc cho trcd.Tm chu vi v din tch ca hnh trn c bn knh cho trc

    9.C hai bnh A v B . Bnh A c dung tch 8 lt, bnh B c dung tch 5 lt . Trnhby cc bc thc hin ly c 2 lt nc.10.Vit thut gii vit gii thut xc nh ma trn n v.11.Vit thut gii in ra ma trn chuyn v ca ma trn nhp trc.12.Vit thut gii In ra ma trn tch cu hai ma trn nhp trc.13. C 3 bnh A, B, C. Bnh A c dung tch 8 lt v ng y 8 lt ru, bnh B cdung tch 5 lt, bnh C c dung tch 3 lt. Trnh by cc bc thc hin cc 4 lt ru bnh A v 4 lt ru bnh B.14. Mt ng!i c 1 con gu, 1 con d v 1 ci b*p ci. Nu khng c ng!i bn chng th con gu s"n tht con d ho&c con d s"n b*p ci. Thuyn chc th chc ng!i vi con gu ho&c con d ho&c b*p ci. Ng!i lmth no mang chng sang sng.

    D

    Dx

    abba

    cbbc

    ba

    ba

    bc

    bc

    x =

    ==

    2121

    2121

    22

    11

    22

    11

    D

    Dy

    abba

    caaa

    ba

    ba

    ac

    ac

    y =

    ==

    2121

    2121

    22

    11

    22

    11

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    6/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 2:Gii thiu Ngn nglp trnh Pascal Trang 6

    Chng 2GII THIU NGN NG LP TRNH PASCAL

    I.Gii thiu chung1.Xut x : PASCAL l ngn ng lp trnh cp cao c gio s Niklaus Wirth tr!ng i hc K2 thut Zurich (Th#y s%) thit k v cng b vo nm 1971. ng&t tn cho ngn ng ca mnh l Pascal tng nh nh hc ni ting ng!iPhp th k3 17: Blaise Pascal, ng!i sng ch ra chic my tnh c kh utin ca nhn loi.

    Thnh cng ca ngn ng Pascal l ch: n l ngn ngu tin ara v th hin c khi nim lp trnh c cu trc. tng v mt chngtrnh c cu trc xut pht t suy ngh%cho rng c th chia mt bi ln, ph)ctp thnh nhiu bi nh, n gin hn. Nu mi bi nhc gii quyt bngmt chng trnh con, th khi lin kt cc chng trnh con ny li s" to nn mtchng trnh ln gii quyt c bi ban u.

    Bng cch chia mt chng trnh thnh cc chng trnh con nh vy,ng!i tho chng c th lp trnh gii quyt ring l0 tng phn mt, tngkhi mt, ho&c c th t ch)c nhiu ng!i cng tham gia, mi ng!i ph#

    trch mt vi khi. &c bit khi phi thay i hay sa cha trong mt khi thiu s" t nh hng n cc khi khc.Ngy nay, Ngn ng Pascal c dng vit cc chng trnh )ng

    d#ng trong nhiu l%nh vc. Vi vn phm sng sa, d$ hiu, vi kh nng mnh, Pascal c xem l ngn ng thch hp nht ging dy cc tr!ngph thng v i hc.2. Turbo Pascal

    T khi phn mm Pascal ca Niclau Wirth ra !i cc hng phn mm lin t#c pht trin thnh cc Pascal ring nh : IOS Pascal chu/n , IBM Pascalca MicroSoft, Turbo Pascal ca hng Borland , nhng Turbo Pascal (TP) cnhiu u im nn c s d#ng rng ri ging dy.II.S dng ph!n m"m Turbo Pascal

    1. Kh#i $ng Turbo Pascal:Trong phn ny s" trnh by cch s d#ng Turbo Pascal 7.0.phin bnth!ng c dng ph bin hin nay.1.1. Cc tp tin chnh ca Turbo Pascal: TP c hng trm tp tin nhng

    chy c Turbo Pascal 7.0, chcn hai tp tin sau l :- TURBO.EXE : tp tin chnh ca TP- TURBO.TPL : tp tin ch)a cc th vin ca TPNu mun v" ha th phi c thm cc tp tin:GRAPH.TPU, tp tin

    ch)a th vin ha *.BGI : cc tp tin mn hnh ha *.CHR : cc tp tin tokiu ch

    Nu mun xem hng d'n s d#ng Turbo Pascal th cn c thm tp tinTURBO.HLP

    1.2. Kh#i $ng Turbo Pascal:Thng th!ng hin nay cc my s d#ng hiu hnh Windows nn ccc khi ng nh sau :

    - Tr!ng hp c s1n mt Shortcut ch)a Turbo Pascal trn Desktop :hy Double click vo biu tng Shortcut ca Turbo Pascal.

    - Tr!ng hp khng c s1n mt Shortcut ch)a Turbo Pascal: hy chnlnh Start, chn tip lnh Run, ri g vo !ng d'n y ca tp tinTURBO.EXE, ch4ng hn:

    C:\TP\TURBO.EXE , nu khi ng TP t%a C.

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    7/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 2:Gii thiu Ngn nglp trnh Pascal Trang 7

    A:\TP\TURBO.EXE , nu khi ng TP t%a A.1.3. Ca s mn hnh Turbo Pascal v cch chn lnh:

    Trong ca s ny, dng trn cng l mt thc n ngang, lit k 9 nhmlnh chnh ca TP. Mun chn mt lnh trong thc n ny, c th tin hnh

    theo mt trong hai cch:+ Cch 1:G phm F10. Lc ny, trn thc n xut hin mt khung sng(th!ng l mu xanh). Mun chn lnh no th g cc phm m(i tn , d!i

    khung sng n lnh ri Enter. Mt thc n con ca lnh va chn hin ra,gi l thc n hng dc. V d#, khi chn lnh File, ta c thc n con nhsau:

    + chn mt lnh trong thc n hng dc, hy g cc phm m(i tn , d!i khung sng n lnh ri Enter. Khi khng mun chn lnh no th g phmESC tr v vng son tho.

    + Cch 2 :Chn mt lnh trong thc n ngang bng cch g ng th!iphm Alt vi phm ch ci u tin ca tn lnh mun chn. V d#, mun chnmenu File th g ng th!i hai phm Alt v F (vit t*t l Alt-F), tng t, munchn menu Compile th g Alt-C.

    + Cch 3: Dng phm g t*tC mt s lnh c gn cho nhng phm &c bit gi l phm "g t*t, v

    d# lnh Open: F3, lnh Save : F2, lnh Exit : Alt-X. + thc hin nhng lnh ny,thay v phi chn n t trong thc n, ta chcn g phm nng tng )ng vi

    Con tr dng son tho

    chng trnh

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    8/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 2:Gii thiu Ngn nglp trnh Pascal Trang 8

    n. V d#, thay v chn lnh Open th g phm F3, thay v chn lnh Save th gphm F2,...

    Di thc n ngang l vng son tho dng g chng trnh vo.+u ca vng ny hin tn ca tp tin ang son, v nu ng!i tho chngcha &t tn th TP s"&t mt tn m&c nhin l NONAME00.PAS.

    Dng cui cng tm t*t mt s phm " g t*t" hay dng, nh phm F1

    xem hng d'n, phm F2 lu tp tin ln %a, phm F3 dng m xem mttp tin, phm F10 khi ng thc n,.v.v.1.4. Thot khi Turbo Pascal

    Chn lnh File trong thc n ngang, chn tip lnh Exit trong thc ndc (vit gn l chn lnh File/ Exit) ho&c g c&p phm g t*t Alt-X1.5. Cc bc thc hin mt chng trnh Pascal+ son v chy mt chng trnh Pascal trong Turbo Pascal, nn tin hnh

    cc bc nh sau:- Bc 1: Khi ng Turbo Pascal- Bc 2: Nhn F2 &t tn cho chng trnh.- Bc 3: Son tho ( g ) chng trnh .Bn hy g chng trnh m'u sau vo vng son tho ca Turbo Pascal :

    -Bc 4: Dch v sa li:Chn lnh Compile/ Compile (ho&c g c&p phm Alt-F9 hay F9). My s"

    dch chng trnh sang m my, nu g&p li th dng v hin thng bo li muu mn hnh, ng th!i con tr&t v tr c li. Ng!i tho chng phit mnh sa li, ri g Alt-F9 dch v sa li tip cho n khi ht li. Du hiucho bit vic dch xong l mn hnh xut hin ca s thng bo c dng ch&c trng l:

    - Bc 5: Lu tr li chng trnh ln %a: chn lnh File/ Save ho&c gphm F2.

    - Bc 6: Chy th chng trnh: Chn lnh Run/ Run ho&c g phm nngCtrl-F9 (vit t*t l ^F9). Mi ln chy th, ta cn nhp mt b d liu c# th v

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    9/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 2:Gii thiu Ngn nglp trnh Pascal Trang 9

    kim tra xem kt qa in ln mn hnh c ng khng v c ph hp vi thc ti$nkhng?. nu sai cn kim tra li.2. M$t vi k% thut trong so&n tho2.1. Thao tc trn khi:

    Ta gi khi l mt on vn bn gm mt hay nhiu dng lin tip. K tu tin ca khi gi l u khi, k t cui cng ca khi gi l cui khi. Di

    y l mt khi gm hai dng lnh:Write( Nhap chieu dai va chieu rong hinh chu nhat: );

    Readln(a,b);

    a)+nh du khi:-+a con tr vu khi- Gi phm Shift, ng th!i nhn lin tip cc phm m(i tn , ,

    , ko vng sng phn cui khi.b) Sao chp khi:

    -+nh du khi cn sao chp-+a con trn ni cn chp ti

    - G lnh ^K_Cc) Di chuyn khi:-+nh du khi cn di chuyn-+a con trn ni cn chuyn khi ti-G lnh ^K_V

    d) Xa khi:-+nh du khi cn xa- G lnh ^K_Y

    e) Che ho&c hin li khi nh du : lnh ^K_H2.2. Cc phm lnh son tho thng dng

    - Phm Home : a con tr vu dng hin th!i- Phm End : a con tr v cui dng hin th!i

    - Phm Delete : xa k t ngay ti v tr con tr. Nu con trang )ng cui ca dng trnm g phm Delete th s" ni dng di vo cui dng trn.

    -Phm Back Space : Xa k t trc con tr.- C&p phm Ctrl_Y:xa ton b dng hin th!i v n cc dng di ln.- Nhm phm Ctrl_Q_Y : xa t v tr con trn cui dng.- Cc phm , , , : d!i con tr theo hng m(i tn.- Phm Insert :Dng chuyn i ch chn - Phm Enter : Xung dngTrong ch vit chn: g Enter c tc d#ng a con tr xung u dng

    di, do ton b cc ch)ng sau con tr (nu c) s" b c*t xung dngdi. Khi con trang )ng u mt dng m Enter th s" to ra mt dngtrng ngay ti v tr .

    III. Cc ph!n t c bn ca ngn ng Pascal1.Tp k t c bn : Mi ngn ngu c xy dng t mt tp k t no. Ngn ng Pascal c xy dng trn b k t c bn, gm:

    - Cc ch ci la tinh: A, B, C,...,Z, a, b, c,..., z- Cc ch s :0, 1, 2, 3, 4, 5, 6, 7, 8, 9- Cc k hiu &c bit: +, -, *, /, =,

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    10/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 2:Gii thiu Ngn nglp trnh Pascal Trang 10

    2. T' kha (Keyword)C mt s tc Pascal dnh ring cho vic xy dng cc cu lnh, cc

    khai bo, cc php tnh,... gi l t kha. Ng!i lp trnh khng c &t mt tnmi (tn bin, tn hng, tn hm, tn th t#c,...) trng vi mt trong cc t kha.Di y l danh sch cc t kha ca Pascal :

    Absolute, and, array, begin, case, const, div, do, downto, else, end, file, for,

    forward, function, goto, if, implementation, 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

    Cc tkha c th vit di dng chhoa hay chthng hay xen k chhoa vi chthnguc. V d# vit begin hay Begin hay BEGIN l nhnhau.3.Tn (identifier)

    Cc bin, cc hng, cc hm, cc th t#c, ... c s d#ng trong chngtrnh u cn phi &t tn, cn gi l nh danhhay danh hiu. Cc tn ny dong!i tho chng t&t v phi m bo ng quy t*c: tn phi b*t u bngch ci, k c th l ch ci, ch s, hay du gch ni _. Tn khng c&t trng vi t kha. Chiu di ca tn ti a l 127 k t. Thng th!ng tn

    nn &t ng*n gn v c tnh gi nh.V d#:Delta, X1, X2, i, j , Chuc_vu, Luong,Phuong_Trinh_Bac_Hai

    4.Tn chu(nTrong Pascal c mt s tn c &t s1n ri, gi l tn chu/n, ch4ng

    hn : Abs, Arctan, Boolean, Byte, Char, Cos, Copy, Delete, Eof, False, Longint,Ord, Integer, Real, Readln, Writeln, True, Text, ...

    Pasal c th cho php ngi tho chngt li tn chun, nhng khngnnt li.5.Cu lnh trong Pascal

    Cu lnh l phn vic m chng trnh phi thc hin x l d liu c khai bo. Trong chng trnh cc cu lnh c vit cch nhau mt duchm phy (;). C 2 loi : Cu lnh n v lnh ghp.5.1 Cu lnh n gin : Bao gm cc lnh

    +Lnh gn (:=) : Dng gn gi tr cho bin s khai bo-Dng lnh : Bin s := Biu th)c; V d# : x:=10; d:=a*b;

    +Lnh Gi th t#c : Dng gi th t#c trong chng trnh-Dng lnh V d#: Clrscr; Halt;

    5.2 Lnh ghp : Bao gm mt nhm lnh t 2 lnh tr ln c &t trong hai tkho Begin v End;

    V d# : BeginTG:=A; A:=B;B:=TG;

    End;IV. Cu trc ca chng trnh Pascal

    1.Cu trc chungChng trnh l mt dy cc cu lnh chth cho my cc cng vic phithc hin. Mt chng trnh Pasccal y gm ba phn chnh :

    - Phn tiu- Phn khai bo- Phn thn chng trnh

    1.1. Ph!n tiu " chng trnhPhn ny b*t u bng t kha Program, tip n l tn chng trnh do

    ng!i s d#ng t&t, cui cng kt thc bng du chm ph/y ;.

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    11/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 2:Gii thiu Ngn nglp trnh Pascal Trang 11

    V d# : Program Btap1; ho&c : Program Giai_pt_bac2;Phn tiu chim mt dng, cn gi l phn u ca chng trnh, n

    c th khng c.1.2. Ph!n khai bo

    Phn khai bo c nhim v# gii thiu v m t cc i tng, cc ilng s" tham gia trong chng trnh

    N gm c 7 loi khai bo sau .- USES Khai bo n v s d#ng (Unit)- LABEL Khai bo nhn,- CONST Khai bo hng- TYPE khai bo kiu d liu mi,- VAR Khai bo bin- PROCEDURE khai bo cc chng trnh con l th t#c- PUNCTION Khai bo cc chng trnh con l hm.Ty theo yu cu c# th m mi khai bo ny c th c hoc khng c

    khai bo.1.3. Ph!n thn chng trnh

    +y l phn ch yu nht ca mt chng trnh, bt buc phi c.

    Thn chng trnh b*t u bng t kha BEGIN v kt thc bng END. (c duchm cui). Gia khi BEGIN v END l cc lnh. Mi lnh phi kt thc bngdu chm ph/y ;.

    BeginCc lnh;

    End.2.Khai bo trong chng trnh Turbo Pascal

    2.1 Khai bo n v s dng (Unit)Turbo Pascal c s1n trn 300 hm v th t#c chu/n, chng c phn

    thnh tng nhm theo ch)c nng, gi l cc th vin hay n v chng trnh (Unit) bao gm : System ,Crt, Graph, Dos, Printer, .v.v. . Mun s d#ng cc hmhay th t#c ca n v no, tr System cn li ta phi khai bo, Cch khai bonh sau :

    Uses Tendonvi ;V d :- Mun s d#ng n v CRT

    Uses CRT ;- Mun s d#ng c hai th vin CRT v GRAPH, ta khai bo :

    Uses CRT, GRAPH ;Ch thch : Mt s hm v thtc trongn vsdng mn hnh CRT+Thtc ClsScr

    - Dng th tc:ClrScr;- Chc nng :Xa mn hnh kt qu , a con tr v ta 1,1

    +Thtc GotoXY

    - Dng th tc: GotoXY(x,y);- Chc nng:+a con trn ta ct x, dng y- V d# : GotoXY(10,5) :+a con tr v ta ct 10, dng 5.

    +Thtc Delay- Dng th tcDelay(time)- Chc nng :Dng thc hin chng trnh time miligiy.-V d# : Delay(200);

    +Thtc TextColor- Dng th t#c TextColor(mu)

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    12/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 2:Gii thiu Ngn nglp trnh Pascal Trang 12

    -+nh m cho dng ch vit ln mn hnh theo bng mu sau :Color Mu Color Mu Color Mu

    0 Black 6 Brown 12 LightRed1 Blue 7 LightGray 13 LightMagenta2 Green 8 DarkGray 14 Yellow3 Cyan 9 LightBlue 15 Whlte

    4 Red 10 LightGreen5 Magenta 11 LightCyan

    V d# : Tectcolor(Red) hay Textcolor(4)2.2 Khai bo h)ng s

    Hng l i lng c ga tr khng i, khai bo hng ta dng t khaConst cch khai bo nh sau :

    Const Tn_hng_s = Hng s ;V d# : Const N=10 ;

    2.3 Khai bo bin sBin l i lng c gi tr thay i trong chng trnh, chng c dng

    trong chng trnh lu tr cc d liu, tham gia vo cc biu th)c tnh vcc qu trnh x l trong my. Cch khai bo bin s nh sau :

    Var Tn_bin_s : kiu d liu;V d# : Var

    x, y : Real ;i, k : Integer;

    2.4 Khai bo (nh ngha) m$t kiu d liu miNgoi cc kiu d liu m bn thn ngn ng c s1n nh kiu thc,

    kiu nguyn, kiu k t, kiu lgic,.v.v. ng!i dng c th t xy dng cc kiud liu mi ph#c v# cho chng trnh ca mnh, nhng phi m t sau t khaTYPE cch khai bo nh sau

    TYPE tn kiu d liu mi = kiu d liu mi. V d#, ta nh ngh%a mt kiu d liu mi c tn l Mang :

    Type Mang= Array[1..10] of Real;

    4.V d Vit chng trnh cho php nhp vo h tn, m s, cc im , L camt sinh vin, tnh im trung bnh theo cng th)c : Dtb=(Toan+ly)/2

    In H tn, m s, cc im , L v im trung bnh ca sinh vin ln mnhnh.PROGRAM VIDU;Uses CRT;

    Var Ho_ten, Maso : String[20];Toan, Ly, Dtb : Real;

    Begin

    Write( Nhap Ho va ten : ); Readln(Ho_ten);Write( Nhap ma so : ); Readln(Maso);Write( Nhap diem Toan : ); Readln(Toan);Write( Nhap diem Ly : ); Readln(Ly);

    Dtb:= (Toan+Ly) / 2;{ In ln mn hnh cc d liu v sinh vin }TextBackGround(Green); { &t mu nn l Green }TextColor(Red); { &t mu ch l Red}

    Clrscr ;

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    13/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 2:Gii thiu Ngn nglp trnh Pascal Trang 13

    Writeln( KET QUA THI CUA SINH VIEN:);Writeln(Ho va ten : , Ho_ten);Writeln(Ma so : , Maso);Writeln(Diem Toan : , Toan:3:1);Writeln(Diem Ly : , Ly:3:1);Writeln(Diem Tbinh : , Dtb:3:1);

    Readln;END.Ghi ch :+ son v chy c mt chng trnh nh trn cn phi bit sd#ng phn mm Turbo Pascal ( vit t*t l TP ).IV.Cc kiu d liu n gin dng trong Pascal

    Trong TP dng mt s kiu d liu gi l d liu n gin chu/n nh sau:1.Kiu nguyn : Dng biu di$n cc s nguyn, phm vi biu di$n ca snguyn t 1 byte n 4 byte

    Tn kiu Phm vi ga tr S byteShortInt -128 .. 127 1Byte 0..255 1Integer -32768 .. 32767 2Word 0 .. 65535 2LongInt -2147483648 .. 2147483647 4

    +Cc php ton trn kiu nguyn :- Cc php ton : Cng(+), tr(-), nhn(*),chia(/)- Php chia ly phn nguyn (DIV): 10 Div 3 =3, 10 div 5 =2.- Php chia ly phn d(Mod): 15 mod 5 =0, 16 mod 3 =1.

    + Cc hm c i s nguyn :-Hm PRED(k) : i s k nguyn, tr v s nguyn )ng ngay trc k, t)c

    l k-1 . V d#: Pred (5) = 4, Pred (-6) = -7.-Hm SUCC(k) : i s k nguyn, tr v s nguyn )ng ngay sau k, t)c

    l k+1 . V d#: Succ (5) = 6, Succ (-6) = -5.+Cc th t#c c i s nguyn:C hai th t#c kh thng d#ng l:

    -Th tc INC(k) : tng k ln mt n v. V d#, sau khi thc hin cc lnh :k:=5; Inc(k); th ga tr sau cng ca k l 6.

    Vy, lnh Inc(k); tng ng vi lnh k:=k+1; hay k:=Succ(k);-Th tc DEC(k) : gim k i mt n v. V d#, sau khi thc hin cc lnh :

    k:=5; Dec(k); th ga tr ca k s" l 4.Vy, lnh Dec(k) ; tng ng vi lnh k:=k-1; hay k:=Pred(k);

    2.Kiu thc : Dng biu di$n cc s thc, phm vi biu di$n ca s thc t 4n 10 byte.

    Tn kiu Phm vi ga tr S byte

    Real 2.9*10-39

    .. 1.7*1038

    6Single 1.5*10-45 .. 3.4*1038 4Double 5.0*10-324 .. 1.7*10308 8Extended 3.4*10-4932 .. 1.1*104932 10Comp -9.2*1018 .. 9.2*1018 8

    +Cc php ton trn s thc :C 4 php ton s hc l nhn (*), chia (/), cng (+) v tr (-). Khi mt

    trong cc s hng tham gia tnh ton l kiu thc th kt qa ca php ton c(ngl mt s thc. (Php ton DIV, MOD khng dng cho cc s th!c. )

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    14/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 2:Gii thiu Ngn nglp trnh Pascal Trang 14

    +Cc hm ci s nguyn hoc thc-Hm ABS(x):tnh tr tuyt i ca x V d#: Abs(5 - 8) = 3-Hm SQR(x):tnh bnh phng ca x: V d#: Sqr(4.0) = 16.0, Sqr(2) = 4

    Trong cc hm di y, i s x c th l nguyn hay thc, nhng ga tr trvlun lun l kiu th!c:

    -Hm SQRT(x):tnh , (x ? 0)- Hm EXP(x) : tnh ex- Hm LN(x):tnh lnx, (x > 0)- Cc hm SIN(x), COS(x), v ARCTAN(x):tnh sinx, cosx v arctgx.- Hm INT(x) : cho s thc bng phn nguyn ca x. V d# :

    Int(12.55) = 12.0Int(1+10/3)=4.0

    -Hm FRAC(x) : cho s thc bng phn l0 ca x. V d# :Frac(12.55) = 0.55

    Hai hmc bit diy cho kt qa l s nguyn:-HmTRUNC(x):cho s nguyn l phn nguyn ca x. V d# :

    Trunc(12.55) = 12

    Trunc(-2.98) = -2- Hm ROUND(x):cho s nguyn bng cch lm trn x. V d# :Round(12.45) = 12Round(-2.98) = -3

    3.Kiu k t (Char): Nhn mt trong cc k t trong bng m ASCII, Mi k ttrong bng m ASCII gi l mt hng k t, chim di 1 byte, v khi vit trongPascal phi c &t trong c&p nhy n: 0, 1, A, B, $,...+Cc hm lin quan n k t :

    - Hm PRED(ch):cho k t)ng ngay trc k t ch trong bng m.V d#: Pred(B)=A

    -Hm SUCC(ch):cho k t)ng ngay sau k t ch trong bng m.V d#: Succ(A)=B.

    -Hm UpCase(ch):i k t ch thnh ch hoa.V d#: Upcase( a ) = A, Upcase( b ) = B, Upcase( A ) = A .-Hm ORD(ch) : cho m ca k t ch. V d#: Ord (A) = 65, Ord (a) = 97 .-Hm CHR(k) : i s k nguyn, 0< k < 255, cho k t c m bng k.V d#: Chr (65)= A , Chr (97)= a, Chr(32) l k t tr*ng

    4.Kiu logic (boolean)Kiu boolean chc hai ga tr l TRUE (ng) v FALSE (sai), khng phn

    bit ch hoa hay ch th!ng. V quan h th) t th FALSE< TRUE. Mi ga trboolean chim mt byte b nh.

    Cc php ton lgic gm c: NOT, AND, OR v XOR. Nu A v B l hai ilng lgic th NOT A, A and B, A or B v A xor B c(ng l nhng i lng lgicc kt qa c cho bng sau:

    A B A and B A or B A xor BTrue True True True FalseTrue False False True TrueFalse True False True TrueFalse False False False False

    5.Kiu chu*i (String) : l mt chui k t. Khi gn hng chui , hng chui phic ro trong c&p du nhy n

    V d# : Turbo Pacal, 12345.

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    15/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 2:Gii thiu Ngn nglp trnh Pascal Trang 15

    V.Cc lnh nhp xut d liu .Nhp v xut d liu l hai khu quan trng trong qa trnh x l thng tin.

    Hu nh chng trnh no c(ng phi gii quyt vn nhp, xut d liu. Cnhp c d liu th mi c d liu tnh hay x l. C d liu xut ra th mibit c kt qa ca qa trnh x l trong my.1. Lnh nhp d liu

    1.1. ngha:Dng nhp d liu cho bin nguyn hay thc hay chui.1.2 .Dng lnh c 3 dng nh sau :1. Read(x1, x2, ..., xn);2. Readln(x1, x2, ..., xn);3. Readln;

    Trong x1,x2xn c khai bo kiu d liu trong phn khai bo.- Dng 1 v dng 2 dng nhp d liu cho cc bin s c khai bo.- Dng 1 khi nhp xong d liu ngay sau bin s xn, cn dng 2 khi nhp xongcon tr tng nhy xung u hng k tip.- Dng 3 khng dng nhp d liu, m c tc d#ng dng thc hin chngtrnh ch! nhn phm enter.

    Ghi ch: Khi nhp d liu cho cc bin s , cc gi tr vit cch nhau t

    nht mt khang tr*ng.2. Lnh xut d liu.

    2.1 ngha: Dng in cc d liu ln mn hnh2.2 .Dng lnh: c 3 dng th t#c in d liu nh sau:

    1. Write( bt1, bt2 , ... , btn );2. Wrteln(bt1, bt2 , ... , btn );3. Writeln;

    Trong bt1, bt2, ..., btn l cc biu th)c cn phi in ga tr ln mn hnh.Trong tr!ng hp n gin, mi biu th)c ny c th l mt bin, mt hng, haymt hm.

    - Dng 1: in d liu xong con tr ngay sau btn, cn dng 2 khi in xong con trnhy ngay xung u hng k tip.

    - Dng 3: khng dng in d liu ln mn hnh m c tc d#ng a con trxung u hng k tip.V d:cho x, y l hai bin thc v gn x:=100/4; y:=-9/300; th hai lnh sau :

    Writeln( x= , x); Writeln( y= , y);s" in ln mn hnh :

    x = 2.5000000000E+01y = -3.0000000000E-02

    2.2. In dliu dng s cnh dng:a). In s th!c cnh dng:

    In cc s thc theo cch trn rt kh c. V th cc s thc th!ngc in c nh dng, ging nh cch vit s thng th!ng, bng lnh:

    Writeln( biuth)c : n : k );Trong n v k l cc s t nhin, n nh dng n ct in ga tr cabiu th)c, trong c k ct dnh cho phn thp phn.

    V d#: cho x, y l cc bin kiu thc v: x:=100/4; y:=-123.4824;Hai lnh sau :

    Writeln( x=, x:6:2);Writeln( y=, y:10:3);

    s" in ln mn hnh:x= 25.00 ( trc s 2 c 1 k t tr*ng)

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    16/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 2:Gii thiu Ngn nglp trnh Pascal Trang 16

    y= -123.482 (trc du - c 2 k t tr*ng)Nu n nh hn chiu di ca s cn in th s s"c in ra vi y

    cc ch s trong phn nguyn. V d#, khi thc hin cc lnh sau :x:=12345.675;Writeln(x= , x:0:2); trn mn hnh s" hin : x=12345.68

    .y my lm trn s khi b s l0 cui cng.

    2.3 V dPROGRAM VIDU;Uses CRT;Var Ten : String[18]; Maso : String[11];

    BeginCLRSCR;Write( Nhap ho va ten: ); Readln(Ten);Write( Nhap ma so sv : ); Readln(Maso);Writeln;Writeln( ********************** ); { in 22 du* }Writeln(*, Ten:19, *:2); { in 1 du *, in Ten chim 19

    ct, in tip du * chim 2 ct}

    Writeln(* Ma so: , Maso:12, *:2); { in* Ma so, inMaso chim 12 ct, in tip du * chim 2 ct}

    Writeln(**********************); { in 22 du* }Readln;

    End.Bi tp chng 21. Nhp 2 s nguyn a, b t bn phm. In ra tng, tch, hiu, thng ca a v b2. +c t bn phm din tch ca y ln B1 v din tch y nh B2 v chiucao h ca mt hnh chp c#t .Tnh th tch hnh chp c#t theo cng th)c sau :

    V = (1/3)* (B1+B2 + B1*B2) *h3. +c t bn phm bn knh R1, bn knh R2, l !ng sinh l v chiu cao h

    ca mt hnh chp c#t. Tnh din tch xung quanh v th tch hnh chp c#t theocng th)c sau:

    Din tch xung quanh S = (PI/2 * (R1R2) *ITh tch V = (1/3) * (PI*h*(R1 + R2 + R1*R2))

    4. Vit chng trnh nhp vo im Ton, L, Ho ca mt th sinh theo h stng )ng 3 : 2 : 1 . Hy tnh v in im trung bnh.5.Vit chng trnh tnh lc ht F gia hai vt c khi lng M v N cch nhau

    mt khang d theo cng th)c :

    Vi G l lc hp d'n = 6.673* 10 8 cm2 /gs2(M tnh bng gram,D tnh bng cm)6.Vit chng trnh nhp 3 s nguyn dng a, b, c sau tnh v in ra mn

    hnh gi tr trung bnh cng s , c v trung bnh nhn p ca 3 sBit rng :

    3

    cbas

    ++= 3/1)(abcp =

    7.Vit chng trnh nhp 3 s nguyn dng a, b, c l s 3 cnh ca mttam gic. Hy tnh v in ra mn hnh din tch s ca tam gic .Bit rng : s=sqrt(p*(p-a)*(p-a)*(p-c)) trong p=0.5*(a+b+c).

    2

    *

    d

    NMGF =

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    17/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 3: Cc lnhiu kin vng lp Trang 17

    Chng IIICC LNH+I,U KIN VNG L-P

    I. Cc lnh i"u kin1.Lnh nhy khng i"u kin

    - C php :Goto

    - Chc nng: Nhy ngay n lnh c nh du bng nhn ckhai bo.Ghi ch: Cch khai bo nhn trong phn khai bo.

    Label Vi l mt t t&t.2. Cu lnh IF

    2.1. Cu lnh If dng 1C php:

    IF

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    18/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 3: Cc lnhiu kin vng lp Trang 18

    Readln;End.

    2.2. Cu lnh IF dng 2+C php:

    IF i"ukin THEN Lnh1

    ELSE Lnh2 ;Ch :-Trc ELSE khng c du chm ph/y.-Lnh1 v Lnh2 c th l mt lnh ghp, t)c

    l gm nhiu lnh c &t trong khi begin v end; .+ ngha ca lnh: My kim tra iu kin, Nuiukin l ng th thc hin Lnh1, ngc li, nuiukin l sai th thc hin Lnh2.

    V d: Vit chng trnh nhp vo hai s a v b,tm v in s nh nht v s ln nht ca chng:

    PROGRAM Tim_Max_Min; { Tim so lon nhat va so nho nhat ca hai so }

    Var a, b, Max, Min : Real;Begin

    Write( Nhap a va b :);Readln(a,b);If a < b then

    beginMax:= b;Min:= a;

    endelse { trc else khng c du ; }

    beginMax:= a;Min:= b;

    end;Writeln( So lon nhat la: , Max:6:2);Writeln( So nho nhat la: , Min:6:2);Readln;

    End.

    2.3. Cu lnh IF lng nhau:Trong cu lnh IF, nu Lnh1 ho&c Lnh2, ho&c c hai, li l cu lnh IF th ta

    c cu trc IF lng nhau. Ch4ng hn di y l hai cu lnh IF... ELSE lngnhau :

    IF i"ukin1 THENIf i"ukin2 then Lnh1else

    Lnh2ELSE

    Lnh3 ;

    +kin

    Lnh 1 Lnh 2

    Sai

    +ng

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    19/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 3: Cc lnhiu kin vng lp Trang 19

    V d# : Vit chng trnh nhp vo h tn mt ch h, ch sin k thngtrc (chiso1) v chsin k thng ny (chiso2), tnh tin in thng ny choh, bit rng :

    Mi kw trong 100 kw u tin c n ga l 500,T kw th) 101 n kw th) 200 c n gi 800,

    T kw th) 201 tr ln c n ga 1000.PROGRAM Tinh_tien_dien; { Tnh tin in }Var

    Ho_ten: String[18];chiso1, chiso2, Ldtt, Tien : Real;

    Label aa;Begin

    Write( Nhap ho va ten :); Readln(Ho_ten)aa: Write( Nhap chs thng trc, chs thng ny: );Readln( chiso1, chiso2);

    If chiso2

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    20/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 3: Cc lnhiu kin vng lp Trang 20

    -Kiu d liu ca biuth)c chl kiu d liu m c nh: nguyn, kt, Lgic, ho&c kiu lit k hay kiu on con, khng c l kiu thc hay kiuchui..3.2: ngha:Khi g&p lnh Case trong chng trnh my thc hin theo cc

    bc sau :

    Bc 1: Tnh ga tr ca biuth)cBc 2: So snh v la chn:- Nu ga tr ca biuth)c = Gt1 th thc hin Lnh1- Nu ga tr ca biuth)c = Gt2 th thc hin Lnh2- Nu ga tr ca biuth)c = Ctn th thc hin LnhnBc 3:

    a) chuyn ngay sang lnh k tip sau End ( nu l dng 1)b) thc hin Lnh n+1, ri chuyn sang lnh k tip sau End(nu l dng 2) .

    S

    2.3. Cc v d:PROGRAM Tim_so_ngay_cua_thang; { Xc nh s ngy ca thng }

    VarThang, Nam, Songay : Integer ;

    BeginWrite(Nhp Thang, Nam : ); Readln(Thang, Nam);If (Thang12) then writeln( Nhp sai )elsebeginCase Thang OF4, 6, 9, 11 : Songay:=30;1, 3, 5, 7, 8, 10, 12 : Songay:=31;2 : begin

    If Nam mod 4 = 0 then Songay:=29else Songay:=28;

    end;

    Sai

    Lnh k

    GT= t

    L nh1GT=gt

    L nh2GT= t

    L nh3

    +n

    +n

    Sai

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    21/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 3: Cc lnhiu kin vng lp Trang 21

    End; { Ht Case }Writeln( S ngy l : , Songay);

    end;Readln;

    End.

    V d2: Xy dng thc n cho php la chn mt trong bn vic : tnh tng ,tnh hiu, tnh tch ho&c tnh thng ca hai s x, y nhp t bn phm.Mn hnh cn hin ra bn m#c sau cho mi ng!i la chn :

    A. TNH T5NG HAI S6B. TNH HI7U HAI S6C. TNH TCH HAI S6D. TNH TH8NG HAI S6

    Chng trnh c vit nh sau :PROGRAM Thuc_Don;Uses Crt;

    Var

    x, y : Real; Ch : Char;BeginClrscr;Write('Nhap x va y:'); Readln(x, y);Gotoxy(10, 3); Write('A. TINH TONG HAI SO');Gotoxy(10, 5); Write('B. TINH HIEU HAI SO');Gotoxy(10, 7); Write('C. TINH TICH HAI SO');Gotoxy(10, 9); Write('D. TINH THUONG HAI SO');Gotoxy(2,11); Write('-Ban chon muc nao (A, B, C, D) ?:'); Readln(Ch);CASE Ch of

    'A', 'a': Writeln('Tong =', x+y :6:2);'B', 'b': Writeln(' Hieu =', x-y :6:2);'C', 'c': Writeln(' Tich =', x*y :6:2);'D', 'd': If y0 then Writeln(' Thuong =', x/y:6:2 )

    else Writeln(' Khong xac dinh !');ELSE

    Writeln(' Khong co muc ', Ch);END;

    Readln;End.

    2.3. Cu lnh CASE lng nhauTrong cu trc CASE, khi mt trong cc Lnh1, Lnh2, ..., Lnhn hay

    Lnhn+1 li l mt lnh CASE th ta c cu trc CASE lng nhau.V d# 3: Mt x nghip tnh tin thng hng thng cho cng nhn theo cng

    th)c : Tin thng= H s * 200.Trong H sc tnh da vo kt qa bnh chn phn loi lao ng (loi

    A, B hay C) v ni lm vic (c s 1 hay c s 2) ca mi ng!i trong thng, c#th nh sau :

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    22/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 3: Cc lnhiu kin vng lp Trang 22

    Loi C s 1 C s 2

    A 2.0 2.5

    B 1.5 1.8

    C 1.0 1.0

    Vit chng trnh nhp h tn, phn loi lao ng v ni lm vic ca mtcng nhn, tnh tin thng cho ng!i .

    PROGRAM Tinh_tien_thuong;Var

    Ho_ten: String[20]; Loai : Char; Coso : Byte;Heso, Thuong : Real;

    BeginWrite( Nhp h v tn: ); Readln(Ho_ten);Write( Nhp c s lm vic (1,2): ); Readln(Coso);

    Write( Nhp phn loi lao ng (A,B,C) : );Readln(Loai);CASE Loai OFA, a: Case Coso of

    1: Heso:=2.0;2: Heso:=2.5;

    end;B, b: Case Coso of

    1: Heso:=1.5;2: Heso:=1.8;

    end;C, c: Heso:=1.0;

    END; { Ht CASE }Thuong:=Heso*200;

    Writeln(H v tn Tin thng );Writeln(Ho_ten , Thuong:8:2 );Readln;

    End.II.CC LNH VNG L-P1. Cu lnh lp FOR1.1. Cu lnh FOR dng 1- C php:

    FOR bin s := TO DO Lnh;- Yu cu: bin s phi thuc kiu d liu ngin m c, th!ng l kiu nguyn, k t hayl gic, khng th l kiu thc hay chui.- Cch thc hotng ca FOR:Bc 1:Gn gi tr cho bin s := gi truBc 2:Thc hin vic so snh:-Nu bin s

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    23/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 3: Cc lnhiu kin vng lp Trang 23

    -Nu bin s >Gi tr cui th that ra khi vng l&p , thc hin lnh k tip.Bc 3:Thc hin lnh sau DOBc 4 :Tng ga tr ca bin s :

    bin s:=Succ(bin s);Quay li bc 2.

    1.2. Cc v dV d 1:Hy vit chng trnh tnh tng : S= 12 + 22+ 32+...+ 102PROGRAM Tong1;

    VarN, i : Integer;S : LongInt;

    BeginWrite( Nhp N :); Readln(N);S:=0;

    For i:=1 to N do S:=S+i*i ;Writeln(S= , S);

    Readln;End.

    V d 2:Bi tnh giai tha ca mt s.PROGRAM Giai_thua;

    VarN, i : Integer;S : LongInt;

    BeginWrite(Nhp s dng N : ); Readln(N);S:=1;For i:=1 to N do S:=S * i ;Writeln(Giai thua = , S);Readln;

    End.2. Cu lnh FOR d&ng 2

    -C php:FOR bin s := DOWNTO DO Lnh;

    -Cch thc hotng ca FOR dng 2:Bc 1:Gn gi tr cho bin s := gi trcuiBc 2:Thc hin vic so snh:

    -Nu bin s >= Gi tru thchin bc 3;

    -Nu bin s =Gtcui

    Lnh

    Bin:=Bin-1

    +ng

    Sai

    That

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    24/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 3: Cc lnhiu kin vng lp Trang 24

    V d# 1 : In cc ch ci theo th) t ngc t Z n A thnh hai dng :Z, Y, X, ..., C, B, Az, y, x, ... , c, b, a

    Chng trnh c vit nh sau:PROGRAM In_Ky_tu_nguoc;

    Var : Char;Begin

    For ch:=Z downto A do write(ch:3 );Writeln;For ch:=z downto a do write(ch :3 );Writeln;

    Readln;End.

    3. Cu lnh FOR lng nhau

    Trong cu trc FOR, khi Lnh c(ng l mt lnh FOR th ta c cu trc FORlng nhau:FOR bin1:= m1 TO m2 DO {1}

    FOR bin2:=n1 TO n2 DO Lnh; {2}Cch th)c hot ng ca lnh ny nh sau:

    u tin cho bin1:=m1 v lm lnh dng {2}. V dng {2} l lnh FORnn vi mi ga tr ca bin2=n1, ..., n2, u phi lm Lnh, kt qa l Lnhc lm n2-n1+1 ln.

    By gi! tng: bin1:=Succ(bin1), ri li lm lnh FOR dng {2}, ktqa lnhP c lm thm n2-n1+1 ln na.v.v.

    Qa trnh trn c) tip t#c cho n khi bin1=m2+1 th dng.

    Lnh FOR {1} lm m2-m1+1 ln lnh FOR {2}, cn chnh lnh FOR {2} li lmn2-n1+1 ln Lnh. V th lnh c lm tt c l (m2-m1+1)*(n2-n1+1) ln.

    V d#: In hnh ch nht &c nh di y:

    PROGRAM In_hinh_chu_nhat_chu_A;Uses Crt;Var I,j,n,m :Integer;

    BeginClrscr;

    Write(Hay nhap chieu rong =);Readln(n);Write(Hay nhap chieu dai =);Readln(m);For i:=1 to n dobegin

    for j:=1 to m do write(A);Writeln;

    end;Readln;

    End.

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    25/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 3: Cc lnhiu kin vng lp Trang 25

    V d# 2: Tm cc s Fibonaci.Dy s Fibonaci c xy dng nh sau:

    U0=1, U1=1 , Uk=Uk-1 + Uk-2 vi mi k= 2, 3, 4, ...PROGRAM In_Fibonaci;

    Var

    N, i, U, U0, U1 : Integer;BeginWrite( Nhp N :); Readln(N);

    U0:=1;U1:=1;

    Writeln( N+1 , s Fibonaci u tin l : ); Write(U0:3 , U1:3);For i :=2 to N do

    beginU:=U0+U1;

    Write(U:3);U0:=U1;

    U1:=U;end;Readln;

    End.3. Cu lnh WHILE

    3.1 C phpWHILE iukin DO Lnh ;

    - ngha: Thc hin lnh trong khi+iu kincn ng, khi iu kin sai that ra khi vngl&p , thc hin lnh k tip.3.2. Cc v d v lnh While

    V d 1 :Nhp s t nhin N, dng lnhWHILE tnh S=N!:

    PROGRAM Giai_thua_2;{ Tinh S=N! bnglnh WHILE..}

    VarN, i : Integer;P : LongInt;

    BeginWrite( Nhp N > 0 : ); Readln(N);P:=1;i :=1;While i

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    26/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 3: Cc lnhiu kin vng lp Trang 26

    V d# 2: Vit chng trnh tnh tin gi ngn hng.PROGRAM Tien_gui_Ngan_hang;VarTienvon, Laisuat, Sotien, S : Real;N : Byte;

    BeginWrite( Nhp tin vn, li sut v s tin S cn c: );Readln(Tienvon, Laisuat, S);Sotien:=Tienvon;N:=0; { N l s thng gi }While Sotien< S do

    beginN:=N+1;Sotien:= Tienvon + Tienvon*Laisuat ;Tienvon:=Sotien;

    end;

    Writeln( Cn gi , N , thng );Writeln( S tin s" c = , Sotien:6:2);Readln;

    End.4. Cu lnh Repeat4.1 C php

    REPEATLnh;

    UNTIL iukin

    4.2 ngha: Thc hin lnh cho n khiiu kin ng, Khi iu kin ng that rakhi vng l&p thc hin lnh k tip.4.3. Cc v d v lnh Repeat

    V d# 1: Tm bi s chung nh" nht ca hai s nguyn dng M v N.Bi ny c nhng cch gii khc nhau, di y l mt cch n gin. Trc

    ht, hy xem cch tm BSCNN ca hai s M=5 v N=9.V N>M nn ta s" tm trong tp cc bi s ca N :{ 9, 18, 27, 36, 45, ...} s nh

    nht chia ht cho M, l s 45.Mt cch tng qut, gi Max l s ln nht ca M v N. u tin ta gn :BSCNN:=0;Sau c) lm lnh BSCNN:=BSCNN+Max cho n khi BSCNN chia ht cho

    c M v N th dng.Trong chng trnh ta dng lnh repeat nhp hai s M, N m bo dng.PROGRAM BSCNN; { Tm BSCNN ca M v N }

    VarM, N, Max, BSCNN : Integer;

    BeginRepeat

    Write( Nhp M v N dng :); Readln(M, N);

    +iu kin

    Lnh

    +ng

    Sai

    That

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    27/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 3: Cc lnhiu kin vng lp Trang 27

    Until (M>0) and (N>0);If N >M then Max:=N else Max:=M; BSCNN:=0;

    RepeatBSCNN:=BSCNN + Max;

    Until (BSCNN mod N=0) and (BSCNN mod M=0) ;

    Writeln( Bi s chung nh nht= , BSCNN) ;Readln;End.

    V d# 2: Thit k chy nhiu ln mt chng trnh.Trong Turbo Pascal, mi ln mun chy chng trnh ta phi g c&p phm

    Ctrl v F9 (vit t*t l ^F9), iu ny s" bt tin nu cn chy chng trnh nhiuln )ng vi cc b d liu th khc nhau. Cu trc sau y cho php ta chychng trnh mt s ln theo mun:

    REPEAT{ Cc lnh ca chng trnh}

    Write( Tip t#c na khng (Y/N) ? :); Readln(Traloi);

    UNTIL (Traloi =N) or ( Traloi=n);Ghi ch:Traloi l mt bin kiu k t (Char);Sau khi thc hin xong {cc lnh ca chng trnh }, nu mun chy tip th

    ta g phm phm Y , nu mun dng th g phm N .Ch :lnh Readln(Traloi); c th thay bng: Traloi:=Readkey;

    Hm Readkey thuc th vin CRT cho kt qa l mt k t g t bn phm,n khc lnh Readln(Traloi) ch l khi nhp k t ta khng cn phi Enter.

    Chng trnh di y cho php thc hin mt s ln vic : in tam gic cn&c c chiu cao m (0

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    28/70

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    29/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 4: Chng trnh con Trang 29

    Chng IVCHNG TRNH CON

    I.Nhng khi nim chung1. Khi nim v" chng trnh con

    Chng trnh con (subprogram) l mt on chng trnh c ch)c nng gii

    quyt mt vn chuyn bit m chng trnh chnh cn phi thc hin mt sln )ng vi cc ga tr khc nhau ca tham s.

    Ch4ng hn, nu phi tnh mt lot cc ga tr e1, e2, e3, ..., e10 th ta nn vitmt chng trnh con c nhim v# tnh ex vi x la i s bt k, & &t tn lEXP(x). Mi khi cn tnh mt trong cc ga tr e1, e2, ..., e10 , ta chcn gi tnchng trnh con nhng thay x bng mt gi tr c# th 1, 2, ...,10.

    Vic s d#ng chng trnh con khng chc tc d#ng lm cho chng trnhchnh bt r!m r, bt di dng m cn &c bit c ngh%a trong vic t ch)cchng trnh.

    Khi phi gii quyt mt bi ln, ng!i ta tm cch chia n ra thnh nhiu binh. Mi bi nhc gii quyt ring r" bng mt chng trnh con s" d$

    dng hn khi phi kim tra li v kim tra thut . Vic cn li l ghp cc chngtrnh con ny to thnh mt chng trnh ln, l chng trnh chnh.

    C hai loi chng trnh con l hm v th t#c. S khc nhau c bn cahm v th t#c l ch: hm lun lun tr v mt ga tr duy nht thng qua tnhm v do c th s d#ng hm nh s d#ng mt biu th)c, cn th t#c thkhng tr v gi tr no qua tn th t#c v n c s d#ng nh mt lnh ngin.2. Hm (Function)2.1. Ccc trng ca hm

    Cc yu t&c trng cho mt hm gm c:-Tn hm

    -Kiu dliu ca cc tham s-Kiu dliu ca ga trhmV d# :

    -Hm Sqrt(x): cho cn hai ca x. Tn hm l Sqrt, tham s x l nguyn haythc cn ga tr hm kiu thc, v d# Sqrt(4)=2.0.

    -Hm Chr(k): cho k t c m l k. Tn hm l Chr, tham s k kiu nguyn cnga tr hm kiu k t, v d# Chr(65)=A.

    -Hm Odd(k): cho True hay False ty theo k l l0 hay ch1n. Tn hm l Odd,tham s k kiu nguyn v ga tr hm kiu lgic? v d# Odd(4)=False.

    -Hm Copy( St, k, n): cho chui con gm n k t ca St tnh t v tr k. Tn hml Copy, c ba tham s l St kiu chui, k v n kiu nguyn, v ga tr hm kiu

    chui. v d# Copy(ABCD, 2, 3) = BCD.-Hm Readkey : khng c tham s, ga tr hm kiu k t, hm nhn mt k tc g t bn phm.

    Tm li, hm c th khng c tham s ho&c c mt n nhiu tham s, nhnghm lun tr v mt ga trduy nht.

    2.2. Khai bo hm tvitTt c cc hm c s1n trong Turbo Pascal gi l cc hm chu/n, chng c th

    c s d#ng m khng cn phi khai bo. Tuy nhin s lng cc hm chu/n

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    30/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 4: Chng trnh con Trang 30

    th!ng khng p )ng c yu cu a dng ca ng!i s d#ng, cho nn khitho chng, ta th!ng phi t xy dng thm cc hm mi.

    Cc hm t vit cn phi c khai bo trong phn khai bo ca chngtrnh chnh, theo c php sau:

    Function Tnhm(tnthams: kiuthams : kiugatr ;

    { Cc khai bo dng trong hm }Const ...Type ...Var ...

    Begin{Cc lnh ca hm}Tnhm:=Biuth)c;

    End;

    2.3. Cc v dV d# 1: Nhp dy cc s thc x1, x2, ..., xn, tnh tng :

    Phn tch: Gi s c hm Canba(z) tnh cn bc ba ca z, t)c l :

    khi , tng S c tnh nh sau:S:=0;For i:=1 to N do S:=S + Canba(x[i]);

    Vn cn li l phi vit hm tnh cn ba ca z. Hm ny c tn l Canba,tham s z kiu thc, v ga tr hm c(ng kiu thc, n c xy dng trongchng trnh nh sau:

    PROGRAM VIDU;

    Varx : Array[1..20] of Real;S : Real;N, i : integer;

    FUNCTION Canba( z: Real) :Real;{ Hm tnh cn bc ba ca z}

    VarF: Real;

    BeginIf z=0 then F:= 0;If z>0 then F:= exp( 1/3*Ln(z) );

    If z0) and ( N

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    31/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 4: Chng trnh con Trang 31

    For i:=1 to N dobegin

    Write(nhap x[, i, ]:); Readln(x[i]);S:=S + Canba( x[i] );

    end;

    Writeln( S= , S:8:2);Readln;END.

    3. Th tc (Procedure)3.1. Thtc v cch khai bo

    Tng nh hm, th t#c c(ng l mt chng trnh con, song th t#c khchm ch: nu nhhm lun tr v mt ga trduy nht thng qua tn hmthth tc li khng tr v mt ga trno thng qua tn gi ca n m n c tcd#ng nh mt lnh.

    Th t#c Readln(x, y, z) c nhim v# nhp cc ga tr t bn phm cho ccbin x, y, z. Th t#c Write(x, y, z) in ga tr ca x, y, z. Th t#c Gotoxy(x, y) nh v

    con tr vo to ct x, dng y trn mn hnh. Th t#c Clrscr th chn gin lxa mn hnh .v.v. . Nh vy th t#c c th khng c tham s ho&c c t mtn nhiu tham s.3.2 Thtc tvit

    Ngoi cc th t#c chu/n c s1n trong Turbo Pascal, ng!i thochng c th t xy dng cc th t#c mi nhng phi khai bo theo c phpsau:

    Procedure Tntht#c( tnthams : kiuthams) ;{ Cc khai bo Const, Type, Var dng trong th t#c }

    Begin{Cc lnh ca th t#c }

    End;on khai bo trn phi c &t ph di trong phn khai bo ca

    chng trnh chnh.3.3. Cc v d v" th tcV d1:Gii phong trnh bc hai ax2+bx+c=0 bng vit th t#cV gii thut chng ta qua cc bc sau :Bc 1 :Nhp cc bin s a,b,cBc 2 :Tnh Denta=b2-4ac;

    -Nu Denta >0 Phng trnh c 2 nghim phn bit.x1:=(-b+sqrt(denta)/2ax2:=(-b-sqrt(denta)/2a

    -Nu Denta =0 phng trnh c mt nghim kp.x1=x2=-b/2a

    -Nu Denta

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    32/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 4: Chng trnh con Trang 32

    BeginX1:=(-b+sqrt(Denta)/2/a;X2:=(-b-sqrt(Denta)/2/a;Writeln(Phuong trinh co hai nghiem phan biet);Writeln( x1 =,x1:8:2);

    Writeln( x2 =,x2:8:2);Readln;End;

    Procedure Dentaam;Begin

    Writeln(Phuong trinh vo nghiem);Readln;

    End;Procedure Dentakhong;

    BeginWriteln(Phuong trinh co mot nghiem kep);

    Readln;End;Begin

    ClrScr;Write(Hay nhap cac he so a, b, c =);Readln(a,b,c);

    Denta:=b*b-4*a*c;If Denta=0 then Dentakhong;If Denta0 then Dentaduong;Readln;

    End.

    II. Tham s tr s v tham s bin sTrong khai bo u ca chng trnh con, cc tham s hnh th)c c t kha

    Var )ng trc gi l tham s bin, ngc li, nu khng c t kha Var itrc th gi l tham s tr.

    V d#, trong khai bo hm tnh l(y tha zk, ta vit :Function Lt(z : Real ; k: Byte) : Real;

    th z v k u l cc tham hnh th)c s tr .Cn theo khai bo ca th t#c Doicho :

    Procedure Doicho(Var u, v : Real) ;th u v v u l cc tham hnh th)c s bin.

    1. Tham s tr sTham s tr hnh th)c c cp mt nh ring khi chng trnh con c

    gi v b xa b khi chng trnh con chy xong. N c coi nh mt binaphng, nhn ga tr ban u l tham s thc sc chuyn n t chngtrnh chnh qua l!i gi chng trnh con. Sau chng trnh con c th thayi gi tr ca tham s tr hnh th)c bn trong chng trnh con, song iu khng lm thay i ga tr ca tham s thc s.

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    33/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 4: Chng trnh con Trang 33

    2. Tham s bin sTrong l!i gi chng trnh con cc tham s bin s th!c s!ch#c th l bin

    s , khng th l h$ng s hay biu thc.V d#, cc lnh sau y l sai :

    Doicho(3, 4); { Sai v 3 v 4 l cc h$ng}

    Doicho(a+1, b); { Sai v a+1 l mt biu thc}Gi s trong chng trnh chnh c hai bin thc a, b c ga tr a=4 v b=3. hon i ga tr ca a v b ta dng lnh:

    Doicho(a, b);V u v v l cc tham s bin hnh thcnn chng trnh con s"ng nht u

    vi a v ng nht v vi b. Mi thay i ca tham s u trong chng trnh conu l thay i ca chnh bin a, tng t, mi thay i ca tham s v u lthay i ca chnh bin b. Kt qa l trc khi gi th t#c Doicho(a,b) th a=3,b=4, sau khi thc hin th t#c xong th a=4, b=3.

    Vy, cc binc truyn vo chng trnh con di dng tham s bin ths thay%i theo tham s bin hnh thc tngng trong chng trnh con.

    Th!c cht ca s!truyn tham si vi cc tham s bin l s!truynach#.+V d 1:Trong chng trnh di y, th t#c TT c hai tham s a v b : a ltham s tr cn b l tham s bin. Hy xem s thay i ga tr ca hai bin x, yca chng trnh chnh trc v sau khi gi th t#c TT:

    PROGRAM VIDU1;Varx, y: Integer;

    PROCEDURE TT( a : integer ; Var b : integer);Begin

    a:=a+6;b:=b+8;Writeln(a= , a);Writeln(b= , b);

    End;BEGIN

    x:=4;y:=7;TT(x,y);

    Writeln(x= , x);Writeln(y= , y);

    Readln;END.

    Tnh cht trn y ca tham s bin cho php khai thc thm cc khnng ca th t#c v hm. Ta bit th t#c khng tr v ga tr no thng qua tnn, cn hm th tr v mt ga tr duy nht qua tn hm. Song mt chng trnhcon hon ton c th tr v hai hay nhiu ga tr thng qua cc tham s bin,nh v d# 2.+V d 2:Chng trnh sau nhp vo hai cnh a, b ca hnh ch nht v sd#ng mt th t#c tnh c din tch v chu vi.

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    34/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 4: Chng trnh con Trang 34

    PROGRAM Vidu2 ;Vara,b, S, L: Real;Procedure TINH( c1, c2 : Real ; Var DT, CV : Real);{ Tnh din tch DT v chu vi CV theo hai cnh c1 v c2}

    BeginDT:=c1*c2;CV:=2*(c1+ c2);

    End;BEGINWrite( Nhp hai cnh a, b: );Readln(a,b);TINH(a, b, S, L);Writeln(Dien tch= , S:4:1);Writeln(Chu vi = , L:4:1);Readln;

    END.III. Ph&m vi tc dng ca cc khai bo1. Bin ton cc v bin a phng

    V chng trnh con c(ng l mt chng trnh nn trong chng trnh conc(ng c khai bo bin, khai bo hng, .v.v., c(ng c khai bo chng trnh conca ring n, ...

    Cc bin c khai bo trong chng trnh chnh gi l bin ton c#c (globalvariable), chng dng c mi ni k t lc khai bo cho n khi kt thcchng trnh.

    Cc bin c khai bo trong mt chng trnh con gi l bin a phng(local variable). S d%gi l a phng v chng chc tc d#ng trong chngtrnh con ni n c khai bo m thi.+V d : Xt chng trnh di y :

    Program Vidu;Var

    x: Integer;Procedure TTUC1;Vary: Integer;

    Beginy:=x+5;Writeln(y);

    End;BEGIN

    x:=10;TTUC1;Writeln(y); { lnh ny bli}Readln;

    END.

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    35/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 4: Chng trnh con Trang 35

    2. Ph&m vi tc dng ca cc khaibo

    Phm vi tc d#ng hay tm tc d#ng ca bin (hay hng, kiu d liu, chngtrnh con) l khu vc m trong n c th s d#ng c, ngoi khu vc nb xem l cha khai bo. Vy phm vi s d#ng ca bin trong chng trnh con ,l cc bin khai bo trong chng trnh con v cha ca n.V d :Nu chng trnh chnh v th t#c B c khai bo hai bin trng tn l x,th trong th t#c B chc bin x a phng ca B l c tc d#ng, cn bin x ca

    chng trnh chnh tm th!i b che i. Ra khi th t#c B, bin x a phng caB b xa v bin x ton c#c hot ng li bnh th!ng.+V d 4:Xt chng trnh sau:

    Program Vidu4;Varx: Integer;Procedure B;Var

    x: Integer;Begin

    x:=5;

    Writeln(x);End;BEGINx:=10;B;Writeln(x);Readln;

    END.

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    36/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 4: Chng trnh con Trang 36

    IV.S tham kho trc v s qui1. Tham kho trc (Forward reference)

    Bnh th!ng khi trong chng trnh chnh c hai chng trnh con A, B ckhai bo k tip nhau A trc, B sau, th B gi c A nhng A khng gi cB. Khi A gi c B ta phi tin hnh khai bo phn u ca B vi t kha

    Forward trc khi khai bo B y .+V dPROGRAM Vidu;

    Procedure B; Forward ; { khai bo tham kho B trc}Procedure A;

    BeginWriteln( Cho ch );B;

    End;Procedure B;

    Begin

    Writeln( Cho anh );End;BEGIN

    A;Readln;

    END.2. S qui (Recursion):Mt th t#c hay hm c th gi chnh n, khi ta ni c s qui.

    V d# 7: Tnh S= k! bng qui. Ta vit :

    Mun tnh k! ta phi tnh c (k-1)!, mun tnh (k-1)! li phi tnh (k-2)!, ...,suy ra cui cng phi tnh c 0!, nhng v 0!=1 nn qa trnh kt thc.

    Chng trnh sau nhp N, tnh v in ga tr N!. Trong chng trnh c xydng v s d#ng mt hm quy tnh k! :

    PROGRAM Vidu1;{ Tnh N! b$ng qui}Var

    N : Byte;Function Gt( k : Byte) : Real;{ Hm tnh k! b$ng qui}

    BeginIf k=0 then Gt:= 1else

    Gt:= k* Gt(k-1);End;

    BEGINRepeatWrite( Nhp N: );Readln(N);

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    37/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 4: Chng trnh con Trang 37

    Until N>0;Writeln( N, != , Gt(N):0:0 );

    Readln;END.

    +V d 2Tnh s hng U(k) ca dy Fibonaci bng qui:U(0)=1, U(1)=1, U(k)=U(k-1) + U(k-2) vi k>1.

    Ta vit:U(k) = 1 nu k=0 ho&c k=1= U(k-1) + U(k-2) nu k>1.

    Chng trnh sau in ra s Fibonaci th) N bng cch gi hm qui Fibo.PROGRAM Vidu2;{ Tnh s Fibonaci thN}VarN : Integer;

    Function Fibo( k : Integer) : Integer;{ Hm tnh s Fibonaci thk b$ng qui}Begin

    If k=0 then Fibo:= 1else

    if k=1 then Fibo:=1elseFibo:=Fibo(k-1) + Fibo( k-2);

    End;BEGINWrite( Nhp N: );Readln(N);Writeln( S Fibo th) , N, = , Fibo(N) );Readln;

    END.

    Bi tp ng dng1.Vit chng trnh con tnh giai tha ca mt s a.2.Vit chng trnh con kim tra mt s nguyn x c l s nguyn t hay khng?3.Vit Chng trnh con Tm USCLN, BSCNN ca hai s a,b.4.Vit chng trnh con tnh bnh phng ca mt s a.5.Vit chng trnh con tnh Cn bc 2 ca mt s a.6.Vit chng trnh con tnh Cn bc 3 ca mt s a.

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    38/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 38

    Chng VD LIU C C.U TRC

    I.Khi nim v" d liu c cu trcTrong Turbo Pascal ta dng cc kiu d liu v hng ( n gin

    chu/n) nh cc kiu : Boolean, s nguyn, s thc, char, on con, lit k.Ngoi ra Pascal cn cho php ta xy dng cc kiu d liu khc t cc kiun gin chu/n, l d liu c cu trc.

    D liu c cu trc ca Pascal c cc kiu : Mng(Array), chui(String),Tp hp(Set), Bn ghi(Record), Tp tin(File), Con tr (Pointer).

    Ngn ng cho php dng nhiu d liu cu trc ph)c tp th ngn ngcng mnh v d$ s d#ng.II.Cu trc d liu mng

    1. Mng v cch khai bo mngMng l mt tp gm nhiu phn t c cng chung mt kiu d liu. Mi

    phn t ca mng c mt i lng xc nh v tr tng i ca phn t sovi cc phn t khc trong mng, gi l ch#s. Cc yu t xc nh mt mng

    gm c:-Tn mng- Kiu d liu chung ca cc phn t trong mng- Kiu d liu ca chs v phm vi ca chs.

    Kiu d liu ca cc phn t mng l mi kiu d liu m mt bin c th c.Kiu chc th l kiu m c : nguyn, k t, lgic, lit k hay on con.

    2.Mng m$t chi"u2.1 Khai bo mng mt chiu

    TYPETnkiumng = Array[m1 . . m2] of Tnkiudliu;

    .y m1, m2 l hai hng xc nh phm vi ca chs, chng c chung mt

    kiu d liu v m1< m2.V d# :

    TypeMang1 = array[0..10] of Real;Mang2 = array[1..5] of String[18];Mang3 = array[a..d] of Integer;

    2.2: Khai bo bin mngVAR

    Tnmng : Tnkiumng ;V d#:

    Var

    A : Mang1;Hten: Mang2;B: Mang3;

    2.3 Khai bo mng c gn trbanuPascal cho php va khai bo mng va gn ga tr ban u cho cc phn t

    mng, ch4ng hn nh di y:Const

    X : array[1..5] of Integer = (12, 14, 16, 18, 20) ;

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    39/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 39

    Khi X l mt mng gm 5 phn t cng kiu nguyn v c gi tr X[1]=12,X[2]=14, X[3]=16, X?4]=18, X[5]=20.

    2.4 Khai bo trc tip bin mngVAR

    Tnmng : Array[m1 . . m2] of Tnkiudliu ;

    V d#: Cho khai bo di y:VarA : Array[0..10] of Real;Hten: Array[1..5] of String[18];B: Array[a..d] of Integer;

    2.5 Truy xut cc phn tmngCc x l trn mng c quy v x l tng phn t mng. xc nh mt

    phn t ca mng, ta dng cch vit :Tnmng[ chs ca phn t]

    Cc php x l trn phn t mng

    +Php gn : Ta c th gn mt gi tr cho mt phn t mngV d# : A[0]:= 15.8; A[1]:= 2*A[0];Hten[3]:= Nguyen Thi Loan; B[a]:=100;

    +Nhp d liu : Khi nhp d liu cho cc phn t ca mt mng , ta c thdng cu lnh For, While hay Repeat.

    V d#, nhp d liu cho cc phn t ca mng A 10 phn t:For i:=0 to 10 do

    beginWrite(A[,I,]=);Readln(A[i]);

    end;ho&c (dng While) :i:=0;While i

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    40/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 40

    RepeatWrite( Nhp s phn t N : ); Readln(N);

    Until (N>0) and ( N0 then Dem:=Dem+1;Writeln( S s dng = , Dem );

    Readln;End.

    + Bi tantm s ln nht ca dy A1, A2, ..., An.Gi Max l bin ch)a s ln nht phi tm, th th :Bc 1: Gn Max:=A[1];Bc 2: Nu Max

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    41/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 41

    Trong N l s phn t ca dy A cn Z l mt bin trung gian c cng kiud liu vi cc phn t ca mng A.

    Chng trnh di y tm s ln nht ca mng A v s*p dy A tng dn:PROGRAM Tangdan;Uses CRT;

    TypeKmang = array[1..20] of Real;Vari, j, N : Integer;A: Kmang;z, Max : Real;

    BeginClrscr;RepeatWrite( Nhp s phn t N : ); Readln(N);

    Until (N>0) and ( NA[j] thenbegin { i ch A[i] v A[j] }z:=A[i];A[i]:=A[j];A[j]:=z;

    end;Writeln( Dy s*p tng l : );For i:=1 to N do Write(A[i]:3:0);Readln;

    End.+ Kim tra mng c th"a mt tnh cht khng.

    Ta th!ng g&p bi kim tra xem mi phn t ca mng A c tha mn mtiu kin khng, v d# mng A c phi l dy tng khng, c phi l dy ix)ng khng, c phi l mt cp s cng khng v.v... Cch thc hin nh sau :

    Ta x d#ng mt bin Kiemra kiu Boolean thc hin nh sau:Kiemtra:=TRUE;For i:=1 to N do

    if A[i] khng tha iu kin then Kiemtra:= FALSE;Vic xc nh iu kin l ty tng bi c# th.

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    42/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 42

    V d#: Kim tra xem A c phi l mt dy i x)ng khng ?Dy 1 3 5 4 5 3 1 l i x)ng.Dy 1 3 5 4 2 3 1 l khng i x)ng v A[3] khc A[5].

    Gi thit bin Kiemtra c khai bo kiu Boolean. Trong chng trnh tadng cc lnh sau:

    Kiemtra:=TRUE;For i:=1 to N doif A[i]A[N-i+1] then Kiemtra:=FALSE;If Kiemtra=TRUE then writeln( Dy A i x)ng)elseWriteln( Dy A khng i x)ng );

    3. Mng hai chi"u (ma trn)3.1. Khai bo mng hai chiu+Kiu dliu

    TYPE

    Tnkiumng= Array[n1..n2 , m1..m2] of Tnkiudliu;Trong n1, n2 l cc hng c cng kiu d liu v n1.. n2, chng xc nhphm vi ca chs th) nht, gi l chs dng. Tng t m1, m2 l cc hng ccng kiu d liu v m1 .. m2, chng xc nh phm vi ca chs th) hai, gi lchs ct. Ging nh mng mt chiu, kiu d liu ca cc chs chc th lkiu m c: nguyn, k t, l gic, lit k hay on con, khngc l kiuth!c hay chui.

    + Bin mngVAR

    Tnmng : Tnkiumng ;V d# : Type

    Kmang1 = array[1..2, 1..3] of Real;Kmang2 = array[a..c , 1..3] of String[15];

    VarX : Kmang1;Y : Kmang2;

    Ghi ch :Trong mng hai chiu TP cho php khai bo trc tip bin mng, cchkhai bo nh sau :VAR

    Tnmng : Array[n1..n2 , m1..m2] of Tnkiudliu;V d#, cho khai bo :

    VarX : array[1..2, 1..3] of Real;Y : array[a..c , 1..3] of String[15];

    Kt qu ta nhn c hai mng hai chiu:Mng X gm 6 phn t cng kiu d liu thc:

    X[1,1], X[1,2], X[1,3]X[2,1], X[2,2], X[2,3]

    Mng Y gm 9 phn t cng kiu chui String[15] :

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    43/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 43

    Y[a,1], Y[a,2], Y[a, 3]Y[b,1], Y[b,2], Y[b, 3]Y[c,1], Y[c,2], Y[c, 3]

    Ch : -C th xem mng hai chiu l mng mt chiu m mi phn t ca

    n li l mt mng mt chiu.3.2 Khai bo v gn gi trbanuC th khai bo v gn gi tr ngay cho mt mng hai chiu, ch4ng hn:

    TypeKmang1 = array[1..2, 1..3] of Real;

    ConstX : Kmang1 = ( (1.5, 2.5, 3.5), (5.0, 6.5, 7.0) );

    Khi X l mt mng hai chiu c 6 phn t cng kiu thc v c gi tr l:X[1,1]=1.5, X[1,2]=2.5, X[1,3]=3.5X[2,1]=5.0, X[2,2]=6.5, X[2,3]=7.0

    Cn nhn mnh rng m&c d t kha y l Const song X v cc phn t

    ca X c th dng nh cc bin, t)c l cc phn t ca X c th thay i gi trc.3.3 Cc thao tc trn ma trn

    xc nh mt phn t trong mng hai chiu, ta vit:Tnbinmng[chs 1, chs 2]V d#:

    X[1,1]:=12.5;X[2,1]:=X[1,1]+15;Y[a,1]:=Tran Thi Mai;

    nhp d liu cho mt mng hai chiu, ta phi dng hai vng l&p duyt theohai chs, ch4ng hn mun nhp d liu cho mng X, ta vit:

    For i:=1 to 2 doFor j:=1 to 3 do

    beginWrite(nhp phn t hng , i, ct , j , : );Readln(X[i, j]);

    end;Tng t, lnh nhp d liu cho mng Y c vit l:For ch:=a to c doFor j:=1 to 3 do

    beginWrite(nhp phn t hng , ch , ct , j , : );Readln(X[ch, j]);

    end;trong ch l bin kiu k t, cn i v j l cc bin nguyn.

    in mng X ln mn hnh, trnh by ging nh cch vit ma trn, mi hngin trn mt dng, ta dng lnh :

    For i:=1 to 2 dobegin

    For j:=1 to 3 do write(X[i, j]:3:1); { in hng thi}

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    44/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 44

    Writeln; { xung dng, chun bin hng tip theo}end;

    3.4. Cc v dv ma trnV ma trn l mng mt chiu ca cc mng mt chiu nn nhiu bi v mng

    c m rng t nhin cho ma trn.V d# 1: Tnh t%ng ca hai ma trnNhp vo hai ma trn A, B cp NxM. Tnh ma trn C l tng ca hai ma trn A

    v B, in ma trn C ln mn hnh.Cng th)c tnh cc phn t ca ma trn C= A+B :C[i,j ] = A[i, j] + B[i, j] vi i=1,..., N, v j=1,..., M

    Chng trnh nh sau:PROGRAM Tong_hai_ma_tran;Uses CRT;VarA, B, C : Array[1..10, 1..10] of Real;

    i, j , N, M : Integer;BeginClrscr;RepeatWrite(Nhp s hng N, s ct M : ); Readln(N, M);

    Until ( N>0) and ( N0) and (M

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    45/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 45

    Writeln;end;

    { In ma trn C ln mn hnh }Writeln( Ma tran C la :);For i:=1 to N do

    beginFor j:=1 to M do write(C[i, j]:3:0);Writeln;

    end;Readln;

    End.

    V d# 2: Tm s ln nht (s nh" nht) trong ma trn A:Gi s A l ma trn N hng, M ct, v Max l bin ch)a s ln nht phi tm.

    Khi u ta gn A[1,1] cho Max, sau duyt tt c cc phn t ca ma trn,nu phn t no ln hn Max th lu n vo Max, t)c l:

    Max:=A[1,1];For i:=1 to N doFor j:=1 to M do

    if Max< A[i, j] then Max:=A[i, j];Writeln( S ln nht l , Max);

    V d# 3: Tm s ln nht (hay s nh" nht) trong tng hng (hay tng ct) cama trn A:

    Hng i ca ma trn A c dng :A[i,1], A[i,2], ..., A[i,M]Nu xem i l cnh th l mng mt chiu c M phn t, nn s ln nht

    ca hng i c tm bng cc lnh:Max:=A[i, 1];For j:=1 to M do

    if Max< A[i, j] then Max:=A[i, j];Writeln(Sln ca hng , i, l: , Max) ;V c c thy N hng nn cng vic trn phi lm N ln )ng vi i=1, 2, ..., N,

    t)c l:For i:=1 to N do

    begin { tm s ln nht ca hng i }Max:=A[i, 1];For j:=1 to M doif Max< A[i, j] then Max:=A[i, j];

    Writeln(Sln ca hng , i, l: , Max) ;end;

    V d# 4: Kim tra ma trn vung A ci xng khng ?.Ma trn vung A gi l i x)ng nu n khng thay i khi ta i ct thnh

    hng v i hng thnh ct.Hai ma trn A,B : A l i x)ng, cnB khng i x)ng v B[1,2] B[2,1].

    Chcn c mt c&p i, j sao cho

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    46/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 46

    A[i,j]A[j,i] th A l ma trn khng i x)ng.Vy cc lnh kim tra tnh i x)ng ca ma trn A l:Kiemtra := TRUE;For i:=1 to N doFor j:=1 to N do

    if A[i, j]A[j, i] then Kiemtra:=FALSE ;If Kiemtra=TRUE then writeln( i x)ng )else

    writeln( Khng i x)ng );V d# chng trnh ma trn c# th thc hin cc cng vic trn:PROGRAM Matran;Uses CRT;Type

    Matran = Array[1..10, 1..10] of Real;VarA : Matran;

    i, j , N, Dem : Integer;Max, Min : Real;Kiemtra: Boolean;

    BeginClrscr;Repeat

    Write(Nhp cp N : ); Readln(N);Until ( N>0) and ( N

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    47/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 47

    Writeln( S ln nht ca ma trn= , Max : 4:1);{ Tm s nh nht trong tng hng ca ma trn }For i:=1 to N dobeginMin:=A[i,1];

    For j:=1 to N do if Min > A[i,j] then Min:=A[i,j];Writeln( S nh nht ca hng , i , l: , Min : 4:1);end;

    { Kim tra ma trn c i x)ng khng}Kiemtra:=True;For i:=1 to N doFor j:=1 to i-1 doif A[i ,j]A[j ,i] then Kiemtra:=False;

    If Kiemtra=True then Writeln( i x)ng)elseWriteln( Khng i x)ng) ;

    Readln;End.III D liu kiu chu*i k t

    1. Khi nim- Chui l mt dy k tc ro trong 2 du nhy n.

    V d# : Ngon ngu PascalTin hoc 199812345678

    - Chui khng c k t no (chgm hai du nhy n lin tip) gi lchui rng.

    - S k t c trong chui gi l dica chui. Chui ABCD c di4, chui Pascal c di l 6. Chui rng c di bng khng.2 Cch khai bo

    2.1 Khai bo kiu dliuType

    Tn chui = String[N];Tn chui =String;

    Trong N l mt hng nguyn (0

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    48/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 48

    St2:Chuoiso;Ghi ch : Tng t nh mng , TP cho php khai bo trc tip bin chui. Cchkhai bo nh sau:

    VarTnbinchui : String[N] ;

    Tnbinchui : String ;VarSt : String[17];Diachi : String;

    Khi St l bin chui c di ti a l 17 k t, cn bin Diachi c diti a l 255 k t.

    3. Truy nhp vo t'ng ph!n t ca chu*iGing nh mng, mi phn t ca chui c truy nhp thng qua tn chui

    v chs ca phn t.Gi N =Length(St), khi k t th) i (i=1, 2, ..., N) ca St c k hiu l St[i].

    V d#, cho :St :=ABC;th N=3 v St[1]=A, St[2]=B, St[3]=C.

    Nh vy mi k t St[i] c dng nh mt bin kiu k t, v chui c thxem l mt mng cc k t. Ch4ng hn in chui ta c th in tng k t nhsau:

    For i:=1 to Length(St) do write(St[i]);iu ny cho thy chui l mt kiu d liu c tnh cu trc.Nhng m&t khc, mi chui li c th xem l mt ga tr duy nht, v c th

    nhp v in chui trc tip bng cc lnh:Readln(St);Write(St);&c im ny cho thy chui cn l mt kiu d liu c tnh n gin.

    4. Cc php tan trn chu*i :-Php cng (ni) chui:

    Khi cng hai chui, ta c mt chui mi gm cc k t ca hai chui ban ughp li.V d# :

    tin + hoc =tinhoc1234+ 5678 = 12345678

    -Php so snh chui:Khi so snh hai chui, ta so snh tng c&p k t ca hai chui t tri qua

    phi. Nu pht hin ra mt c&p k t khc nhau th chui no ch)a k t nhhn s" nh hn. V d#:

    Hong > Han v o > athanh > thao v n > o

    Nu so snh ht chiu di ca chui ng*n hn m khng c c&p no khc nhauth chui ng*n hn s" nh hn, v d#:

    an < anhchu < chung

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    49/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 49

    Hai chui bng nhau khi chng cng di v cc k t cc v tr tng)ng th bng nhau.5. Cc hm lin quan n chu*i :

    +Hm Length(St): cho di ca chui St.V d#: Length(ABCD)=4 v chui ABCD c 4 k t.

    Chui rng c di bng 0.+Hm Pos(S, St):Cho v tr u tin tm thy chui S trong chui St, nu khng tm thy th

    hm cho kt qa bng 0.V d#:

    Pos(Ab, cdAb3Abm) = 3,Pos(Ab, 1bA3b) = 0.

    +Hm Copy(St, k, m) :cho m k t ca St tnh t v tr k.V d#: Copy (ABCDEF, 4, 2) =DE.

    Nu k> Length(St) th kt qa s" l mt chui rngNu m> s k t)ng sau k t v tr k th hm Copy chly cc k t t v tr k

    n ht chiu di ca St, v d# :Copy (ABCD, 3, 10) = CD+Hm Concat( St1, St2, ..., Stn) :

    Ghp ni cc chui St1, St2, ..., Stn theo th) t thnh mt chui duy nht.Vy :

    Concat( St1, St2, ..., Stn) = St1+St2+...+Stn.6. Cc th tc lin quan n chu*i :

    + Thtc Delete(St, k, m) :Xa m k t trong bin chui St b*t u t v tr th) k. V d#, sau khi thc

    hin cc lnh:St:= TurboPascal;Delete(St, 1, 5);

    th ga tr ca St=Pascal v 5 k tu b xa.Nu k > Length(St) th khng xa g c.Nu m > s k t)ng sau k t v tr k th xa ht t v tr k n cui chui.V d#, sau khi thc hin ba lnh :

    St:=Turbo Pascal;Delete(St, 10, 20);Write(St);

    th in ra ch Turbo Pas v St b xa i 3 k t cui nn chcn St=Turbo Pas.+Thtc Insert(S, St, k) :

    Chn chui S vo bin chui St ti v tr k. V d#, cho :St:=ABCD;

    Sau khi thc hin lnh:Insert(**, St, 3);

    th St b bin i thnh St=AB**CD.Nu k> Length(St) th S c ni vo cui ca St. V d#, sau khi thc hin hailnh :

    St:=XYZ;

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    50/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 50

    Insert(ABC, St, 6);th St=XYZABC.

    +Thtc Str(x, St):Bin i s nguyn hay thc x thnh kiu chui v gn cho bin chui St.V d#, sau khi thc hin lnh :

    Str(4752, St);th kt qa l St= 4752.S x c thc nh dng nh khi in ra mn hnh.

    Lnh Str(4752 : 6, St);cho kt qa St= 4752 (trc s 4752 c 2 k t!trng) .Nu x l bin thc v ga tr ca x=34.95 th lnh :

    Str(x :7:3, St);cho kt qa St= 34.950 (trc s 34.950 c 1 k t!trng) .

    +Thtc Val(St, x, k ):Bin i chui s St thnh s nguyn hay thc v gn cho bin nguyn hay thcx. S nguyn k dng pht hin li: nu i c th k=0, ngc li, ga tr ca

    k l v tr c li trong chui St.V d#, cho ba bin n, k, j kiu nguyn v bin x kiu thc, sau khi thc hin cclnh :

    St:=385;Val(St, n, j);Val(12.59, x, k);

    th n=385, j=0, x=12.59 v k=0.Nu gn St := 3a7; v thc hin lnh:

    Val(St, n, k);th ga tr ca n khng xc nh cn k=2 l v tr ca ch a trong chui St, ti khng i ra sc.3.8. Cc v dv chuiV d# 1: %i mt chui ra chhoa hay chthng.

    i c chui St thnh ch hoa, ta i tng k t ca chui ra ch hoa, t)cl :For i:=1 to Length(St) do St[i]:=Upcase(St[i]);Tng t, i c chui St thnh ch th!ng, ta c(ng i tng k t ca chuiSt ra ch th!ng:For i:=1 to Length(St) do

    if ( St[i]>=A) and (St[i]

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    51/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 51

    Di'n gii: chng no k tu tin ca St v'n cn l k t tr*ng th c) xa ni cho n khi k tu tin l khc tr*ng.

    S d%phi dng vng l&p While l v s k t tr*ng u chui l khng bittrc.b) Xa cc k t!trng&cui chui:

    Tng t, mun xa tt c cc k t tr*ng cui ca chui St, ta dng lnh:While St[ length(St) ]= #32 do Delete(St, length(St), 1);Di'n gii: chng no k t cui cng ca St cn l khong tr*ng th c) xa n

    i cho n khi k t cui cng l khc tr*ng.c) Xa cc k t!trng tha&gia hai ttrong chui:

    Mun xa cc k t tr*ng tha gia hai t chcn ng mt k t tr*ng talm nh sau: tm trong St ch no c hai k t tr*ng th xa i mt, v l&p lithao tc trn cho n khi trong St khng cn ch no c hai k t tr*ng lin tip.T)c l :

    k:=Pos( , St); { l 2 k t!trng}While k > 0 do

    beginDelete(St, k, 1);k:=Pos( , St);

    end;V d# 3 :+m trong chui St c bao nhiu chpascal.

    V ch pascal c 6 k t, nn ta so snh tng c#m 6 k t ca St vi chuipascal, b*t u t v tr 1:

    Dem:=0;For i:=1 to Length(St) do

    if Copy (St, i, 6) =pascal then Inc(Dem);Writeln( S ch pascal l , Dem);

    V d# 4: Tm kim v thay th.Tm trong chui St xem c ch)a ch basic khng, nu c th thay bng ch

    pascal, nu khng c th in cu khng c. V d# St=ngon ngu basic, sau khithay th ta c St = ngon ngu pascal.

    Ta dng hm Pos tm xem trong St c ch)a ch basic khng. Th t#cDelete s" xa chui basic khi St, v th t#c Insert s" chn chui pascal voSt ti v tr ang xt:

    PROGRAM Tim_va_thay_the ; { Tm chbasic v thay b$ng chpascal}VarSt: String;k: Integer;

    BeginWrite( Nhp chui St :); Readln(St);k:= Pos(basic , St);If k> 0 thenbeginDelete(St, k, 5); { xa chbasic}Insert(pascal , St, k); { chn chpascal}Writeln( St = , St);

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    52/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 52

    endelseWriteln( St, khng c ch basic ) ;

    Readln;End.

    V d# 5: Tnh tng cc bnh phng ca cc ch s ca mt s t nhin N.V d# N= 325 th T=32+22+52 = 38.PROGRAM TongBinhPhuong ;{ Tnh t%ng cc bnh phng cc chs ca s N}VarN, T : Longint;i, j , k : Integer;St : String[40];

    BeginWrite(Nhp s N : ); Readln(N);Str( N, St ); { %i s N ra chui g&i vo St}

    T:=0;For i:=1 to Length(St) dobeginVal ( St[i], j, k ); {%i St[i] ra s g&i vo j}T:=T+ j*j;

    end;Writeln( Tng= , T);Readln;

    End.IV.D liu kiu tp h/p1. Khai bo kiu tp h/p

    Kiu tp hp l kiu d liu bao gm cc phn t c chung mt kiu d liu,gi l kiu c bn. Kiu c bn phi l kiu v hng m c, t)c chc thl kiu byte, k t , lgic hay lit k. S phn t ca tp hp ti a l 256 phnt.

    Cch khai boTYPE

    Kky_tu = SET OF Char;Kchu_hoa = SET OF A.. Z;Kso = SET OF Byte;

    VarTapA, TapB : Kky_tu;

    TapH: Kchu_hoa;TapS : Kso;

    Cc tp hp TapA, TapB, TapH, TapS ni trn c(ng c th khai bo trctip nh sau:

    VarTapA, TapB : SET OF Char;TapH : SET OF A.. Z;TapS : SET OF Byte;

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    53/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 53

    2. Xc nh m$t tp h/pMt tp hp c xc nh bng cch lit k cc phn t ca n, cc phn

    tc phn cch nhau bi du ph/y, v &t gia hai du ngo&c vung.[ ] : tp rng[3..6] : tp cc s nguyn 4, 3, 5, 6

    [3..6, 9, 12] : tp cc s nguyn 3, 4, 5, 6, 9, 12[A..C, X, Z] : tp cc ch A, B, C, X, Z3. Cc php trn tp h/p3.1Php gn:

    C th gn mt tp hp cho mt bin tp hp cng kiu. V d#, vi cc binkhai bo trn, c th gn:

    TapA:=[1..5, 9, A];TapH:=[C..F];TapS:=[15..20, 30, 40];Tp rng [ ] gn cho bin tp hp kiu no c(ng c :TapA:=[ ];

    TapH:= [ ];Lnh gn di y l sai v hai v khng cng kiu d liu:TapA:=[1..8];TapS:=[1..9];

    3.2Php hp:Hp ca hai tp hp A v B, k hiu l A+B, l mt tp hp gm cc phn t

    ho&c thuc tp A ho&c thuc tp B. V d#:[3..5]+[4..6,10, 15]=[ 3..6, 10, 15]

    3.3Php giaoGiao ca hai tp hp A v B, k hiu l A*B, l mt tp hp gm cc phn t

    ng th!i thuc A v B.V d#:

    [1..10]*[5..15] =[5..10]3.4Php hiuHiu ca hai tp hp A v B, k hiu l A-B, l mt tp hp gm cc phn tthuc tp A nhng khng thuc tp B. V d#:

    [1..10] - [5..15] =[1..4]Nhn xt: Cc php trn ch#th!c hinc khi A v B cng kiu, v kt qa lmt tp hp C cng kiu vi A v B.

    3.5Php thIN (thuc v) :Dng kim tra xem mt bin hay mt ga tr c phi l phn t ca mt tphp no khng.Biu th)c x IN TapA cho kt qa l True nu ga tr x thuc TapA, cho ga trFalse trong tr!ng hp ngc li.V d :

    N IN [N, n] cho kt qa l TRUEy IN [N, n] cho kt qa l FALSE

    3.6 Cc php so snh (=, , =) :Cho A v B l hai tp hp cng kiu, kt qa ca cc php so snh A vi

    B s" l TRUE ho&c FALSE.

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    54/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 54

    -Php b$ng:A=B khi v chkhi mi phn t ca A u thuc B v mi phnt ca B u thuc A, trong tr!ng hp ngc li, ta ni A khc B v vit AB.

    V d#:[3,2,4,5]= [2, 3..5][A, B][a,B]

    -Php nh" hn hoc b$ng: A=[A..D]

    Ch rng trong cc tp hp khng c php so snh nh hn (). Khi cn so snh ln hn hay nh hn ta c th vit:

    If (A=B) and ( AB) then writeln(A > B);4. Cc v d :V d 1:

    Nhp vo mt chui St , cho bit trong St c nhng ch hoa no. V d#St=ABc3BAFdzA th c cc ch hoa l A, B, F.PROGRAM InChuHoa;

    VarTaphoa : Set of A..Z;N, i: byte;ch : char;St : String;

    BeginWrite( Nhp chui St: );Readln(St);

    Taphoa:=[];N:=length(St);

    For i:=1 to N doif St[i] IN [A..Z] then Taphoa := Taphoa+[ St[i] ];

    Writeln( Cac chu hoa co trong St la :);For ch:=A to Z do if ch IN Taphoa then write(ch:3);Readln;

    End.V d 2:

    Nhp N s nguyn trong phm vi t 0 n 255. In ra cc tp s ch1n, l0v cho bit c bao nhiu s ch1n, bao nhiu s l0 (cc s trng nhau chk 1ln). V d#, nhp 9 s : 1, 2, 3, 4, 1, 2, 3, 4, 5 th c hai s ch1n l 2 v 4 v c 3s l0 l 1, 3, 5.PROGRAM InsoChanLe;

    ConstN=10;

    Var

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    55/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 55

    Tapchan, Taple : Set of byte;N1, N2, i, k: byte;

    BeginTapchan:=[];Taple:=[];

    For i:=1 to N dobeginWrite(Nhap so thu , i, : );Readln(k);If odd(k)=False then Tapchan:=Tapchan+[k]else Taple:=Taple+[k];

    end;writeln( Cc s ch1n l: );N1:=0;For i:=0 to (255 div 2) do

    if 2*i IN Tapchan then

    beginWrite(2*i : 3);N1:=N1+1;

    end;Writeln( Co , N1, s ch1n);Writeln( Cc s l0 l: );N2:=0;For i:=0 to (255 div 2) do

    if (2*i +1) IN Taple thenbegin

    Write(2*i+1 : 3);N2:=N2+1;

    end;writeln( Co , N2, s l0);Readln;End.

    V d# 3:Tm cc s nguyn t < = cc s nguyn dng N cho trc.C nhiu cch gii khc nhau, di y gii thiu phng php ca

    Eratosthene, s d#ng d liu kiu tp hp v khng cn n cc php nhn.Xut pht t tp s nguyn S=[2..N] ta loi ra s nguyn tu tin v tt

    c cc bi s ca n ra khi S, l&p li qu trnh trn cho n khi S thnh tprng.PROGRAM InsoNguyento;

    ConstN=20;

    VarTapsnt, S: Set of 1..N;snt, i: Integer;

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    56/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 56

    BeginS:=[2..N];Tapsnt:=[];snt:=2; { so nguyen to nho nhat }Writeln( Cac so nguyen to la : );

    Repeat{ tim snt la so nho nhat trong S}While Not (snt IN S) do snt:=snt+1;Tapsnt:= Tapsnt+[snt]; { dua vao Tapsnt }Write(snt:4);{ Loi cc bi ca snt ra khi S }i:=snt;While i

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    57/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 57

    ...Tntr!ngn : Kiudliun;

    End;V d# 1: Ta nh ngh%a mt kiu KSVIEN nh sau:

    TYPE

    KSVIEN = RECORDHoten:String[20];Maso : String[8];Toan, Ly, DTB: Real;

    End;Theo m t trn, ta c mt kiu d liu mi &t tn l KSVIEN c cu trc bn

    ghi gm 5 tr!ng (thuc tnh) l:

    V d# 2:Ta m t th!i gian l kiu KDATE c ba tr!ng ngy , thng, nm nh sau:TYPE

    KDATE = RECORDNgay : 1..31;

    Thang : 1..12;Nam : Integer;End;

    3. Khai bo bin bn ghiKiu bn ghi sau khi c nh ngh%a c th dng khai bo cho cc bin

    theo cch sauVAR

    Tn bin : Kiu bn ghi;

    V d# :Var

    X, Y, Z : KSVIEN;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 tr!ng Hoten, Maso, Toan, Ly v DTB.4.Cc php thm nhp vo bin bn ghi thm nhp vo mt tr!ng ca bn ghi ta thc hin nh sau :Tnbin .Tntrng

    V d# : Cc lnh di y gn ga tr cho tng tr!ng ca bin X :

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    58/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 58

    X.Hoten :=Nguyen Van An;X.Maso :=1973208;X.Toan :=8.0;X.Ly :=7.0;X.DTB :=(X.Toan+X.Ly)/2;

    nhp d liu cho tr!ng Hoten ca bin Y, ta vit:Write(Nhap ho ten sinh vien Y : ); Readln(Y.Hoten);5. Cu lnh WITHKhi lm vic vi nhiu tr!ng ca mt bin bn ghi th cch thm nhp trn

    t ra r!m r v phi vit nhiu ln tn bin trc tn tr!ng.n gin cch vit, Pascal a ra cu lnh :

    WITH Tnbin DO Lnh;Tn bin thuc kiu bn ghi.Nu Lnh c truy xut n cc tr!ng ca Tn bin th khng cn phi vit

    Tn bin v du chm trc cc tn tr!ng.V d#, thay v vit:

    X.Hoten:= Nguyen Van An;ta c th vit :WITH X DO Hoten:= Nguyen Van An;

    in cc tr!ng ca bin X ln mn hnh, ta vit:WITH X DO

    BeginWriteln( H v tn : , Hoten);Writeln( M s sinh vin : , Maso);Writeln( im : , Toan: 4:1);Writeln( im L : , Ly: 4:1);Writeln( im trung bnh : , DTB :4:1);

    End;Tt c cc tn tr!ng nm trong khi begin v end c hiu l cc tr!ng

    ca bin X (nu khng ghi r tn bin no khc).Cc lnh sau gn cc ga tr cho cc tr!ng ca bin S kiu KSACH l mt

    bn ghi lng nhau:WITH S DO

    beginMa_so_sach:=TH-435;Ten_doc_gia:=Nguyen van Mai;Nam_xban :=1999;Gia_tien:= 15000;WITH Ngay_muon DO

    beginNgay:=2;Thang:=9;Nam:=1999;

    end;end;

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    59/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 59

    6. Mng cc bn ghiTrong thc t, ta th!ng 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 cdng rt ph bin.V d# : Chng trnh qun l im ca mt lp hc

    PROGRAM Quanlyhocsinh;TYPEKSVIEN = RECORD

    Hoten:String[20];Maso : String[8];Toan, Ly, DTB: Real;

    End;

    KMang = Array[1..50] of KSVIEN;VAR

    DS: KMang; Z: KSVIEN;

    I,j :Integer;Begin.For i:=1 to 10 do

    WITH DS[i] DObegin

    Write(Nhap ho ten sinh vien thu ,i, : ); Readln(Hoten);Write(Nhap ma so sinh vien thu ,i, : ); Readln(Maso);Write(Nhap im Toan, Ly sinh vien thu ,i, : );Readln(Toan, Ly);DTB:=(Toan + Ly)/2;

    end;{Sp xp danh sch theo DTB }For i:=1 to 9 do

    For j:=i+1 to 10 doIf DS[i].DTB < DS[j].DTB thenbegin { %i ch DS[i] v DS[j]}

    Z:=DS[i];DS[i]:=DS[j];DS[j]:=Z;

    end;{In danh sach len man hinh }For i:=1 to 10 do WITH DS[i] DO

    Writeln( i:2, Hoten:25, Maso:9 , Toan:5:1, Ly:5:1, DTB:5:1);Readln;End.

    VI. D liu kiu tp tin1. Khi nim :

    Nhp v xut d liu l hai cng vic rt ph bin khi thc hin mt chngtrnh. Cho n nay, ta mi chnhp d liu t bn phm v xut d liu ra mn

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    60/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 60

    hnh. Cc d liu ny c t ch)c trong b nh ca my, chng tn ti khichng trnh ang chy v b xa khi chng trnh kt thc. Mun lu tr ccd liu lu di s d#ng nhiu ln th phi ghi chng ln %a thnh cc tp tin.

    Tp tin (file) trong Pascal l mt kiu d liu c cu trc. Mi tp tin l mttp 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.Di y s" trnh by hai loi tp tin th!ng g&p l tp tin c nh kiu vtp tin vn bn.2. Tp tin c nh kiu

    Tp tin m cc phn t ca n c cng mt kiu d liu gi l tp tin cnh 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...) ho&c kiu c cu trc ( mng, bn ghi).

    2.1 Cch khai bo kiu tp tin nhsauType

    TnkiuTtin = File of Kiuphnt ;V d#:

    Type Ksvien = RecordTen: String[20];Namsinh : Integer;DTB : Real;

    end;KieuT1 = File of Integer;KieuT2 = File of String[20];KieuT3 = File of Ksvien ;

    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 ltp tin c cc phn t l cc bn ghi kiu Ksvien.

    2.2 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 ga tr nh cc bin nguyn, thc hay chui. Mi bin ny i din cho mttp tin m thng qua cc bin ta c th thc hin cc thao tc trn tp tinnh: to tp tin, m, ng, xa tp tin, ghi d liu vo tp tin v c d liu ttp tin, ...2.3 Cch khai bo trc tip cc bin tp tin nhsau:

    VarTnbinTtin : File of Kiuphnt ;

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

    Ksvien = RecordTen: String[20];Namsinh : Integer;

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    61/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 61

    DTB : Real;end;

    VarF1 : File of Integer;F2 : File of String[20];

    F3 : File of Ksvien ;2.4. Cc thtc chun:a) Th tc ASSIGN( bintptin, tntptin)

    Gn tn tp tin cho bin tp tin. .y tn tp tin l mt biu th)c kiuchui l tn thc s ca tp tin.V d# :

    Assign(F1, DLIEU.DAT);Assign(F3, QLSV.DAT);

    b) Th tc REWRITE( bintptin)Khi to tp tin mi, nu tp tin c trn %a th n xa i v to mi.

    V d# :

    Rewrite(F1) ; khi to tp tin DLIEU.DATRewrite(F3) ; khi to tp tin QLSV.DATc) Th tc RESET(bintptin)M tp tin c s d#ng. Con tr tp tin tr vo phn tu tin (c s th)t l 0) ca tp tin .V d# : Reset ( F3); m tp tin QLSV.DATd) Th tc WRITE( bintptin, b1, b2, ..., bN)Tun t ghi vo tp tin cc ga tr ca cc bin b1, b2, ..., bN. Cc bin b1, ..., bNphi cng kiu d liu vi cc phn t ca tp tin.V d#:- Cho i, j, k l cc bin kiu Integer v i=10, j=20, k=100, khi lnh :

    Write(F1, i, j, k ) ;s" ghi ln lt cc ga tr 10, 20, 100 vo tp tin DLIEU.DAT-Cho khai bo:

    VarX : Ksvien;

    Cc lnh sau gn ga tr cho X v ghi X vo tp tin QLSV.DAT:X.Ten:=Ng Van An;X.Namsinh :=1980 ;X.DTB :=6.5;Write(F3, X);

    Sau khi ghi X vo tp tin QLSV.DAT, con tr tp tin tng d!i n v trca phn t tip theo.e) Th tc READ( bintptin, b1, b2, ..., bN) :

    c tun t cc phn t ca tp tin t v tr hin th!i ca con tr tp tin vgn cho cc bin b1, b2, ..., bN. Kiu d liu ca cc bin b1, b2, ..., bN phicng kiu vi cc phn t ca tp tin. Mi khi c xong mt phn t, con tr tptin tng d!i n phn t tip theo.V d#:

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    62/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 62

    Lnh Read(F1, i, j); c hai s nguyn trong tp tin DLIEU.DAT ( k t v tr hinth!i) v gn cho cc bin nguyn i, j .Lnh Read(F3, X); c bn ghi hin th!i ca tp tin QLSV.DAT v gn cho binbn ghi X.f) Th tc CLOSE( bintptin) : ng tp tin

    g) Th tc SEEK( bintptin, k ) :&t con tr tp tin vo phn t th) k trong tp tin. Th t#c ny cho phptruy xut trc tip mt phn t ca tp tin m khng phi thc hin tun t tu tp tin.

    V d#: c phn t th) 10 ca tp tin DLIEU.DAT v gn cho binnguyn i ri in ga tr ca i :

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

    h) Th tc ERASE( bintptin) : Xa tp tin trnai) Th tc RENAME( bintptin, tnmi ) : %i tn tp tin.

    Yu cu l tp tin phiangng th mixa hayi tnc.2.5. Cc hm chun:a) Hm EOF(bintptin)Cho kt qa True khi con tr tp tin ang cui tp, trong cc tr!ng hp khchm cho ga tr False.b) Hm FILESIZE(bintptin)Cho s phn t ca tp tin. Nu tp tin rng th s phn t bng 0.c) Hm FILEPOS(bintptin)Cho v tr hin th!i ca con tr tp tin. Phn tu tin c s th) t l 0. Phnt cui cng c s th) t bng FileSize -1.

    V d# : Ghi s 100 vo cui tp tin DLIEU.DAT, dng cc lnh:i:=100;Seek( F1, FileSize(F1) ) ; {&t tr vo cui tp tin}Write(F1, i); { Ghi ga tr ca i vo cui tp}

    V d 1:Nhp mt danh sch sinh vin gm H tn, im , 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 tr*ng.PROGRAM InDanhSachSinhvien;Uses CRT;Const Tenttin = HOSO.DAT;Type

    Ksvien= RecordHoten: String[20];Toan, Ly, Dtb : Real;

    end;KieuTtin = File of Ksvien ;

    VarF : KieuTtin ;X : Ksvien ;

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    63/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 63

    i: Integer;Procedure Hienthi ( Var F : KieuTtin);begin

    Clrscr;Writeln(#32 :5, H9 V TN, #32:6 ,

    TON~~~L~~~~DTB);Reset(F);While Not Eof(F) do

    beginRead(F, X);Writeln(X.Hoten, #32:20-Length(X.Hoten),X.Toan:4:1,#32:3, X.Ly:4:1, #32:3, X.DTb:4:1);

    end;end; {Ht hin th}BEGIN

    Clrscr;

    Assign(F, TenTtin);Rewrite(F);i:=0;Repeat

    Clrscr;Gotoxy(10,4);Write( NH:P SINH VIN TH;?, i , : ( Enter kt thc) );With X do

    beginGotoxy(10,6); Write(Ho va ten:);Gotoxy(10,8); Write(iem Toan:);Gotoxy(10,10); Write(iem Ly :);Gotoxy(20,6); Readln(Hoten);If Hoten thenbegin

    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;

    END.Ch : Nu tham s trong chng trnh con l tp tin th n phi l tham s bin,khng th l tham s tr.

  • 7/30/2019 PASCAL - CHNG TRNH V THUT GII

    64/70

    Trng Cao ng KTKT Bnh Dng Bin son: V Bin

    Chng 5: Dliu c cu trc Trang 64

    3. Tp tin v0n bnTrong Pascal c mt kiu tp tin c nh ngh%a s1n, l kiu TEXT

    hay tp tin vn bn.3.1 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 tc ghi thnh tng dng c di khc nhau. Cc dng c phn cch nh! cc du kt thc dng ( End ofline). l hai k tiu khin CR ( Carriage return : nhy vu dng) v LF (Line feed: xung dng di). V d# , on vn bn sau :

    Tap tin van ban Text12345Het

    c ch)a trong tp tin vn bn thnh mt dy :

    Tap tin van ban Text CRLF 12345CRLF Het Eof

    Cc th t#c Assign, Rewrite, Reset, Write, Read, Close, Erase, Renameu dng c cho tp tin vn bn.

    3.2 Cc thtc dng trong File vn bna)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 thng th!i va ghi va c d liu nhtp tin c nh kiu.

    ghi d liu, trc tin phi khi to tp tin bng lnh Rewrite hay mtp tin v a tr v cui tp bng lnh Append. Sau ghi d liu vo tp tinbng th t#c Write hay Writeln.

    c d liu mt tp tin c, trc tin ta phi m tp tin bng lnhReset. Sau c d liu bng th t#c Read hay Readln.Nu m tp tin bng Rewrite ho&c Append th