cơ bản về ngôn ngữ pascal
DESCRIPTION
những điều cơ bản nhất về lập trình pascalTRANSCRIPT
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 1/22
C bn v ngn ng lp trnh Pascal
Gs. L Anh Tun
I. GII THIU.
II. CC PHN T C BN CA NGN NG PASCAL.
1. B K T.
2. T kha.
3. Tn chun.
4. Danh hiu t t.
III. CU TRC MT CHNG TRNH PASCAL.
IV. CC KIU D LIU C S : INTEGER, REAL, BOOLEAN, CHAR.
1. Khi nim.
2. Kiu s nguyn (Integer type).
3. Kiu s thc (Real type).
4. Kiu logic (Boolean type).
5. Kiu k t (Char type).
V. CC KHAI BO HNG, BIN, KIU, BIU THC, ....
1. Hng.
2. Bin.
3. Kiu.
4. Biu thc.
VI. CC TH TC XUT/NHP.
1. Cu lnh.
2. Cu trc tun t.
3. Cu trc r nhnh.
4. Cu trc lp.
BI C THM NHP & XUT D LIU TRONG TURBO PASCAL.
I. GII THIU
Pascal l tn ca mt trong cc ngn ng lp trnh cp cao thng dng. Ngn ng lp trnh Pascal c gio sNiklaus Wirth trng i hc K thut Zurich (Thy s) thit k v cng b vo nm 1970. Niklaus Wirth t tn cho ngn
ng ny l Pascal tng nh n nh Ton hc v Trit hc Php th k 17 l Blaise Pascal, ngi pht minh ra mt
my tnh c kh n gin u tin ca con ngi.
Ngn ng Pascal c dng hin nay c nhiu im khc bit vi chun Pascal nguyn thy ca Gio s Wirth. Ty
theo quc gia hoc cng ty pht trin cho ra i cc chng trnh bin dch ngn ng Pascal nh:
ISO PASCAL (International Standards Organization) ca Chu u
ANSI PASCAL (American National Standards Institute) ca M
TURBO PASCAL ca hng BORLAND (M)
IBM PASCAL ca hng Microsoft (M)
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 2/22
v.v...
n nay, ngn ng Pascal pht trin n phin bn Turbo Pascal Version 7. Cc din gii v v d trong gio trnhny ch yu s dng chng trnh Turbo Pascal 5.5 - 7.0, hin ang c s dng rng ri Vit Nam.
II. CC PHN T C BN CA NGN NG PASCAL
1. B k t
- B 26 ch Latin:
Ch in: A, B, C, ..., X, Y, Z
Ch thng: a, b, c, ..., x, y, z
- B ch s thp phn: 0, 1, 2, 3, ..., 8, 9
- K t gch ni di: _
- Cc k hiu ton hc: +, -, *, /, =, , (, ), [, }
2. T kha
L cc t ring ca Pascal, c ng ngha c xc nh, khng c dng n vo cc vic khc hoc t tn mitrng vi cc t kha.
- T kha chung:
PROGRAM, BEGIN, END, PROCEDURE, FUNCTION
- T kha khai bo:
CONST, VAR, TYPE, ARRAY, STRING, RECORD, SET, FILE, LABEL
- T kha ca lnh la chn:
IF ... THEN ... ELSE, CASE ... OF
- T kha ca lnh lp:
FOR... TO... DO, FOR... DOWNTO... DO, WHILE... DO,
REPEAT... UNTIL
- T kha iu khin:
WITH, GOTO, EXIT, HALT
- T kha ton t:
AND, OR, NOT, IN, DIV, MOD
3. Tn chun
Tn chun l tn c nh ngha sn trong Pascal, nhng ngi ta c th nh ngha li nu mun. Trong Pascal tac cc tn chun sau y:
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 3/22
Boolean, Char, Integer, Word, Byte, Real, Text
False, True, MaxInt
Abs, Arctan, Chr, Cos, Sin, Eof, Eoln
Exp, Ln, Odd, Ord
Round, Trunc, Sqr, Pred, Succ
Dispose, New, Get, Put, Read, Readln,
Write, Writeln
Reset, Rewrite
4. Danh hiu t t
Trong Pascal t tn cho cc bin, hng, kiu, chng trnh con ta dng cc danh hiu (identifier). Danh hiu
ca Pascal c bt u bng mt ch ci, sau c th l cc ch ci, ch s hay l du ni, khng c c khongtrng v di ti a cho php l 127.
V d 6.1: Sau y l cc danh hiu: x; S1; Delta; PT_bac_2
Pascal khng phn bit ch thng v ch hoa trong mt danh hiu.
V d 6.2: aa v AA l mt; XyZ_aBc v xyZ_AbC l mt
Khi vit chng trnh ta nn t cc danh hiu sao cho chng ni ln cc ngha ca i tng m chng biu th.iu ny gip chng ta vit chng trnh d dng v ngi khc cng d hiu ni dung chng trnh.
III. CU TRC MT CHNG TRNH PASCAL
Hnh 6.1: S cu trc chng trnh Pascal
V d 6.3:
PROGRAM Hello; { Dng tiu }
USES Crt; { Li gi s dng cc n v chng trnh }
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 4/22
VAR Name : string; { Khai bo bin }
PROCEDURE Input; { C th c nhiu Procedure v Function }
Begin
ClrScr; { Lnh xa mn hnh }
Write(' Hello ! What is your name ?... ');Readln(Name);
End;
BEGIN { Thn chng trnh chnh }
Input;
Writeln (' Welcome to you, , Name') ;
Writeln (' Today, we study PASCAL PROGRAMMING ... ');
Readln;
END.
Mt chng trnh Pascal c cc phn:
* Phn tiu :
Phn ny bt u bng t kha Program ri tip n l tn ca chng trnh v chm dt bng du chm phy (;)
Tn chng trnh phi c t theo ng qui cch ca danh hiu t t. Phn tiu c hay khng cng c.
* Phn khai bo d liu:
Trc khi s dng bin no phi khai bo bin , ngha l xc nh r xem bin thuc kiu d liu no. Mt
chng trnh Pascal c th c mt s hoc tt c cc khai bo d liu sau:
CONST : khai bo hng
...
TYPE : nh ngha kiu d liu mi
...
VAR : khai bo cc bin
...
* Phn khai bo chng trnh con:
Phn ny m t mt nhm lnh c t tn chung l mt chng trnh con khi thn chng trnh chnh gi n th
c nhm lnh c thi hnh.
Phn ny c th c hoc khng ty theo nhu cu.
* Phn thn chng trnh:
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 5/22
Phn thn chng trnh l phn quan trng nht v bt buc phi c, phn ny lun nm gia 2 t kho l BEGIN vEND. gia l lnh m cc chng trnh chnh cn thc hin. Sau t kha END l du chm (.) bo kt thc chng
trnh.
* Du chm phy (;):
Du ; dng ngn cch cc cu lnh ca Pascal v khng th thiu c.
* Li ch thch:
Li ch thch dng ch gii cho ngi s dng chng trnh nh nhm trao i thng tin gia ngi v ngi, my
tnh s khng n li ch thch ny. Li ch thch nm gia k hiu: { } hoc (* *)
IV. CC KIU D LIU C S: INTEGER, REAL, BOOLEAN, CHAR
1. Khi nim
D liu (data) l tt c nhng g m my tnh phi x l.
Theo Niklaus Wirth:
CHNG TRNH = THUT TON + CU TRC D LIU
Mt kiu d liu (data type) l mt qui nh v hnh dng, cu trc v gi tr ca d liu cng nh cch biu din v
cch x l d liu.
Trong Pascal cc kiu d liu gm cc loi sau:
- Kiu n gin (Simple type): bao gm kiu s nguyn (Integer), kiu s thc (Real), kiu logic (Boolean), kiu kt (Char).
- Kiu c cu trc (Structure type): bao gm mng (Array), chui (String), bn ghi (Record), tp hp (Set), tp tin
(File).
- Kiu ch im (pointer):
Trong chng ny, chng ta ch xt cc kiu d liu n gin.
2. Kiu s nguyn (Integer type)
a. Kiu s nguyn thuc Z cha trong Turbo Pascal
c nh ngha vi cc t kha sau:
T KHA S BYTE PHM VI
BYTE 1 0 .. 255
SHORTINT 1 - 128 .. 127
INTEGER 2 - 32768 .. + 32767
WORD 2 0 .. 65535
LONGINT 4 - 2147483648 .. 2147483647
b. Cc php ton s hc i vi s nguyn
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 6/22
K HIU NGHA
+ Cng
- Tr
* Nhn
/ Chia cho kt qu l s thc
DIV Chia ly phn nguyn
MOD Chia ly phn d
SUCC (n) n + 1
PRED (n) n - 1
ODD (n) TRUE nu n l
v FALSE nu n chn
3. Kiu s thc (Real type)
Turbo Pascal, kiu s thc thuc tp hp R cha trong 6 bytes, c nh ngha vi t kha REAL:
R =([2.9 x 10-39 , 1.7 x 1038 ]
Hay vit theo dng s khoa hc: R = ( [2.9E-39, 1.7E38]
S thc c th vit theo kiu c du chm thp phn bnh thng hoc vit theo kiu thp phn c phn m v phnnh tr.
Cc php ton s hc c bn +, -, * , /d nhin c s dng trong kiu real.
Bng di y l cc hm s hc cho kiu s thc:
K HIU NGHA
ABS (x) |x| : ly gi tr tuyt i ca s x
SQR (x) x2 : ly bnh phng tr s x
SQRT(x) : ly cn bc 2 cua tr s x
SIN(x) sin (x) : ly sin ca x
COS (x) cos (x) : ly cos ca x
ARCTAN (x) arctang (x)
LN (x) ln x : ly logarit nepe ca tr x (e ( 2.71828)
EXP (x) ex
TRUNC (x) ly phn nguyn ln nht khng vt qu tr s x
ROUND (x) lm trn gi tr ca x, ly s nguyn gn x nht
4. Kiu logic (Boolean)
Mt d liu thuc kiu BOOLEAN l mt i lng c cha trong 1 byte Turbo Pascal v ch c th nhn cmt trong hai ga tr logic l TRUE (ng) v FALSE (sai).
Qui c: TRUE > FALSE
Cc php ton trn kiu Boolean:
A B NOT A A AND B A OR B A XOR B
TRUE TRUE FALSE TRUE TRUE FALSE
TRUE FALSE FALSE FALSE TRUE TRUE
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 7/22
FALSE TRUE TRUE FALSE TRUE TRUE
FALSE FALSE TRUE FALSE FALSE FALSE
Nhn xt:
Php AND (v) ch cho kt qu l TRUE khi c 2 ton hng l TRUE
Php OR (hoc) ch cho kt qu l FALSE khi c 2 ton hng l FALSE
Php XOR (hoc trit tiu) lun cho kt qu l TRUE khi c 2 ton hng l khc nhau v ngc li.
Cc php ton quan h cho kt qu kiu Boolean:
K HIU NGHA
< > khc nhau
= bng nhau
> ln hn
< nh hn
> = ln hn hoc bng
< = nh hn hoc bng
5. Kiu k t (Char type)
Tt c cc d liu vit dng ch k t c khai bo bi t kha CHAR.
Mt k t c vit trong hai du nhy n ( ). tin trao i thng tin cn phi sp xp, nh s cc k t, micch sp xp nh vy gi l bng m. Bng m thng dng hin nay l bng m ASCII (xem li chng 3).
thc hin cc php ton s hc v so snh, ta da vo gi tr s th t m ASCII ca tng k t, chng hn: 'A'< 'a' v s th t m ASCII tng ng l 65 v 97.
Trong Turbo Pascal mi k t c cha trong 1 byte.
Cc hm chun lin quan n kiu k t:
K HIU NGHA
ORD(x) Cho s th t ca k t x trong bng m
CHR(n) hay #n Cho k t c s th t l n
PRED(x) Cho k t ng trc x
SUCC(x) Cho k t ng sau x
V. CC KHAI BO HNG, BIN, KIU, BIU THC, ...
1. Hng (constant)
a. nh ngha
Hng l mt i lng c gi tr khng i trong qu trnh chy chng trnh. Ta dng tn hng chng trnh c
r rng v d sa i.
b. Cch khai bo
= ; CONST
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 8/22
V d 6.4: CONST
Siso = 100;
X = xxx ;
2. Bin (variable)
a. nh ngha
Bin l mt cu trc ghi nh c tn ( l tn bin hay danh hiu ca bin).
Bin ghi nh mt d liu no gi l gi tr (value) ca bin. Gi tr ca bin c th c bin i trong thi gian sdng bin.
S truy xut ca bin ngha l c gi tr hay thay i gi tr ca bin c thc hin thng qua tn bin.
V d 6.5: Readln (x) ;
Writeln (x) ;
x := 9 ;
Bin l mt cu trc ghi nh d liu v vy n phi tun theo qui nh ca kiu d liu : mt bin phi thuc mt kiud liu nht nh.
b. Cch khai bo
: ;
V d 6.6: VAR
a : Real ;
b, c : Integer ;
TEN : String [20]
X : Boolean ;
Chon : Char ;
Cn khai bo cc bin trc khi s dng chng trong chng trnh. Khai bo mt bin l khai bo s tn ti ca bin
v cho bit n thuc kiu g.
3. Kiu (Type)
a. nh ngha
Ngoi cc kiu nh sn, Pascal cn cho php ta nh ngha cc kiu d liu khc t cc kiu cn bn theo qui tc
xy dng ca Pascal.
b. Cch khai bo
VAR
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 9/22
TYPE
= ;
V d 6.7:
TYPE
SoNguyen = Integer ;
Diem = Real;
Tuoi = 1 .. 100 ;
Color = (Red, Blue, Green) ;
Thu = (Sun, Mon, Tue, Wed, Thu, Fri, Sat) ;
v khi khai bo kiu g th ta c quyn s dng khai bo bin nh v d sau:
V d 6.8: VAR
i, j : SoNguyen ;
Dtb : Diem ;
T : tuoi ;
Mau : Color ;
Ngay_hoc : Thu;
4. Biu thc (Expression)
a. nh ngha
Mt biu thc l mt cng thc tnh ton bao gm cc php ton, hng, bin, hm v cc du ngoc.
V d 6.9: 5 + A * SQRT(B) / SIN(X)
(A AND B) OR C
b. Th t u tin
Khi tnh gi tr ca mt biu thc, ngn ng Pascal qui c th t u tin ca cc php ton t cao n thp nhsau:
Mc u tin: Cc php ton:
1. Biu thc trong ngoc n ( )
2. Php gi hm
3. Not, -
4. *, /, DIV, MOD, AND
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 10/22
5. +, -, OR, XOR
6. =, , =, , IN
V d 6.10: (4+5)/3 + 6 - (sin((/2)+3)*2 = (9)/3 + 6 - (1+3)*2 = 3 + 6 - 8 = 1
c. Qui c tnh th t u tin
Khi tnh mt biu thc c 3 qui tc v th t u tin nh sau:
Qui tc 1 : Cc php ton no c u tin cao hn s c tnh trc.
Qui tc 2 : Trong cc php ton c cng th t u tin th s tnh ton s c thc hin t tri sang phi.
Qui tc 3 : Phn trong ngoc t trong ra ngoi c tnh ton tr thnh mt gi tr n.
d. Kiu ca biu thc
L kiu ca kt qu sau khi tnh biu thc.
V d 6.11: Biu thc sau c gi l biu thc Boolean:
not (('a'>'c') and ('c'>'C')) or ('B'='b') c gi tr TRUE
VI. CC TH TC XUT/NHP
1. Cu lnh (statement)
a. Trong mt chng trnh Pascal, sau phn m t d liu l phn m t cc cu lnh. Cc cu lnh c
nhim v xc nh cc cng vic m my tnh phi thc hin x l cc d liu c m t v khai bo.
b. Cu lnh c chia thnh cu lnh n gin v cu lnh c cu trc.
(xem phn bi c thm)
- Cu lnh n gin
+ Vo d liu : Read, Readln
+ Ra d liu : Write, Writeln
+ Lnh gn : :=
+ Li gi chng trnh con (gi trc tip tn ca chng trnh con)
+ X l tp tin : RESET, REWRITE, ASSIGN ...
- Cu lnh c cu trc
+ Lnh ghp : BEGIN .. END
+ Lnh chn : IF .. THEN .. ELSE
CASE .. OF .
+ Lnh lp : FOR .. TO .. DO
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 11/22
REPEAT .. UNTIL
WHILE .. DO
c. Cc cu lnh phi c ngn cch vi nhau bi du chm phy ( ; ) v Cc cu lnh c th vit trn mt dng hay
nhiu dng.
2. Cu trc tun t
a. Lnh gn (Assignment statement)
Mt trong cc lnh n gin v c bn nht ca Pascal l lnh gn. Mc ch ca lnh ny l gn cho mt bin khai
bo mt gi tr no cng kiu vi bin.
* Cch vit:
:= ;
V d 6.12: Khi khai bo
VAR
c : Char ;
i,j : Integer ;
x, y : Real ;
p, q : Boolean ;
th ta c th c cc php gn sau :
c := A ;
c := Chr(90) ;
i := (35+7)*2 mod 4 ;
i := i div 7 ;
x := 0.5 ;
x := i + 1 ;
q := i > 2*j +1 ;
q := not p ;
* ngha:
Bin v cc pht biu gn l cc khi nim quan trng ca mt h cc ngn ng lp trnh m Pascal l mt i din
tiu biu. Chng phn nh cch thc hot ng ca my tnh hin nay, l:
- Lu tr cc gi tr khc nhau vo mt nh ti nhng thi im khc nhau.
- Mt qu trnh tnh ton c th coi nh l mt qu trnh lm thay i gi tr ca mt (hay mt s) nh no , cho
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 12/22
n khi t c gi tr cn tm.
b. Lnh ghp (Compound statement)
Mt nhm cu lnh n c t gia 2 ch BEGIN v END s to thnh mt cu lnh ghp.
Trong Pascal ta c th t cc lnh ghp con trong cc lnh ghp ln hn bao ngoi ca n v c th hiu tng t
nh cu trc ngoc n ( ) trong cc biu thc ton hc.
Hnh 6.2: S cu trc BEGIN .. END;
hnh minh ha trn ta d thy cc nhm lnh thnh tng khi (block). Mt khi lnh bt u bng BEGIN v chmdt END; . Trong mt khi lnh cng c th c cc khi lnh con nm trong n. Mt khi chng trnh thng c dng
nhm t 2 lnh tr ln to thnh mt ca cc lnh c cu trc, ta c th gp khi nim ny trong nhiu v
d cc phn sau.
3. Cu trc r nhnh
a. Lnh IF .. THEN .. v Lnh IF .. THEN .. ELSE..
* Lu din t cc lnh v ngha cch vit:
Hnh 6. 3: Lnh IF THEN ;
* S :
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 13/22
Hnh 6. 4: Lnh IF .. THEN .. ELSE ..;
Ch :
- iu kin l mt biu thc Boolean.
- Nu sau THEN hoc ELSE c nhiu hn mt lnh th ta phi gi li trong BEGIN .. END;
- Ton b lnh IF .. THEN .. ELSE xem nh 1 lnh n.
V d 6.13: Tnh cn bc 2 ca mt s
PROGRAM Tinh_can_bac_hai ;
VAR
a : Real ;
BEGIN
Write ( Nhp s a = ) ;
Readln(a) ;
IF a < 0 THEN
Write (' a : 10 : 2 , l s m nn khng ly cn c !!! ')
ELSE
Writeln (' Cn s bc 2 ca , a : 2 : 2 , la , SQRT(a) :10 : 3 ');
Writeln (' Nhn ENTER thot ... ') ;
Readln; {Dng mn hnh xem kt qu}
END.
Ghi ch:
Trong chng trnh trn, a ta thy c dng a :m :n vi ngha m l s nh khong m phn nguyn ca a s chim ch
v n l khong cho s tr phn thp phn ca a.
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 14/22
b. Lnh CASE .. OF
* Lu biu din:
Hnh 6.5: Lu lnh CASE .. OF
* Cch vit, ngha:
Cch vit ngha
CASE OF Xt gi tr ca biu thc chn
GT1 : Cng vic 1 ; Nu c gi tr 1 (GT1) th thi hnh Cng vic 1
....................... ...................................
GTi : Cng vic i ; Nu c gi tr i (GT i) th thi hnh Cng vic i
....................... ....................................
ELSE Cng vic 0 ; Nu khng c gi tr no tha th thc hin
Cng vic 0
END;
Ghi ch:
- Lnh CASE .. OF c th khng c ELSE
- Biu thc chn l kiu ri rc nh Integer, Char, khng chn kiu Real
- Nu mun ng vi nhiu gi tr khc nhau ca biu thc chn vn thi hnh mt lnh th gi tr c th vit trn cng
mt hng cch nhau bi du phy (,) : Gi tr k1, k2, ..., kp : Lnh k ;
V d 6.14: PROGRAM Chon_mau ;
VAR color : char ;
BEGIN
write (' Chn mu theo mt trong 3 k t u l R / W / B ') ;
readln ( color) ;
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 15/22
CASE color OF
'R' ,'r' : write (' RED = mu ') ;
'W', 'w' : write (' WHITE = mu trng ') ;
'B' , 'b' : write (' BLUE = mu xanh dng ') ;
END ;
Readln;
END.
4. Cu trc lp
a. Lnh FOR
Cu trc FOR cho php lp li nhiu ln mt dy lnh. S ln lp li dy lnh bit trc. Pht biu FOR c 2
dng:
FOR .. TO .. DO m ln
FOR .. DOWNTO ..DO m xung
* C php tng qut l:
FOR := TO/DOWNTO DO ;
* Lu :
Hnh 6. 6: Lu pht biu FOR .. TO .. DO
Ch : Tr u, tr cui l cc bin hoc hng v bin m phi l kiu ri rc.
V d 6.15: Chng trnh in mt dy s t 0 n 9
PROGRAM Day_So ;
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 16/22
VAR
i : Integer ;
BEGIN
FOR i := 0 TO 9 DO Write (i) ;
Readln ;
END.
b. Lnh WHILE .. DO
* Lu ca lnh
Hnh 6. 7: Lu cu trc WHILE .. DO
* ngha lu :
Trong khi m iu kin cn ng th c thc hin Cng vic, ri quay tr v kim tra iu kin li. Vng lp
c tip tc, n khi iu kin t ra khng cn ng na th i ti thc hin lnh tip theo
WHILE DO
Hnh 6.8: S c php lnh WHILE .. DO
Ghi ch:
iu kin trong cu trc lp WHILE .. DO l mt biu thc logic kiu Boolean ch c 2 gi tr l ng (True) hoc Sai(False)
Nu iu kin ng th chng trnh s chy trong cu trc WHILE .. DO.
Sau mi ln lp, chng trnh tr li kim tra iu kin. Ty theo biu thc logic ca iu kin l ng hay Sai th chngtrnh s thc hin Cng vic tng ng.
Nu Sai th chuyn xung di cu trc WHILE .. DO
V d 6.16: Chng trnh tnh trung bnh n s: x1 + x2 + x3 + ... + xn
Program Trung_binh_Day_So ;
* C php
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 17/22
VAR
n, count : Integer ;
x, sum, average : real ;
BEGIN
count := 1 ;
sum := 0 ;
Write (' Nhp n = ') ;
readln (n) ;
WHILE count < n+1 DO
BEGIN
Write (' Nhp gi tr th' , count,' ca x = ' ) ;
readln (x) ;
sum := sum + x ;
count := count + 1 ;
END ;
average := sum/n ;
Writeln (' Trung bnh l =' , average : 10 : 3 ) ;
Writeln (' Nhn Enter thot ...' ) ;
Readln ;
END.
c. Lnh REPEAT .. UNTIL
Cu lnh REPEAT .. UNTIL dng trong cc trng hp khi bin iu khin khng c kiu ri rc v c bit trongcc trng hp s ln lp khng bit trc.
Hnh 6.9: Lu cu trc ca REPEAT .. UNTIL
* ngha cu lnh:
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 18/22
Nu iu kin logic l Sai (False) th lp li lnh cho n khi iu kin ng th mi thot ra khi cu trc REPEAT
.. UNTIL.
Nu c nhiu cu lnh th mi lnh ngn cch nhau bng du chm phy (;)Cng vic ca REPEAT v UNTIL khngnht thit phi dng lnh ghp nhm t 2 lnh n tr ln thnh cng vic.
Hnh 6.10: S c php REPEAT .. UNTIL
V d 6.17: Vi bi ton trung bnh cng mt dy s v d trc c th vit theo cu trc REPEAT .. UNTIL nh sau:
PROGRAM Trung_binh_Day_So ;
VAR n, count : Integer ;
x, sum : real ;
BEGIN
count := 1 ;
sum := 0 ;
Write := (' Nhp n = ') ; readln (n) ;
REPEAT
Write (' Nhp gi tr th' , count, 'ca x = ') ;
readln(x) ;
sum := sum + x ;
count := count + 1 ;
UNTIL count > n ;
Writeln (' Trung bnh l =' , sum/n : 8 :2 ) ;
Readln ;
END.
Ghi ch:
So snh 2 cch vit WHILE .. DO v REPEAT .. UNTIL ta thy c s khc bit:
- Trong cu trc WHILE .. DO th c kim tra trc, nu tha th mi thc hin .
- Ngc li, trong cu trc REPEAT .. UNTIL th s c thc thi trc sau mi kim tra , nu
khng tha th tip tc thi hnh cho n khi l ng.
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 19/22
Lnh REPEAT .. UNTIL thng c s dng trong lp trnh, nht l lc ngi s dng mun tip tc bi ton trng hp thay i bin m khng phi tr v chng trnh v nhn t hp phm Ctrl + F9 li.
V d 6.18: Nhn 2 s a v b
PROGRAM Tich;
VAR a, b : integer ;
CK : char ;
BEGIN
REPEAT
Write (' Nhp s a = '); Readln (a) ;
Write (' Nhp s b = '); Readln (b) ;
Writeln (' Tch s ca a x b l :' , a*b : 10 ) ;
Writeln (' Tip tc tnh na khng (CK) ? ');
Readln (CK) ;
UNTIL upcase(CK) = K; {hm chuyn i k t trong bin}
{CK thnh k t in hoa}
END.
BI C THM
NHP V XUT D LIU TRONG TURBO PASCAL
--- oOo ---
Thng thng, chng trnh Turbo Pascal c t trong mt th mc ring r c tn TP. s dng Turbo Pascal,ta cn c cc tp tin ti thiu:
- TURBO.EXE - TURBO.TPL
- TURBO.TP - GRAPH.TPU
- Cc file ha : *.BGI - Cc Font ch trong ha : *.CHR
S dng cu lnh Turbo v nhn Enter, mn hnh s xut hin :
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 20/22
tr gip ngi s dng, phm chc nng F10 c tc dng m cc Menu vi nhiu Options khc nhau. Ta cng cth kch hot trn thanh Menu chnh bng cch kt hp phm , v d kch hot mc File, ta
nhn ng thi phm Alt- F, sau dng cc phm mi tn v nt Enter chn la v ra lnh thi hnh. Phm F1 tr gip th
hin cc thng tin trn mn hnh.
Ta c th s dng cc t hp phm to ra cc khi ch hoc cu lnh (trn mn hnh thy c s thay i mu)
ta c th sao chp, ct dn, xa b ...
Ctrl-K-B nh du u khi
Ctrl-K-K nh du cui khi
Ctrl-K-C Chp khi ti sau v tr con tr
Ctrl-K-V Di chuyn khi ti sau v tr con tr
Ctrl-K-Y Xa khi hin hnh
Ctrl-K-W Ghi khi hin hnh vo a nh mt tp tin
Ctrl-K-R c khi tp tin ghi vo a vo sau v tr con tr
Ctrl-K-H Tt/ M khi
Mt chng trnh my tnh, s c cc bc cn bn sau:
Trong tho chng Turbo Pascal, cc th tc nhp d liu c dng:
TH TC NHP NGHA
READ(x1, x2, ..., xn) Nhp cc bin x1, x2, ..., xn theo hng ngang
t bn phm (con tr khng xung hng).
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 21/22
READLN(x1, x2, ..., xn) Nhp cc bin x1, x2, ..., xn theo hng dc
t bn phm (mi ln nhp con tr xung hng).
READLN; Dng chng trnh, i Enter mi tip tc.
ASSIGN(F, File_Name); M tp tin F c tn l File_Name
RESET(F); Chun b c tp tin
READ(F, x1, x2, ..., xn) ; c cc gi tr trn tp tin F ra cc bin x1, x2, ..., xn
tng ng
CH := ReadKey ; c mt k t t bn phm vo bin k t CH
KEYPRESSED Mt hm c gi tr l TRUE nu c mt phm c bm v l FALSE nu ngc li.
TH TC XUT NGHA
WRITE(x1, x2, ..., xn) Vit gi tr trong cc bin x1, x2, ..., xn ra mn hnh
theo hng ngang (con tr khng xung hng).
WRITELN(x1, x2, ..., xn) Vit gi tr trong cc bin x1, x2, ..., xn ra mn hnh
theo hng dc (mi ln vit tr x c xung hng).
WRITELN; Xung hng
WRITELN(I : n); Vit ra gi tr ca bin nguyn I vo n ch tnh tphi sang tri. Nu d ch (ch s ca I < n) s trng
WRITELN(R : n : m); Vit ra gi tr ca bin thc R vo n ch, ch ly
m s thp phn.
WRITELN( abc... ); Vit ra nguyn vn chui k t abc...
WRITELN (LST, x1, x2, ..., xn) Vit ra my in cc tr bin x1, x2, ..., xn
ASSIGN(F, File_Name) M tp tin F c tn l File_Name
REWRITE(F) ; chun b vit vo
WRITE (F, x1, x2, ..., xn) ; Vit cc gi tr x1, x2, ..., xn vo tp tin F
CLOSE (F) ; ng tp tin F
Cn lu tr chng trnh ta dng phm F2.
M mt file c ta dng phm F3.
thay i kch thc/Di chuyn ca s chng trnh, dng phm F5 v
Ctrl+F5.
-
12/8/2014 Nouvelle page 4
http://vietsciences2.free.fr/giaokhoa/tinhoc/cobanvengonngulaptrinhpascal.htm 22/22
Trng hp m nhiu chng trnh, ta dng phm F6 v Ctrl+F6 i n/tr
v trc chng trnh hin hnh.
bin dch v kim tra li, ta dng phm F9.
chy chng trnh son tho xong, nh Ctrl+F9
Mun thot khi Turbo Pascal v tr v DOS, nh Alt+X.