Giáo trình Lập trình Pascal căn bản

Giao trçnh Láp trçnh Pascal càn ban —  
1 —  
BAI 1: GIÅI THIÃU NGÄN NGÆ PASCAL VA CAC VÊ DU ÂÅN  
GIAN  
I. Xuát xæ ngän ngæ Pascal:  
Pascal la ngän ngæ láp trçnh cáp cao do Niklaus Wirth, giao sæ âiãn toan træång  
âai hoc ky thuát Zurich (Thuy Sé), âã xuát nàm 1970 våi tãn Pascal âã ky niãm nha  
toan hoc va triãt hoc näi tiãng Blaise Pascal (ngæåi Phap).  
Ngän ngæ láp trçnh Pascal co âàc âiãm: ngæ phap, ngæ nghéa âån gian va co tênh  
logic; cáu truc chæång trçnh ro rang, dã hiãu (thã hiãn tæ duy láp trçnh cáu truc); dã  
sæa chæa, cai tiãn.  
Trong qua trçnh phat triãn, Pascal âa phat huy âæåc æu âiãm va âæåc dung âã tao  
ra nhiãu æng dung trãn nhiãu lénh væc khac nhau. Cac tä chæc va cäng ty chuyãn vã  
may tênh dæa trãn Pascal chuán âa phat triãn thãm va tao ra cac chæång trçnh dëch  
ngän ngæ Pascal våi nhiãu phán bä sung, giam thiãu khac nhau. Vê du: TURBO  
PASCAL cua hang Borland (My), QUICK PASCAL cua hang Microsoft, UCSD  
PASCAL (University of California at San Diego), ANSI PASCAL (American  
National Standard Institute),.v.v.  
So våi nhiãu san phám Pascal cua nhiãu tä chæc va cäng ty khac nhau xuát ban,  
TURBO PASCAL cua hang Borland to ra co nhiãu æu âiãm nhát va hiãn nay âa trå  
thanh ngän ngæ láp trçnh phä biãn nhát trãn thã giåi sæ dung trong lénh væc giang  
day va láp trçnh chuyãn nghiãp. Chè trong vong vai nàm Turbo Pascal âæåc cai tiãn  
qua nhiãu phiãn ban : 1.0, 2.0, 3.0, 4.0, 5.0, 5.5 (1989), 6.0 (1990), 7.0 (1972).  
Cac táp tin chênh cua ngän ngæ Turbo Pascal gäm:  
- Turbo.exe: chæång trçnh soan thao, dëch va liãn kãt chæång trçnh.  
- Turbo.tpl (.tpl - Turbo Pascal Library): táp tin thæ viãn læu cac âån vë (Unit)  
chuán âã chay våi Turbo.exe.  
Muän sæ dung cac lãnh âä hoa, phai co cac táp tin sau:  
- Graph.tpu: Âån vë (Unit) chæa cac lãnh âä hoa.  
- Cac táp tin co phán må räng CHR (SANS.CHR, TRIP.CHR,  
GOTH.CHR,.v.v.): Chæa cac kiãu chæ trong chã âä âä hoa.  
- Cac táp tin co phán må räng BGI (EGAVGA.BGI, HERC.BGI, CGA.BGI,...):  
âã âiãu khiãn cac loai man hçnh tæång æng khi dung âä hoa.  
II. Khåi âäng:  
Trang 1  
Giao trçnh Láp trçnh Pascal càn ban —  
2 —  
Ta co thã khåi âäng Pascal tæ Windows hoàc MS-DOS, chuyãn âãn thæ muc BP  
hoàc TP va chay táp tin BP.EXE hay TURBO.EXE. Hai cach khåi âäng trãn thæc  
hiãn nhæ sau:  
- Khåi âäng tæ dáu nhàc cua MS-DOS: Chuyãn âãn thæ muc BP hoàc TP nåi  
chæa táp tin BP.EXE hoàc TURBO.EXE, go BP hoàc TURBO va án <Enter>.  
- Khåi âäng tæ Windows: chon menu Start/Program/Borland Pascal. Nãu chæång  
trçnh Pascal chæa âæåc cai vao menu Start, ban co thã dung Windows Explorer  
chuyãn âãn táp tin BP.EXE hoàc TURBO.EXE va khåi âäng Pascal bàng cach  
chay táp tin nay.  
III. Cac phêm chæc nàng cán biãt cua ngän ngæ Pascal:  
- F2: Læu chæång trçnh trong khi soan thao.  
- F3: Tao mät file måi hoàc må mät file cu.  
- F9: Dëch thæ chæång trçnh âã kiãm tra läi.  
- Ctrl - F9: Chay chæång trçnh.  
- Alt - F5: Xem kãt qua chay chæång trçnh.  
- Alt - X: Thoat khoi man hçnh soan thao chæång trçnh Pascal.  
IV. Cáu truc mät chæång trçnh Pascal:  
1. Cáu truc cå ban:  
Chæång trçnh Pascal âån gian nhát phai co hai tæ khoa Begin va End nhæ sau:  
Begin  
End.  
Chæång trçnh trãn tuy khäng lam gç khi chay (án Ctrl - F9) nhæng la mät chæång  
trçnh håp lã do häi âu âiãu kiãn cán thiãt la co hai tæ khoa Begin va End.  
Tæ khoa End co kem dáu “.” phêa sau bao hiãu kãt thuc chæång trçnh, âáy la âiãu  
bàt buäc phai co trong mät chæång trçnh. Tæ khoa Begin trãn âæåc trçnh biãn dëch  
hiãu la bàt âáu thæc hiãn cac lãnh sau no va kãt thuc tai tæ khoa End co dáu chám  
.”. Khäi lãnh nàm trong càp tæ khoa Begin va End nãu co dáu chám theo sau con  
goi la khäi chæång trçnh chênh. Ngoai ra, nãu sau tæ khoa End khäng co dáu hoàc  
co dáu “;” thç âo co thã la khäi chæång trçnh con, khäi lãnh cua ham hoàc khäi lãnh  
trong chæång trçnh. Trong chæång trçnh co thã co nhiãu khäi lãnh, tæc co thã co  
nhiãu càp tæ khoa Begin va End.  
2. Phæång phap khai bao va tä chæc cáu truc mät chæång trçnh Pascal:  
Trang 2  
Giao trçnh Láp trçnh Pascal càn ban —  
3 —  
Viãc âàt cac phán khai bao va soan thao 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  
{ Cac lãnh cua chæång trçnh }  
End.  
Ö Giai thêch cáu truc cac khai bao trãn:  
Nãu co phán khai bao nao cán cho chæång trçnh thç phai tuán theo thæ tæ trãn, vê  
du: phán khai bao thæ viãn (USES) khäng thã âàt sau phán khai bao hàng sä  
(CONST) hoàc sau (VAR)... sau mäi phán khai bao phai co dáu ;.  
- Program: Tæ khoa nay dung âã khai bao tãn chæång trçnh, ProgName la tãn  
chæång trçnh, tãn nay khac våi tãn táp tin. Tãn chæång trçnh phai tuán theo quy tàc:  
+ khäng co ky tæ träng xen giæa.  
+ khäng âàt sä å ky tæ âáu tiãn.  
+ trong phán tãn khäng chæa cac ky tæ âàt biãt nhæ: ‘!’, ‘@’, ‘#’, ‘$’, ‘%’, ‘^’,  
‘&’, ‘* ’, ‘(‘, ‘)’, ‘-‘, ‘+’, ‘/’, ‘\’, ‘.’, ’,’,.v.v.  
+ kãt thuc phai co dáu ;.  
+ phán nay co thã khäng co.  
4 Vê du: mät cach khai bao tãn chæång trçnh:  
Program TimUSCLN;  
Begin  
...  
End.  
- Uses: Tæ khoa nay dung âã khai bao viãc sæ dung Unit (thæ viãn) cho chæång  
trçnh. Thæ viãn la táp håp cac ham, thu tuc do ngän ngæ Pascal cung cáp kem theo  
hoàc cung co thã do ngæåi láp trçnh tao ra âã sæ dung. Ta khai bao thæ viãn thäng  
qua tãn cua thæ viãn, va trong chæång trçnh âo ta se co thã sæ dung cac thu tuc hoàc  
Trang 3  
Giao trçnh Láp trçnh Pascal càn ban —  
4 —  
cac ham co trong thæ viãn âo. Cac thæ viãn chuán cua 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 vao chæång trçnh ma ta khäng cán  
phai khai bao. Vê du mät cach khai bao thæ viãn:  
...  
Uses CRT, GRAPH;  
...  
- Label: Dung âã khai bao cac nhan cho chæång trçnh. Nhan la cac tãn dung âã  
âanh dáu trong chæång trçnh âã lãnh GOTO nhay âãn âung vë trê âo. Viãc sæ dung  
lãnh GOTO âæåc âã cáp å bai 4. Vê du mät cach khai bao nhan:  
...  
Label TH1, N2;  
...  
- Const: Tæ khoa nay dung âã khai bao cac hàng sä sæ dung trong chæång trçnh,  
khi bao hàng sä la viãc cä âënh mät vai gia trë nao âo trong chæång trçnh thäng qua  
tãn hàng, vê du cach khai bao hàng:  
...  
Const k = 5, Max = 500, Ten = ‘Nam’;  
...  
- Type: tæ khoa dung âã khai bao cac kiãu hàng dæ liãu sæ dung cho chæång  
trçnh. Våi tæ khoa nay, ta co thã tæ tao riãng cho mçnh nhæng kiãu dæ liãu riãng dæa  
trãn cac kiãu dæ liãu chuán âã tiãn sæ dung trong viãc láp trçnh. Cac khai niãm vã  
dæ liãu chuán va phæång phap tao kiãu dæ liãu tæ tao se âæåc giåi thiãu å cac phán  
sau. Vê du mät cach âã khai bao mät kiãu dæ liãu tæ tao:  
...  
Type Day = Array [1..7] of String[8];  
...  
- Var: Tæ khoa dung âã khai bao cac biãn sä âæåc sæ dung trong chæång trçnh.  
Biãn sä la cac gia trë co thã thay âäi âæåc trong suät qua trçnh chay cua chæång  
trçnh. Khai niãm vã biãn sä rát quan trong trong viãc láp trçnh (khai niãm nay âæåc  
trçnh bay ky å bai 3). Mät vê du vã cach khai bao biãn:  
...  
Trang 4  
Giao trçnh Láp trçnh Pascal càn ban —  
5 —  
Var HoDem, Ten : String;  
N : Integer;  
...  
Ö Ghi chu:  
- Thæ tæ cac khai bao trãn la âiãu bàt buäc, ta phai nàm thæ tæ nay cho du mät sä  
khai niãm ta chæa âæåc biãt.  
- Trong chæång trçnh Pascal, âã tao låi chu thêch, ta sæ dung càp dáu {...} hoàc  
(*...*) läng cac cáu chu thêch vao bãn trong no.  
- Trãn mät dong co thã viãt mät hoàc nhiãu cáu lãnh.  
V. Cac vê du âån gian lam quen våi ngän ngæ Pascal:  
4 Vê du 1:  
Program GioiThieu;  
Begin  
Writeln ( Trung tam Trung hoc Chuyen nghiep va Day nghe );  
Write ( ‘  
End.  
74 Tran Quoc Toan - Tel: 0511 872664  
);  
F Giai thêch chæång trçnh GioiThieu:  
- Begin: Tæ khoa cho biãt bàt âáu chæång trçnh.  
- Writeln: la thu tuc xuát näi dung cac thanh phán bãn trong càp dáu (...) lãn man  
hçnh va chuyãn con tro xuäng dong. Bãn trong càp dáu (...) co thã co nhiãu thanh  
phán gäm chuäi ky tæ (hàng gia trë chuäi), biãn sä hoàc ham. Giæa cac thanh phán  
trong càp dáu (...) phai cach nhau bàng dáu ,nãu khäng cung loai, tæc la chuäi ky  
tæ phai âæåc cach våi biãn sä hoàc ham âæng træåc no hay sau no bàng dáu ,.  
Chuäi ky tæ muän hiãn thë nguyãn vàn phai âæåc âàt trong càp dáu ‘ ‘.  
- Write: la thu tuc xuát näi dung cac thanh phán bãn trong càp dáu (...) lãn man  
hçnh, thu tuc nay co chæc nàng tæång tæ Writeln nhæng khäng chuyãn con tro xuäng  
dong.  
- End: la tæ khoa cho biãt kãt thuc chæång trçnh.  
- Cac dong lãnh nàm giæa Begin va End la lãnh ma chæång trçnh cán phai thæc  
hiãn.  
- Âã xem chæång trçnh trãn, ta chay bàng Ctrl - F9 va xem lai bàng Alt - F5.  
Trang 5  
Giao trçnh Láp trçnh Pascal càn ban —  
6 —  
4 Vê du 2:  
Program DonXinPhep;  
Uses CRT;  
Begin  
ClrScr;  
Writeln ( ‘ ********************************** ’ );  
Writeln ( ‘ * Cong hoa Xa hoi Chu nghia Viet Nam * ‘ );  
Writeln ( ‘ *  
Writeln ( ‘ *  
Doc Lap - Tu Do - Hanh Phuc  
* ‘ );  
* ‘ );  
DON XIN PHEP NGHI HOC  
Writeln ( ‘ ********************************** ’ );  
Writeln ( ... );  
Readln;  
End.  
F Giai thêch chæång trçnh trãn:  
- Khai bao: Uses CRT; khai bao thæ viãn CRT, do co sæ dung lãnh ClrScr.  
- Lãnh ClrScr; lau sach man hçnh (Clear Screen).  
- Cac lãnh Writeln (...) xuát ra man hçnh näi dung bãn trong dáu (...) va xuäng  
dong.  
- Lãnh Readln;  
dæng chæång trçnh, phæång phap nay dung âã hiãn thë näi  
dung sau khi thæc hiãn cac lãnh bãn trãn va chå ngæåi dung án phêm bát ky âã tiãp  
tuc thæc hiãn cac lãnh kã sau no. Trong træång håp trãn, kã tiãp la tæ khoa End nãn  
chæång trçnh âæåc kãt thuc sau khi co mät phêm bát ky âæåc án.  
4 Vê du 3:  
Program TinhTong;  
Uses CRT;  
Begin  
ClrScr;  
Write ( 30 + 40 + 15 = , 30 + 40 + 15 );  
Readln;  
End.  
1 Kãt qua: May thæc hiãn phep tênh va hiãn thë 30 + 40 + 15 = 85  
Trang 6  
Giao trçnh Láp trçnh Pascal càn ban —  
7 —  
F Trong cáu lãnh Write å trãn, co hai thanh phán, biãu thæc thæ nhát: ‘30 + 40 +15  
= ’ âæåc hiãu la mät chuäi phai âæåc hiãn thë nguyãn vàn do co càp dáu ‘ ‘ å hai  
âáu. Thanh phán thæ hai âæåc cach våi thanh 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ë cua biãu thæc.  
_________ o o _________  
Trang 7  
Giao trçnh Láp trçnh Pascal càn ban —  
8 —  
BAI 2 : CAC KHAI NIÃM CÅ BAN CUA NGÄN NGÆ PASCAL  
I. Cac tæ khoa (Key word) trong ngän ngæ Pascal:  
Cac tæ khoa la cac tæ dung âã khai bao, âàt tãn cho âäi tæång trong Pascal, khi  
ta âàt tãn cho âäi tæång nao âo, khäng âæåc âàt trung tãn våi cac tæ khoa.  
Bang tæ khoa 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 ky tæ thæång hoàc hoa. Vê du, cac cach viãt sau co  
y nghéa nhæ nhau: Begin, BEGIN, begin, beGIN, bEGIN,...  
II. Cac kiãu dæ liãu cå ban:  
1. Cac kiãu dæ liãu dang sä nguyãn:  
a. Kiãu Byte: Kiãu Byte thuäc kiãu dæ liãu biãu diãn cac gia trë sä nguyãn tæ 0 âãn  
255. Kiãu Byte chiãm 1 byte trãn bä nhå.  
b. Kiãu Integer: Kiãu Integer la kiãu dæ liãu biãu diãn cac gia trë sä nguyãn tæ -  
32768 âãn 32767. Kiãu Integer chiãm 2 bytes trãn bä nhå.  
c. Kiãu Shortint: Kiãu Shortint la kiãu dæ liãu biãu diãn cac gia trë sä nguyãn tæ -  
128 âãn 127. Kiãu Shortint chiãm 1 byte trãn bä nhå.  
d. Kiãu Word: Kiãu Word la kiãu dæ liãu biãu diãn cac gia trë nguyãn tæ 0 âãn  
65535. Kiãu Word la kiãu sä khäng biãu diãn âæåc gia trë ám. Kiãu Word chiãm 2  
bytes trãn bä nhå.  
e. Kiãu Longint: Kiãu Longint biãu diãn cac gia trë sä nguyãn tæ -2.147.483.648  
âãn 2.147.483.647. Kiãu Longint chiãm 4 bytes trãn bä nhå.  
2. Cac kiãu dæ liãu dang sä co phán biãu diãn tháp phán:  
a. Kiãu Single: La táp håp cac sä theo kiãu dáu .âäng trong giåi han tæ 1.5E -45  
âãn 3.4 E38 (1,5 x 10-45 âãn 3,4 x 1038). Kiãu Single chiãm 4 bytes trãn bä nhå.  
b. Kiãu Real: La táp håp cac sä theo kiãu dáu .âäng trong giåi han 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å.  
Trang 8  
Giao trçnh Láp trçnh Pascal càn ban —  
9 —  
c. Kiãu Double: La táp håp cac sä theo kiãu dáu ,âäng trong giåi han 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 (ky tæ):  
Kiãu Char dung âã biãu diãn cac gia trë la cac ky tæ thuäc bang chæ cai: ‘A’, ‘b’,  
‘x’,... cac con sä: 0..9 hoàc cac ky tæ âàc biãt : ‘!’, ‘@’, ‘#’, ‘$’, ‘%’, ‘&’, ‘*’,...  
Âã biãu diãn thäng tin, ta cán phai sàp xãp cac ky tæ theo mät chuán nao âo va  
mäi cach sàp xãp âo goi la bang ma, thäng dung nhát la bang ma ASCII (American  
Standard Code for Information Interchange). Bang ma ASCII co 256 ky tæ âæåc  
gan ma sä tæ 0..255, mäi ky tæ co mät ma sä nhát âënh, vê du : ky tæ ‘A’ co ma sä la  
65, ‘a’ co ma sä la 97 trong bang ma ASCII,.v.v.  
Âã hiãn thë bang ma ASCII, ban chay 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 la kiãu biãu diãn hai trang thai la âung (True) hoàc sai (False). Tæ  
khoa âã khai bao cho kiãu logic la BOOLEAN.  
4 Vê du:  
Var Co : Boolean;  
Co := True;  
5. Kiãu String (chuäi ky tæ):  
String la kiãu dæ liãu chæa cac gia trë la nhom cac ky tæ hoàc chè mät ky tæ, kã ca  
chuäi räng. Âä dai täi âa cua mät biãn kiãu String la 255, tæc la no co thã chæa täi  
âa mät day gäm 255 ky tæ.  
Cu phap khai bao: (1) Var Biãn_1, Biãn_2, Biãn_n: String;  
Trang 9  
Giao trçnh Láp trçnh Pascal càn ban —  
10 —  
(2) Var Biãn_1, Biãn_2, Biãn_n: String [30];  
Hoàc  
Cach khai bao (1) se cho phep biãn HoTen nhán täi âa 255 ky tæ. Cach (2) cho  
phep biãn HoTen nhán täi âa 30 ky tæ.  
Ö Ghi chu: Cach sæ dung kiãu dæ liãu String se âæåc trçnh bay chi tiãt å bai 8.  
III. Cac ham xæ ly dæ liãu cå ban cua ngän ngæ Pascal:  
- SQR(x)  
- ABS(x)  
- SQRT(x)  
- SIN(x)  
bçnh phæång cua mät sä nguyãn hay thæc.  
trë tuyãt âäi cua x.  
càn bác hai cua x.  
tênh gia trë Sin(x) våi x la Radian.  
tênh gia trë Cos(x) våi x la Radian.  
- COS(x)  
- ARCTAN(x) tênh gia trë Arctan(x).  
- LN(x)  
ham logaric cå sä e = 2.718.  
- EXP(x)  
ham ex.  
- TRUNC(x) càt bo phán tháp phán cua x nãu co. Vê du: Trunc(4.86) = 4,  
Trunc(-3.2) = 4.  
- ROUND(x) cho sä nguyãn gán x nhát. Vê du: Round(1.6) = 2, Round(-  
23.68) = -24, Round(1.5) = 2.  
- PRED(x)  
cho gia trë âæng træåc x, âäi sä x co thã la kiãu logic, kiãu  
nguyãn hoàc kiãu ky tæ. Vê du: Pred(‘B’); cho gia trë ‘A’,  
Pred(2) cho gia trë 1, Pred(True) cho gia trë False. Tuy nhiãn,  
Pred(False) lai khäng cho âæåc gia trë nao do gia trë False âæng  
træåc gia trë True âäi våi kiãu Boolean.  
- SUCC(x)  
cho gia trë âæng sau x, âäi sä x co thã la kiãu logic, kiãu nguyãn  
hoàc kiãu ky tæ. Vê du: Succ(‘B’); cho gia trë ‘C’, Succ(2) cho  
gia trë 3, Succ(False) cho gia trë True.  
- ORD(x)  
- CHR(x)  
cho sä thæ tæ cua ky tæ x trong bang ma ASCII. Vê du: Ord(‘A’)  
= 65, Ord(‘a’) = 97,...  
tra vã ky tæ thæ x trong bang ma ASCII. Vê du: Chr(65) = ‘A’,  
Chr(50) = 2,...  
Trang 10  
Giao trçnh Láp trçnh Pascal càn ban —  
11 —  
Tra vã gia trë True nãu x la sä le va tra vã gia trë False nãu x la  
- ODD(x)  
sä chàn.  
IV. Sæ dung ham Random(n) âã láy mät gia trë nguyãn ngáu nhiãn:  
Ham Random(n) se tra vã mät gia trë nguyãn ma may 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 khoan tæ 0.. 65535.  
Træåc khi sæ dung ham Random ta phai goi thu tuc Randomize âã khåi tao bä  
tao sä ngáu nhiãn  
_________ o o _________  
BAI 3: HÀNG SÄ, BIÃN SÄ, BIÃU THÆC VA CÁU LÃNH  
ÂÅN GIAN TRONG NGÄN NGÆ PASCAL  
I. Hàng sä:  
1. Khai niãm:  
- Hàng sä la cac gia trë khäng thay âäi trong qua trçnh chay chæång trçnh.  
- Co hai phæång phap sæ dung hàng :  
+ Gan 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 goi va trong qua trçnh soan chæång trçnh ta dung tãn  
goi thay cho viãc dung træc tiãp gia trë âo. Vê du: ChuVi := D * Pi; trong âo, Pi la  
mät hàng sä chuán cua Pascal (tæc la ta co thã dung ma khäng cán khai bao va gan  
gia trë).  
- Hàng sä luän luän âæåc khai bao træåc phán khai bao biãn nãu sæ dung theo  
phæång phap âàt tãn cho hàng.  
2. Cu phap khai bao:  
Const a1 = Trë__1, a2 = Trë__2, an = Trë__n;  
Trong âo: a1... an la tãn cac hàng sä, cac trë__1,2,...,n la cac gia trë gan cho cac  
tãn hàng a1...an.  
F Vê du mät cach khai bao hàng sä: Const Pi = 3.1416, Max = 500;  
4 Vê du: chæång trçnh tênh chu vi âæång tron co sæ dung hàng sä Pi do ta âënh  
nghéa:  
Program TinhCV_DT_HT;  
Const Pi = 3.1416;  
Var R :Real;  
Begin  
Trang 11  
Giao trçnh Láp trçnh Pascal càn ban —  
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 tranh viãt: z := Exp(1.23) + Sin(2.34) * Sin(2.34);  
- Ta se tháy tai hai ngay vç khi muän tênh lai z våi gia trë måi cua x, vê du x =  
1.55, khäng le lai âi thay hãt 3 vë trê våi 2.34 (la gia trë cu thã cua x ma ta âa khäng  
sæ dung hàng sä) thanh 1.55 !!  
- Trong chæång trçnh trãn, ban co thã täi æu hoa thãm âã chæång trçnh chay  
nhanh hån bàng cach 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);  
Tac phong täi æu hoa nay se rát co êch cho ban khi ban co mät chæång trçnh våi  
khäi læång tênh toan âä sä, co thã chay vai ngay âãm liãn tuc nhæng nãu biãt täi æu  
ngay tæ âáu thç se giam båt xuäng con mät ngay chàng han. Luc naìy ban måi tháu  
hiãutäi æu hoa âã lam gç ?  
II. Biãn sä:  
1. Khai niãm:  
- La âai læång ma gia trë cua no co thã thay âäi trong qua trçnh thæc hiãn chæång  
trçnh. Biãn âæåc khai bao bàng tæ khoa VAR.  
- Biãn la tãn cua mät vung 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 truc ghi nhå dæ liãu vç váy phai âæåc quy âënh theo mät kiãu  
dæ liãu nao âo, vê du kiãu Integer, Byte, Char,...  
2. Cu phap khai bao cho cac biãn:  
VAR Tãn_biãn_1, Tãn_biãn_2, Tãn_biãn_n : Kiãu__liãu_cua_biãn;  
Trong âo: Tãn_biãn_1, Tãn_biãn_2, Tãn_biãn_n la tãn cac biãn cán khai bao âã  
sæ dung trong chæång trçnh, Kiãu__liãu_cua_biãn la mät trong cac kiãu dæ liãu  
Trang 12  
Giao trçnh Láp trçnh Pascal càn ban —  
13 —  
chuán (âa âæåc nãu trong phán II cua bai 2) cua Pascal hoàc do ngæåi dung âënh  
nghéa.  
F Vê du mät cach khai bao biãn:  
Var a,b : Integer;  
c
: Real;  
Ten: String [10];  
4 Vê du: chæång trçnh tênh täng hai sä nguyãn âæåc nháp tæ ban phêm. Trong bai  
nay, ta cán khai bao hai biãn a va b âã tênh toan.  
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 tao båi cac toan tæ (phep toan) va cac toan hang dung âã thã  
hiãn mät cäng thæc toan hoc. Toan hang co thã la hàng, ham hoàc biãn.  
4 Vê du: Sau khi khai co bao:  
Const Max = 120;  
Var x: Integer;  
ta co thã viãt biãu thæc sau: 5 + Max * Exp(x);  
Trong âo: + va * la hai toan tæ, cac hàng sä 5, Max va ham Exp(x) la cac toan  
hang.  
Ö Chu y:  
- Mät hàng, mät biãn, mät ham cung âæåc xem la biãu thæc, âo la biãu thæc âån  
gian.  
- Cac phep toan trong mät biãu thæc âæåc sàp xãp theo thæ tæ æu tiãn nhæ sau:  
Trang 13  
Giao trçnh Láp trçnh Pascal càn ban —  
14 —  
+ Cac phep toan mät ngäi âæåc æu tiãn thæ nhát la: dáu dæång (+), dáu ám (-  
), phep phu âënh (not).  
+ Cac phep toan nhán chia: nhán (*), chia (/), láy phán nguyãn (div), láy  
phán dæ (mod), phep va (and).  
+ Cac phep cäng træ: cäng (+), træ (-), phep hoàc (or).  
+ Cac phep so sanh: <, <= , > , >= , = , < >.  
- Biãu thæc trong càp dáu ngoàc ( ) âæåc thæc hiãn træåc tiãn nãu co.  
- Cac toan tæ cung thæ tæ æu tiãn thç âæåc thæc hiãn tæ trai qua phai.  
4 Vê du viãc sæ dung cac toan tæ va toan hang:  
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 + d  
a
( -b + sqrt(d) ) / 2 * a ( co nghéa:  
)
2
IV. Cáu lãnh âån gian:  
Sau phán khai bao dæ liãu la phán lãnh cua chæång trçnh. Phán nay xac âënh cac  
cäng viãc ma chæång trçnh phai thæc hiãn xæ ly cac dæ liãu âa âæåc khai bao. Cáu  
lãnh âæåc chia thanh hai loai:  
- Cáu lãnh âån gian:  
+ Lãnh gan (:=)  
+ Lãnh Nháp - Xuát (READ, READLN, WRITE, WRITELN).  
+ Goi thu tuc.  
+ Lãnh nhay (GOTO).  
- Cáu lãnh co cáu truc:  
+ Lãnh ghep (BEGIN... END)  
+ Lãnh læa chon (IF... ELSE, CASE... OF)  
+ Lãnh làp (FOR, REPEAT... UNTIL, WHILE... DO)  
+ Lãnh WITH.  
Ö Ghi chu: Näi dung bai nay chè âã cáp âãn cac lãnh âån gian. Cac lãnh co cáu  
truc âæåc trçnh bay å bai 4.  
1. Lãnh gan:  
Trang 1 4  
Giao trçnh Láp trçnh Pascal càn ban —  
15 —  
Lãnh gan dung âã gan gia trë cua mät biãu thæc (co thã la ham, biãn hoàc gia trë)  
cho mät biãn.  
Cu phap:  
Biãn := biãu_thæc;  
F Âáu tiãn, may tênh gia trë cua biãu thæc å vã phai, sau âo, gia trë tênh âæåc tæ vã  
phai âæåc gan cho vã trai (biãn).  
Ö Chu y:  
- Vã trai cua lãnh gan chè co thã la biãn. Vê du: viãt x + y = 7; la sai vç vã trai cua  
cáu lãnh nay la mät biãu thæc chæ khäng phai la mät biãn.  
- Kiãu gia trë cua biãu thæc (ham, biãn hoàc gia trë) å vã phai phai trung våi kiãu  
cua biãn âa âæåc khai bao, træ mät sä træång håp nhæ biãn kiãu thæc (Single, Real,  
Double) co thã nhán gia trë kiãu nguyãn (Shorint, Byte, Integer, Word, Longint),...  
do táp håp sä nguyãn la táp con cua sä thæc.  
4 Vê du: Sau khi âa co khai bao:  
Var  
i, j  
x, y  
c1, c2 : Char;  
: Integer;  
: Real;  
thç ta co thã thæc hiãn cac phep gan sau:  
c1 := ‘A’;  
c2 := Chr(97);  
i := (23 + 6) * 2 mod 3;  
j := Round(20 / 3);  
x := i;  
y := j;  
2. Lãnh Xuát:  
Lãnh xuát dung âã in lãn man hçnh cac dæ liãu, kãt qua hay cac thäng bao.  
Cu phap (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;  
Trang 1 5  
Giao trçnh Láp trçnh Pascal càn ban —  
16 —  
Dang (1): In lãn man hçnh gia trë cac biãu thæc tai vë trê hiãn hanh cua con tro  
theo thæ tæ viãt trong lãnh. Sau khi thæc hiãn xong lãnh WRITE(... ); con tro âënh vë  
tai sau gia trë biãu_thæc_n cua cáu lãnh.  
Dang (2): In lãn man hçnh gia trë cac biãu thæc tai vë trê hiãn hanh cua con tro  
theo thæ tæ viãt trong lãnh. Sau khi thæc hiãn xong lãnh WRITELN(... ); con tro  
âënh vë tai âáu dong kã tiãp.  
Dang (3): Dung âã chuyãn con tro xuäng dong.  
4 Vê du:  
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 qua sau khi chay chæång trçnh trãn:  
Day la ket qua phep nhan A voi B: 8  
* * * *  
--------------------------------------------  
Ö Chu y: Co hai dang viãt trong thu tuc Write va Writeln la viãt khäng quy cach  
va viãt co quy cach. Âiãu nay ta xet qua tæng kiãu dæ liãu.  
(1). Vê du vã cac dang viãt khäng co quy cach:  
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}  
Trang 1 6  
Giao trçnh Láp trçnh Pascal càn ban —  
17 —  
{2}  
Writeln( R);  
Writeln( 3.14 );  
Writeln( 20 * 2.5);  
Writeln;  
{3}  
{4}  
Writeln( Ch );  
Writeln( B );  
Writeln( #7 );  
{5}  
{6}  
{7}  
End.  
F Cach viãt khäng quy cach se canh näi dung theo lã bãn trai.  
- Sä nguyãn âæåc viãt ra våi sä chä âung bàng sä chæ sä gan vao, kã tæ vë trê bãn  
trai. Lãnh {1} in ra: 123  
- Sä thæc âæåc viãt ra våi trçnh tæ sau: mät dáu cach, tiãp âãn la mät sä phán  
nguyãn, dáu chám, 10 vë trê sä tháp phán, tiãp âãn la chæ E, dáu cua phán mu (+,-),  
hai sä biãu diãn gia trë phán mu:  
+ 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 ky tæ in bçnh thæång, mät ky tæ chiãm mät chä. Lãnh {5}in ra: A  
- Kiãu Boolean in ra mät trong hai tæ True hoàc False. Lãnh {6}in ra: True  
- Lãnh {7}: phat ra mät tiãng Beep å loa.  
(2). Vê du vã cac dang viãt co quy cach:  
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}  
{2}  
{3}  
Writeln( -23564:8 );  
Writeln( R:12:6);  
Trang 17  
Giao trçnh Láp trçnh Pascal càn ban —  
18 —  
Writeln( 35.123456789:12:6 );  
{4}  
{5}  
{6}  
{7}  
{8}  
{9}  
Writeln( R:12 );  
Writeln( Ch:5);  
Writeln(ABC:5);  
Writeln( B:7 );  
Writeln( Z:1:2 );  
End.  
F Cach viãt co quy cach se canh näi dung theo lã bãn phai, nãu thæa chä thç phán  
lã bãn trai âæåc âã tràng.  
- Lãnh {1} va {2} danh 8 ky tæ trãn man hçnh âã in cac sä nguyãn.  
- Lãnh {3} va {4} danh 12 ky tæ trãn man hçnh âã in cac sä thæc våi 6 sä le phán  
tháp phán, kãt qua in ra: 123.456000 va 35.123457 (do phán tháp phán >6 chä nãn  
âæåc lam tron sä).  
- Lãnh {5}in gia trë cua R våi 12 chä dang mu sä: 1.23456E+02  
- Lãnh {6},{7} danh 5 chä âã in chæ A va xáu ky tæ ABC.  
- Lãnh {8} danh 7 ky tæ âã in gia 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ä le, con sä chä trãn man hçnh thç tuy vao âä dai cua sä Z. Trong  
træång håp m > n va âä dai cua sä lån hån m thç sä âæåc tæ âäng canh phai. Træång  
håp m > n va âä dai cua sä nho hån m thç sä âæåc canh phai dæ bao nhiãu ky tæ  
may âã träng bãn trai.  
Ö Træång håp trong cáu cán hiãn thë dáu thç ta phai viãt hai dáu liãn nhau (“).  
4 Vê du: Write( ‘ Don‘’t forget me ! ’ );  
1 Kãt qua: Trãn man hçnh hiãn thë:  
Don‘t forget me !  
Ö Ghi chu: Muän in dæ liãu ra may in ta dung lãnh Write hoàc Writeln våi tham  
LST vao træåc. Biãn LST âæåc khai bao trong Unit Printer, vç váy, âã sæ dung  
lãnh in ta cán phai khai bao thæ viãn Printer trong chæång trçnh.  
4 Vê du:  
Uses Printer;  
Trang 1 8  
Giao trçnh Láp trçnh Pascal càn ban —  
19 —  
Begin  
Writeln(Lst,’ Welcome to Turbo Pascal Language ! ‘ );  
End.  
1 Kãt qua: Khi chay may in ra giáy cáu Welcome to Turbo Pascal Language !  
3. Lãnh Nháp:  
Lãnh nháp dung âã âæa dæ liãu tæ ban phêm vao cac biãn.  
Cu phap:  
(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 nay, may dæng lai chå ngæåi dung nháp vao âu n lán nháp dæ  
liãu tæång æng våi n biãn.  
Ngoai ra, ta co thã sæ dung thu tuc Readln âã dæng chæång trçnh va chå ngæåi  
dung án mät phêm bát ky âã tiãp tuc, ky tæ âæåc án khäng hiãn thë lãn man hçnh.  
Ö Chu y:  
- Cac biãn trong thu tuc Readln phai thuäc kiãu nguyãn, thæc, ky tæ hoàc xáu ky  
. Do âo, ta khäng thã nap tæ ban phêm gia trë True hoàc False cac biãn kiãu  
Boolean.  
- Dæ liãu nháp vao phai tæång æng våi kiãu âa khai bao. Phai án phêm Enter âã  
thæc hiãn lãnh nháp sau khi go xong gia trë cán nháp.  
4 Vê du 1: Våi a, b la hai biãn nguyãn, x la biãn thæc. Xet âoan chæång trçnh sau:  
Readln(a, b);  
Readln(x);  
Nãu ta go cac phêm: 2 24 6.5 14 < Enter >  
1 Kãt qua: a nhán gia trë 2, b nhán gia trë 24. Cac ky tæ con lai bë bo qua va  
khäng âæåc xet trong thu tuc Readln(x) tiãp theo. Nhæ váy, may dæng lai å cáu lãnh  
Readln(x) âã chå nháp sä liãu cho biãn x.  
4 Vê du 2: Gia sæ ta âa khai bao: Var s1, s2, s3 : String[5];  
Xet cáu lãnh: Readln(s1, s2, s3);  
Nãu ta khäng nháp ky tæ ma chè án < Enter > thç ca 3 biãn s1, s2, s3 âãu la xáu  
räng.  
Trang 19  
Giao trçnh Láp trçnh Pascal càn ban —  
20 —  
Nãu ta go ABCDE1234567 va án phêm < Enter > thç: s1 = ‘ABCDE’, s2 =  
‘12345’, s3 = 67’.  
4 Vê du 3: Viãt chæång trçnh tênh diãn têch S cua hçnh thang våi âay dai a, âay  
ngàn b, chiãu cao h, tát ca âæåc nháp tæ ban 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 qua khi chay chæång trçnh:  
Nhap gia tri cua a, b, h : 5 3 4 < Enter >  
Dien tich S = 16.00000  
Ö Chu y: Våi cach láy 3 gia trë bàng mät lãnh Readln( a, b, c); thç cac gia trë ta  
cán nháp cho mäi biãn phai cach våi cac gia trë khac êt nhát mät ky tæ tràng. Ta co  
thã nháp a, b, c bàng 3 lãnh Readln(a); Readln(b); Readln(c);  
_________ o o _________  
BAI 4: CAC LÃNH CO CÁU TRUC TRONG NGÄN NGÆ PASCAL  
I. Lãnh ghep:  
Lãnh ghep la mät nhom cac cáu lãnh âæåc âàt giæa hai tæ khoa BEGIN va END.  
Lãnh ghep âæåc thæc hiãn bàng cach thæc hiãn tuán tæ cac cáu lãnh nàm giæa  
BEGIN va END.  
Cu phap:  
Begin  
<cáu lãnh 1>;  
<cáu lãnh 2>;  
Trang 20  
Tải về để xem bản đầy đủ
pdf 90 trang baolam 09/05/2022 7280
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Lập trình Pascal căn bản", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_lap_trinh_pascal_can_ban.pdf