You are on page 1of 23

Vietebooks Bi 1:

Nguyn Hong Cng

Cc hm v th tc trong Pascal Yu cu: Dng cc phm F1, Alt F1, Ctrl + F1 xem cu trc v cc thng s u vo ca tng lnh trong Pascal v ghi vo dng pha di ca cc cu lnh. V d: - Window To mt ca s mn hnh mi Procedure Window (X1,Y1,X2,Y2:Byte); Bn c th Copy cc v d ca Pascal v th chy n hiu r hn v cch s dng ca cc hm v cc th tc... I. Mt s Unit hay dng trong Pascal for DOS Khi s dng mt Unit no bn cn phi khai bo tn Unit sau t kho uses. Cc Unit c th c Pascal to trc hoc do chnh bn nh ngha. 1. Unit System: Khng phi khai bo sau t kho uses, n l th vin cha cc hng, binn th tc, hm xut, nhp, x l d liu, cp pht, qun l b nh. Cc th tc v hm trong Unit system: Cc th tc (Procedure): - Append M mt tp tin vn bn ghi - Reset M mt tp tin c c thm d liu. - ReWrite To mi v m tp tin. - Assign Gn tn mt tp tin ngoi tr vo - Read Gn gi tr cho mt hay nhiu bin bin tp tin. - Readln Gn gi tr cho mt hay nhiu bin - Close ng bin tp tin. - Str i gi tr kiu s sang dng chui - Exit Thot chng trnh hoc vng k t. lp. - Val i gi tr kiu chui sang dng s. - FillChar in mt s byte c gi tr vo - Write Xut d liu ra tp tin, mn hnh. mt bin. - Writeln Xut d liu ra tp tin, mn hnh. - Halt Kt thc ngang chng trnh. - Inc Tng gi tr mt bin. - Randomize Khi to ch to s ngu nhin. Cc hm (Function): - ABS Ly gi tr tuyt I - Arctang Ly gi tr Arctang ca mt gi tr lng gic. - Cos Ly gi tr lng gic Cosin ca mt gc. - Chr Ly k t trong bng m ASCII - Concat Ni cc chui. - Eof Kim tra trng thi kt thc ca tp tin. - Eoln Trng thi kt thc dng ca tp tin vn bn. - Exp Ly lu tha c s e ca mt s. - Length Ly chiu di ca mt chui - Ord Ly th t ca mt k t trong bn m ASCII. 2. Unit Crt: Trang 1 - Paramcount Tng s tham s truyn vo ca chng trnh. - ParamStr Ni dung ca tham s. - Pi Gi tr 3,1416... - Pos V tr ca mt chui con trong chui ln. - Random To mt s ngu nhin. - Round Lm trn mt s. - Sin Cho gi tr lng gic Sinus ca mt gc. - Sqr Bnh phng ca mt s - Sqrt Cn bc hai ca mt s. - Upcase i k t thng thnh k t in.

Vietebooks

Nguyn Hong Cng

L th vin cha cc hng, bin, th tc, hm dng xut d liu dng vn bn trn mn hnh, cc th tc c lin quan n m thanh. Unit Crt gm c: Cc hng lin quan n mu: Blank 0 Blue 1 Green 2 Syan 3 Red 4 Magenta 5 Brow 6 LightGray 7 DarkGray 8 LightRed 12 LightMagent 13 Yellow 14 White 15 Blink 128 Cc bin: Winmax: Word Gi tr nh di phi ca ca s. Winmin: Word Gi tr nh tri trn ca ca s. Cc hm v th tc: - Clrscr: Xo v t mu cho ca s hin ti - Delay: Dng chng trnh trong mt thi gian - Gotoxy: a con tr ti to mn hnh. - NoSound: Tt m thanh - Sound: Pht m thanh vi mt tn s. - Textbackground: nh mu nn. - Textcolor nh mu ch - Window To mt ca s mn hnh mi - Keypressed Kim tra nu c mt phm c nhn - ReadKey Ly gi tr ca mt ph m c bm - WhereX V tr ct ca con tr - WhereY V tr h ng ca con tr.

3. Unit Dos: L th vin cha cc hng, bin, th tc dng truy xut n cc tp tin trn a, truy xut b nh my tnh... Unit DOS gm c: - GetDate Ly ngy ca h thng my tnh - GetTime gi ca h thng my tnh - SetDate t li ngy cho my tnh - SetTime t cho my tnh - DiskFree Cho s byte cn trng trn a - DiskSize Cho lng ca a. Ly li gi dung

4. Unit Graph: L th vin cha cc hng, bin, th tc, hm dng truy xut d liu ra mn hnh trong ch ho. Unit Graph gm c: - CloseGraph ng ch ho - DetectGraph Xc nh Card v Mode ho - Initgraph Khi to ch ho - GraphResult Kt qu khi ng ho - ClearDevice Xo mn hnh ho - SetViewport nh ca s trn mn hnh - ClearViewport Xo ca s to bi Viewport - GetMaxX Ly gi tr ln nht ca to X trong ch ho - GetMaxY Ly gi tr ln nht ca to Y trong ch ho - GetX Ly gi tr hin hnh ca to X trong ch ho - GetY Ly gi tr hin hnh ca to Y trong ch ho - Moveto Di chuyn co tr ti mt to mi - MoveRel Di chuyn con tr ngm nh n mt khong cch. - SetBkColor t mu nn trong ch ho - SetColor t mu v - GetBkColor Ly mu nn trong ch ho - GetColor Ly mu v - PutPixel V mt im nh ti to

Trang 2

Vietebooks - GetPixel Ly mu ca im nh ti to

Nguyn Hong Cng

* Cc kiu bin, hng, hm, th tc lin quan n cch vit ch trong ho: + Hng lin quan n Font ch: Const DefaultFont = 0; TriplexFont = 1; SmallFont = 2; SansSerifFont = 3; GothichFont = 4; + Hng lin quan n hng ch: Const HorizDir = 0 VertDir = 1 + Hng lin quan n ln ch: UserCharSize = 0; + Hng lin quan n cn chnh ch: CenterText = 1; LeftText = 0; RightText = 2; BottomText = 0; TopText = 2; + Cc th tc lin quan: - GetTextSettings - OutText - OutTextXY - SetTextJustify - SetTextStyle - TextHight - TextWidth Ly cch nh ch Vit mt chui ti to Vit mt chui ti to t cch cn chui t kiu ch Ly cao ca chui Ly rng ca chui

* Cc kiu bin, hng, th tc lin quan n v ng: + Hng lin quan n loi ng Const Solidln = 0; Dottedln = 1; CenterLn = 2; DashedLn = 3 + Cc th tc lin quan: - GetLineSettings - SetLineStyle - SetWritemode - Line - LineRel - LineTo - DrawPoly - Circle - Arc - Ellipse - Rectangle * Cc hng, bin, th - SetFillStyle - SetFillPattern - FloodFill - Bar - Bar3D Ly thng s thit k ng t kiu ng nh Mode v ng V mt on thng V on t v tr con tr cch mt on V on thng t v tr con tr n v tr mi V hnh a gic V ng trn V cung trn V cung Ellipse V hnh ch nht

tc lin quan n v hnh: t kiu t t mu t T mt vng V hnh ch nht c t V hnh khi ch nht 3 chiu

Trang 3

Vietebooks FillPoly PieSlice Sector FillEllipce V V V V a gic c t hnh qut Ellipse hnh r qut trn hnh Ellipce

Nguyn Hong Cng

* Cc th tc c bit: + Const: NormalPut = 0; CopyPut =0 XORPut = 1; ORPut = 2; ANDPut = 3 NOTPut = 4; + Th tc: - GetImage - PutImage - SetActivePage - SetVisualPage - ImageSize - Sector - FillEllipce Lu tr mt vng mn hnh V li vng mn hnh lu tr t tran v hot ng Dt trang hin th Ly ln vng mn hnh V hnh r qut trn V hnh Ellipce

* Cc th tc c bit: + Const: NormalPut = 0; CopyPut =0 XORPut = 1; ORPut = 2; ANDPut = 3 NOTPut = 4; + Th tc: - GetImage - PutImage - SetActivePage - SetVisualPage - ImageSize - Sector - FillEllipce Lu tr mt vng mn hnh V li vng mn hnh lu tr t tran v hot ng Dt trang hin th Ly ln vng mn hnh V hnh r qut trn V hnh Ellipce

II. Cu trc mt chng trnh vit bng Pascal Mt chng trnh my tnh l mt dy lnh nhm ch th, hng dn my tnh thc hin mt thao tc no , thc hin cc php tnh trn cc d liu. Cu trc chung nht ca Pascal gm 3 phn: 1. Phn tiu 2. Phn khai bo 3. Phn thn chng trnh Chng c quy nh bng c php sau: Program ...; t tn cho chng trnh Uses ...; Khai bo cc Unit s dng trong chng trnh Const ...; Khai bo cc hng s dng trong chng trnh Type ...; nh ngha cc kiu bin Var ...; Khai bo cc bin s dng trong chng trnh Procedure ...; Cc chng trnh con s dng trong chng trnh Function ...; Cc hm s dng trong chng trnh Begin Statement; Cc th tc v lnh End. Trang 4

Vietebooks

Nguyn Hong Cng

1. Phn tiu ca chng trnh: Bt u bng t kho PROGRAM tip l tn ca chng trnh do bn t ra (Tn chng trnh khng c k t trng). VD: Program Chao_Cac_Ban; 2. Phn khai bo: M t cc kiu d liu, cc bin, cc hng, cc chng trnh con ... USES Dng khai bo cc Unit (nu c), cc Unit cch nhau bi du phy (,), cui khai bo l du chm phy (;). VD: Uses Crt,Graph; Const T kho khai bo hng s VD: Const Max=40; TYPEDng khai bo cc kiu d liu do bn nh ngha Var Dng khai bo cc bin ca chng trnh VD: Var M,N:integer; ST:String; Functiong khai bo v trin khai hm t to do bn to ra. Procedure Khai bo trin khai chng trnh con do bn to ra. 3. Phn thn chng trnh: Gm hai t kho BEGIN v END bao cc lnh ca chng trnh. Sau t kho END l du chm (.) bo hiu chm dt chng trnh. Cc cu lnh trong phn thn chng trnh s c thc hin tun t, lnh no nm trc s c thc hin trc, lnh no nm sau s c thc hin sau. Bi 2 Khai bo bin cc kiu d liu chun 1. Khai bo bin: Bt k mt bin no khi s dng trong chng trnh u phi khai bo, vic khai bo bin gm hai phn: - Khai bo tn bin (tn bin do bn t). - Khai bo kiu d liu, l tn cc kiu d liu chun, d liu khng chun. Phn tn v phn d liu cch nhau bi du hai chm (:). Cc bin khai bo c bt u bng t kho Var , cc bin cng kiu cch nhau bng du phy (,), cc bin khc kiu cch nhau bng du chm phy (;). Var <Bin 1>, <Bin 2> : <Kiu 1>; <Bin 3> : <Kiu 2>; 2. Khai bo Hng v hng bin: Hng cng ging nh bin nhng trong ni dung ca hng s khng thay i trong qu trnh thc hin chng trnh. Vic khai bo hng bt u bng t kho Const Const <Hng> = <Gi tr>; Hng c gn thng mt gi tr m khng cn khai bo kiu. VD: N =20 Str = String; Trang 5

Vietebooks Thoat=True;

Nguyn Hong Cng

3. D liu kiu s: a. Cc php ton trn d liu kiu s nguyn: Trong Pascal nh ngha kiu s nguyn chun nh sau: Kiu (type) Phm vi (Range) ln ShortInt -128 ... 128 1 Byte Integer -32768 ... 32767 2 Byte LongInt -2147483648 ... 2147483647 4 Byte Byte 0 ... 255 1 Byte Word 0 ... 65535 2 Byte * Php ton s hc: Chc nng K hiu Php cng + Php tr Php nhn * Php chia nguyn Div Php ly phn d Mod Cc php ton ny tc ng nn kiu d liu s nguyn cho d liu kiu nguyn. * Hm, th tc trn d liu s nguyn: - PRED(x) Cho phn t ng trc x - SUCC(x) Cho ra phn t ng sau x - INC(x,r) Tng gi tr ca x nn r n v. Tng ng vi x:=x+r. - DEC(x,r) Gim gi tr ca x xung r n v. Tng ng vi x:=x-r. (Th tc INC(x), DEC(x) xem nh tng, gim x mt n v). * Php so snh Logic: Cc php so snh nh: Chc nng K hiu Bng nhau = Khc nhau <> Nh hn < Ln hn > Ln hn v bng >= Nh hn v bng <= tc ng ln kiu d liu nguyn cho d liu kiu Boolean c gi tr l ng (True) hoc sai (False). V d: Var a,b:Integer; Kiemtra:Boolean; Begin K t qu ca ph p g n Kiemtra:=a<b a:=10; s cho k t qu l True d li u ki u b:=20; Boolean v g n cho bi n Kiemtra. Kiemtra:=a<b; ... End. b. Kiu s thc: Trong Pascal nh ngha kiu s thc nh sau: Kiu (type) Phm vi (Range) ln 6 Byte Real 2.9e-39 ... 1.7e38 4 Byte Single 1.5e-47 ... 3.4e38 8 Byte Double 5e-324 ... 1.7e380 10 Byte Extended 3.4e-4932 ... 1.1e4932 8 Byte Comp -9.2e18 ... 9.2e18

Trang 6

Vietebooks

Nguyn Hong Cng

Ch : Mun dng kiu Single, Double, Extended, Comp phi i t SoftWare sang 8087/80287 trong menu Option/Compiler v my tnh phi trang b mch coprocessor 80287. * Cc php tnh trn d liu kiu s thc: + Php tnh ton hc: Chc nng K hiu Php cng + Php tr Php nhn * Php chia / Cc php tnh ny tc ng nn d liu kiu s thc v s nguyn cho d liu kiu s thc. Trong mt biu thc tnh nu cc s hng kiu s nguyn s t ng bin i kiu thnh s thc cc ton t trn thc hin php tnh. + Php so snh: S dng ging ht cc php so snh ca s nguyn. + Cc trn kiu s nguyn v thc: Hm Kiu tc ng Cho ra kiu Chc nng Round(x) Real LongInt Lm trn x Trunc(x) Real LongInt Ly phn nguyn Int(x) Real Real Ly phn nguyn Frac(x) Real Real Ly phn l ABS(x) Real/Nguyn Real/Nguyn Ly gi tr tuyt i Arctang Real/Nguyn Real Cho arctang ca x Cos(x) Real/Nguyn Real Cho Cosin ca x (tnh theo radian) Sin(x) Real/Nguyn Real Cho Sin ca x (tnh theo radian) Exp(x) Real/Nguyn Real Hm s m ca x theo c s e Pi Real Cho hng 3,1416.... Sqr(x) Real/Nguyn Real Bnh phng ca x Sqrt Real/Nguyn Real Cn bc 2 ca x Ln(x) Real/Nguyn Real Logarit Neper ca x 4. Kiu d liu Boolean: y l mt kiu m phm vi ch c hai gi tr l True v False Kiu (type) Phm vi (Range) ln Boolean True/False 1Byte * Gn mt gi tr kiu boolean bn c th gn mt gi tr hay kt qu ca mt biu thc logic cho mt bin kiu Boolean bng lnh gn: V d: Var Ketqua,thoat:Boolean; a,b:integer; Begin a:=10; b:=20; Thoat:=False;{gn gi tr False cho bin thoat} Ketqua:=a<b; {Biu thc so snh a<b cho gi tr True v th Ketqua c gi tr l True} .... * Cc php Logic trn d liu kiu Boolean: Cc php logic nh And, Or, Xor, Not tc ng ln d liu kiu Boolean cho kt qu nh sau: A B A And B A or B Not A A Xor B

Trang 7

Vietebooks True True False False Cc d liu kiu cu lnh lp

Nguyn Hong Cng True True True False False False False True False True True False True True True False False False True False Boolean thng c dng trong cc cu lnh c iu kin hoc cc

5. D liu kiu k t: a. Kiu Char: L mt kiu bin chim 1 byte b nh m phm vi l 256 k t trong bng m ACSII. b. Cc hm v th tc tc ng ln d liu kiu Char: - ord(ch:Char):Byte Cho s th t trong bng m ACSII ca k t ch - Chr(N:byte):Char Cho k t th N trong bng m ACSII. C th dng k kiu # m t k t N (VD: Chr(65) hoc #65 u cho k t A). - Pred(ch:char):char Cho k t ng trc k t Ch - Succ(ch:char):char Cho k t ng sau k t ch V d: Cho Ch v St l d liu kiu Char Ch:=C; St:=Prec(Ch); Kt qu St= B St:=Succ(Ch); Kt qu St= D - Upcase(Ch:Char):Char i ch thng thnh ch in V d: ch:=a; st:=Upcase(ch); Cho kt qu A Ch : Mun dng kiu Single, Double, Extended, Comp phi i t SoftWare sang 8087/80287 trong menu Option/Compiler v my tnh phi trang b mch coprocessor 80287. * Cc php tnh trn d liu kiu s thc: + Php tnh ton hc: Chc nng K hiu Php cng + Php tr Php nhn * Php chia / Cc php tnh ny tc ng nn d liu kiu s thc v s nguyn cho d liu kiu s thc. Trong mt biu thc tnh nu cc s hng kiu s nguyn s t ng bin i kiu thnh s thc cc ton t trn thc hin php tnh. + Php so snh: S dng ging ht cc php so snh ca s nguyn. + Cc trn kiu s nguyn v thc: Hm Round(x) Trunc(x) Int(x) Frac(x) ABS(x) Arctang Cos(x) radian) Sin(x) radian) Kiu tc ng Real Real Real Real Real/Nguyn Real/Nguyn Real/Nguyn Real/Nguyn Cho ra kiu LongInt LongInt Real Real Real/Nguyn Real Real Real Chc nng Lm trn x Ly phn nguyn Ly phn nguyn Ly phn l Ly gi tr tuyt i Cho arctang ca x Cho Cosin ca x (tnh theo Cho Sin ca x (tnh theo

Trang 8

Vietebooks Exp(x) Pi Sqr(x) Sqrt Ln(x) Real/Nguyn Real/Nguyn Real/Nguyn Real/Nguyn Real Real Real Real Real

Nguyn Hong Cng Hm s m ca x theo c s e Cho hng 3,1416.... Bnh phng ca x Cn bc 2 ca x Logarit Neper ca x

6. Cu trc cu lnh: Chng trnh ca Pascal l tp hp cc cu lnh tun t tun theo c php ca Pascal. l cc ch th cho my tnh thc hin, c ch th ny c my tnh thi hnh tun t cu lnh ghi trc s c thc hin trc, cu ghi sau s c thc hin sau. Mt cu lnh trong chng trnh Pascal c th l: - assignment(:=) Php gn - Procedure call Li gi mt chng trnh con - Begin ... End Khi cu lnh - if ... then ... else Cu lnh c iu kin - Case ... of ... else ... end Cu lnh r nhnh - Repeat ... Until Lnh lp Repeat - While ... do Lnh lp While - For ... to/downto ... do Lnh lp For - With ... do Cu lnh With a. Cu lnh n, cu lnh ghp: V phng din c php chng trnh ca Pascal c xem nh l mt tp hp lin tip cc lnh n. Cc cu lnh ny ch th cho my tnh thc hin mt thao tc no . Nu nh mt thao tc khng th m t qua mt cu lnh n m cn phi kt hp nhiu cu lnh n ghp li th cc cu lnh ghp ny c a v mt cu lnh n bng cch t tp hp cc lnh n trong cp t kho Begin ... End. b. Cu lnh gn: Dng gn gi tr hay kt qu ca mt biu thc hay ni dung ca mt bin cho mt bin. <Bin> := <Gi tr>; <Bin> := <Bin>; <Bin> := <Biu thc>; c. Li gi mt th tc: Cc th tc (Procedure) l cc chng trnh con. Cc chng trnh con ny do Turbo to ra hay do ngi lp trnh to ra vi mc ch ch th my tnh thc hin mt cng vic no . Cc th tc chun c Turbo t trong cc Unit, cc th tc do ngi lp trnh to ra c t trong chng trnh hoc trong cc Unit do ngi dng nh ngha. Cc th tc ny c mt tn. Trong chng trnh khi cn n chc nng no tng ng vi th tc th tn th tc t trong chng trnh coi nhi l mt lnh. Tu theo yu cu ca th tc m ln c tham i hay khng. Cc tham i c t trong du (). V d: Writeln l mt th tc trong Unit System ca Turbo Pascal lm chc nng xut cc tham i ra mn hnh. Trong chng trnh cn chc nng ny ta gi th tc: Writeln( Tong so l: ,S); Tong so l: v S l cc tham i ca lnh Writeln nh vy Writeln( Tong so l: ,S); l mt cu lnh n, l li gi mt th tc.

Trang 9

Vietebooks

Nguyn Hong Cng

Cc th tc do ngi lp trnh to ra phi khai bo ni dung ca th tc trong chng trnh hay khai bo tn. Nu cc th tc c t trong Unit do ngi lp trnh l bn to ra th bn phi khai bo nh sau: Unit Ctr, MyUnit; d. Cu lnh iu kin: Cu lnh iu kin l cu lnh lm cho chng trnh: - Chn la thc hin mt trong hai cu lnh - Thc hin hay khng mt cu lnh tu thuc vo iu kin bn a ra c tho mn hay khng. * Cu trc: + Lnh iu kin thiu: if <iu kin> then <lnh>; S dng khi ch thc hin mt lnh n if <iu kin> then Begin <Lnh1>; <Lnh 2>; ...... End; S dng khi thc hin nhiu lnh n. + Lnh iu kin : if <iu kin> then <lnh1> Else <lnh 2>; S dng khi ch thc hin mt lnh n if <iu kin> then Begin <Lnh1>; <Lnh 2>; ...... End Else Begin <Lnh1>; <Lnh 2>; ...... End;

S dng khi thc hin nhiu

lnh n. Ghi ch: Trc Else khng c du chm phy (;). Trong : * <iu kin> c th: - Mt bin kiu Boolean: V d: Nhp hai s, tm s nh nht. Thut ton gii c th nh sau: + Nhp s th nht; Nhp s th hai. + So snh s th nht v s th hai, nu s th nht <= s th hai th so snh l ng nu khng th sai. on chng trnh c th nh sau: Var a,b:Integer; Nho:Boolean; Begin Write(Nhap a:); Readln(a);

Trang 10

Vietebooks

Nguyn Hong Cng

Write(Nhap b:); Readln(b); Nho:=a<=b; If Nho then Writeln(So nho nhat laf a) Else Writeln(So nho nhat la b); Readln; End. - Kt hp cc biu thc logic thng qua cc php logic And, or, Xor, Not. Ghi ch: Nu trong iu kin c t hai cu lnh n tr nn bn cn phi t chng trong khi Begin...End; khi c th coi cc cu lnh n trong khi Begin ... End; l mt cu lnh n (c th gi l nhm cc cu lnh thnh mt cu lnh). e. Cu lnh r nhnh. Cu lnh r nhnh l cu lnh lm chng trnh thc hin vic chn la mt trong nhiu hnh ng thc hin. Cu trc: Case <Bin, biu thc> of <Gi tr 1>:<Lnh 1>; <Gi tr 2>:<Lnh 2>; .... Else <Lnh N>; End; Trong : - Bin, biu thc l mt bin hay biu thccho ra d liu ri rc, m c nh kiu Nguyn(Integer), Char, kiu lit k. Kiu Real khng dng lm bin iu khin r nhnh. - Gi tr phi cng kiu vi bin, cc gi tr trong cu lnh khng c trng nhau, cc gi tr trong mt trng hp cch nhau bi du phy (,). V d: Var Ch:char; Begin Write(Nhan mot phim:); Readln(ch); Case Ch of A..Z,a..z:Writeln(ban nhap mot ky tu); 0..9: Writeln(ban nhap mot so); else Writeln(Mot ky tu dac biet); Readln; End. f. Cu lnh lp For: Trong chng trnh lnh lp For lm chng trnh thc hin lp li mt s ln nht nh. Cu trc: For <Bin >:=<Gi tr u> to <gi tr cui> do <lnh>; For <Bin >:=<Gi tr u> Downto <gi tr cui> do <lnh>; Cu lnh For ch th my tnh thc hin <lnh> mt s ln nht nh t gi tr u n khi vt qua gi tr cui . Sau mi ln thc hin <lnh> th <Bin> s c tng hoc gim mt n v. V d: Lit k cc k t trong bng m ACSII Var i:byte; Begin

Trang 11

Vietebooks For i:=0 to 255 do Write(i:6,Chr(i):2); Readln; End.

Nguyn Hong Cng

g. Vng lp Repeat Cu lnh lp Repeat ... Until l lnh yu cu chng trnh lp li nhiu ln mt hnh ng cho n khi tho mn mt iu kin thot ra khi vng lp. Cu trc: Repeat <Lnh 1>; <Lnh 2>; .... Until <iu kin thot>; Lnh Repeat ... until lp l cc lnh cho ti khi <iu kin thot> cho kt qu True. V d: Tnh giai tha Var N,i:Integer; GT:LongInt; Begin Writeln(Tinh giai thua cua mot so nguyen); Write(Nhap N= voi N<17);Readln(N); GT:=1; i:=1; Repeat GT:=GT*i; i:=i+1; Until i>N; Writeln(N =,GT); Readln; End. Ton b cu trc repeat ... Until l mt cu lnh n do bn c th s dng Repeat l mt cu lnh n ca cu lnh khc. Hoc bn c th s dng nhiu cu knh Repeat ... Until lng nhau. g. Lnh lp While ... do Cu trc: While <iu kin> do <lnh>; Cu lnh While lp li <lnh> cho ti khi <iu kin> nhn gi tr sai (False). Bn thn <iu kin> l mt bc kim tra trc khi vo vng lp While. Nu tho mn <iu kin> th <lnh> c thc hin nu khng tho mn s b qua vng lp ny. Khc vi vng lp Repeat ... Until l cc lnh trong n t nht cng c thc hin mt ln. * Vng lp v tn v cch thot khi n: Vng lp While <iu kin> do <lnh> s lp li <lnh> v tn khi <iu kin> lung bng True. Cu trc: While True do <lnh>; Vng lp Repeat ... Until <iu kin> lp li v tn khi <iu kin> lung sai (False). Cu trc: Repeat ... Until False; Trong chng trnh khi mun thot ra khi vng lp v tn bn c th kt hp vi cu lnh iu kien kim tra khi no th cho php thot ra khi vng lp v tn. Thng s dng if <iu kin> then exit; hoc if <iu kin> then Halt;

Trang 12

Vietebooks

Nguyn Hong Cng

Bi 3 Mt s cch s dng v thut ton Yu cu: Phn tch tng dng lnh trong cc thut ton di y: I. S dng vng For: 1. Dng mn hnh khi s dng qu 25: Var i:byte Begin for i:=0 to 200 do if (i+1) mod 24 = 0 then Begin Writeln(Nhan Enter de tiep tuc ...); Readln; end else writeln(Dong: ,i); Readln; end. 2. Tnh trung bnh ca 10 s nhp t bn phm: Const Solap=10; Var Ketqua,so:real; i:Byte; Begin Ketqua:=0; For i:=1 to Solap do Begin Write(Cho so thu nhat,i:2);Readln(So); Ketqua:=Ketqua+So; End; Ketqua:=Ketqua/Solap; Writeln(Tri trung binh cua 10 so vua nhap,Ketqua:6:2); Readln; End. 3. V hnh ch nht bng du *: Var d,r:byte; i,j:byte; Begin Write(Chieu rong cua HCN );readln(r); Write(Chieu cao cua HCN );readln(d); For i:=1 to d do Begin For j:=1 to r do write(*); writeln; End; Readln; End. 4. Cc on chng trnh sau lm g: Trang 13

Vietebooks

Nguyn Hong Cng

a. S dng cch vit quy cch: var i,j:byte; Begin for i:=1 to 8 do Begin for j:=1 to i do write(i:i); Writeln; Writeln; End; End. b. C bao nhiu du * hin ra trong 2 on chng trnh sau: on 1: For i:=1 to 3 do for j:=1 to 3 do for k:=1 to 3 do writeln(*); on 2: For i:=1 to 3 do For j:=3 to 6 do for k:+i to j do Writeln(*); ? Th vit chng trnh hin bng cu chng ln mn hnh ? To dy Fibonaci bit s th nht v th 2 ca dy bng 1 vo t s th 3 tr i c tnh bng tng ca hai s trc n. II. S dng Repeat ... Until: 1. Lp li mt bi ton: Var r:real; Traloi:Char: Begin Repeat Write(Cho ban kinh : );Readln(r); Writeln(Dien tich cua hinh tron: ,Pi * r * r); Writeln; Write(ban co lam tiep khong (C/K), Nhan K de thoi ); Until Upcase(Traloi)=K; End. 2. To Menu chn n gin: Var Chon:Byte; Thoat:Boolean; a,b,c:real; Begin Repeat Writeln(1. Phep cong); Writeln(2. Phep tru); Writeln(3. Phep nhan); Writeln(4. Phep chia); Writeln(5. Ket thuc); Write(Cho hai so a,b :);Readln(a,b); Writeln; Thoat:=False; Repeat Write(Ban thuc hien phep tinh nao voi a,b ? );Readln(chon); Until (Chon>=1) and (chon<=5);

Trang 14

Vietebooks Case Chon of 1: C:=a+b; 2: C:=a-b; 3: C:=a*b; 4: C:=a/b; 5: Thoat:=True; End; Writeln(Ket qua tinh la: ,C:6:2); Readln; Until Thoat; End. III. S dng While ... do: 1. Gi s bi ton giai tha nh sau: P=1*2*3*...*N. Dng c php lnh lp While ... do no ng: a. b. i:= 1; i:=1; P:=1; P:=1; While i<=N do; While i<=N do P:=P*i; P:=P*i; i:=i+1; i:=i+1; Writeln(P); Writeln(P);

Nguyn Hong Cng

c.

i:=1; P:=1; While i<=N do Begin P:=P*i; i:=i+1; End; Writeln(P);

2. Khi no th cu Cho bn hin ra trong on chng trnh sau: Repeat readln(ch); Until Upcase(ch)=*; Writeln( Cho bn ); Vit li on trn s dng while ... do. IV. Cch s dng mt s hm v th tc: 1. Hm Chr(ch:Byte):Char Dng ly k t th Ch trong bng m ACSII For ch:=0 to 255 do Begin if (ch mod 10) =0 then writeln else write(ch,chr(ch):4); end; 2. To m thanh: Mt nt nhc trong m nhc c cao v trng nht nh Tn s ca cc nt nhc nh sau: # R R# Mi Fa Fa# Sol Sol# La La# 512 542 575 609 645 683 624 767 813 861 912 y l cc nt nhc trong qung tm trung bnh. Nu trong bn nhc c cc nt cao hn hoc thp hn bn hy gp i hoc gim mt na tn s ca nt nhc qung trung bnh. Sound(Tns:Word); To ra mt m thanh c tn s Tns Delay(Ms:Word); Dng chng trnh mt thi gian tnh bng mini giy. NoSound; Tt m thanh c to ra t Sound;

Si 967

Trang 15

Vietebooks

Nguyn Hong Cng

3. Ca s mn hnh v mu: - Window(x1,y1,x2,y2:Integer); To ca s ring lm vic x1,y1: To nh tri trn ca mn hnh x2,y2: To gc phi di ca mn hnh Thng c kt hp nh sau: Window(x1,y1,x2,y3); TextbackGround(Maunen); To mu nn Clrscr; T mu nn cho ca s. - GotoXY(X,Y:Integer); Di chuyn con tr ti to X,Y ca mn hnh. - Keypressed:Boolean; Kim tra xem trn mn hnh c mt phm no bm hay khng Thng c dng trong cu lnh: if, Repeat, While: VD: Repeat Cc cu lnh; Until Keypressed; Lp li ti khi bn nhn mt phm bt k. - Readkey:Char; Nhn gi tr ca mt phm k t c nhn nhng khng hin ra mn hnh. Nu so snh Readkey v readln vi bin Ch:Char ta thy: + Readln(Ch); Mn hnh dng li v ch bn nhn mt phm, k t nhp vo c hin ln mn hnh. Sau khi nhn Enter kt qu s gn vo bin Ch; + Ch:=Readkey; Mn hnh s dng v ch bn nhn mt phm, k t nhp khng hin ln mn hnh v c gn ngay vo bin Ch khng cn bn phi nhn Enter; 4. To cc s ngu nhin: Randomize; Khi to ch to s ngu nhin. Random(N:Word):word; to mt s nguyn dng bt k t 0 ( N-1 uses Crt; Begin Randomize; Repeat GotoXY(Random(80)+1,Random(25)+1); TextColor(Random(15)+1); Write(Chr(Random(256))); Until Keypressed; End. Bi 4 Cch s dng mt s kiu d liu 1. S dng kiu d liu String: String l mt dng kiu d liu khng chun gm mt chui cc k t trong bng m ACSII. Bn c th khai bo cc bin kiu String theo mt trong hai cch sau: Var Bin:String; Bin:String[N]; V d: Var Hoten:String[25]; Thongbao:String; a. Truy xut kiu d liu String: Vi kiu d liu String bn c th s dng php gn, s dng cc th tc Writeln, Write, Readln truy xut cc bin dng ny. Trang 16

Vietebooks

Nguyn Hong Cng

V d: Var Hoten:String; Begin Write(Cho biet ho va ten: );Readln(Hoten); End. * Pascal cho php truy xut n tng k t ca d liu kiu String bng cch s dng c php Bin[i]. Vi i l th t ca k t trong chui c xem nh d liu kiu Char v c th tc ng bng cc ton t, hm trong d liu kiu Char. b. Cc hm v th tc trn d liu kiu String: Php cng chui: + Cc chui ni vi nhau bng php cng (+). V d: St1:= Turbo ; St2:= Pascal ;St:=St1+St2; khi bin St c ni dung TurboPascal + S dng hm cng chui ca Pascal: Concat(st1,st2,...stn:String):String; V d: St1:= ECS ;st2:= Tin hoc tre ;st:=concat(st1,st2); c ni dung ECS Tin hoc tre + Ly chiu di chui: Hm Length(st:string):integer; Cho chiu di thc ca chui st, gi tr ny c ghi trong bin st ti v tr u tin ca chui. Ngha l bit chiu di thc ca chui st bn c th dng truy xut ORD(st[0]); + V tr ca chui con trong mt chui: Hm POS(Chuoicon:String;Chuoi:String):Byte; Hm POS tm chui Chuoicon trong Chui. Nu Chuoicon nm trong Chuoi th hm POS tr v v tr ca Chuoicon trong Chuoi, nu khng s tr gi tr bng 0. V d: St:= Turbo Pascal ; th POS( ascal ,st) cho gi tr l 8. + Ly mt chui con t mt chui: Hm Copy(st:String; vitri:integer; Sotu:Integer):String; Hm Copy cho mt chui k t con ca chui st. chui ny c ly t vitri vi Sotu. V d: St:=Turbo Pascal; st1:=Copy(st,7,6); khi st1 c gi tr Pascal ; + Xo mt chui trong mt chui: Hm Delete(Var St:string;Vitri,sotu:integer); Xo khi chui st sotu tr vitri cn li s gn tr li chui cho bin St; V d: St:= Turbo Pascal ; Delete(st,7,6); Writeln(st); {cu lnh ny hin ni dung Turbo } + Chn chui con vo trong chui: Th tc: insert(chuoicon:String; Var st:string; Vitri:integer); Chn Chuoicon vo chui st bt u t Vitri. V d: St:= Tin hoc tre ; Chuoicon:=ECS ; insert(Chuoicon,st,1); Writeln(st); {ni dung ca st l ECS Tin hoc tre } * Chuyn i gia s v chui: + i mt s thnh chui hm Str

Trang 17

Vietebooks + i mt chui thnh s: hm Val

Nguyn Hong Cng

c. Cc gii thut c bn trn d liu kiu String: ( i chui k t sang k t in Var i:byte st:string; on chng trnh: For i:=1 to length(st) do St[i]:=Upcase(st[i]); ( Ct k t trng bn tri chui k t: V d chui Turbo Pascal c mt s k t trng bn tri bn c th xo n a v chui Turbo Pascal bn bt u tm t v tr u tin ca chui, kim tra xem c phi l mt k t trng hay khng nu ng xc nh v tr v xo k t trng khi dy. Var i:byte; st:string; on chng trnh: i:=1; While st[i]=#32 do inc(i); {#32 l k t trng } Delete(st,1,i-1); ( Ct k t trng bn phi: Bn dng vng While ... do vi iu kin cn tm thy k t trng nhng bt u t v tr cui cng ngc ti v tr u. Var i:byte; st:string; on chng trnh: i:=length(st); while st[i]=#32 then dec(i); st[0]:=Chr(i) ( Ct cc khong trng gia chui: Var i:byte; st:string; on chng trnh: i:=pos(#32#32,st); while i<>0 do begin Delete(st,i,1); i:=Pos(#32#32,st); end; 2. S dng d liu kiu array: Array l mt kiu d liu c cu trc bao gm mt s c nh cc thnh phn c cng kiu d liu. Mi thnh phn ca array c truy xut thng qua cc ch s mt t v tr thnh phn trong array. a. Khai bo kiu: C php: Type <Tn kiu> = array[ch s] of <Kiu bin>; V d: Type Tocdo=array[Oto, Tai, Buyt, Dulich] of Integer; Hoten=array[1..30] of String; Loai = array['A'..'Z'] of Byte; OrdType=Array[Char] of Byte; AsciiType=Array[Byte] of Char;

Trang 18

Vietebooks

Nguyn Hong Cng

b. Khai bo bin: C php: Var <Tn bin>:ARRAY[Ch s] of <Kiu bin>; V d: Var Diem:array[1..30] of Byte; Type Xe=(Oto, Tai, Buyt, Dulich); Tocdo=Array[Xe] of Integer; ngha: Bn c th tng tng mt bin nh mt hp cha d liu v Array l mt tp hp ni tip cc hp li vi nhau cha d liu c cng kiu, mi hp c nh s th t bng ch s khai bo v dy hp c t chung bng mt tn l tn ca bin kiu Array. Ghi ch: khai bo Array nhiu chiu bn theo c php sau: Var <Tn bin>:Array[Ch s1, ch s 2,...] of <Kiu bin>; V d:Manhinh: Array[1..25,1..80.0..15] of Integer; c. Truy xut d liu kiu Array: ( Xut d liu kiu Array: Cc th tc xut nhp bin nh Writeln, Readln khng th truy xut thng bin Array m phi thng qua tng thnh phn ca Array . V d: Var a,b:Array[1..100] of String[30]; c:Array[1..30,1..4] of String; Bn khng th vit: Write(a); Readln(b); Readln(c); M bn phi vit: Write(a[1]); Write(a[2]); ......... Write(a[100]); Readln(C[1]); .......... Array thng km theo bin m c cng kiu vi ch s ca Array, thay i bin m ca vng lp bn s ln lt truy xut ht cc thnh phn ca Array nh sau: For i:=<Ch s u> to <Ch s cui> do Begin Readln(<Tn Bin>[i]); Writeln(<Tn bin>[i]); End; V d: Var Hoten:Array[1..100] of String; i:Byte; Begin For i:=1 to 100 do Begin Write('Nhap ho ten: ');Readln(Hoten[i]); End; End. ( Gn d liu kiu Array: Bn c th gn ni dung ca hai bin Array cng kiu V d: Var a,b:Array[1..10] of Integer;

Trang 19

Vietebooks i:Byte; Begin For i:=1 to 10 do Readln(a[i]); b:=a; For i:=1 to 10 do Writeln(b[i]); Readln; End.

Nguyn Hong Cng

d. Sp xp d liu trn dy: Sp xp l mt qu trnh t chc li mt dy cc d liu theo mt trt t nht nh. Mc ch ca vic sp xp l gip cho vic tm kim d liu trong mt dy c d dng hn. Nguyn l chung ca sp xp l So snh v hon v. Sp xp bng phng php chn la n gin bt u t thnh phn u tin ca dy so snh vi cc thnh phn vi nhau. Tip tc n thnh phn k tip so snh vi cc thnh phn cn li cho ti khi gp thnh phn cui cng. V sau thnh phn cui cng khng cn thnh phn no na so snh nn vic sp sp hon tt. Vi phng php ny hnh thnh hai vng lp. Vng lp th nht ly thnh phn th i t 1 ti N-1 so snh v hon v vi vng lp th 2 vi j t i+1 ti N Gii thut: Cho i t 1 n n-1 thc hin Cho J t i+1 n n thc hin Nu thnh phn t i nh hn thnh phn th j th Hon v hai thnh phn th i v th j. V d: var i,j:Byte; Trunggian:Real; Begin For i:=1 to n -1 do For j:=i+1 to n do if A[j]<A[i] then {Thc hin vic so snh} Begin Trunggian:=A[j]; {Thc hin vic hon v nu sanh snh} A[j]:=A[i]; {bng True} A[i]:=Trunggian; End; End; 3. D liu kiu File: Cc d liu kho st trn thc hin trong b nh RAM khi khi ng chng trnh, khi chm dt chng trnh cc d liu trn b mt v vy vic lu tr d liu lu di hoc s dng li d liu bn cn s dng d liu kiu File. C 2 loi d liu kiu File: - File c kiu: D liu c lu tr trn a thnh mt tp tin cha cc Record v c ghi di dng nh phn - File dng Text: D liu c lu tr trn a thnh mt tp tin cha cc d liu di dng m ASCII. Bng cc phn mm son tho vn bn c th c c d liu ny. a. Khai bo d liu kiu File: Vi d liu File c kiu: Var <Tn bin>:File of <Kiu bin>

Trang 20

Vietebooks V d: Var Type f:File of Byte; S:File of String;

Nguyn Hong Cng

Hosocanbo=Record Hoten:String; Diachi:String; End; Var F:File of Hosocanbo; Vi File dng Text Var <Tn bin>:Text; Khi khai bo tp tin kiu Text d liu ghi vo a dng File ASCII nh l mt tp tin vn bn b. Cc th tc chun trn d liu kiu File: ( Gn tn tp tin cho mt bin: Th tc Assign(Var <Tn bin File>,<Tn File>:String); Th tc ny nhm mc ch gn mt tp tin trn a cho Tn bin File trong RAM. V d: Var F:Text; Begin .... Assign(f,'Chaoban.txt'); .... End; ( M v to mi mt tp tin: Th tc: Rewrite(Var <Tn bin File>); (V d: Rewrite(f);) Th tc ny to mt tp tin trn a c tn gn cho Tn bin File bng lnh gn Asign ng thi m tp tin ra truy xut d liu. Ch : Khi m tp tin bng lnh Rewrite nu trn a c tp tin trng vi tn bn t th tp tin trn a s b xo thay vo l mt tp tin trng m bn gn tn cho Tn bin File. Nn bn cn cn thn khi m tp tin bng lnh Rewrite. ( M mt tp tin c: Th tc: Reset(Var <Tn bin File>); M mt tp tin gn cho Tn bin File, np ni dung ca tp tin ny vo trong Tn bin File trong RAM chun b cho vic truy xut d liu. Ch : Khi m mt tp tin bng lnh Reset nu tp tin khng c trn a s gy li. ( ng mt tp tin m: Th tc: Close(Var <Tn bin File>); Th tc ny chuyn ni dung trong b nh vo tp tin trn a ng thi ng tp tin li gii to b nh dnh cho bin tp tin Ch : Cc tp tin khi m nu khng ng li s mt cc d liu truy xut trn Tn bin File. ( Truy xut d liu: Vic xut nhp d liu trn bin File c kiu ch c thc hin thng qua tng Record - c d liu t tp tin dng th tc Read(<Tn bin File>,<Tn bin>); - Ghi d liu vo a: dng th tc Write(<Tn bin File>,<Tn bin>);

Trang 21

Vietebooks

Nguyn Hong Cng

Ch : Khng dng cc th tc Readln, Writeln v sau khi c, ghi xong mt Record con tr s t ng nhy sang Record tip theo. c. File vn bn: c d liu trn File vn bn (Text File) bn dng cc thr tc sau: - Read(Var f:Text;GT1,GT2...); - Readln(Var f:Text; v1,v2,...); c d liu trn mt dng v gn cho mt hay nhiu bin. * cc hm tin ch trn kiu Text File: - Eoln(Var f:Text):Boolean; Cho bit tnh trng hin thi ca con tr trn dng ang truy xut ht dng hay cha, nu ht dng hm Eoln cho gi tr True. - Eof(Var F:text):Boolean; Cho bit con tr hin thi n cui tp tin hay cha, nu cui tp tin hm Eof s tr v gi tr True. * Mt s v d: ( Hin ton b ni dung File ln mn hnh: Var f:Text; ch:Char; Begin {Tn tp tin g vo t dng lnh} if Paramcount=1 then Begin Assign(f,ParamStr(1)); Reset(f); While not Eof(f) do Begin Read(f,Ch); Write(ch); {Xut d liu ra mn hnh} End; End; End. ( c ni dung mt File hin ra mn hnh dng bin Line kiu String c tng dng: Var f:Text; Line:String; Begin {Tn tp tin g vo t dng lnh} if Paramcount=1 then Begin Assign(f,ParamStr(1)); Reset(f); Repeat Readln(f,Line); Writeln(Line); {Xut d liu ra mn hnh} Until Eof(f); End; End. ( Bn c th to mt chng trnh pht nhc t mt File nhc to ra theo cu truc Cao , trng theo tng dng? V du: {----Lambada.Not----}

Trang 22

Vietebooks 1318 1174 1046 988 .... Trong 60 20 20 20 s u ch cao , s sau ch trng .

Nguyn Hong Cng

Program Lambada; Uses Ctr; Const Dieuchinh=10; Var f:Text; Caodo,Truongdo:Word; Begin Assign(f,'Lambada.not'); Reset(f); While (not Eof(f)) and (not Keypressed) do Begin Readln(f,Caodo,truongdo); Sound(Caodo); Delay(Dieuchinh*Truongdo); Nosound; End; Close(f); Nosound; End.

Trang 23

You might also like