Giáo trình lập trình Pascal căn bản
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
1
—
Trang 1
BI 1: GIÅÏI THIÃÛU NGÄN NGỈỴ PASCAL V CẠC VÊ DỦ ÂÅN
GIN
I. Xút xỉï ngän ngỉỵ Pascal:
Pascal l ngän ngỉỵ láûp trçnh cáúp cao do
Niklaus Wirth
, giạo sỉ âiãûn toạn trỉåìng
âải hc k thût Zurich
(Thy Sé)
, âãư xút nàm 1970 våïi tãn Pascal âãø k niãûm nh
toạn hc v triãút hc näøi tiãúng
Blaise Pascal
(ngỉåìi Phạp).
Ngän ngỉỵ láûp trçnh Pascal cọ âàûc âiãøm: ngỉỵ phạp, ngỉỵ nghéa âån gin v cọ tênh
logic; cáúu trục chỉång trçnh r rng, dãù hiãøu
(thãø hiãûn tỉ duy láûp trçnh cáúu trục);
dãù
sỉía chỉỵa, ci tiãún.
Trong quạ trçnh phạt triãøn, Pascal â phạt huy âỉåüc ỉu âiãøm v âỉåüc dng âãø tảo
ra nhiãưu ỉïng dủng trãn nhiãưu lénh vỉûc khạc nhau. Cạc täø chỉïc v cäng ty chun vãư
mạy tênh dỉûa trãn Pascal chøn â phạt triãøn thãm v tảo ra cạc chỉång trçnh dëch
ngän ngỉỵ Pascal våïi nhiãưu pháưn bäø sung, gim thiãøu khạc nhau. Vê dủ:
TURBO
PASCAL
ca hng Borland
(M), QUICK PASCAL
ca hng Microsoft,
UCSD
PASCAL (University of California at San Diego),
ANSI PASCAL
(American
National Standard Institute),.v.v.
So våïi nhiãưu sn pháøm Pascal ca nhiãưu täø chỉïc v cäng ty khạc nhau xút bn,
TURBO PASCAL
ca hng Borland t ra cọ nhiãưu ỉu âiãøm nháút v hiãûn nay â tråí
thnh ngän ngỉỵ láûp trçnh phäø biãún nháút trãn thãú giåïi sỉí dủng trong lénh vỉûc ging
dảy v láûp trçnh chun nghiãûp. Chè trong vng vi nàm Turbo Pascal âỉåüc ci tiãún
qua nhiãưu phiãn bn :
1.0, 2.0, 3.0, 4.0, 5.0, 5.5 (1989), 6.0 (1990), 7.0 (1972).
Cạc táûp tin chênh ca ngän ngỉỵ Turbo Pascal gäưm:
-
Turbo.exe:
chỉång trçnh soản tho, dëch v liãn kãút chỉång trçnh.
-
Turbo.tpl (.tpl - Turbo Pascal Library):
táûp tin thỉ viãûn lỉu cạc âån vë
(Unit)
chøn âãø chảy våïi Turbo.exe.
Mún sỉí dủng cạc lãûnh âäư ha, phi cọ cạc táûp tin sau:
-
Graph.tpu:
Âån vë
(Unit)
chỉïa cạc lãûnh âäư hoả.
-
Cạc táûp tin cọ pháưn måí räüng CHR (SANS.CHR, TRIP.CHR,
GOTH.CHR,.v.v.):
Chỉïa cạc kiãøu chỉỵ trong chãú âäü âäư hoả.
- Cạc táûp tin cọ pháưn måí räüng
BGI (EGAVGA.BGI, HERC.BGI, CGA.BGI, ):
âãø âiãưu khiãøn cạc loải mn hçnh tỉång ỉïng khi dng âäư hoả.
II. Khåíi âäüng:
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
2
—
Trang 2
Ta cọ thãø khåíi âäüng Pascal tỉì
Windows hồûc MS-DOS
, chuøn âãún thỉ mủc
BP
hồûc
TP
v chảy táûp tin
BP.EXE
hay
TURBO.EXE
. Hai cạch khåíi âäüng trãn thỉûc
hiãûn nhỉ sau:
-
Khåíi âäüng tỉì dáúu nhàõc ca MS-DOS:
Chuøn âãún thỉ mủc
BP
hồûc
TP
nåi
chỉïa táûp tin
BP.EXE
hồûc
TURBO.EXE,
g
BP
hồûc
TURBO
v áún <Enter>.
-
Khåíi âäüng tỉì Windows:
chn menu
Start/Program/Borland Pascal
. Nãúu chỉång
trçnh Pascal chỉa âỉåüc ci vo menu
Start
, bản cọ thãø dng
Windows Explorer
chuøn âãún táûp tin
BP.EXE
hồûc
TURBO.EXE
v khåíi âäüng Pascal bàòng cạch
chảy táûp tin ny.
III. Cạc phêm chỉïc nàng cáưn biãút ca ngän ngỉỵ Pascal:
-
F2:
Lỉu chỉång trçnh trong khi soản tho.
-
F3:
Tảo mäüt file måïi hồûc måí mäüt file c.
-
F9:
Dëch thỉí chỉång trçnh âãø kiãøm tra läùi.
-
Ctrl - F9:
Chảy chỉång trçnh.
-
Alt - F5:
Xem kãút qu chảy chỉång trçnh.
-
Alt - X:
Thoạt khi mn hçnh soản tho chỉång trçnh Pascal.
IV. Cáúu trục mäüt chỉång trçnh Pascal:
1. Cáúu trục cå bn:
Chỉång trçnh Pascal âån gin nháút phi cọ hai tỉì khoạ
Begin
v
End
nhỉ sau:
Begin
End.
Chỉång trçnh trãn tuy khäng lm gç khi chảy
(áún Ctrl - F9)
nhỉng l mäüt chỉång
trçnh håüp lãû do häüi â âiãưu kiãûn cáưn thiãút l cọ hai tỉì khoạ
Begin
v
End.
Tỉì khoạ
End
cọ km dáúu “.” phêa sau bạo hiãûu kãút thục chỉång trçnh, âáy l âiãưu
bàõt büc phi cọ trong mäüt chỉång trçnh. Tỉì khoạ
Begin
trãn âỉåüc trçnh biãn dëch
hiãøu l bàõt âáưu thỉûc hiãûn cạc lãûnh sau nọ v kãút thục tải tỉì khoạ
End
cọ dáúu cháúm
“.”. Khäúi lãûnh nàòm trong càûp tỉì khoạ
Begin
v
End
nãúu cọ dáúu cháúm theo sau cn
gi l khäúi chỉång trçnh chênh. Ngoi ra, nãúu sau tỉì khoạ
End
khäng cọ dáúu hồûc
cọ dáúu “;” thç âọ cọ thãø l khäúi chỉång trçnh con, khäúi lãûnh ca hm hồûc khäúi lãûnh
trong chỉång trçnh. Trong chỉång trçnh cọ thãø cọ nhiãưu khäúi lãûnh, tỉïc cọ thãø cọ
nhiãưu càûp tỉì khoạ
Begin
v
End.
2. Phỉång phạp khai bạo v täø chỉïc cáúu trục mäüt chỉång trçnh Pascal:
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
3
—
Trang 3
Viãûc âàût cạc pháưn khai bạo v soản tho chỉång trçnh theo thỉï tỉû nhỉ sau:
Program
ProgName;
Uses
UnitName1, UnitName2, UnitNameN;
Label
LabelName1, LabelName2, LabelNameN;
Const
Const1 = n, Const2 = m, ConstN = k;
Type
Type1 = AnyType;
Var
Var1, Var2, VarN : Type;
Begin
{ Cạc lãûnh ca chỉång trçnh }
End.
Ư
Gii thêch cáúu trục cạc khai bạo trãn:
Nãúu cọ pháưn khai bạo no cáưn cho chỉång trçnh thç phi tn theo thỉï tỉû trãn, vê
dủ: pháưn khai bạo thỉ viãûn
(USES)
khäng thãø âàût sau pháưn khai bạo hàòng säú
(CONST)
hồûc sau
(VAR)
sau mäùi pháưn khai bạo phi cọ dáúu ‘;’.
-
Program:
Tỉì khoạ ny dng âãø khai bạo tãn chỉång trçnh,
ProgName
l tãn
chỉång trçnh, tãn ny khạc våïi tãn táûp tin. Tãn chỉång trçnh phi tn theo quy tàõc:
+ khäng cọ k tỉû träúng xen giỉỵa.
+ khäng âàût säú åí k tỉû âáưu tiãn.
+ trong pháưn tãn khäng chỉïa cạc k tỉû âàût biãût nhỉ:
‘!’, ‘@’, ‘#’, ‘$’, ‘%’, ‘^’,
‘&’, ‘* ’, ‘(‘, ‘)’, ‘-‘, ‘+’, ‘/’, ‘\’, ‘.’, ’,’,.v.v.
+ kãút thục phi cọ dáúu ‘;’.
+ pháưn ny cọ thãø khäng cọ.
4 Vê dủ: mäüt cạch khai bạo tãn chỉång trçnh:
Program TimUSCLN;
Begin
End.
-
Uses:
Tỉì khoạ ny dng âãø khai bạo viãûc sỉí dủng
Unit (thỉ viãûn)
cho chỉång
trçnh. Thỉ viãûn l táûp håüp cạc hm, th tủc
do ngän ngỉỵ Pascal cung cáúp km theo
hồûc cng cọ thãø do ngỉåìi láûp trçnh tảo ra âãø sỉí dủng.
Ta khai bạo thỉ viãûn thäng
qua tãn ca thỉ viãûn, v trong chỉång trçnh âọ ta s cọ thãø sỉí dủng cạc th tủc hồûc
Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn
4
Trang 4
caùc haỡm coù trong thổ vióỷn õoù. Caùc thổ vióỷn chuỏứn cuớa ngọn ngổợ Pascal gọửm:
CRT,
DOS, GRAPH, GRAPH3, OVERLAY, PRINTER, SYSTEM
vaỡ
TURBO3
. Trong
õoù, thổ vióỷn
SYSTEM
mỷc õởnh õổồỹc chuyóứn vaỡo chổồng trỗnh maỡ ta khọng cỏửn
phaới khai baùo. Vờ duỷ mọỹt caùch khai baùo thổ vióỷn:
Uses CRT, GRAPH;
-
Label:
Duỡng õóứ khai baùo caùc nhaợn cho chổồng trỗnh. Nhaợn laỡ caùc tón duỡng õóứ
õaùnh dỏỳu trong chổồng trỗnh õóứ lóỷnh
GOTO
nhaớy õóỳn õuùng vở trờ õoù. Vióỷc sổớ duỷng
lóỷnh
GOTO
õổồỹc õóử cỏỷp ồớ baỡi 4. Vờ duỷ mọỹt caùch khai baùo nhaợn:
Label TH1, N2;
-
Const:
Tổỡ khoaù naỡy duỡng õóứ khai baùo caùc hũng sọỳ sổớ duỷng trong chổồng trỗnh,
khi baùo hũng sọỳ laỡ vióỷc cọỳ õởnh mọỹt vaỡi giaù trở naỡo õoù trong chổồng trỗnh thọng qua
tón hũng, vờ duỷ caùch khai baùo hũng:
Const k = 5, Max = 500, Ten = Nam;
-
Type:
tổỡ khoaù duỡng õóứ khai baùo caùc kióứu hũng dổợ lióỷu sổớ duỷng cho chổồng
trỗnh. Vồùi tổỡ khoaù naỡy, ta coù thóứ tổỷ taỷo rióng cho mỗnh nhổợng kióứu dổợ lióỷu rióng dổỷa
trón caùc kióứu dổợ lióỷu chuỏứn õóứ tióỷn sổớ duỷng trong vióỷc lỏỷp trỗnh. Caùc khaùi nióỷm vóử
dổợ lióỷu chuỏứn vaỡ phổồng phaùp taỷo kióứu dổợ lióỷu tổỷ taỷo seợ õổồỹc giồùi thióỷu ồớ caùc phỏửn
sau. Vờ duỷ mọỹt caùch õóứ khai baùo mọỹt kióứu dổợ lióỷu tổỷ taỷo:
Type Day = Array [1 7] of String[8];
-
Var:
Tổỡ khoaù duỡng õóứ khai baùo caùc bióỳn sọỳ õổồỹc sổớ duỷng trong chổồng trỗnh.
Bióỳn sọỳ laỡ caùc
giaù trở coù thóứ thay õọứi õổồỹc
trong suọỳt quaù trỗnh chaỷy cuớa chổồng
trỗnh. Khaùi nióỷm vóử bióỳn sọỳ rỏỳt quan troỹng trong vióỷc lỏỷp trỗnh
(khaùi nióỷm naỡy õổồỹc
trỗnh baỡy kyợ ồớ baỡi 3).
Mọỹt vờ duỷ vóử caùch khai baùo bióỳn:
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
5
—
Trang 5
Var HoDem, Ten : String;
N : Integer;
Ư
Ghi chụ:
- Thỉï tỉû cạc khai bạo trãn l âiãưu bàõt büc, ta phi nàõm thỉï tỉû ny cho d mäüt säú
khại niãûm ta chỉa âỉåüc biãút.
- Trong chỉång trçnh Pascal, âãø tảo låìi chụ thêch, ta sỉí dủng càûp dáúu { } hồûc
(* *) läưng cạc cáu chụ thêch vo bãn trong nọ.
- Trãn mäüt dng cọ thãø viãút mäüt hồûc nhiãưu cáu lãûnh.
V. Cạc vê dủ âån gin lm quen våïi ngän ngỉỵ Pascal:
4 Vê dủ 1:
Program GioiThieu;
Begin
Writeln ( ‘ Trung tam Trung hoc Chuyen nghiep va Day nghe ‘ );
Write ( ‘ 74 Tran Quoc Toan - Tel: 0511 872664 ‘ );
End.
F
Gii thêch chỉång trçnh GioiThieu:
-
Begin:
Tỉì khoạ cho biãút bàõt âáưu chỉång trçnh.
-
Writeln:
l th tủc xút näüi dung cạc thnh pháưn bãn trong càûp dáúu
( )
lãn mn
hçnh v chuøn con tr xúng dng. Bãn trong càûp dáúu
( )
cọ thãø cọ nhiãưu thnh
pháưn gäưm
chùi k tỉû (hàòng giạ trë chùi), biãún säú
hồûc
hm
. Giỉỵa cạc thnh pháưn
trong càûp dáúu
( )
phi cạch nhau bàòng dáúu ‘,‘ nãúu khäng cng loải, tỉïc l chùi k
tỉû phi âỉåüc cạch våïi biãún säú hồûc hm âỉïng trỉåïc nọ hay sau nọ bàòng dáúu ‘,‘.
Chùi k tỉû mún hiãøn thë ngun vàn phi âỉåüc âàût trong càûp dáúu ‘ ‘.
-
Write:
l th tủc xút näüi dung cạc thnh pháưn bãn trong càûp dáúu
( )
lãn mn
hçnh, th tủc ny cọ chỉïc nàng tỉång tỉû
Writeln
nhỉng khäng chuøn con tr xúng
dng.
-
End:
l tỉì khoạ cho biãút kãút thục chỉång trçnh.
- Cạc dng lãûnh nàòm giỉỵa
Begin
v
End
l lãûnh m chỉång trçnh cáưn phi thỉûc
hiãûn.
- Âãø xem chỉång trçnh trãn, ta chảy bàòng
Ctrl - F9
v xem lải bàòng
Alt - F5
.
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
6
—
Trang 6
4
Vê dủ 2:
Program DonXinPhep;
Uses CRT;
Begin
ClrScr;
Writeln ( ‘ ********************************** ’ );
Writeln ( ‘ * Cong hoa Xa hoi Chu nghia Viet Nam * ‘ );
Writeln ( ‘ * Doc Lap - Tu Do - Hanh Phuc * ‘ );
Writeln ( ‘ * DON XIN PHEP NGHI HOC * ‘ );
Writeln ( ‘ ********************************** ’ );
Writeln ( ‘ ‘ );
Readln;
End.
F
Gii thêch chỉång trçnh trãn:
- Khai bạo:
Uses CRT;
ð
khai bạo thỉ viãûn
CRT
, do cọ sỉí dủng lãûnh
ClrScr.
- Lãûnh
ClrScr;
ð
lau sảch mn hçnh
(Clear Screen).
- Cạc lãûnh
Writeln ( )
ð
xút ra mn hçnh näüi dung bãn trong dáúu
( )
v xúng
dng.
- Lãûnh
Readln;
ð
dỉìng chỉång trçnh, phỉång phạp ny dng âãø
hiãøn thë näüi
dung sau khi thỉûc hiãûn cạc lãûnh bãn trãn v chåì ngỉåìi dng áún phêm báút k âãø tiãúp
tủc thỉûc hiãûn cạc lãûnh kãú sau nọ.
Trong trỉåìng håüp trãn, kãú tiãúp l tỉì khoạ
End
nãn
chỉång trçnh âỉåüc kãút thục sau khi cọ mäüt phêm báút k âỉåüc áún.
4 Vê dủ 3:
Program TinhTong;
Uses CRT;
Begin
ClrScr;
Write ( ‘ 30 + 40 + 15 = ‘, 30 + 40 + 15 );
Readln;
End.
1
Kãút qu: Mạy thỉûc hiãûn phẹp tênh v hiãøn thë
30 + 40 + 15 = 85
Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn
7
Trang 7
F
Trong cỏu lóỷnh Write ồớ trón, coù hai thaỡnh phỏửn, bióứu thổùc thổù nhỏỳt:
30 + 40 +15
=
õổồỹc hióứu laỡ mọỹt chuọựi phaới õổồỹc hióứn thở nguyón vn do coù cỷp dỏỳu ồớ hai
õỏửu. Thaỡnh phỏửn thổù hai õổồỹc caùch vồùi thaỡnh phỏửn thổù nhỏỳt bũng dỏỳu , vaỡ do
khọng coù cỷp dỏỳu hai õỏửu nón noù õổồỹc tờnh tọứng vaỡ traớ vóử giaù trở cuớa bióứu thổùc.
_________ oo _________
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
8
—
Trang 8
BI 2 : CẠC KHẠI NIÃÛM CÅ BN CA NGÄN NGỈỴ PASCAL
I. Cạc tỉì khoạ
(Key word)
trong ngän ngỉỵ Pascal:
Cạc tỉì khoạ l cạc tỉì dng âãø khai bạo, âàût tãn cho âäúi tỉåüng trong Pascal, khi
ta âàût tãn cho âäúi tỉåüng no âọ, khäng âỉåüc âàût trng tãn våïi cạc tỉì khoạ.
Bng tỉì khoạ trong ngän ngỉỵ Pascal gäưm:
and, array, asm, begin, case, const, constructor, destructor, div, do, downto, else,
end, file, for, function, goto, if, implementation, in, inline, interface, label, mod, nil,
not, object, of, or, packed, procedure, program, record, repeat, set, shl, shr, string,
then, to, type, unit, until, uses, var, while, with, xor.
Turbo Pascal khäng phán biãût k tỉû thỉåìng hồûc hoa. Vê dủ, cạc cạch viãút sau cọ
nghéa nhỉ nhau:
Begin, BEGIN, begin, beGIN, bEGIN,
II. Cạc kiãøu dỉỵ liãûu cå bn:
1. Cạc kiãøu dỉỵ liãûu dảng säú ngun:
a. Kiãøu
Byte:
Kiãøu
Byte
thüc kiãøu dỉỵ liãûu biãøu diãùn cạc giạ trë säú ngun tỉì
0
âãún
255
. Kiãøu Byte chiãúm 1 byte trãn bäü nhåï.
b. Kiãøu
Integer:
Kiãøu
Integer
l kiãøu dỉỵ liãûu biãøu diãùn cạc giạ trë säú ngun tỉì
-
32768
âãún
32767
. Kiãøu Integer chiãúm 2 bytes trãn bäü nhåï.
c. Kiãøu
Shortint:
Kiãøu
Shortint
l kiãøu dỉỵ liãûu biãøu diãùn cạc giạ trë säú ngun tỉì
-
128
âãún
127
. Kiãøu Shortint chiãúm 1 byte trãn bäü nhåï.
d. Kiãøu
Word:
Kiãøu Word l kiãøu dỉỵ liãûu biãøu diãùn cạc giạ trë ngun tỉì
0
âãún
65535
. Kiãøu
Word
l kiãøu säú
khäng biãøu diãùn âỉåüc giạ trë ám
. Kiãøu Word chiãúm 2
bytes trãn bäü nhåï.
e. Kiãøu
Longint:
Kiãøu
Longint
biãøu diãùn cạc giạ trë säú ngun tỉì
-2.147.483.648
âãún
2.147.483.647
. Kiãøu Longint chiãúm 4 bytes trãn bäü nhåï.
2. Cạc kiãøu dỉỵ liãûu dảng säú cọ pháưn biãøu diãùn tháûp phán:
a. Kiãøu
Single:
L táûp håüp cạc säú theo kiãøu dáúu ‘.‘ âäüng trong giåïi hản tỉì
1.5E -45
âãún
3.4 E38 (1,5 x 10
-45
âãún 3,4 x 10
38
).
Kiãøu Single chiãúm 4 bytes trãn bäü nhåï.
b. Kiãøu
Real:
L táûp håüp cạc säú theo kiãøu dáúu ‘.‘ âäüng trong giåïi hản tỉì
2.9E -39
âãún
1.7E 38 (2,9 x10
- 39
âãún 1,7 x 10
38
).
Kiãøu Real chiãúm 6 bytes trãn bäü nhåï.
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
9
—
Trang 9
c. Kiãøu
Double:
L táûp håüp cạc säú theo kiãøu dáúu ‘,‘ âäüng trong giåïi hản tỉì
5.0E -324
âãún
1.7E 308 (5,0 x10
- 324
âãún 1,7 x 10
308
)
. Kiãøu Double chiãúm 8 bytes trãn bäü
nhåï.
3. Kiãøu Char
(k tỉû)
:
Kiãøu
Char
dng âãø biãøu diãùn cạc giạ trë l cạc k tỉû thüc bng chỉỵ cại:
‘A’, ‘b’,
‘x’,.
cạc con säú:
0 9
hồûc cạc k tỉû âàûc biãût :
‘!’, ‘@’, ‘#’, ‘$’, ‘%’, ‘&’, ‘*’,
Âãø biãøu diãùn thäng tin, ta cáưn phi sàõp xãúp cạc k tỉû theo mäüt chøn no âọ v
mäùi cạch sàõp xãúp âọ gi l bng m, thäng dủng nháút l bng m
ASCII (American
Standard Code for Information Interchange).
Bng m
ASCII
cọ
256
k tỉû âỉåüc
gạn m säú tỉ
ì 0 255,
mäùi k tỉû cọ mäüt m säú nháút âënh, vê dủ : k tỉû
‘A’
cọ m säú l
65
,
‘a’
cọ m säú l
97
trong bng m
ASCII,.v.v.
Âãø hiãøn thë bng m ASCII, bản chảy chỉång trçnh sau:
Program ASCI I_Table;
Uses CRT;
Var I : Integer;
Begin
ClrScr;
For I := 0 to 255 do
Write( I, ’ = ’ , CHR( I ), ’ ‘ );
Readln;
End.
4. Kiãøu Logic:
Kiãøu logic l kiãøu biãøu diãùn hai trảng thại l âụng
(True)
hồûc sai
(False).
Tỉì
khoạ âãø khai bạo cho kiãøu logic l
BOOLEAN
.
4 Vê dủ:
Var Co : Boolean;
Co := True;
5. Kiãøu String
(chùi k tỉû)
:
String
l kiãøu dỉỵ liãûu chỉïa cạc giạ trë l nhọm cạc k tỉû hồûc chè mäüt k tỉû, kãø c
chùi räùng. Âäü di täúi âa ca mäüt biãún kiãøu String l 255, tỉïc l nọ cọ thãø chỉïa täúi
âa mäüt dy gäưm 255 k tỉû.
Cụ phạp khai bạo:
(1) Var Biãún_1, Biãún_2, Biãún_n: String;
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
10
—
Trang 10
Hồûc
(2) Var Biãún_1, Biãún_2, Biãún_n: String [30];
Cạch khai bạo
(1)
s cho phẹp biãún
HoTen
nháûn täúi âa 255 k tỉû. Cạch
(2)
cho
phẹp biãún
HoTen
nháûn täúi âa
30 k tỉû.
Ư
Ghi chụ:
Cạch sỉí dủng kiãøu dỉỵ liãûu String s âỉåüc trçnh by chi tiãút åí bi 8.
III. Cạc hm xỉí l dỉỵ liãûu cå bn ca ngän ngỉỵ Pascal:
-
SQR(x)
bçnh phỉång ca mäüt säú ngun hay thỉûc.
-
ABS(x)
trë tuût âäúi ca x.
-
SQRT(x)
càn báûc hai ca x.
-
SIN(x)
tênh giạ trë Sin(x) våïi x l Radian.
-
COS(x)
tênh giạ trë Cos(x) våïi x l Radian.
-
ARCTAN(x)
tênh giạ trë Arctan(x).
-
LN(x)
hm logaric cå säú e = 2.718.
-
EXP(x)
hm e
x
.
-
TRUNC(x)
càõt b pháưn tháûp phán ca x nãúu cọ. Vê dủ:
Trunc(4.86) = 4,
Trunc(-3.2) = 4.
-
ROUND(x)
cho säú ngun gáưn x nháút. Vê dủ:
Round(1.6) = 2, Round(-
23.68) = -24, Round(1.5) = 2.
-
PRED(x)
cho giạ trë âỉïng trỉåïc x, âäúi säú x cọ thãø l kiãøu logic, kiãøu
ngun hồûc kiãøu k tỉû. Vê dủ:
Pred(‘B’);
ð
cho giạ trë
‘A’
,
Pred(2)
cho giạ trë
1
,
Pred(True)
cho giạ trë
False
. Tuy nhiãn,
Pred(False)
lải khäng cho âỉåüc giạ trë no do
giạ trë False âỉïng
trỉåïc giạ trë True âäúi våïi kiãøu Boolean.
-
SUCC(x)
cho giạ trë âỉïng sau x, âäúi säú x cọ thãø l kiãøu logic, kiãøu ngun
hồûc kiãøu k tỉû. Vê dủ:
Succ(‘B’);
ð cho giạ trë
‘C’
,
Succ(2)
cho
giạ trë
3
,
Succ(False)
cho giạ trë
True
.
-
ORD(x)
cho säú thỉï tỉû ca k tỉû x trong bng m
ASCII
. Vê dủ:
Ord(‘A’)
= 65, Ord(‘a’) = 97,
- CHR(x)
tr vãư k tỉû thỉï x trong bng m
ASCII.
Vê dủ:
Chr(65) = ‘A’,
Chr(50) = 2,
Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn
11
Trang 11
-
ODD(x)
Traớ vóử giaù trở
True
nóỳu x laỡ sọỳ leớ vaỡ traớ vóử giaù trở
False
nóỳu x laỡ
sọỳ chụn.
IV. Sổớ duỷng haỡm Random(n) õóứ lỏỳy mọỹt giaù trở nguyón ngỏựu nhión:
Haỡm
Random(n)
seợ traớ vóử mọỹt giaù trở nguyón maỡ maùy lỏỳy ngỏựu nhión coù giaù trở tổỡ
0 õóỳn n. Trong õoù,
n laỡ mọỹt sọỳ kióứu Word
tổùc laỡ trong khoaớn tổỡ
0 65535.
Trổồùc khi sổớ duỷng haỡm Random ta phaới goỹi thuớ tuỷc
Randomize
õóứ khồới taỷo bọỹ
taỷo sọỳ ngỏựu nhión
_________ oo _________
BAèI 3: HềNG S, BIN S, BIỉU THặẽC VAè CU LNH
N GIAN TRONG NGN NGặẻ PASCAL
I. Hũng sọỳ:
1. Khaùi nióỷm:
- Hũng sọỳ laỡ caùc giaù trở khọng thay õọứi trong quaù trỗnh chaỷy chổồng trỗnh.
- Coù hai phổồng phaùp sổớ duỷng hũng :
+ Gaùn trổỷc tióỳp giaù trở hũng.Vờ duỷ:
DT := R * R * 3.14; ChuVi := D * 3.14;
+ ỷt cho hũng mọỹt tón goỹi vaỡ trong quaù trỗnh soaỷn chổồng trỗnh ta duỡng tón
goỹi thay cho vióỷc duỡng trổỷc tióỳp giaù trở õoù. Vờ duỷ:
ChuVi := D * Pi;
trong õoù,
Pi
laỡ
mọỹt hũng sọỳ chuỏứn cuớa Pascal
(tổùc laỡ ta coù thóứ duỡng maỡ khọng cỏửn khai baùo vaỡ gaùn
giaù trở).
- Hũng sọỳ luọn luọn õổồỹc khai baùo trổồùc phỏửn khai baùo bióỳn nóỳu sổớ duỷng theo
phổồng phaùp õỷt tón cho hũng.
2. Cuù phaùp khai baùo:
Const a
1
= Trở_sọỳ_1, a
2
= Trở_sọỳ_2, a
n
= Trở_sọỳ_n;
Trong õoù:
a
1
a
n
laỡ tón caùc hũng sọỳ, caùc
trở
_
sọỳ
_
1,2, ,n
laỡ caùc giaù trở gaùn cho caùc
tón hũng
a
1
a
n
.
F
Vờ duỷ mọỹt caùch khai baùo hũng sọỳ:
Const Pi = 3.1416, Max = 500;
4
Vờ duỷ: chổồng trỗnh tờnh chu vi õổồỡng troỡn coù sổớ duỷng hũng sọỳ
Pi
do ta õởnh
nghộa:
Program TinhCV_DT_HT;
Const Pi = 3.1416;
Var R :Real;
Begin
Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn
12
Trang 12
Write ( Nhap ban kinh hinh tron : );
Readln (R);
Writeln ( Dien tich hinh tron = , Pi * R * R );
Writeln ( Chu vi hinh tron = , 2 * R * Pi);
Readln;
End.
ệ Ghi chuù:
- Ta traùnh vióỳt:
z := Exp(1.23) + Sin(2.34) * Sin(2.34);
- Ta seợ thỏỳy tai haỷi ngay vỗ khi muọỳn tờnh laỷi
z
vồùi giaù trở mồùi cuớa
x
, vờ duỷ
x =
1.55
, khọng leợ laỷi õi thay hóỳt 3 vở trờ vồùi
2.34 (laỡ giaù trở cuỷ thóứ cuớa x maỡ ta õaợ khọng
sổớ duỷng hũng sọỳ)
thaỡnh
1.55
!!
- Trong chổồng trỗnh trón, baỷn coù thóứ
tọỳi ổu hoaù
thóm õóứ chổồng trỗnh chaỷy
nhanh hồn bũng caùch thay hai lỏửn tờnh
Sin(x)
bũng mọỹt lỏửn. Cuỷ thóứ, ta thổỷc hióỷn nhổ
sau:
t := Sin(x);
z := Exp(a + t * t - x);
Taùc phong
tọỳi ổu hoaù
naỡy seợ rỏỳt coù ờch cho baỷn khi baỷn coù mọỹt chổồng trỗnh vồùi
khọỳi lổồỹng tờnh toaùn õọử sọỹ, coù thóứ chaỷy vaỡi ngaỡy õóm lión tuỷc nhổng nóỳu bióỳt tọỳi ổu
ngay tổỡ õỏửu thỗ seợ giaớm bồùt xuọỳng coỡn mọỹt ngaỡy chúng haỷn. Luùc naỡy baỷn mồùi thỏỳu
hióứu
tọỳi ổu hoaù
õóứ laỡm gỗ ?
II. Bióỳn sọỳ:
1. Khaùi nióỷm:
- Laỡ õaỷi lổồỹng maỡ
giaù trở cuớa noù coù thóứ thay õọứi trong quaù trỗnh thổỷc hióỷn chổồng
trỗnh
. Bióỳn õổồỹc khai baùo bũng tổỡ khoaù
VAR.
- Bióỳn laỡ tón cuớa mọỹt vuỡng bọỹ nhồù lổu trổợ dổợ lióỷu.
- Bióỳn õổồỹc truy xuỏỳt trong chổồng trỗnh thọng qua tón bióỳn.
- Bióỳn laỡ mọỹt cỏỳu truùc ghi nhồù dổợ lióỷu vỗ vỏỷy phaới õổồỹc quy õởnh theo mọỹt kióứu
dổợ lióỷu naỡo õoù, vờ duỷ kióứu
Integer, Byte, Char,
2. Cuù phaùp khai baùo cho caùc bióỳn:
VAR Tón_bióỳn_1, Tón_bióỳn_2, Tón_bióỳn_n : Kióứu_dổợ_lióỷu_cuớa_bióỳn;
Trong õoù:
Tón
_
bióỳn
_
1
, Tón_bióỳn_2, Tón_bióỳn_
n
laỡ
tón
caùc bióỳn cỏửn khai baùo õóứ
sổớ duỷng trong chổồng trỗnh,
Kióứu
_
dổợ
_
lióỷu
_
cuớa
_
bióỳn
laỡ mọỹt trong caùc kióứu dổợ lióỷu
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
13
—
Trang 13
chøn
(â âỉåüc nãu trong pháưn II ca bi 2)
ca Pascal hồûc do ngỉåìi dng âënh
nghéa.
F
Vê dủ mäüt cạch khai bạo biãún:
Var a,b : Integer;
c : Real;
Ten : String [10];
4 Vê dủ: chỉång trçnh tênh täøng hai säú ngun âỉåüc nháûp tỉì bn phêm. Trong bi
ny, ta cáưn khai bạo hai biãún
a
v
b
âãø tênh toạn.
Uses CRT;
Var a, b : Integer;
Begin
ClrScr;
Write( ‘ Nhap so thu nhat : ‘ );
Readln(a);
Write( ‘ Nhap so thu hai : ‘ );
Readln(b);
Write( ‘ Ket qua : ‘, a ,’ + ‘, b ,’ = ‘, a + b);
Readln;
End.
III. Biãøu thỉïc:
Mäüt biãøu thỉïc âỉåüc tảo båíi cạc
toạn tỉí (phẹp toạn)
v cạc
toạn hảng
dng âãø thãø
hiãûn mäüt cäng thỉïc toạn hc.
Toạn hảng
cọ thãø l
hàòng, hm
hồûc
biãún
.
4 Vê dủ: Sau khi khai cọ bạo:
Const Max = 120;
Var x: Integer;
ta cọ thãø viãút biãøu thỉïc sau:
5 + Max * Exp(x);
Trong âọ:
+
v
*
l hai toạn tỉí, cạc hàòng säú
5
,
Max
v hm
Exp(x)
l cạc toạn
hảng.
Ư Chụ :
-
Mäüt hàòng, mäüt biãún, mäüt hm cng âỉåüc xem l biãøu thỉïc, âọ l biãøu thỉïc âån
gin
.
- Cạc phẹp toạn trong mäüt biãøu thỉïc âỉåüc sàõp xãúp theo thỉï tỉû ỉu tiãn nhỉ sau:
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
14
—
Trang 1 4
+ Cạc phẹp toạn mäüt ngäi âỉåüc ỉu tiãn thỉï nháút l: dáúu dỉång
(+),
dáúu ám
(-
),
phẹp ph âënh
(not).
+ Cạc phẹp toạn nhán chia:
nhán (*), chia (/)
,
láúy pháưn ngun (div), láúy
pháưn dỉ (mod), phẹp v (and).
+ Cạc phẹp cäüng trỉì: cäüng
(+),
trỉì
(-),
phẹp hồûc
(or).
+ Cạc phẹp so sạnh:
<, <= , > , >= , = , < >.
- Biãøu thỉïc trong càûp dáúu ngồûc
( )
âỉåüc thỉûc hiãûn trỉåïc tiãn nãúu cọ.
- Cạc toạn tỉí cng thỉï tỉû ỉu tiãn thç âỉåüc thỉûc hiãûn tỉì trại qua phi.
4 Vê dủ viãûc sỉí dủng cạc toạn tỉí v toạn hảng:
3 + 5 * 3 = 18
(3 + 5) * 3 = 24
5 / 2 * 3 = 7.5
(5 + 2 > 4) and not (true or (5 - 3 = 8)) = false
( -b + sqrt(d) ) / 2 * a ( cọ nghéa:
)
IV. Cáu lãûnh âån gin:
Sau pháưn khai bạo dỉỵ liãûu l pháưn lãûnh ca chỉång trçnh. Pháưn ny xạc âënh cạc
cäng viãûc m chỉång trçnh phi thỉûc hiãûn xỉí l cạc dỉỵ liãûu â âỉåüc khai bạo. Cáu
lãûnh âỉåüc chia thnh hai loải:
- Cáu lãûnh âån gin:
+ Lãûnh gạn
(:=)
+ Lãûnh Nháûp
- Xút
(READ, READLN, WRITE, WRITELN).
+ Gi th tủc.
+ Lãûnh nhy
(GOTO).
- Cáu lãûnh cọ cáúu trục:
+ Lãûnh ghẹp
(BEGIN END)
+ Lãûnh lỉûa chn
(IF ELSE, CASE OF)
+ Lãûnh làûp
(FOR, REPEAT UNTIL, WHILE DO)
+ Lãûnh
WITH.
Ư Ghi chụ: Näüi dung bi ny chè âãư cáûp âãún cạc lãûnh âån gin.
Cạc lãûnh cọ cáúu
trục âỉåüc trçnh by åí bi 4.
1. Lãûnh gạn:
a
db
2
+−
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
15
—
Trang 1 5
Lãûnh gạn dng âãø gạn giạ trë ca mäüt biãøu thỉïc
(cọ thãø l hm, biãún hồûc giạ trë)
cho mäüt biãún.
Cụ phạp:
Biãún := biãøu_thỉïc;
F
Âáưu tiãn,
mạy tênh giạ trë ca biãøu thỉïc åí vãú phi,
sau âọ
, giạ trë tênh âỉåüc tỉì vãú
phi âỉåüc gạn cho vãú trại (biãún).
Ư Chụ :
-
Vãú trại ca lãûnh gạn chè cọ thãø l biãún.
Vê dủ: viãút
x + y = 7;
l sai vç vãú trại ca
cáu lãûnh ny l mäüt
biãøu thỉïc chỉï khäng phi l mäüt biãún
.
- Kiãøu giạ trë ca biãøu thỉïc
(hm, biãún hồûc giạ trë)
åí vãú phi
phi trng våïi kiãøu
ca biãún â âỉåüc khai bạo
, trỉì mäüt säú trỉåìng håüp nhỉ biãún
kiãøu thỉûc (Single, Real,
Double)
cọ thãø nháûn giạ trë
kiãøu ngun (Shorint, Byte, Integer, Word, Longint),
do táûp håüp säú ngun l táûp con ca säú thỉûc.
4
Vê dủ: Sau khi â cọ khai bạo:
Var c1, c2 : Char;
i, j : Integer;
x, y : Real;
thç ta cọ thãø thỉûc hiãûn cạc phẹp gạn sau:
c1 := ‘A’;
c2 := Chr(97);
i := (23 + 6) * 2 mod 3;
j := Round(20 / 3);
x := i;
y := j;
2. Lãûnh Xút:
Lãûnh xút dng âãø in lãn mn hçnh cạc dỉỵ liãûu, kãút qu hay cạc thäng bạo.
Cụ phạp
(1). WRITE(Biãøu_thỉïc_1, Biãøu_thỉïc_2, , Biãøu_thỉïc_n);
(2)
.
WRITELN(Biãøu_thỉïc_1, Biãøu_thỉïc_2, , Biãøu_thỉïc_n);
(3). WRITELN;
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
16
—
Trang 1 6
Dảng
(1)
: In lãn mn hçnh giạ trë cạc biãøu thỉïc tải vë trê hiãûn hnh ca con tr
theo thỉï tỉû viãút trong lãûnh. Sau khi thỉûc hiãûn xong lãûnh
WRITE( );
con tr âënh vë
tải sau giạ trë
biãøu
_
thỉïc
_
n
ca cáu lãûnh.
Dảng
(2)
: In lãn mn hçnh giạ trë cạc biãøu thỉïc tải vë trê hiãûn hnh ca con tr
theo thỉï tỉû viãút trong lãûnh. Sau khi thỉûc hiãûn xong lãûnh
WRITELN( );
con tr
âënh vë tải âáưu dng kãú tiãúp.
Dảng
(3)
: Dng âãø chuøn con tr xúng dng.
4 Vê dủ:
Var a, b : Byte;
Begin
A := 2;
B := 4;
Write ( ‘ Day la ket qua phep nhan A voi B: ‘, a * b);
Writeln;
Writeln( ‘ * * * * ‘ );
Write ( ‘ ‘ );
End.
1
Kãút qu sau khi chảy chỉång trçnh trãn:
Day la ket qua phep nhan A voi B: 8
* * * *
Ư
Chụ : Cọ hai dảng viãút trong th tủc
Write
v
Writeln
l
viãút khäng quy cạch
v viãút cọ quy cạch.
Âiãưu ny ta xẹt qua tỉìng kiãøu dỉỵ liãûu.
(1). Vê dủ vãư cạc dảng viãút khäng cọ quy cạch:
Uses CRT;
Var
I : Integer; R : Real;
Ch : Char;
B : Boolean;
Begin
I := 123; R := 123.456; Ch := ‘A’; B := 2<5;
Writeln( I ); {1}
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
17
—
Trang 17
Writeln( R); {2}
Writeln( 3.14 ); {3}
Writeln( 20 * 2.5); {4}
Writeln;
Writeln( Ch ); {5}
Writeln( B ); {6}
Writeln( #7 ); {7}
End.
F
Cạch viãút khäng quy cạch s canh näüi dung theo lãư bãn trại.
- Säú ngun âỉåüc viãút ra våïi säú chäù âụng bàòng säú chỉỵ säú gạn vo, kãø tỉì vë trê bãn
trại. Lãûnh {1} in ra:
123
- Säú thỉûc âỉåüc viãút ra våïi trçnh tỉû sau:
mäüt dáúu cạch
, tiãúp âãún l
mäüt säú pháưn
ngun, dáúu cháúm, 10 vë trê säú tháûp phán,
tiãúp âãún l chỉỵ
E
,
dáúu ca pháưn m (+,-),
hai säú biãøu diãùn giạ trë pháưn m:
+ Lãûnh {2}in ra:
1.2345600000E+02
+ Lãûnh {3}in ra:
3.1400000000E+00
+ Lãûnh {4}in ra:
5.0000000000E+01
- Kiãøu k tỉû in bçnh thỉåìng, mäüt k tỉû chiãúm mäüt chäù. Lãûnh {5}in ra:
A
- Kiãøu
Boolean
in ra mäüt trong hai tỉì
True
hồûc
False
. Lãûnh {6}in ra:
True
- Lãûnh {7}:
phạt ra mäüt tiãúng Beep åí loa.
(2). Vê dủ vãư cạc dảng viãút cọ quy cạch:
Var
I : Integer;
R , Z : Real;
Ch : Char;
B : Boolean;
Begin
I := 123; R := 123.456; Ch := ‘A’; B := 2<5; Z := 543621.342;
Writeln( I :8 ); {1}
Writeln( -23564:8 ); {2}
Writeln( R:12:6); {3}
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
18
—
Trang 1 8
Writeln( 35.123456789:12:6 ); {4}
Writeln( R:12 ); {5}
Writeln( Ch:5); {6}
Writeln(‘ABC’:5); {7}
Writeln( B:7 ); {8}
Writeln( Z:1:2 ); {9}
End.
F
Cạch viãút cọ quy cạch s canh näüi dung theo lãư bãn phi, nãúu thỉìa chäù thç pháưn
lãư bãn trại âỉåüc âãø tràõng.
- Lãûnh {1} v {2} dnh 8 k tỉû trãn mn hçnh âãø in cạc säú ngun.
- Lãûnh {3} v {4} dnh 12 k tỉû trãn mn hçnh âãø in cạc säú thỉûc våïi 6 säú l pháưn
tháûp phán, kãút qu in ra:
123.456000
v
35.123457 (do pháưn tháûp phán >6 chäù nãn
âỉåüc lm trn säú).
- Lãûnh {5}in giạ trë ca
R
våïi
12 chäù dảng m säú: 1.23456E+02
- Lãûnh {6},{7} dnh 5 chäù âãø in chỉỵ
A
v xáu k tỉû
ABC.
- Lãûnh {8} dnh 7 k tỉû âãø in giạ trë
True.
- Lãûnh {9} in säú thỉûc
Z
nhỉ sau:
Writeln( Z : m : n ).
Nãúu
m < n
thç säú thỉûc
Z
âỉåüc in våïi
n
säú l, cn säú chäù trãn mn hçnh thç tu vo âäü di ca säú
Z
. Trong
trỉåìng håüp
m > n
v âäü di ca säú låïn hån
m
thç säú âỉåüc tỉû âäüng canh phi. Trỉåìng
håüp
m > n
v âäü di ca säú nh hån
m
thç säú âỉåüc canh phi dỉ bao nhiãu k tỉû
mạy âãø träúng bãn trại.
Ư
Trỉåìng håüp trong cáu cáưn hiãøn thë dáúu ‘ thç ta phi viãút hai dáúu ‘ liãưn nhau (“).
4 Vê dủ:
Write( ‘ Don‘’t forget me ! ’ );
1 Kãút qu: Trãn mn hçnh hiãøn thë:
Don‘t forget me !
Ư Ghi chụ: Mún in dỉỵ liãûu ra mạy in ta dng lãûnh
Write
hồûc
Writeln
våïi tham
säú
LST
vo trỉåïc. Biãún
LST
âỉåüc khai bạo trong
Unit Printer
, vç váûy, âãø sỉí dủng
lãûnh in ta cáưn phi khai bạo thỉ viãûn
Printer
trong chỉång trçnh.
4 Vê dủ:
Uses Printer;
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
19
—
Trang 19
Begin
Writeln(Lst,’ Welcome to Turbo Pascal Language ! ‘ );
End.
1
Kãút qu: Khi chảy mạy in ra giáúy cáu
Welcome to Turbo Pascal Language !
3. Lãûnh Nháûp:
Lãûnh nháûp dng âãø âỉa dỉỵ liãûu tỉì bn phêm vo cạc biãún.
Cụ phạp:
(1) Readln(Biãún_1, biãún_2, biãún_n);
(2) Read(Biãún_1, biãún_2, biãún_n);
Khi thỉûc hiãûn lãûnh ny, mạy dỉìng lải chåì ngỉåìi dng nháûp vo â
n
láưn nháûp dỉỵ
liãûu tỉång ỉïng våïi
n
biãún.
Ngoi ra, ta cọ thãø sỉí dủng th tủc
Readln
âãø dỉìng chỉång trçnh v chåì ngỉåìi
dng áún mäüt phêm báút k âãø tiãúp tủc, k tỉû âỉåüc áún khäng hiãøn thë lãn mn hçnh.
Ư
Chụ :
- Cạc biãún trong th tủc
Readln
phi thüc kiãøu
ngun, thỉûc, k tỉû
hồûc
xáu k
tỉû
. Do âọ, ta khäng thãø nảp tỉì bn phêm giạ trë
True
hồûc
False
cạc biãún kiãøu
Boolean
.
- Dỉỵ liãûu nháûp vo phi tỉång ỉïng våïi kiãøu â khai bạo. Phi áún phêm
Enter
âãø
thỉûc hiãûn lãûnh nháûp sau khi g xong giạ trë cáưn nháûp.
4
Vê dủ 1: Våïi
a, b
l hai biãún ngun,
x
l biãún thỉûc. Xẹt âoản chỉång trçnh sau:
Readln(a, b);
Readln(x);
Nãúu ta g cạc phêm:
2 24 6.5 14 < Enter >
1 Kãút qu:
a
nháûn giạ trë
2, b
nháûn giạ trë
24
. Cạc k tỉû cn lải bë b qua v
khäng âỉåüc xẹt trong th tủc
Readln(x)
tiãúp theo. Nhỉ váûy, mạy dỉìng lải åí cáu lãûnh
Readln(x)
âãø chåì nháûp säú liãûu cho biãún
x.
4 Vê dủ 2: Gi sỉí ta â khai bạo:
Var s1, s2, s3 : String[5];
Xẹt cáu lãûnh:
Readln(s1, s2, s3);
Nãúu ta khäng nháûp k tỉû m chè áún
< Enter >
thç c 3 biãún
s1, s2, s3
âãưu l xáu
räùng.
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
20
—
Trang 20
Nãúu ta g
ABCDE1234567
v áún phêm
< Enter >
thç:
s1 = ‘ABCDE’, s2 =
‘12345’, s3 = ‘67’.
4
Vê dủ 3: Viãút chỉång trçnh tênh diãûn têch
S
ca hçnh thang våïi âạy di
a
, âạy
ngàõn
b
, chiãưu cao
h
, táút c âỉåüc nháûp tỉì bn phêm.
Program DienTichHinhThang;
Uses CRT;
Var a, b, h, s : Real;
Begin
ClrScr;
Write( ‘ Nhap gia tri cua a, b, h :‘ );
Readln(a, b, h);
S := (a + b) * h / 2;
Write( ‘ Dien tich S = ‘,S:1:5);
Readln;
End.
1
Kãút qu khi chảy chỉång trçnh:
Nhap gia tri cua a, b, h : 5 3 4 < Enter >
Dien tich S = 16.00000
Ư
Chụ : Våïi cạch láúy 3 giạ trë bàòng mäüt lãûnh
Readln( a, b, c);
thç cạc giạ trë ta
cáưn nháûp cho mäùi biãún phi cạch våïi cạc giạ trë khạc êt nháút mäüt k tỉû tràõng. Ta cọ
thãø nháûp
a, b, c
bàòng 3 lãûnh
Readln(a); Readln(b); Readln(c);
_________ o
²
o _________
BI 4: CẠC LÃÛNH CỌ CÁÚU TRỤC TRONG NGÄN NGỈỴ PASCAL
I. Lãûnh ghẹp:
Lãûnh ghẹp l mäüt nhọm cạc cáu lãûnh âỉåüc âàût giỉỵa hai tỉì khoạ
BEGIN
v
END
.
Lãûnh ghẹp âỉåüc thỉûc hiãûn bàòng cạch thỉûc hiãûn tưn tỉû cạc cáu lãûnh nàòm giỉỵa
BEGIN
v
END.
Cụ phạp:
Begin
<cáu lãûnh 1>;
<cáu lãûnh 2>;
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
21
—
Trang 21
<cáu lãûnh n>;
End;
Sau
<cáu lãûnh n>
cọ thãø cọ dáúu ‘;‘ hồûc khäng.
Lãûnh ghẹp cng l mäüt dảng cáu
lãûnh.
4 Vê dủ:
Begin
temp := x;
x := y;
y := temp;
End;
Ư Chụ : Sau tỉì khọa
END
cọ thãø cọ dáúu ‘;‘ hay khäng ty thüc vo cạc lãûnh cáúu
trục kãú tiãúp ta âỉåüc hc.
II. Lãûnh lỉûa chn:
1. Lãûnh IF:
Cụ phạp:
IF <biãøu thỉïc logic> THEN
<lãûnh 1>
ELSE
<lãûnh 2>;
Lãûnh IF cọ thãø khäng cọ pháưn
ELSE <lãûnh 2>.
F
Gii thêch lãûnh:
Khi gàûp lãûnh ny mạy kiãøm tra
<biãøu thỉïc logic>,
nãúu biãøu
thỉïc ny cọ giạ trë
TRUE (tỉïc l âụng nhỉ âiãưu kiãûn âàût ra)
thç mạy thỉûc hiãûn
<lãûnh
1>
nãúu ngỉåüc lải, tỉïc
<biãøu thỉïc logic>
cọ giạ trë
FALSE
thç
<lãûnh 2>
âỉåüc thỉûc
hiãûn. Trỉåìng håüp trong cáu lãûnh khäng cọ pháưn
ELSE
v
<biãøu thỉïc logic>
cọ giạ
trë
FALSE
thç
<lãûnh 1>
khäng âỉåüc thỉûc hiãûn v mạy chuøn âãún cáu lãûnh kãú sau
lãûnh
IF
âọ.
Ư Chụ : cáu lãûnh trỉåïc tỉì khọa
ELSE
khäng âỉûåc cọ dáúu ‘;‘. Trỉåìng håüp cọ cáu
lãûnh ghẹp âỉûåc âàût kãú trỉåïc
ELSE
thç tỉì khoạ
END
trỉåïc
ELSE
khäng âỉåüc âàûtï
dáúu ‘;‘.
Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn
22
Trang 22
4
Vờ duỷ 1: Chổồng trỗnh nhỏỷp tổỡ baỡn phờm 2 sọỳ nguyón
a, b.
Kióứm tra vaỡ cho bióỳt
sọỳ naỡo lồùn hồn.
Var a, b : Integer;
Begin
Write( Nhap so a: );
Readln(a);
Write( Nhap so b: );
Readln(b);
If a > b then
Write( So lon hon la , a) { taỷi vở trờ naỡy khọng õổồỹc õỷt dỏỳu; }
Else
Write( So lon hon la , b);
Readln; { coù thóứ khọng coù dỏỳu; taỷi cỏu lóỷnh cuọỳi naỡy }
End.
4
Vờ duỷ 2: Vióỳt chổồng trỗnh kióứm tra trong ba sọỳ
a, b, c
õổồỹc nhỏỷp tổỡ baỡn phờm, sọỳ
naỡo laỡ lồùn nhỏỳt.
Var a, b, c, max : Integer;
Begin
Write( Nhap so a: );
Readln(a);
Write( Nhap so b: );
Readln(b);
Write( Nhap so c: );
Readln(c);
Max := a;
If max < b then
Max := b;
If max < c then
Max := c;
Write( So lon hon la , max);
Readln;
End.
4
Vờ duỷ 3: Vióỳt chổồng trỗnh kióứm tra ba sọỳ õổồỹc nhỏỷp tổỡ baỡn phờm coù thóứ laỡ õọỹ daỡi
cuớa ba caỷnh trong mọỹt tam giaùc hay khọng? Nóỳu õuùng laỡ ba caỷnh cuớa tam giaùc thỗ
Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn
23
Trang 23
tờnh chu vi vaỡ dióỷn tờch tam giaùc, xeùt tam giaùc coù phaới laỡ tam giaùc
õóửu
,
cỏn
hay
khọng.
Var a, b, c, p, s : Real;
Begin
Write( Nhap ba so a, b, c : );
Readln(a, b, c);
If (a>0) and (b>0) and (c>0) and (a+b>c) and (a+c>b) and (b+c>a) then
Begin
Writeln( Ba canh tren tao thanh mot tam giac. );
If (a=b) and (b=c) then write( Day la tam giac deu. );
If (a=b) or (a=c) or (b=c) then write( Day la tam giac can. );
p := (a + b + c) / 2;
s := SQRT(p * ( p - a ) * ( p - b ) * ( p - c ) );
Writeln( Chu vi: ,2 * p:0:5, . Dien tich:, s:0:5);
End
Else
Write( Ba so nay khong tao thanh duoc mot tam giac. );
Readln;
End.
2. Lóỷnh CASE:
Cỏu lóỷnh
IF
ồớ trón chố reợ vaỡo mọỹt trong hai nhaùnh tổồng ổùng vồùi giaù trở cuớa bióứu
thổùc logic. Coỡn lóỷnh
CASE (reợ nhaùnh theo giaù trở)
cho pheùp lổỷa choỹn õóứ thổỷc hióỷn
mọỹt trong nhióửu cọng vióỷc tuỡy theo giaù trở cuớa bióứu thổùc.
Cuù phaùp:
CASE <bióứu thổùc> OF
Tỏỷp
_
hũng
_
1: <lóỷnh
_
1>;
Tỏỷp
_
hũng
_
2: <lóỷnh
_
2>;
Tỏỷp
_
hũng
_
n: <lóỷnh n>;
ELSE
<lóỷnh n +1>;
END;
Lóỷnh
CASE
coù thóứ khọng coù phỏửn
ELSE <lóỷnh n +1>;
Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn
24
Trang 2 4
F
Giaới thờch lóỷnh:
1.
Tỏỷp
_
hũng
_
i (i = 1, , n)
coù thóứ bao gọửm caùc
hũng
vaỡ caùc
õoaỷn hũng
, vờ duỷ:
3 : <lóỷnh 1>;
5, 10 15 : <lóỷnh 2>;
A, Chr(152) : <lóỷnh 3>;
0 9 : <lóỷnh 4>;
2. Giaù trở cuớa
<bióứu thổùc>
vaỡ giaù trở trong caùc
Tỏỷp
_
hũng
_
i
phaới coù cuỡng kióứu vaỡ phaới
laỡ
kióứu vọ hổồùng õóỳm õổồỹc (nhổ nguyón, logic, kyù tổỷ, lióỷt kó).
3. Tỏỷp hũng naỡo coù chổùa giaù trở tổồng õổồng vồùi giaù trở cuớa
<bióứu thổùc>
thỗ lóỷnh sau
dỏỳu : cuớa tỏỷp hũng õoù õổồỹc thổỷc hióỷn, sau õoù maùy thoaùt khoới lóỷnh
CASE.
4. Trong trổồỡng hồỹp tỏỳt caớ caùc tỏỷp hũng khọng coù chổùa giaù trở tổồng õổồng vồùi giaù
trở cuớa
<bióứu thổùc>
thỗ lóỷnh sau tổỡ khoùa
ELSE
õổồỹc thổỷc hióỷn. Trổồỡng hồỹp naỡy nóỳu
khọng coù caớ phỏửn
ELSE <lóỷnh n+1>;
thỗ lóỷnh
CASE
naỡy õổồỹc thoaùt vaỡ khọng coù
lóỷnh naỡo sau dỏỳu : õổồỹc thổỷc hióỷn.
4
Vờ duỷ 1: Vióỳt chổồng trỗnh nhỏỷp vaỡo mọỹt õióứm kióứm tra tổỡ baỡn phờm vaỡ in kóỳt
quaớ xóỳp loaỷi: loaỷi
Yóỳu (dổồùi 5 õióứm),
loaỷi
Trung bỗnh (5, 6 õióứm),
loaỷi
Khaù (7, 8
õióứm),
loaỷi
Gioới (9, 10 õióứm).
Var Diem : Byte;
Begin
Write( Nhap diem : );
Readln(Diem);
Case Diem of
0 4 : Write( Xep loai yeu. );
5 6 : Write( Xep loai Trung binh. );
7 8 : Write( Xep loai Kha. );
9 10: Write( Xep loai Gioi. );
Else
Write( Diem nhap sai. );
End;
Readln;
End.
4
Vờ duỷ 2: Vióỳt chổồng trỗnh cho bióỳt sọỳ ngaỡy cuớa mọỹt thaùng. Thuỏỷt toaùn nhổ sau: