You are on page 1of 90

Giao trlnh Lp trlnh Pascal can ban

1
Trang 1
BAI 1: GIOI THIU NGN NGU PASCAL VA CAC VI DU ON
GIAN
I. Xut xu ngn ngu Pascal:
Pascal la ngn ngu lp trlnh cp cao do Niklaus Wirth, giao su din toan truong
dai hoc ky thut Zurich (Thuy S), d xut nam 1970 voi tn Pascal d ky nim nha
toan hoc va trit hoc ni ting Blaise Pascal (nguoi Phap).
Ngn ngu lp trlnh Pascal co dac dim: ngu phap, ngu ngha don gian va co tinh
logic; cu truc chuong trlnh ro rang, d hiu (th hin tu duy l p trlnh cu truc); d
sua chua, cai tin.
Trong qua trlnh phat trin, Pascal da phat huy duoc uu dim va duoc dung d tao
ra nhiu ung dung trn nhiu lnh vuc khac nhau. Cac t chuc va cng ty chuyn v
may tinh dua trn Pascal chun da phat trin thm va tao ra cac chuong trlnh dich
ngn ngu Pascal voi nhiu phn b sung, giam thiu khac nhau. Vi du: TURBO
PASCAL cua hang Borland (My), QUICK PASCAL cua hang MicrosoIt, UCSD
PASCAL (University oI CaliIornia at San Diego), ANSI PASCAL (American
National Standard Institute),.v.v.
So voi nhiu san phm Pascal cua nhiu t chuc va cng ty khac nhau xut ban,
TURBO PASCAL cua hang Borland to ra co nhiu uu dim nht va hin nay da tro
thanh ngn ngu lp trlnh ph bin nht trn th gioi su dung trong lnh vuc giang
day va lp trlnh chuyn nghip. Chi trong vong vai nam Turbo Pascal duoc cai tin
qua nhiu phin ban : 1.0, 2.0, 3.0, 4.0, 5.0, 5.5 (1989), 6.0 (1990), 7.0 (1972).
Cac tp tin chinh cua ngn ngu Turbo Pascal gm:
Turbo.exe: chuong trlnh soan thao, dich va lin kt chuong trlnh.
Turbo.tpl (.tpl Turbo Pascal Library): tp tin thu vin luu cac don vi (Unit)
chun d chay voi Turbo.exe.
Mun su dung cac lnh d hoa, phai co cac tp tin sau:
Graph.tpu: on vi (Unit) chua cac lnh d hoa.
Cac tp tin co phn mo rng CHR (SANS.CHR, TRIP.CHR,
GOTH.CHR,.v.v.): Chua cac kiu chu trong ch d d hoa.
Cac tp tin co phn mo rng BGI (EGAVGA.BGI, HERC.BGI, CGA.BGI,...):
d diu khin cac loai man hlnh tuong ung khi dung d hoa.
II. Khoi dng:
Giao trlnh Lp trlnh Pascal can ban
2
Trang 2
Ta co th khoi dng Pascal tu Windows hoac MSDOS, chuyn dn thu muc BP
hoac TP va chay tp tin BP.EXE hay TURBO.EXE. Hai cach khoi dng trn thuc
hin nhu sau:
Khoi dng tu du nhac cua MSDOS: Chuyn dn thu muc BP hoac TP noi
chua tp tin BP.EXE hoac TURBO.EXE, go BP hoac TURBO va n Enter.
Khoi dng tu Windows: chon menu Start/Program/Borland Pascal. Nu chuong
trlnh Pascal chua duoc cai vao menu Start, ban co th dung Windows Explorer
chuyn dn tp tin BP.EXE hoac TURBO.EXE va khoi dng Pascal bang cach
chay tp tin nay.
III. Cac phim chuc nang cn bit cua ngn ngu Pascal:
I2: Luu chuong trlnh trong khi soan thao.
I3: Tao mt Iile moi hoac mo mt Iile cu.
I9: Dich thu chuong trlnh d kim tra li.
Ctrl I9: Chay chuong trlnh.
Alt I5: Xem kt qua chay chuong trlnh.
Alt X: Thoat khoi man hlnh soan thao chuong trlnh Pascal.
IV. Cu truc mt chuong trlnh Pascal:
1. Cu truc co ban:
Chuong trlnh Pascal don gian nht phai co hai tu khoa Begin va End nhu sau:
Begin

End.
Chuong trlnh trn tuy khng lam gl khi chay (n Ctrl I9) nhung la mt chuong
trlnh hop l do hi du diu kin cn thit la co hai tu khoa Begin va End.
Tu khoa End co kem du "." phia sau bao hiu kt thuc chuong trlnh, dy la diu
bat buc phai co trong mt chuong trlnh. Tu khoa Begin trn duoc trlnh bin dich
hiu la bat du thuc hin cac lnh sau no va kt thuc tai tu khoa End co du chm
".". Khi lnh nam trong cap tu khoa Begin va End nu co du chm theo sau con
goi la khi chuong trlnh chinh. Ngoai ra, nu sau tu khoa End khng co du hoac
co du ";" thl do co th la khi chuong trlnh con, khi lnh cua ham hoac khi lnh
trong chuong trlnh. Trong chuong trlnh co th co nhiu khi lnh, tuc co th co
nhiu cap tu khoa Begin va End.
2. Phuong phap khai bao va t chuc cu truc mt chuong trlnh Pascal:
Giao trlnh Lp trlnh Pascal can ban
3
Trang 3
Vic dat cac phn khai bao va soan thao chuong trlnh theo thu tu nhu 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 lnh cua chuong trlnh }

End.
Giai thich cu truc cac khai bao trn:
Nu co phn khai bao nao cn cho chuong trlnh thl phai tun theo thu tu trn, vi
du: phn khai bao thu vin (USES) khng th dat sau phn khai bao hang s
(CONST) hoac sau (VAR)... sau mi phn khai bao phai co du ';'.
Program: Tu khoa nay dung d khai bao tn chuong trlnh, ProgName la tn
chuong trlnh, tn nay khac voi tn tp tin. Tn chuong trlnh phai tun theo quy tac:
khng co ky tu trng xen giua.
khng dat s o ky tu du tin.
trong phn tn khng chua cac ky tu dat bit nhu: '!', '', '#', '$', '', '',
'&', '* ', '(', ')', '', '', '/', '\', '.', ',',.v.v.
kt thuc phai co du ';'.
phn nay co th khng co.
4 Vi du: mt cach khai bao tn chuong trlnh:
Program TimUSCLN;
Begin
...
End.
Uses: Tu khoa nay dung d khai bao vic su dung Unit (thu vin) cho chuong
trlnh. Thu vin la tp hop cac ham, thu tuc do ngn ngu Pascal cung cp kem theo
hoac cung co th do nguoi lp trlnh tao ra d su dung. Ta khai bao thu vin thng
qua tn cua thu vin, va trong chuong trlnh do ta se co th su dung cac thu tuc hoac
Giao trlnh Lp trlnh Pascal can ban
4
Trang 4
cac ham co trong thu vin do. Cac thu vin chun cua ngn ngu Pascal gm: CRT,
DOS, GRAPH, GRAPH3, OVERLAY, PRINTER, SYSTEM va TURBO3. Trong
do, thu vin SYSTEM mac dinh duoc chuyn vao chuong trlnh ma ta khng cn
phai khai bao. Vi du mt cach khai bao thu vin:
...
Uses CRT, GRAPH;
...
Label: Dung d khai bao cac nhan cho chuong trlnh. Nhan la cac tn dung d
danh du trong chuong trlnh d lnh GOTO nhay dn dung vi tri do. Vic su dung
lnh GOTO duoc d cp o bai 4. Vi du mt cach khai bao nhan:
...
Label TH1, N2;
...
Const: Tu khoa nay dung d khai bao cac hang s su dung trong chuong trlnh,
khi bao hang s la vic c dinh mt vai gia tri nao do trong chuong trlnh thng qua
tn hang, vi du cach khai bao hang:
...
Const k 5, Max 500, Ten 'Nam';
...
Type: tu khoa dung d khai bao cac kiu hang du liu su dung cho chuong
trlnh. Voi tu khoa nay, ta co th tu tao ring cho mlnh nhung kiu du liu ring dua
trn cac kiu du liu chun d tin su dung trong vic lp trlnh. Cac khai nim v
du liu chun va phuong phap tao kiu du liu tu tao se duoc gioi thiu o cac phn
sau. Vi du mt cach d khai bao mt kiu du liu tu tao:
...
Type Day Array |1..7] oI String|8];
...
Var: Tu khoa dung d khai bao cac bin s duoc su dung trong chuong trlnh.
Bin s la cac gia tri co th thay di duoc trong sut qua trlnh chay cua chuong
trlnh. Khai nim v bin s rt quan trong trong vic lp trlnh (khai nim nay duoc
trlnh bay ky o bai 3). Mt vi du v cach khai bao bin:
...
Giao trlnh Lp trlnh Pascal can ban
5
Trang 5
Var HoDem, Ten : String;
N : Integer;
...
Ghi chu:
Thu tu cac khai bao trn la diu bat buc, ta phai nam thu tu nay cho du mt s
khai nim ta chua duoc bit.
Trong chuong trlnh Pascal, d tao loi chu thich, ta su dung cap du ...} hoac
(*...*) lng cac cu chu thich vao bn trong no.
Trn mt dong co th vit mt hoac nhiu cu lnh.
V. Cac vi du don gian lam quen voi ngn ngu Pascal:
4 Vi du 1:
Program GioiThieu;
Begin
Writeln ( ' Trung tam Trung hoc Chuyen nghiep va Day nghe ' );
Write ( ' 74 Tran Quoc Toan Tel: 0511 872664 ' );
End.
F Giai thich chuong trlnh GioiThieu:
Begin: Tu khoa cho bit bat du chuong trlnh.
Writeln: la thu tuc xut ni dung cac thanh phn bn trong cap du (...) ln man
hlnh va chuyn con tro xung dong. Bn trong cap du (...) co th co nhiu thanh
phn gm chui ky tu (hang gia tri chui), bin s hoac ham. Giua cac thanh phn
trong cap du (...) phai cach nhau bang du ',' nu khng cung loai, tuc la chui ky
tu phai duoc cach voi bin s hoac ham dung truoc no hay sau no bang du ','.
Chui ky tu mun hin thi nguyn van phai duoc dat trong cap du ' '.
Write: la thu tuc xut ni dung cac thanh phn bn trong cap du (...) ln man
hlnh, thu tuc nay co chuc nang tuong tu Writeln nhung khng chuyn con tro xung
dong.
End: la tu khoa cho bit kt thuc chuong trlnh.
Cac dong lnh nam giua Begin va End la lnh ma chuong trlnh cn phai thuc
hin.
xem chuong trlnh trn, ta chay bang Ctrl I9 va xem lai bang Alt I5.
Giao trlnh Lp trlnh Pascal can ban
6
Trang 6
4 Vi du 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 Giai thich chuong trlnh trn:
Khai bao: Uses CRT; khai bao thu vin CRT, do co su dung lnh ClrScr.
Lnh ClrScr; lau sach man hlnh (Clear Screen).
Cac lnh Writeln (...) xut ra man hlnh ni dung bn trong du (...) va xung
dong.
Lnh Readln; dung chuong trlnh, phuong phap nay dung d hin thi ni
dung sau khi thuc hin cac lnh bn trn va cho nguoi dung n phim bt ky d tip
tuc thuc hin cac lnh k sau no. Trong truong hop trn, k tip la tu khoa End nn
chuong trlnh duoc kt thuc sau khi co mt phim bt ky duoc n.
4 Vi du 3:
Program TinhTong;
Uses CRT;
Begin
ClrScr;
Write ( ' 30 40 15 ', 30 40 15 );
Readln;
End.
1 Kt qua: May thuc hin phep tinh va hin thi 30 40 15 85
Giao trlnh Lp trlnh Pascal can ban
7
Trang 7
F Trong cu lnh Write o trn, co hai thanh phn, biu thuc thu nht: '30 40 15
' duoc hiu la mt chui phai duoc hin thi nguyn van do co cap du ' ' o hai
du. Thanh phn thu hai duoc cach voi thanh phn thu nht bang du ',' va do
khng co cap du ' ' hai du nn no duoc tinh tng va tra v gia tri cua biu thuc.

_________ oo _________
Giao trlnh Lp trlnh Pascal can ban
8
Trang 8
BAI 2 : CAC KHAI NIM CO BAN CUA NGN NGU PASCAL

I. Cac tu khoa (Key word) trong ngn ngu Pascal:
Cac tu khoa la cac tu dung d khai bao, dat tn cho di tuong trong Pascal, khi
ta dat tn cho di tuong nao do, khng duoc dat trung tn voi cac tu khoa.
Bang tu khoa trong ngn ngu Pascal gm:
and, array, asm, begin, case, const, constructor, destructor, div, do, downto, else,
end, Iile, Ior, Iunction, goto, iI, implementation, in, inline, interIace, label, mod, nil,
not, object, oI, or, packed, procedure, program, record, repeat, set, shl, shr, string,
then, to, type, unit, until, uses, var, while, with, xor.
Turbo Pascal khng phn bit ky tu thuong hoac hoa. Vi du, cac cach vit sau co
y ngha nhu nhau: Begin, BEGIN, begin, beGIN, bEGIN,...
II. Cac kiu du liu co ban:
1. Cac kiu du liu dang s nguyn:
a. Kiu Byte: Kiu Byte thuc kiu du liu biu din cac gia tri s nguyn tu 0 dn
255. Kiu Byte chim 1 byte trn b nho.
b. Kiu Integer: Kiu Integer la kiu du liu biu din cac gia tri s nguyn tu
32768 dn 32767. Kiu Integer chim 2 bytes trn b nho.
c. Kiu Shortint: Kiu Shortint la kiu du liu biu din cac gia tri s nguyn tu
128 dn 127. Kiu Shortint chim 1 byte trn b nho.
d. Kiu Word: Kiu Word la kiu du liu biu din cac gia tri nguyn tu 0 dn
65535. Kiu Word la kiu s khng biu din duoc gia tri m. Kiu Word chim 2
bytes trn b nho.
e. Kiu Longint: Kiu Longint biu din cac gia tri s nguyn tu 2.147.483.648
dn 2.147.483.647. Kiu Longint chim 4 bytes trn b nho.
2. Cac kiu du liu dang s co phn biu din thp phn:
a. Kiu Single: La tp hop cac s theo kiu du '.' dng trong gioi han tu 1.5E 45
dn 3.4 E38 (1,5 x 10
45
dn 3,4 x 10
38
). Kiu Single chim 4 bytes trn b nho.
b. Kiu Real: La tp hop cac s theo kiu du '.' dng trong gioi han tu 2.9E 39
dn 1.7E 38 (2,9 x10
39
dn 1,7 x 10
38
). Kiu Real chim 6 bytes trn b nho.
Giao trlnh Lp trlnh Pascal can ban
9
Trang 9
c. Kiu Double: La tp hop cac s theo kiu du ',' dng trong gioi han tu 5.0E 324
dn 1.7E 308 (5,0 x10
324
dn 1,7 x 10
308
). Kiu Double chim 8 bytes trn b
nho.
3. Kiu Char (ky tu):
Kiu Char dung d biu din cac gia tri la cac ky tu thuc bang chu cai: 'A', 'b',
'x',... cac con s: 0..9 hoac cac ky tu dac bit : '!', '', '#', '$', '', '&', '*',...
biu din thng tin, ta cn phai sap xp cac ky tu theo mt chun nao do va
mi cach sap xp do goi la bang ma, thng dung nht la bang ma ASCII (American
Standard Code Ior InIormation Interchange). Bang ma ASCII co 256 ky tu duoc
gan ma s tu 0..255, mi ky tu co mt ma s nht dinh, vi du : ky tu 'A' co ma s la
65, 'a' co ma s la 97 trong bang ma ASCII,.v.v.
hin thi bang ma ASCII, ban chay chuong trlnh sau:
Program ASCI I_Table;
Uses CRT;
Var I : Integer;
Begin
ClrScr;
Ior I : 0 to 255 do
Write( I, ' ' , CHR( I ), ' ' );
Readln;
End.
4. Kiu Logic:
Kiu logic la kiu biu din hai trang thai la dung (True) hoac sai (Ialse). Tu
khoa d khai bao cho kiu logic la BOOLEAN.
4 Vi du:
Var Co : Boolean;
Co : True;
5. Kiu String (chui ky tu):
String la kiu du liu chua cac gia tri la nhom cac ky tu hoac chi mt ky tu, k ca
chui rng. dai ti da cua mt bin kiu String la 255, tuc la no co th chua ti
da mt day gm 255 ky tu.
Cu phap khai bao: (1) Var Bin_1, Bin_2, Bin_n: String;
Giao trlnh Lp trlnh Pascal can ban
10
Trang 10
Hoac (2) Var Bin_1, Bin_2, Bin_n: String |30];
Cach khai bao (1) se cho phep bin HoTen nhn ti da 255 ky tu. Cach (2) cho
phep bin HoTen nhn ti da 30 ky tu.
Ghi chu: Cach su dung kiu du liu String se duoc trlnh bay chi tit o bai 8.
III. Cac ham xu ly du liu co ban cua ngn ngu Pascal:
SQR(x) blnh phuong cua mt s nguyn hay thuc.
ABS(x) tri tuyt di cua x.
SQRT(x) can bc hai cua x.
SIN(x) tinh gia tri Sin(x) voi x la Radian.
COS(x) tinh gia tri Cos(x) voi x la Radian.
ARCTAN(x) tinh gia tri Arctan(x).
LN(x) ha m logaric co s e 2.718.
EXP(x) ham e
x
.
TRUNC(x) cat bo phn thp phn cua x nu co. Vi du: Trunc(4.86) 4,
Trunc(3.2) 4.
ROUND(x) cho s nguyn gn x nht. Vi du: Round(1.6) 2, Round(
23.68) 24, Round(1.5) 2.
PRED(x) cho gia tri dung truoc x, di s x co th la kiu logic, kiu
nguyn hoac kiu ky tu. Vi du: Pred('B'); cho gia tri 'A',
Pred(2) cho gia tri 1, Pred(True) cho gia tri Ialse. Tuy nhin,
Pred(Ialse) lai khng cho duoc gia tri nao do gia tri Ialse dung
truoc gia tri True di voi kiu Boolean.
SUCC(x) cho gia tri dung sau x, di s x co th la kiu logic, kiu nguyn
hoac kiu ky tu. Vi du: Succ('B'); cho gia tri 'C', Succ(2) cho
gia tri 3, Succ(Ialse) cho gia tri True.
ORD(x) cho s thu tu cua ky tu x trong bang ma ASCII. Vi du: Ord('A')
65, Ord('a') 97,...
CHR(x) tra v ky tu thu x trong bang ma ASCII. Vi du: Chr(65) 'A',
Chr(50) 2,...
Giao trlnh Lp trlnh Pascal can ban
11
Trang 11
ODD(x) Tra v gia tri True nu x la s le va tra v gia tri Ialse nu x la
s chan.
IV. Su dung ham Random(n) d ly mt gia tri nguyn ngu nhin:
Ham Random(n) se tra v mt gia tri nguyn ma may ly ngu nhin co gia tri tu
0 dn n. Trong do, n la mt s kiu Word tuc la trong khoan tu 0.. 65535.
Truoc khi su dung ham Random ta phai goi thu tuc Randomize d khoi tao b
tao s ngu nhin
_________ oo _________
BAI 3: HNG S, BIN S, BIU THUC VA CU LNH
ON GIAN TRONG NGN NGU PASCAL
I. Hang s:
1. Khai nim:
Hang s la cac gia tri khng thay di trong qua trlnh chay chuong trlnh.
Co hai phuong phap su dung hang :
Gan truc tip gia tri hang.Vi du: DT : R * R * 3.14; ChuVi : D * 3.14;
at cho hang mt tn goi va trong qua trlnh soan chuong trlnh ta dung tn
goi thay cho vic dung truc tip gia tri do. Vi du: ChuVi : D * Pi; trong do, Pi la
mt hang s chun cua Pascal (tuc la ta co th dung ma khng cn khai bao va gan
gia tri).
Hang s lun lun duoc khai bao truoc phn khai bao bin nu su dung theo
phuong phap dat tn cho hang.
2. Cu phap khai bao:
Const a
1
Tri_s_1, a
2
Tri_s_2, a
n
Tri_s_n;
Trong do: a
1
... a
n
la tn ca c hang s, cac tri_s_1,2,...,n la cac gia tri gan cho cac
tn hang a
1
...a
n
.
F Vi du mt cach khai bao hang s: Const Pi 3.1416, Max 500;
4 Vi du: chuong trlnh tinh chu vi duong tron co su dung hang s Pi do ta dinh
ngha:
Program TinhCV_DT_HT;
Const Pi 3.1416;
Var R :Real;
Begin
Giao trlnh Lp trlnh Pascal can ban
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 tranh vit: z : Exp(1.23) Sin(2.34) * Sin(2.34);
- Ta se thy tai hai ngay vl khi mun tinh lai z voi gia tri moi cua x, vi du x
1.55, khng le lai di thay ht 3 vi tri voi 2.34 (la gia tri cu th cua x ma ta da khng
su dung hang s) thanh 1.55 !!
- Trong chuong trlnh trn, ban co th ti uu hoa thm d chuong trlnh chay
nhanh hon bang cach thay hai ln tinh Sin(x) bang mt ln. Cu th, ta thuc hin nhu
sau:
t : Sin(x);
z : Exp(a t * t x);
Tac phong ti uu hoa nay se rt co ich cho ban khi ban co mt chuong trlnh voi
khi luong tinh toan d s, co th chay vai ngay dm lin tuc nhung nu bit ti uu
ngay tu du thl se giam bot xung con mt ngay chang han. Luc nay ban moi 'thu
hiu' ti uu hoa d lam gl ?
II. Bin s:
1. Khai nim:
La dai luong ma gia tri cua no co th thay di trong qua trlnh thuc hin chuong
trlnh. Bin duoc khai bao bang tu khoa VAR.
Bin la tn cua mt vung b nho luu tru du liu.
Bin duoc truy xut trong chuong trlnh thng qua tn bin.
Bin la mt cu truc ghi nho du liu vl vy phai duoc quy dinh theo mt kiu
du liu nao do, vi du kiu Integer, Byte, Char,...
2. Cu phap khai bao cho cac bin:
VAR Tn_bin_1, Tn_bin_2, Tn_bin_n : Kiu_du_liu_cua_bin;
Trong do: Tn_bin_1, Tn_bin_2, Tn_bin_n la tn cac bin cn khai bao d
su dung trong chuong trlnh, Kiu_du _liu_cua_bin la mt trong cac kiu du liu
Giao trlnh Lp trlnh Pascal can ban
13
Trang 13
chun (da duoc nu trong phn II cua bai 2) cua Pascal hoac do nguoi dung dinh
ngha.
F Vi du mt cach khai bao bin:
Var a,b : Integer;
c : Real;
Ten : String |10];
4 Vi du : chuong trlnh tinh tng hai s nguyn duoc nhp tu ban phim. Trong bai
nay, ta cn khai bao hai bin a va b d tinh 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. Biu thuc:
Mt biu thuc duoc tao boi cac toan tu (phep toan) va cac toan hang dung d th
hin mt cng thuc toan hoc. Toan hang co th la hang, ham hoac bin.
4 Vi du: Sau khi khai co bao:
Const Max 120;
Var x: Integer;
ta co th vit biu thuc sau: 5 Max * Exp(x);
Trong do: va * la hai toan tu, cac hang s 5, Max va ham Exp(x) la cac toan
hang.
Chu y :
Mt hang, mt bin, mt ham cung duoc xem la biu thuc, do la biu thuc don
gian.
Cac phep toan trong mt biu thuc duoc sap xp theo thu tu uu tin nhu sau:
Giao trlnh Lp trlnh Pascal can ban
14
Trang 1 4
Cac phep toan mt ngi duoc uu tin thu nht la: d u duong (), du m (
), phep phu dinh (not).
Cac phep toan nhn chia: nhn (*), chia (/), ly phn nguyn (div), ly
phn du (mod), phep va (and).
Cac phep cng tru: cng (), tru (), phep hoac (or).
Cac phep so sanh: , , , , , .
Biu thuc trong cap du ngoac ( ) duoc thuc hin truoc tin nu co.
Cac toan tu cung thu tu uu tin thl duoc thuc hin tu trai qua phai.
4 Vi du vic su dung cac toan tu 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)) Ialse
( b sqrt(d) ) / 2 * a ( co ngha: )
IV. Cu lnh don gian:
Sau phn khai bao du liu la phn lnh cua chuong trlnh. Phn nay xac dinh cac
cng vic ma chuong trlnh phai thuc hin xu ly cac du liu da duoc khai bao. Cu
lnh duoc chia thanh hai loai:
Cu lnh don gian:
Lnh gan (:)
Lnh Nhp Xut (READ, READLN, WRITE, WRITELN).
Goi thu tuc.
Lnh nhay (GOTO).
Cu lnh co cu truc:
Lnh ghep (BEGIN... END)
Lnh lua chon (II... ELSE, CASE... OI)
Lnh lap (IOR, REPEAT... UNTIL, WHILE... DO)
Lnh WITH.
Ghi chu: Ni dung bai nay chi d cp dn cac lnh don gian. Cac lnh co cu
truc duoc trlnh bay o bai 4.
1. Lnh gan:
a
d b
2
+
Giao trlnh Lp trlnh Pascal can ban
15
Trang 1 5
Lnh gan dung d gan gia tri cua mt biu thuc (co th la ham, bin hoac gia tri)
cho mt bin.
Cu phap:
Bin : biu_thuc;
F u tin, may tinh gia tri cua biu thuc o v phai, sau do, gia tri tinh duoc tu v
phai duoc gan cho v trai (bin).
Chu y:
V trai cua lnh gan chi co th la bin. Vi du: vit x y 7; la sai vl v trai cua
cu lnh nay la mt biu thuc chu khng phai la mt bin.
Kiu gia tri cua biu thuc (ham, bin hoac gia tri) o v phai phai trung voi kiu
cua bin da duoc khai bao, tru mt s truong hop nhu bin kiu thuc (Single, Real,
Double) co th nhn gia tri kiu nguyn (Shorint, Byte, Integer, Word, Longint),...
do tp hop s nguyn la tp con cua s thuc.
4 Vi du: Sau khi da co khai bao:
Var c1, c2 : Char;
i, j : Integer;
x, y : Real;
thl ta co th thuc hin cac phep gan sau:
c1 : 'A';
c2 : Chr(97);
i : (23 6) * 2 mod 3;
j : Round(20 / 3);
x : i;
y : j;
2. Lnh Xut:
Lnh xut dung d in ln man hlnh cac du liu, kt qua hay cac thng bao.
Cu phap (1). WRITE(Biu_thuc_1, Biu_thuc_2,..., Biu_thuc_n);
(2). WRITELN(Biu_thuc_1, Biu_thuc_2,..., Biu_thuc_n);
(3). WRITELN;
Giao trlnh Lp trlnh Pascal can ban
16
Trang 1 6
Dang (1): In ln man hlnh gia tri cac biu thuc tai vi tri hin hanh cua con tro
theo thu tu vit trong lnh. Sau khi thuc hin xong lnh WRITE(... ); con tro dinh vi
tai sau gia tri biu_thuc_n cua cu lnh.
Dang (2): In ln man hlnh gia tri cac biu thuc tai vi tri hin hanh cua con tro
theo thu tu vit trong lnh. Sau khi thuc hin xong lnh WRITELN(... ); con tro
dinh vi tai du dong k tip.
Dang (3): Dung d chuyn con tro xung dong.
4 Vi 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 Kt qua sau khi chay chuong trlnh trn:
Day la ket qua phep nhan A voi B: 8
* * * *

Chu y: Co hai da ng vit trong thu tuc Write va Writeln la vit khng quy cach
va vit co quy cach. iu nay ta xet qua tung kiu du liu.
(1). Vi du v cac dang vit khng co quy cach:
Uses CRT;
Var
I : Integer; R : Real;
Ch : Char;
B : Boolean;
Begin
I : 123; R : 123.456; Ch : 'A'; B : 25;
Writeln( I ); 1}
Giao trlnh Lp trlnh Pascal can ban
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 Cach vit khng quy cach se canh ni dung theo l bn trai.
S nguyn duoc vit ra voi s ch dung bang s chu s gan vao, k tu vi tri bn
trai. Lnh 1} in ra: 123
S thuc duoc vit ra voi trlnh tu sau: mt du cach, tip dn la mt s phn
nguyn, du chm, 10 vi tri s thp phn, tip dn la chu E, du cua phn mu (,),
hai s biu din gia tri phn mu:
Lnh 2}in ra: 1.2345600000E02
Lnh 3}in ra: 3.1400000000E00
Lnh 4}in ra: 5.0000000000E01
Kiu ky tu in blnh thuong, mt ky tu chim mt ch. Lnh 5}in ra: A
Kiu Boolean in ra mt trong hai tu True hoac Ialse. Lnh 6}in ra: True
Lnh 7}: phat ra mt ting Beep o loa.
(2). Vi du v cac dang vit co quy cach:
Var
I : Integer;
R , Z : Real;
Ch : Char;
B : Boolean;
Begin
I : 123; R : 123.456; Ch : 'A'; B : 25; Z : 543621.342;
Writeln( I :8 ); 1}
Writeln( 23564:8 ); 2}
Writeln( R:12:6); 3}
Giao trlnh Lp trlnh Pascal can ban
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 Cach vit co quy cach se canh ni dung theo l bn phai, nu thua ch thl phn
l bn trai duoc d trang.
Lnh 1} va 2} danh 8 ky tu trn man hlnh d in cac s nguyn.
Lnh 3} va 4} danh 12 ky tu trn man hlnh d in cac s thuc voi 6 s le phn
thp phn, kt qua in ra: 123.456000 va 35.123457 (do phn thp phn 6 ch nn
duoc lam tron s).
Lnh 5}in gia tri cu a R voi 12 ch dang mu s: 1.23456E02
Lnh 6},7} danh 5 ch d in chu A va xu ky tu ABC.
Lnh 8} danh 7 ky tu d in gia tri True.
Lnh 9} in s thuc Z nhu sau: Writeln( Z : m : n ). Nu m n thl s thuc Z
duoc in voi n s le, con s ch trn man hlnh thl tuy vao d dai cua s Z. Trong
truong hop m n va d dai cua s lon hon m thl s duoc tu dng canh phai. Truong
hop m n va d dai cua s nho hon m thl s duoc canh phai du bao nhiu ky tu
may d trng bn trai.
Truong hop trong cu cn hin thi du ' thl ta phai vit hai du ' lin nhau (").
4 Vi du: Write( ' Don''t Iorget me ! ' );
1 Kt qua: Trn man hlnh hin thi:
Don't Iorget me !
Ghi chu: Mun in du liu ra may in ta dung lnh Write hoac Writeln voi tham
s LST vao truoc. Bin LST duoc khai bao trong Unit Printer, vl vy, d su dung
lnh in ta cn phai khai bao thu vin Printer trong chuong trlnh.
4 Vi du:
Uses Printer;
Giao trlnh Lp trlnh Pascal can ban
19
Trang 19
Begin
Writeln(Lst,' Welcome to Turbo Pascal Language ! ' );
End.
1 Kt qua: Khi chay may in ra giy cu Welcome to Turbo Pascal Language !
3. Lnh Nhp:
Lnh nhp dung d dua du liu tu ban phim vao cac bin.
Cu phap:
(1) Readln(Bin_1, bin_2, bin_n);
(2) Read(Bin_1, bin_2, bin_n);
Khi thuc hin lnh nay, may dung lai cho nguoi dung nhp vao du n ln nhp du
liu tuong ung voi n bin.
Ngoai ra, ta co th su dung thu tuc Readln d dung chuong trlnh va cho nguoi
dung n mt phim bt ky d tip tuc, ky tu duoc n khng hin thi ln man hlnh.
Chu y:
Cac bin trong thu tuc Readln phai thuc kiu nguyn, thuc, ky tu hoac xu ky
tu . Do do, ta khng th nap tu ban phim gia tri True hoac Ialse cac bin kiu
Boolean.
Du liu nhp vao phai tuong ung voi kiu da khai bao. Phai n phim Enter d
thuc hin lnh nhp sau khi go xong gia tri cn nhp.
4 Vi du 1: Voi a, b la hai bin nguyn, x la bin thuc. Xet doan chuong trlnh sau:
Readln(a, b);
Readln(x);
Nu ta go cac phim: 2 24 6.5 14 Enter
1 Kt qua: a nhn gia tri 2, b nhn gia tri 24. Cac ky tu con lai bi bo qua va
khng duoc xet trong thu tuc Readln(x) tip theo. Nhu vy, may dung lai o cu lnh
Readln(x) d cho nhp s liu cho bin x.
4 Vi du 2: Gia su ta da khai bao: Var s1, s2, s3 : String|5];
Xet cu lnh: Readln(s1, s2, s3);
Nu ta khng nhp ky tu ma chi n Enter thl ca 3 bin s1, s2, s3 du la xu
rng.
Giao trlnh Lp trlnh Pascal can ban
20
Trang 20
Nu ta go ABCDE1234567 va n phim Enter thl: s1 'ABCDE', s2
'12345', s3 '67'.
4 Vi du 3: Vit chuong trlnh tinh din tich S cua hlnh thang voi day dai a, day
ngan b, chiu cao h, tt ca duoc nhp tu ban phim.
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 Kt qua khi chay chuong trlnh:
Nhap gia tri cua a, b, h : 5 3 4 Enter
Dien tich S 16.00000
Chu y: Voi cach ly 3 gia tri bang mt lnh Readln( a, b, c); thl cac gia tri ta
cn nhp cho mi bin phai cach voi cac gia tri khac it nht mt ky tu trang. Ta co
th nhp a, b, c bang 3 lnh Readln(a); Readln(b); Readln(c);
_________ oo _________

BAI 4: CAC LNH CO C U TRUC TRONG NGN NGU PASCAL
I. Lnh ghep:
Lnh ghep la mt nhom cac cu lnh duoc dat giua hai tu khoa BEGIN va END.
Lnh ghep duoc thuc hin bang cach thuc hin tun tu cac cu lnh nam giua
BEGIN va END.
Cu phap:
Begin
cu lnh 1;
cu lnh 2;
Giao trlnh Lp trlnh Pascal can ban
21
Trang 21
...
cu lnh n;
End;
Sau cu lnh n co th co du ';' hoac khng. Lnh ghep cung la mt dang cu
lnh.
4 Vi du:
Begin
temp : x;
x : y;
y : temp;
End;
Chu y: Sau tu khoa END co th co du ';' hay khng tuy thuc vao cac lnh cu
truc k tip ta duoc hoc.
II. Lnh lua chon:
1. Lnh II:
Cu phap:
II biu thuc logic THEN
lnh 1
ELSE
lnh 2;
Lnh II co th khng co phn ELSE lnh 2.
F Giai thich lnh: Khi gap lnh nay may kim tra biu thuc logic, nu biu
thuc nay co gia tri TRUE (tuc la dung nhu diu kin dat ra) thl may thuc hin lnh
1 nu nguoc lai, tuc biu thuc logic co gia tri IALSE thl lnh 2 duoc thuc
hin. Truong hop trong cu lnh khng co phn ELSE va biu thuc logic co gia
tri IALSE thl lnh 1 khng duoc thuc hin va may chuyn dn cu lnh k sau
lnh II do.
Chu y: cu lnh truoc tu khoa ELSE khng duoc co du ';'. Truong hop co cu
lnh ghep duoc dat k truoc ELSE thl tu khoa END truoc ELSE khng duoc dat
du ';'.
Giao trlnh Lp trlnh Pascal can ban
22
Trang 22
4 Vi du 1: Chuong trlnh nhp tu ban phim 2 s nguyn a, b. Kim tra va cho bit
s nao lon hon.
Var a, b : Integer;
Begin
Write( ' Nhap so a: ' );
Readln(a);
Write( ' Nhap so b: ' );
Readln(b);
II a b then
Write( ' So lon hon la ', a) tai vi tri nay khng duoc dat du; }
Else
Write( ' So lon hon la ', b);
Readln; co th khng co du; tai cu lnh cui nay }
End.
4 Vi du 2: Vit chuong trlnh kim tra trong ba s a, b, c duoc nhp tu ban phim, s
nao la lon nht.
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;
II max b then
Max : b;
II max c then
Max : c;
Write( ' So lon hon la ', max);
Readln;
End.
4 Vi du 3: Vit chuong trlnh kim tra ba s duoc nhp tu ban phim co th la d dai
cua ba canh trong mt tam giac hay khng? Nu dung la ba canh cua tam giac thl
Giao trlnh Lp trlnh Pascal can ban
23
Trang 23
tinh chu vi va din tich tam giac, xet tam giac co phai la tam giac du, cn hay
khng.
Var a, b, c, p, s : Real;
Begin
Write( ' Nhap ba so a, b, c : ' );
Readln(a, b, c);
II (a0) and (b0) and (c0) and (abc) and (acb) and (bca) then
Begin
Writeln( ' Ba canh tren tao thanh mot tam giac. ' );
II (ab) and (bc) then write( ' Day la tam giac deu. ' );
II (ab) or (ac) or (bc) 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. Lnh CASE:
Cu lnh II o trn chi re vao mt trong hai nhanh tuong ung voi gia tri cua biu
thuc logic. Con lnh CASE (re nhanh theo gia tri) cho phep lua chon d thuc hin
mt trong nhiu cng vic tuy theo gia tri cua biu thuc.
Cu phap:
CASE biu thuc OI
Tp_hang_1: lnh_1;
Tp_hang_2: lnh_2;
.......
Tp_hang_n: lnh n;
ELSE
lnh n 1;
END;
Lnh CASE co th khng co phn ELSE lnh n 1;
Giao trlnh Lp trlnh Pascal can ban
24
Trang 2 4
F Giai thich lnh:
1. Tp_hang_i (i 1,..., n) co th bao gm cac hang va cac doan hang, vi du:
3 : lnh 1;
5, 10.. 15 : lnh 2;
'A', Chr(152) : lnh 3;
'0'.. '9' : lnh 4;
2. Gia tri cua biu thuc va gia tri trong cac Tp_hang_i phai co cung kiu va phai
la kiu v huong dm duoc (nhu nguyn, logic, ky tu, lit k).
3. Tp hang nao co chua gia tri tuong duong voi gia tri cua biu thuc thl lnh sau
du ':' cua tp hang do duoc thuc hin, sau do may thoat khoi lnh CASE.
4. Trong truong hop tt ca cac tp hang khng co chua gia tri tuong duong voi gia
tri cua biu thuc thl lnh sau tu khoa ELSE duoc thuc hin. Truong hop nay nu
khng co ca phn ELSE lnh n1; thl lnh CASE nay duoc thoat va khng co
lnh nao sau du ':' duoc thuc hin.
4 Vi du 1: Vit chuong trlnh nhp vao mt dim kim tra tu ban phim va in kt
qua xp loai: loai Yu (duoi 5 dim), loai Trung blnh (5, 6 dim), loai Kha (7, 8
dim), loai Gioi (9, 10 dim).
Var Diem : Byte;
Begin
Write( ' Nhap diem : ');
Readln(Diem);
Case Diem oI
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 Vi du 2: Vit chuong trlnh cho bit s ngay cua mt thang. Thut toan nhu sau:
Giao trlnh Lp trlnh Pascal can ban
25
Trang 2 5
Nhp thang vao bin Thang.
Sau do, dua vao bin Thang d bit s ngay, s ngay nay duoc dua vao bin
SoNgay. Truong hop:
Thang 1, 3, 5, 7, 8, 10, 12: SoNgay : 31;
Thang 2:
Yu cu nhp nam vao bin Nam.
Truong hop Nam chia ht cho 4: SoNgay : 29;
Truong hop Nam khng chia ht cho 4: SoNgay : 28;
Thang 4, 6, 9, 11: SoNgay : 30;
In ni dung bin SoNgay.
Uses CRT;
Var SoNgay, Thang : Byte;
Nam : Integer;
Begin
ClrScr;
Write( ' Ban kiem tra thang may (dang so): ' );
Readln(Thang);
Case Thang oI
4, 6, 9, 11 : SoNgay : 30;
2 : Begin
Write( ' Thang nay thuoc nam nao (4 chu so): ' );
Readln(Nam);
II Nam mod 4 0 then SoNgay : 29;
Else SoNgay : 28;
End
Else
SoNgay : 31;
End;
II Thang 2 then
Writeln( ' Thang ', thang , ' / ' , nam , ' co ' , SoNgay , ' ngay. ' )
Else Writeln( ' Thang ', thang , ' co ' , SoNgay , ' ngay. ' );
Readln
End.
III. Cac cu lnh lap:
Giao trlnh Lp trlnh Pascal can ban
26
Trang 2 6
Truong hop d giai quyt bai toan nao do ma ta cn phai lap di lap lai mt cng
vic nao do thl ta se cn dn lnh lap. S buoc lap co th xac dinh hoac khng xac
dinh. Trong ngn ngu Pascal co ba cu lnh lap la IOR, REPEAT, WHILE. Nu s
vong lap xac dinh thl ta su dung lnh IOR con vong lap khng xac dinh thl ta su
dung lnh REPEAT hoac WHILE. Tt ca cac loai lnh lap phai co dim dung, cho
du do la loai xac dinh hay khng xac dinh.
1. Cu lnh IOR:
Vong lap IOR co hai dang la dang vong lap tin va vong lap lui.
a. Dang tin:
Cu phap: IOR Bin : Biu_thuc1 TO Biu_thuc2 DO Lnh
Bin trong cu truc IOR goi la bin diu khin. Kiu cua bin diu khin,
Biu_thuc1, Biu_thuc2 phai la kiu v huong dm duoc (nhu nguyn, logic, ky tu,
lit k).
F Giai thich su hoat dng lnh IOR dang tin:
(1). u tin, Bin nhn gia tri cua biu_thuc1.
(2). May kim tra Bin co nho hon hoac bang biu_thuc2 hay khng tuc la xet
diu kin (Bin Biu_thuc2) ?
(3). Nu diu kin trn la sai thl may thoat khoi vong lap IOR d thuc hin cac
lnh k tip sau vong lap IOR. Nu di u kin trn la dung thl Lnh duoc thuc
hin, sau do, Bin duoc tang mt gia tri va quay tro lai buoc (2).
Lnh se duoc thuc hin ((biu_thuc2 biu_thuc1) 1) ln.
b. Dang lui:
Cu phap: IOR Bin : Biu_thuc1 DOWNTO Biu_thuc2 DO Lnh
F Giai thich su hoat dng lnh IOR dang lui:
(1). u tin, Bin nhn gia tri cua biu_thuc1.
(2). May kim tra Bin co lon hon hoac bang biu_thuc2 hay khng tuc la xet
diu kin (Bin Biu_thu c2) ?
(3). Nu diu kin trn la sai thl may thoat khoi vong lap IOR d thuc hin cac
lnh k tip sau vong lap IOR. Nu diu kin trn la dung thl Lnh duoc thuc
hin, sau do, Bin duoc giam mt gia tri va quay tro lai buoc (2).
Giao trlnh Lp trlnh Pascal can ban
27
Trang 27
Chu y:
Khng duoc thay di gia tri cua bin diu khin bang mt lnh bt ky trong
vong lap IOR. iu nay co th lam cho vong lap khng co li thoat va dn dn treo
may.
Cac Biu_thuc1 va Biu_thuc2 duoc uoc luong truoc khi vao vong lap, do do
s vong lap khng bi thay di. Ta co th loi dung tinh tang hoac giam cua bin diu
khin d gan gia tri cua no cho bt ky bin nao hoac thuc hin cng vic nao do co
tinh cht tang hoac giam.
4 Vi du 1: Chuong trlnh in ln man hlnh 3 cu Chao cac ban ! co s thu tu dung
truoc mi cu.
Uses CRT;
Var I : integer;
Begin
ClrScr;
Ior I : 1 to 5 do
Writeln( I , ' ', ' Chao cac ban ' );
Readln;
End;
4 Vi du 2: In ln man hlnh 4 dong chu cai in thuong va IN HOA theo chiu xui
va chiu nguoc.
Uses CRT;
Var kt : Char;
Begin
ClrScr;
Ior kt : 'a' to 'z' do
Write(kt : 3);
Writeln;
Ior kt : 'z' Downto 'a' do
Write(kt : 3);
Writeln;
Ior kt : 'A' to 'Z' do
Write(kt : 3);
Writeln;
Ior kt : 'Z' Downto 'A' do
Giao trlnh Lp trlnh Pascal can ban
28
Trang 2 8
Write(kt : 3);
Readln;
End.
4 Vi du 3: Chuong trlnh in ln man hlnh 256 ky tu cua bang ma ASCII.
Var i : Byte;
Begin
Ior i : 0 to 255 do
Begin
Writeln( ' Ma thu ' , i , ' la : ' , CHR(i) );
II (i1) mod 22 0 then
Begin
Write( ' An phim bat ky de xem tiep ! ' );
Readln;
End;
End;
Readln;
End.
2. Cu lnh Repeat:
Cu phap:
REPEAT
Lnh 1;
Lnh 2;
.........
Lnh n;
UNTIL Biu thuc logic ;
F Giai thich su hoat dng lnh REPEAT:
u tin, thuc hin ln luot cac lnh Lnh 1, Lnh 2,..., Lnh n, sau do
kim tra Biu thuc logic . Nu Biu thuc logic nhn gia tri IALSE thl lai
quay ln du vong lap thuc hin tip Lnh 1, Lnh 2,..., Lnh n. Nu
Biu thuc logic nhn gia tri TRUE thl may thoat khoi vong lap. Nhu vy, cac
lnh nam giua REPEAT... UNTIL duoc thuc hin it nht mt ln.
Chu y:
Cac lnh nam giua REPEAT va UNTIL khng co tu khoa Begin va End.
Giao trlnh Lp trlnh Pascal can ban
29
Trang 29
Trong vong lap phai co lnh nao do lam thay di gia tri mt bin trong Biu
thuc logic nham lam dung vong lap, nu khng vong lap se chay mai khng
ngung dn dn treo may.
4 Vi du 1: Chuong trlnh yu cu nhp vao mt mt khu la 'ttthcn' thl moi thoat
khoi chuong trlnh.
Uses CRT;
Var Password : String|6];
Begin
Repeat
Write( ' Xin hay nhap mat khau : ' );
Readln(Password);
Until Password 'ttthcn';
Write( ' Ban da nhap dung mat khau ! ' );
Delay(1000);
Readln;
End.
F Giai thich lnh: Delay(1000): Thu tuc Delay(n) la thu tuc cua Unit CRT tuc la
dung mt khoan thoi gian la 1000 xung nhip cua may, vl vy, tuy theo tc d cua
may ma co khoan thoi gian thuc dung lai khac nhau.
4 Vi du 2: Chuong trlnh d su dung ban phim gia thanh phim dan Piano voi quy
dinh: n phim D phat ra nt Do, phim R la nt Re, M Mi, I Ia, S Sol, L La,
S Si.
Uses CRT;
Var node : Char;
Begin
ClrScr;
Writeln( ' D Do , R Re , M Mi , I Ia , S Sol , L La , X Si ' );
Writeln( ' Q Do cao , W Re cao , E Mi cao , K Ket thuc ' );
Repeat
Node : ReadKey;
Case Node oI
'd' : Begin NoSound; Sound(262); End;
'r' : Begin NoSound; Sound(294); End;
'm' : Begin NoSound; Sound(330); End;
Giao trlnh Lp trlnh Pascal can ban
30
Trang 30
'I' : Begin NoSound; Sound(349); End;
's' : Begin NoSound; Sound(392); End;
'l' : Begin NoSound; Sound(440); End;
'x' : Begin NoSound; Sound(494); End;
'q' : Begin NoSound; Sound(523); End;
'w' : Begin NoSound; Sound(587); End;
'e' : Begin NoSound; Sound(659); End;
End;
Until (Upcase(Node) 'K');
NoSound;
End.
Ghi chu: Thu tuc Sound(n) dung d phat mt m thanh co tn s n Hertz cho
dn khi gap ham NoSound (ngung phat m thanh), hai thu tuc trn thuong di di
voi nhau khi su dung. Nhung chuong trlnh cn su lap di lap lai theo y mun thuong
su dung vong lap Repeat... Until. Cach thuc hin nhu sau:
Var TiepTuc : Char;
......
Begin
Repeat
... Cac lnh cua chuong trlnh
Write( ' Co tiep tuc nua khong (C/K) ? ' );
Readln(TiepTuc);
Until Upcase(TiepTuc) 'K';
End.
3. Cu lnh While:
Cu phap:
WHILE Biu thuc logic DO
Lnh ;
F Giai thich lnh: Gap lnh nay truoc tin may kim tra Biu thuc logic , nu
no co gia tri TRUE thl thuc hin Lnh va sau do quay lai kim tra Biu thuc
logic va qua trlnh cu tip tuc nhu vy. Nu Biu thuc logic nhn gia tri
IALSE thl may lp tuc thoat khoi vong lap. Nhu vy lnh WHILE dung d lap di
lap lai mt cng vic trong khi diu kin con duoc thoa man.
Giao trlnh Lp trlnh Pascal can ban
31
Trang 31
Ghi chu: Nu ngay tu khi moi vao vong lap ma thy diu kin khng duoc thoa
man, may tu dng thoat ngay ma khng thuc hin Lnh bn trong vong lap.
4 Vi du: Chuong trlnh tlm uoc s chung lon nht cua hai s nguyn.
Var a, b, r : Integer; tl : Char;
Begin
Repeat
Write( ' Nhap hai so a va b : ' );
Readln(a, b);
While b 0 do
Begin
r : a mod b;
a : b;
b : r;
End;
Writeln( ' Uoc so chung lon nhat la ' , a );
Write( ' Ban tim USCLN nua khong (C/K) ? );
Readln(tl);
Until Upcase(tl) 'K';
End.
IV. Cac lnh Goto, Break, Exit va Halt:
1. Lnh Goto:
Cu phap:
GOTO Lab;
Trong do, Lab la mt nhan. Nhan la mt tn nhu tn bin hoac la mt s nguyn
tu 0 dn 9999. Tn nhan duoc khai bao theo huong dn o bai1 (IV.2).
Khi gap lnh Goto Lab, may nhay khng diu kin dn thuc hin cu lnh sau
nhan Lab.
Lnh Goto chi cho phep nhay tu vi tri nay dn vi tri khac trong cung mt thn
ham, thu tuc, cho phep nhay tu trong mt vong lap ra ngoai; khng cho phep nhay
tu ngoai vao trong mt vong lap, thu tuc, ham hoac khi lnh.
4 Vi du: Chuong trlnh tlm cac s nguyn t nam giua hai s nguyn duong n1 va
n2, hai s nay duoc nhp tu ban phim (khai nim s nguyn t: la s nguyn chi
chia chan ht cho 1 va chinh no).
Giao trlnh Lp trlnh Pascal can ban
32
Trang 32
Program NguyenToByGoto;
Label L1, L2;
Var i, j, n1, n2 : Integer;
TL : Char;
Begin
L1: Write( ' Nhap hai gia tri nguyen : ' );
Readln(n1, n2);
Ior i : n1 to n2 do
Begin
Ior j : 2 to i 1 do
II (i mod j 0) then Goto L2;
Write( i, ' ' );
L2: ; ; cung la mt lnh, nhung la lnh rng, tuc la khng lam gl ca }
End;
Writeln;
Write( ' Ban muon tiep tuc khong ? (C/K) ' );
Readln(TL);
II (Upcase(TL) 'C') then Goto L1;
End.
2. Lnh Break:
Trong thn cac lnh lap IOR, WHILE, REPEAT khi gap lnh Break thl may se
thoat khoi chu trlnh. Nu co nhiu lnh lap lng nhau thl may thoat khoi chu trlnh
trong nht chua lnh Break.
4 Vi du: In ra man hlnh 4 day s tu 1 dn 49.
Uses CRT;
Var i, j : Integer;
Begin
ClrScr;
Ior j : 1 to 4 do
Begin
Writeln;
Writeln( ' j ' , j );
Ior i : 1 to 300 do * }
Begin II i 50 then
Giao trlnh Lp trlnh Pascal can ban
33
Trang 33
Break; Thoat khoi vong lap Ior * }
Write( i, ' ' );
End;
Readln;
End;
Readln;
End.
3. Lnh Exit:
Nu lnh Exit thuc chuong trlnh con thl vic thuc hin Exit lam chm dut
chuong trlnh con, tro v ch goi no. Nu lnh Exit thuc chuong trlnh chinh thl
vic thuc hin no se lam chm dut chuong trlnh.
4 Vi du: Chuong trlnh cu nhac lai cu Welcome to Turbo Pascal Language sau
mi ln n mt phim. Chuong trlnh se thoat khi n phim E hoac e.
Uses CRT;
Label L1;
Var TL : Char;
Begin
L1: Writeln( ' Welcome to Turbo Pascal Language ! ' );
TL : Readkey; Cho mt phim duoc n, gia tri duoc dat vao bin TL, dy la
ham cua Unit CRT }
II (Upcase(TL) 'E') then
Exit
Else
Goto L1;
End.
4. Lnh Halt:
Lnh Halt dung d dung ngay chuong trlnh dang chay. Lnh Halt thuong duoc
dung khi phai mt truong hop nao do ma thut toan khng th tip tuc duoc.
Giao trlnh Lp trlnh Pascal can ban
34
Trang 3 4
BAI 5. DU LIU KIU V HUONG LIT K VA
KIU OAN CON
I. Kiu lit k:
Kiu lit k duoc dinh ngha bang cach lit k tt ca cac gia tri cua kiu thng
qua cac tn do nguoi lp trlnh dat ra va danh sach cac gia tri trn duoc dat trong cap
ngoac don ( ).
4 Vi du:
Type Days (Sun, Mon, Tue, Wed, Thu, Iri, Sat);
Viec (DiHoc, LamBai, ThiNghiem, Nghi);
Khi do, ta co th khai bao bin nhu sau:
Var HomQua, HomNay : Days;
Lam : Viec;
Hoac ta co th khai bao truc tip voi m ta kiu du liu nhu sau:
Var GioiTinh : (Nam, Nu);
Color : (Red, Blue, Green, White, Black);
Chu y:
(1). Co th thuc hin phep gan trn cac tri kiu lit k, vi du:
Lam : Nghi;
Color : Blue;
(2). Cac gia tri cua cac kiu lit k co th so sanh voi nhau theo quy dinh: Gia tri
dung truoc nho hon gia tri dung sau. Ta chi su dung toan tu so sanh cho kiu lit k
va cung la toan tu duy nht dung cho kiu nay.
4 Vi du: Theo nhu khai bao trn, nu so sanh Thu Iri cho kt qua True,
hoac Red Blue cho kt qua Ialse.
(3). Cac ham chun ap cho kiu lit k:
Ham ORD: Cho thu tu tri cua di s trong kiu lit k.
4 Vi du: theo nhu khai bao trn, ORD(Sun) 0, ORD(Mon) 1.
Ham PRED: Cho tri dung truoc cua di s trong kiu lit k.
Giao trlnh Lp trlnh Pascal can ban
35
Trang 3 5
4 Vi du: theo nhu khai bao trn, PRED(Sat) Iri, PRED(LamBai) DiHoc.
PRED(Sun) li chuong trlnh.
Ham SUCC: Cho tri di sau di s trong kiu lit k.
4 Vi du: theo nhu khai bao trn, SUCC(Iri) Sat. SUCC(Sat) li chuong trlnh.
(4). Khng th nhp, xut di voi du liu kiu lit k. Gia tri thuc kiu lit k
thuong duoc dung d lam chi s cho vong lap IOR, cac truong hop lua chon trong
lnh CASE, chi s cho cac mang (Array).
4 Vi du: Chuong trlnh di thu trong tun ra s. Chu nht ung voi s 0, Thu hai ung
voi s 1,...
Type
Thu (ChuNhat, ThuHai, ThuBa, ThuTu, ThuNam, ThuSau, ThuBay);
Var
Ngay : Thu;
Begin
Writeln( ' Chuong trinh doi thu ra so ' );
Ior Ngay : ChuNhat to ThuBay do
Write(Ord(Ngay));
Readln;
End.
II. Kiu doan con:
Kiu doan con duoc dinh ngha do nguoi dung dua trn co so cac kiu v huong
dm duoc (Nguyn, Logic, Ky tu, Lit k) theo dang:
Tn_kiu_doan_con Hang_duoi.. Hang_trn;
Trong do: Hang_duoi, Hang_trn la cac gia tri hang co cung kiu gia tri va thoa
man diu kin: Hang_duoi Hang_trn. Khi do, cac gia tri cua kiu doan con se
xac dinh trong khoan tu Hang_duoi dn Hang_trn.
4 Vi du:
Type
Ky_so '0'.. '9'; Kiu gm cac ky tu s tu '0' dn '9'}
Ngay (Hai, Ba, Tu, Nam, Sau, Bay, ChuNhat);
Ngay_Lam_Viec Hai.. Bay; Kiu Ngay_Lam_Viec la khoan con cua kiu
Ngay }
Giao trlnh Lp trlnh Pascal can ban
36
Trang 3 6
ChiSo 1.. 50; Kiu ChiSo gm cac s nguyn tu 1 dn 50 }
Tuoi_Lam_Viec 18.. 50;
Kiu min con giup cho chuong trlnh d doc, d kim tra va tit kim b nho.

_________ oo _________
BAI 6. KIU TP HOP VA KIU MANG
I. Kiu tp hop:
1. inh ngha:
Du liu kiu tp hop la mt tp hop cua nhung du liu cung thuc mt kiu v
huong dm duoc. Mt kiu tp hop duoc khai bao theo dang sau:
SET OI Kiu_co_so;
4 Vi du:
Type
Chu_so Set oI 0.. 9;
Chu_hoa Set oI 'A'.. 'Z';
Var
So : Chu_so;
Chu : Chu_hoa;
Mau : Set oI (Xanh, Vang, Tim);
Chu y :
Cac gia tri duoc dua vao tp hop cn co s thu tu trong khoan tu 0 dn 255.
Nhu vy, voi khai bao:
Type
Tap_so Set oI 10.. 256;
1 Kt qua khi dich may se thng bao li: Set base type out oI range.
Mt du liu kiu tp hop co dang cac phn tu nam trong hai du ngoac | ]. Vi
du: |'A', 'D', 'E' ], |3,5..9];
Tp hop rng ky hiu la | ].
Bin tp hop cho phep co tu 0 dn 256 phn tu.
Co th thuc hin phep gan trn kiu tp hop. Vi du:
So : |0, 4, 9];
Chu : | ]; Tp hop rng}
Giao trlnh Lp trlnh Pascal can ban
37
Trang 37
Mau : |Vang, Tim];
2. Cac phep toan trn tp hop:
a. Phep toan quan h:
Phep toan cho gia tri True nu hai tp hop bang nhau.
Phep toan cho gia tri True nu hai tp hop khac nhau.
Phep toan A B cho gia tri True nu A la tp con cua B.
Phep toan A B cho gia tri True nu B la tp con cua A.
Chu y: Khng co phep toan va cho kiu tp hop. kim tra tp hop A co
tht su nam trong B hay khng ta dung cu lnh:
II (A B) and (AB) then Write( 'A la tap con that su cua B ');
b. Phep toan IN:
Phep toan IN dung d xem xet mt phn tu nao do co nam trong tp hop khng ?
Nu phn tu do co trong tp hop thl phep toan se tra v gia tri True, nguoc lai cho
gia tri Ialse. Vi du:
'C' In |'A', 'C', 'D'] cho kt qua True.
'E' In |'A', 'C', 'D'] cho kt qua Ialse.
c. Phep toan hop, giao, hiu:
Goi A, B la hai tp hop cung kiu du liu.
A B la hop cua A va B: tp hop cac phn tu thuc A hoac thuc B.
A * B la giao cua A va B: tp hop cac phn tu thuc A va thuc B.
A B la hiu cua A va B: tp hop cac phn tu thuc A va khng thuc B.
4 Vi du:
A : |1, 3, 9];
B : |9, 2, 5];
Vy:
A * B co gia tri la |9].
A B co gia tri la |1, 3].
4 Vi du: Vit chuong trlnh nhp vao mt chu cai. Xet xem chu cai do la nguyn
m hay phu m.
Var
ChuCai, NguyenAm : Set oI Char;
Ch : char;
Giao trlnh Lp trlnh Pascal can ban
38
Trang 3 8
Begin
ChuCai : |'A'.. 'Z', 'a'.. 'z'];
NguyenAm : |'A', 'E', 'I', 'O', 'U'];
Repeat
Write( ' Nhap mot chu cai de kiem tra: ' );
Readln(Ch);
Until Ch IN ChuCai;
II Upcase(Ch) IN NguyenAm then
Writeln(Ch, ' la nguyen am. ' )
Else
Writeln(Ch, ' la phu am. ');
Readln;
End.
II. Kiu mang:
1. Khai nim:
Mang (Array) la mt kiu du liu co cu truc bao gm mt s c dinh cac thanh
phn co cung kiu, co cung mt tn chung. Cac thanh phn cua mang duoc truy
xut thng qua cac chi s.
4 Vi du: Mang A gm nam phn tu: A|1]7, A|2]9, A|3]0, A|4] 2, A|5]3:







Cng dung cua mang la dung d luu tru mt day s liu co cung mt tinh cht
nao do. Vi du: cac dim kim tra mt mn hoc nao do cua mt hoc sinh, cac gia tri
cua mt day s duoc nhp tu ban phim.
2. Khai bao mang mt chiu:
Type
Tn_kiu_mang ARRAY |Chi_s] OI Kiu_phn_tu;
Var
Tn_bin_mang : Tn_ kiu_mang;
A|2]9 A|5]3 A|3]0 A|4]2 A|1]7
Mang A
Cac chi s d truy cp
Cac gia tri cua mang co cung kiu du liu
Giao trlnh Lp trlnh Pascal can ban
39
Trang 39
Trong do:
Kiu_phn_tu la kiu du liu cua mi phn tu trong mang (la kiu bt ky).
Chi_s la danh sach cac chi s d truy cp dn cac thanh phn cua mang.
Ca c chi s co th la:
Mt doan con, vi du:
Type
Ho_Ten Array|1..100] oI String|30];
He_so_luong Array|1..100] oI Real;
Mt danh sach lit k, vi du:
Type
Toc_do Array|(Oto, Tai, Buyt, GanMay)] oI Integer;
Mt kiu du liu, vi du:
Type
ASCIIType Array|Byte] oI Char;
Xe (Oto, Tai, Buyt, GanMay);
Toc_do Array|Xe] oI Integer;
Voi cac kiu mang trn, ta co th khai bao cac bin mang sau:
Var
HeSo : He_so_luong;
HT : Ho_Ten;
Speed : Toc_do;
Ngoai cach dinh ngha Tn_kiu_mang nhu o trn ta cung co th khai bao mt
bin mang truc tip sau lnh VAR:
Var ch : Array|0.. 25] oI Char;
Th : Array|2.. 4] oI Real;
3. Truy cp cac phn tu cua mang:
Vic truy nhp vao mt phn tu nao do cua bin mang duoc thuc hinh qua tn
bin mang, theo sau la gia tri chi s dat trong du | ]. Vi du:
Ch|2] : 'B';
Th|1] : 12.5;
HT|1] : 'Vu Duc Dung';
Giao trlnh Lp trlnh Pascal can ban
40
Trang 40
4 Vi du 1: Nhp n s thuc tu ban phim vao mt mang, tinh trung blnh cng cua cac
s nay.
Uses CRT;
Var i,n : Integer;
s : Real;
a : Array|1.. 100] oI Real;
Begin
ClrScr;
Write( ' Ban muon nhap bao nhieu PT cho mang : ' );
Readln(n);
Ior i : 1 to n do
Begin
Write( ' PT A| ' , i , ' ] ' );
Readln(a|i]);
End;
s : 0;
Ior i : 1 to n do
s : s a|i];
Write( ' Trung binh cong cua day so ' , s / n : 0 : 4 );
Readln;
End.
4 Vi du 2: Nhp tu ban phim n phn tu thuc cua mt mang, sap xp day theo thu tu
tang dn, xut gia tri cua mang ln man hlnh.
Var a : array|1..10] oI Real;
b : array|1..10] oI Real;
temp : Real;
i, j, n : integer;
Begin
n:10;
Ior i : 1 to n do
Begin
Write( ' PT thu ' , i , ':' );
Readln( a|i] );
End;
Giao trlnh Lp trlnh Pascal can ban
41
Trang 41
Ior i : 1 to n 1 do
Ior j : n downto i do
II a|i] a|j] then
Begin
temp : a|i];
a|i]:a|j];
a|j]:temp;
End;
Ior i : 1 to n do
Write( a|i] : 0 : 3 , ' ' );
Readln;
End.
4. Mang nhiu chiu:
Phn nay chu yu trlnh bay cac mang hai chiu. Cac mang nhiu hon hai chiu
duoc suy din mt cach tu nhin.
Vic khai bao mang hai chiu cung ging nhu mang mt chiu, chi co diu khac
la no co hai tp chi s duoc vit cach nhau boi du ','.
4 Vi du:
Type
Mang1 Array|1.. 30, 1.. 50] oI Integer;
Mang2 Array|1.. 3, 0.. 2] oI Real;
Var
A : Mang1;
B : Mang2;
Trong do, s phn tu cua mang s thuc B la 3 x 3 9 (phn tu), sap dat trong b
nho theo thu tu nhu sau:
B|1, 0] B|1, 1] B|1 ,2]
B|2, 0] B|2, 1] B|2 ,2]
B|3, 0] B|3, 1] B|3 ,2]
Chu y: Mang hai chiu con goi la ma trn. Trong vi du trn, B la ma trn cp 3
x 3. Trong mang hai chiu, chi s sau truy cp nhanh hon chi s truoc. truy cp
dn phn tu hang thu i, ct thu j cua mang hai chiu B ta dung cach vit:
B| i ]| j ]
Giao trlnh Lp trlnh Pascal can ban
42
Trang 42
hoac
B| i , j ]
4 Vi du: Nhp mt ma trn m hang, n ct tu ban phim. Tinh va in ra man hlnh tng
cua mi ct va tng cua mi hang.
Const mMax 30, nMax 30;
Type
Mang Array|1.. mMax, 1.. nMax] oI Real;
Var
n, m, i, j : Integer;
sum : Real;
a : Mang;
Begin
Write( ' Ban muon nhap ma tran bao nhieu hang va cot ? ' );
Readln( m, n );
Ior i : 1 to m do
Ior j : 1 to n do
Begin
Write( ' PT thu | ' , i , ' , ' , j, ' ] ' );
Readln( a| i, j ] );
End;
Ior j : 1 to n do
Begin
sum : 0;
Ior i : 1 to m do
Sum : sum a| i, j ];
Write( ' Tong cot ' , j ,' ' , sum : 0 : 5 );
End;
Ior i : 1 to m do
Begin
sum : 0;
Ior j : 1 to n do
Sum : sum a| i, j ];
Write( ' Tong hang ' , i ,' ' , sum : 0 : 5 );
End;
Readln;
Giao trlnh Lp trlnh Pascal can ban
43
Trang 43
End.

_________ oo _________

BAI 7. CHUONG TRNH CON: HAM VA THU TUC

Khi lp trlnh, co nhung doan chuong trlnh cn dung nhiu ln. tranh vic vit
lai doan nay, ta nn chuyn doan chuong trlnh nay thanh mt chuong trlnh con va
mi ln cn thuc hin cng vic do thl ta goi no thng qua tn.
Chuong trlnh con con d mu hoa mt chuong trlnh lam cng vic nao do.
Nguoi khac dung chuong trlnh con chi cn bit truyn s liu vao va ly kt qua ra
nhu th nao ma khng cn phai quan tm dn thut toan trong chuong trlnh con nhu
th nao.
Khi vit nhung chuong trlnh lon, d d dang quan ly, go ri va hiu chinh
chuong trlnh, ta nn phn chuong trlnh thanh nhiu cng vic dc lp, mi cng
vic la mt chuong trlnh con. Chuong trlnh con gm co hai loai la HAM (Iunction)
va THU TUC (Procedure).
I. Ham va thu tuc:
Cu truc cua ham co dang:
IUNCTION Tn_Ham(ThamS1: Kiu; TS2: Kiu;... ) : Kiu;
Var Cac _bin_cuc_b;
Begin
Cac lnh tinh toan;
...;
Tn_Ham : Gia _tri;
End;
Phuong phap goi ham: ta goi ham thng qua tn kem theo tham s cua ham nhu
sau:
Tn_ham(Danh sach cac tham s thuc su);
Cu truc cua thu tuc co dang:
PROCEDURE Tn_Thu _tuc(TS1: Kiu; TS2: Kiu;...; Var TS3: Kiu; Var TS4:
Kiu;... );
Giao trlnh Lp trlnh Pascal can ban
44
Trang 44
Var cac bin cuc b;
Begin
Cac lnh;
...;
End;
Phuong phap goi thu tuc:
Tn_ham(Danh sach cac tham s thuc su);
Su khac nhau co ban giua ham va thu tuc la ham tra v mt gia tri thng qua tn
ham, ham co th tham gia vao cac biu thuc tinh toan con thu tuc khng cho gia tri
nao ca. Khi tao ham, trong thn ham bao gio cung co gia tri gan cho tn ham d
ham tra v gia tri nay khi duoc goi.
Cac tham s khac sau tn ham va tn thu tuc goi la cac tham s hlnh thuc (hay
con goi la di). Trong thu tuc, cac tham s hlnh thuc co hai loai: cac tham s duoc
khai bao sau tu khoa Var goi la tham s bin, cac s khai bao khng co tu khoa Var
o truoc goi la tham s gia tri. Trong ham chi co tham s gia tri, tuc khai bao ma
khng co tu khoa Var.
Tham s thuc su la cac tham s dung trong loi goi ham hay thu tuc. Danh sach
cac tham s thuc su trong loi goi ham phai tuong ung voi danh sach cac tham s
hlnh thuc trong phn khai bao chuong trlnh con va chung phai tuong ung v kiu.
Trong thu tuc, cac tham s gia tri thuong la cac bin d chua du liu dua vao thu
tuc; cac tham s bin la cac bin ma kt qua tinh toan cua thu tuc se chua vao do
khi ra khoi thu tuc, ta co th dung chung d tinh toan tip.
4 Vi du cach su dung tham s gia tri va tham s bin:
Var a, b, c, d : Integer;
Procedure Chuyen(x, y: Integr; Var u, v: Integer);
Begin Tu khoa bat du thu tuc Chuyen }
x : 2 * x;
y : 3 * y;
u : 4 * u;
v : 5 * v;
End;
Begin Tu khoa bat du chuong trlnh chinh }
a : 10;
Giao trlnh Lp trlnh Pascal can ban
45
Trang 45
b : 10;
c : 10;
d : 10;
Chuyen(a, b, c, d);
Write( ' a ' , a, '. b ' , b, '. c ', c, '. d ' , d );
Readln;
End.
1 Kt qua khi chay chuong trlnh: a 10. b 10. c 40. d 50
II. Bin toan cuc, bin cuc b va vic truyn du liu:
Bin toan cuc la bin khai bao o du chuong trlnh chinh, tn tai trong sut thoi
gian lam vic cua chuong trlnh. Ta co th su dung va lam thay di gia tri cua bin
toan cuc nho cac cu lnh trong chuong trlnh chinh cung nhu trong tt ca cac
chuong trlnh con.
Bin cuc b la bin la bin khai bao o du chuong trlnh con. Chung duoc cp
phat b nho khi chuong trlnh con duoc goi dn va bi xoa khi may thoat khoi chuong
trlnh con do. Bin cuc b co gia tri trong chuong trlnh con va tt ca cac chuong
trlnh con khac nam trong chuong trlnh con nay.
Nu tn bin cuc b cua mt chuong trlnh con trung voi mt tn bin toan cuc
thl may khng bi nhm ln, may se dung hai nho khac nhau d luu tru hai bin,
khi ra khoi chuong trlnh con, bin cuc b tu dng duoc xoa.
Khi gap mt loi goi dn chuong trlnh con, may se thuc hin cac buoc sau:
Cp phat b nho cho cac di, cac bin cuc b.
Truyn gia tri cua cac tham s thuc su cho cac tham s gia tri tuong ung, truyn
dia chi cac tham s thuc su ung voi tham s bin cho cac tham s bin cua thu tuc.
Thuc hin cac lnh trong chuong trlnh con, trong khi thuc hin chuong trlnh
con, cac bin cuc b va cac tham s gia tri co th bi bin di nhung khng anh
huong d n cac bin bn ngoai. Trai lai, moi thay di cua tham s bin trong chuong
trlnh con se keo theo su thay di cua tham s thuc su tuong ung (vl co su truyn
theo dia chi). Do do, khi thoat khoi chuong trlnh con, cac tham s thuc su ung voi
tham s bin vn giu duoc gia tri moi nht do chuong trlnh con tao ra.
Thuc hin xong cac lnh cua chuong trlnh con, may xoa tt ca cac di va cac
bin cuc b va tro v lnh k sau noi goi no.
Giao trlnh Lp trlnh Pascal can ban
46
Trang 46
Vic ly kt qua thuc hin chuong trlnh con nhu sau: nu la ham thl ly kt qua
thng qua tn ham, nu la thu tuc thl kt qua o tham s thuc su ung voi tham s
bin. Khi cn ly duy nht mt gia tri tu chuong trlnh con thl ta lp mt
IUNCTION, khi cn ly tu hai gia tri tro ln tu chuong trlnh con hoac khng ly
gia tri nao thl ta phai lp PROCEDURE.
4 Vi du 1: Lp ham tinh din tich hlnh thang. Nhp du liu cua hai thua rung
hlnh thang va tinh tng din tich hai thua rung.
Var a1, b1, h1, a2, b2 , h2, s : Real;
(************* Bat dau Iunction **************)
Iunction DTHinhThang(a, b, h) : Real;
Begin
DTHinhThang : (a b) * h / 2;
End;
(********* Bat dau chuong trinh chinh **********)
Begin
Write( ' Canh dai, ngan va cao cua thua ruong thu nhat: ' );
Readln(a1, b1, h1);
Write( ' Canh dai, ngan va cao cua thua ruong thu hai: ' );
Readln(a2, b2, h2);
s : DTHinhThang(a1, b1, h1) DTHinhThang(a2, b2, h2);
Writeln( ' Tong dien tich hai thua ruong ', s : 0 : 3);
Readln;
End.
4 Vi du 2: Lp ham tinh uoc s chung lon nht (USCLN). Sau do, dung ham nay
d tinh USCLN va bi s chung nho nht (BSCNN) cua hai s duoc nhp tu ban
phim.
Var m, n, usc, bsc: Integer;
(************ Iunction USCLN *************)
Iunction USCLN(a, b : Integer): Integer;
Var r : Integer;
Begin
While b 0 do
Begin
r : a mod b;
Giao trlnh Lp trlnh Pascal can ban
47
Trang 47
a : b;
b : r;
End; a hien tai la USCLN cua a va b ban dau }
USCLN : a;
End;
(********* bat dau chuong trinh chinh *********)
Begin
Write( ' Nhap so thu nhat : ' );
Readln(m);
Write( ' Nhap so thu hai: ' );
Readln(n);
usc : USCLN(m, n);
bsc : m * n div USCLN(m, n);
Writeln( ' Uoc so chung lon nhat cua ', m, ' va ', n, ' la : ', usc);
Writeln( ' Boi so chung nho nhat cua ', m, ' va ', n, ' la :', bsc);
Readln;
End.
4 Vi du 3: Lp mt thu tuc d tinh dng thoi din tich va th tich hlnh cu.
Var r, s, v : Real;
Reply : Char;
(************** Iunction ***************)
Procedure SVHinhCau( r : Real; Var s, v :Real);
Begin
s : 4 * pi * r * r;
v : 4 * pi * r * r * r / 3;
End;
(******** bat dau chuong trinh chinh ********)
Begin
Repeat
Write( ' Nhap ban kinh hinh cau : ' );
Readln(r);
SVHinhCau(r, s, v);
Writeln( ' Dien tich ', s : 0 : 4, '. The tich ', v : 0 :4 );
Write( ' Ban co tiep tuc khong ?(C/K) ' );
Readln(Reply);
Giao trlnh Lp trlnh Pascal can ban
48
Trang 48
Until Upcase(Reply) 'K';
End.
III. Cac ham va thu tuc thuong dung cua Unit CRT:
Unit CRT co nhiu ham, thu tuc dung d diu khin man hlnh, ban phim va m
thanh. No cho phep mo cac cua s voi cac mau sac khac nhau, thay di mau cua
cac dong chu trn man hlnh, giup cho vic trlnh bay man hlnh dep va hp dn hon,
t chuc hi thoai giua nguoi va may thun tin. Khi dung cac ham va thu tuc nay, o
du chuong trlnh chinh cn phai co khai bao USES CRT; Cac thu tuc cua Unit CRT
gm:
1. Thu tuc ClrScr:
Xoa man hlnh va dua con tro v vi tri (1,1) trn man hlnh. Man hlnh mac dinh
duoc chia thanh 25 dong va 80 ct. Ct du tin danh s 1, dong du tin danh s 1.
2. Thu tuc ClrEOL:
Xoa tu vi tri con tro dn cui dong hin hanh. Sau khi thuc hin xong, con tro
dung ngay vi tri truoc khi goi thuc hin thu tuc.
3. Thu tuc DelLine:
Xoa dong con tro dang dung, cac dong sau se duoc chuyn ln trn mt dong.
4. Thu tuc InsLine:
Chen dong trng vao vi tri hin hanh cua con tro trn man hlnh.
5. Thu tuc GotoXY(x, y: Byte):
ua con tro dn, ct thu x, dong thu y.
6. Ham WhereX: Byte
Cho gia tri kiu byte cho bit con tro dang o ct nao.
7. Ham WhereY: Byte
Cho gia tri kiu byte cho bit con tro dang o dong nao.
8. Thu tuc Sound(Hz : Word):
Phat m thanh co tn s Hz cho dn khi gap thu tuc NoSound thl dung lai.
9. Thu tuc NoSound:
Tat loa phat m thanh o may.
10. Thu tuc TextBackGround(Color : Byte):
Giao trlnh Lp trlnh Pascal can ban
49
Trang 49
Chon mau nn trong ch d van ban (Ch d mac dinh khi chay Pascal). Color
co gia tri tu 0 dn 7.
11. Thu tuc TextColor(Color : Byte):
Chon mau cua ky tu trlnh bay trn man hlnh. Color co gia tri tu 0 dn 15 ung voi
16 mau. Cac hang xac dinh mau nn va chu cho bin Color nhu sau:
Black (den) 0 DarkGray (xam) 8
Blue (xanh duong) 1 LightBlue (xanh duong nhat) 9
Green (xanh luc) 2 LightGreen (xanh luc nhat) 10
Cyan (lam) 3 LightCyan (lam nhat) 11
Red (do) 4 LightRed (do nhat) 12
Magenta (tim) 5 LightMagenta (tim nhat) 13
Brown (nu) 6 Yellow (vang) 14
LightGray (xam nhat) 7 White (trang) 15
Ghi chu: Ta co th dung cac hang gia tri trn bang chu hoac s du duoc. Vi du:
TextColor(4) hoac TextColor(Red) du co y ngha la chon chu mau do . Chon chu
mau xanh va chu nhp nhay: TextColor(Green Blink).
12. Ham KeyPressed: Boolean
Ham kim tra xem co phim nao duoc n trn ban phim hay khng. Nu co ham
tra v gia tri True, nu khng ham cho gia tri Ialse.
13. Ham ReadKey: Char
Ham nay cho doc mt ky tu tu ban phim (ky tu duoc nhp khng duoc hin thi
trn man hlnh). Cac phim trn ban phim nhu A, B, C,... 1, 2, 3, 4,.v.v. chi tao mt
ma khi duoc n, con cac phim chuc nang nhu I1, I2,..., Home, End, Alt, Ctrl, Ctrl
Home,... tao hai ma khi duoc n, trong do ma thu nht co gia tri 0. nhn bit mt
hay mt t hop phim bt ky duoc n, ta phai dung mt bin kiu Char voi hai ln
thuc hin ham ReadKey nhu sau:
Ch : ReadKey;
II Ch #0 then Ch : Readkey;
Sau dy la mt s phim dac bit va t hop phim hay dung:
Esc 27 0/80
Tab 9 0/75
Enter 13 0/77
Home 0/71 I1 0/59
End 0/79 I2 0/60
Giao trlnh Lp trlnh Pascal can ban
50
Trang 50
PageUp 0/73 I10 0/68
PageDown 0/81 Ctrl I1 0/94
0/72 Ctrl I2 0/95
4 Vi du 1: Dich chuyn con tro va in mt s dong chu trn man hlnh.
Uses CRT;
Var x, y : Integer;
Begin
ClrScr;
x : 20;
y : 3;
GotoXY(x 2, y);
Write( ' PASCAL ' ); In tu cot 22 dong 3 }
GotoXY(x 2, y 2);
Write( ' BAN HAY DEN VOI ' ); In tu cot 18 dong 5 }
GotoXY(x, y 3);
Write( ' TURBO PASCAL ' ); In tu cot 20 dong 6 }
GotoXY(WhereX 2, WhereY);
Write( ' 7.0 ' ); sau TURBO PASCAL in s 7.0 }
Readln;
End.
4 Vi du 2: Nhn bit phim nao duoc n.
Uses CRT;
Var Ch : Char;
Begin
Write( ' Ban hay an mot phim bat ky : ' );a
Ch : ReadKey;
II Ch : #0 then
Begin
Ch : Readkey;
Writeln( ' Ban vua an mot phim dac biet co ma ', Ord(Ch));
End
Else
Writeln( ' Ban vua an mot phim co ma ASCII ', Ord(Ch));
Readln;
Giao trlnh Lp trlnh Pascal can ban
51
Trang 51
End.
4 Vi du 3: Vit chuong trlnh hin thi 16 dong voi ni dung bt ky, tai du mi
dong hin thi s thu tu cua dong do dng thoi hin thi mau cua dong do theo s thu
tu (theo bang mau).
Uses CRT;
Var i : Integer;
Begin
Ior i : 0 to 15 do
Begin
TextColor( i );
Writeln( i, ' la ma so mau cua dong nay. ' );
End;
Readln;
End.

_________ oo _________
Giao trlnh Lp trlnh Pascal can ban
52
Trang 52
BAI 8. KIU XU KY TU
I. Khai bao va cac phep toan:
Xu (String) la kiu du liu co cu truc dung d xu ly cac xu ky tu. Kiu String
co nhiu dim tuong tu nhu kiu mang (Array) nhung cung co dim khac nhau la:
s ky tu trong mt bin kiu xu co th thay di con s phn tu cua kiu mang lun
c dinh.
1. Khai bao kiu xu:
VAR
Tn_Bin : String|n];
Trong do: n la s ky tu ti da co th co cua xu. Chiu dai ti da cua mt xu la
255. Nu trong phn khai bao khng ghi |n] thl xu co d dai mac dinh la 255.
4 Vi du:
Var
HoTen : String|30]; HoTen co th chua ti da 30 ky tu }
St : String; St co th chua ti da 255 ky tu }
Voi St la mt xu, d chi ra cac ky tu thu i cua St ta vit St|i]. Cac St|i] du co
kiu Char. Vi du: St : 'ABCD'; thl lnh Write(St|3]) se in ra ky tu 'C'.
Cu truc cua String nhu sau: Trong b nho no chim s Byte bang s ky tu ti
da, cng voi mt byte du tin (tai vi tri s|0]) chua ky tu ma ma thp phn ASCII
cua ky tu nay se cho bit xu do co d dai bao nhiu.
Chang han bin HoTen bn trn duoc gan gia tri:
HoTen : 'Ly Dong Giang';
Khi do, d dai xu chi la 13, mac du d dai cuc dai cho phep la 30 nhu da khai
bao. Sau dy cu truc xu HoTen:



Ghi chu: Ky tu * biu din ky tu khng xac dinh.
2. Nhp va in xu ky tu:
Mun in mt xu ky tu ta dung lnh Write(St) hoac Writeln(St).
*
Chr(13) L y D o n g
G i a n
g * * * * *........ * * * *
9
0
1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 26 28 29 30 27 17
Giao trlnh Lp trlnh Pascal can ban
53
Trang 53
Lnh Readln(St) se doc cac ky tu cho xu St voi d dai thuc su la s ky tu go vao
tu ban phim. Nu ta go Enter lun ma khng nhp cho no ky tu nao thl St la
xu rng.
4 Vi du:
Var YourName, st1, st2 : String|40];
Begin
Write( ' Please enter your name: ' );
Readln(YourName);
Writeln( ' Hello ', YourName ' ! ' );
st1 : ' Turbo Pascal ';
st2 : ' Borland''s product is ' st1;
Writeln(st2);
Readln;
End.
3. Cac phep toan trn xu ky tu:
a. Phep gan:
Bin : Biu_thuc;
ai luong bn phai cua lnh phai duoc dat giua hai du nhay don nu do la xu o
dang hang. Ta co th su dung du cng () d ghep cac xu khi gan. Vi du: HoTen
: 'Huynh Ngoc' ' Nhan';
b. Phep ni String:
Ky hiu bang du .
4 Vi du: 'Turbo' ' Pascal' 'Turbo Pascal'
c. Cac phep toan so sanh:
Khi so sanh hai xu, cac ky tu cua hai xu duoc so sanh tung cap mt tu trai qua
phai theo gia tri trong bang ma ASCII.
4 Vi du: Nu so sanh:
'ABC' 'ABC' co gia tri True.
'ABC' 'AB' co gia tri la Ialse.
'ABCD' 'ABED' co gia tri la True.
'ABC' 'AD' co gia tri la Ialse.
Giao trlnh Lp trlnh Pascal can ban
54
Trang 54
II. Cac thu tuc va ham xu ly xu ky tu:
1. Cac thu tuc:
a. Delete(St , Pos, Num):
Trong do: St (String): Bin kiu String.
Pos (Position): Bin kiu nguyn.
Num (Number): Bin kiu nguyn.
Cng dung: Thu tuc nay dung d xoa khoi xu St mt s Num ky tu bat du tu vi
tri thu Pos.
4 Vi du: Nu St 'ABCDEIG'; thl:
Delete(St, 2, 4); lam cho St 'AIG'.
Delete(St, 2, 10); lam cho St 'A'.
Delete(St, 9, 3); lam cho St 'ABCDEIG'.
b. Insert(St2, St1, Pos):
Trong do: St2 va St1: Bin kiu String.
Pos: Bin kiu nguyn.
Cng dung: Thu tuc nay dung d chen xu St2 vao xu St1 o vi tri Pos. Vi du:
Nu St : 'ABCD' thl sau lnh Insert('TIG', St, 3) ta nhn duoc St : 'ABTIGCD'.
Truong hop Pos vuot qua chiu dai cua St1 thl St2 se duoc ni dui vao St1. Vi
du: St 'ABCD', vy lnh Insert('TIG', ST, 9); se lam cho St 'ABCDTIG'.
c. Str(Value, St):
Trong do: Value: La mt biu thuc nguyn hay thuc co ghi dang in ra.
St: Bin kiu String.
Cng dung: Thu tuc nay dung d di gia tri s Value thanh kiu xu ri gan cho
St.
4 Vi du:
i : 1234;
Str(i:5, St); ta duoc St ' 1234' co 5 ky tu }
x :123.5678901;
Str(x:10:5, St); ta duoc St ' 123.56789' }
d. Val(St, Var, Code):
Trong do: St: Biu thuc kiu String.
Var: La bin kiu nguyn hay thuc.
Code: Bin kiu nguyn.
Giao trlnh Lp trlnh Pascal can ban
55
Trang 55
Cng dung: Thu tuc nay di xu chu St (biu din o dang s nguyn hay thuc)
thanh s va gan cho bin Var. Code la bin nguyn dung d phat hin li: nu phep
bin di dung thl Code co gia tri 0, nu sai do St khng biu din dung s nguyn
hay thuc thl Code se co gia tri bang vi tri cua ky tu sai trong xu St. Vi du:
Gia su: St : '234', i va e la hai bin nguyn.
Val(St, i, e); cho ta i 234 va e 0 }
Nu St : '21x' thl Val(St, i, e) cho ta i khng xac dinh va e 3, tuc la ky tu thu
ba gy ra li }
4 Vi du v mt ung dung co su dung thu tuc Val d doc s nguyn tu ban phim.
Blnh thuong ta dung thu tuc Readln(i) d doc s nguyn i. Song nu nu trong luc
nhp s, ta chang may go nhm chu cai vao thl may dung lai, co th gy lang phi
thoi gian. Thu tuc duoi dy co th bao li nu ta nhp mt s co chu trong s do.
Procedure InputInteger(Var i : Integer);
Var
St : String|6];
e : Integer;
Begin
Repeat
Readln(St); Nhp vao xu s nguyn }
Val(St, i, e); Bin di va phat hin li }
II e 0 then
Writeln(#7, ' Loi nhap lieu ! ');
Until e 0;
End;
2. Cac ham:
a. Length(St): cho ta d dai cua biu thuc xu ky tu St. Vi du: voi St ''ABCDEIG'
thl Length(St) se tra v gia tri 7.
b. Copy(St, Pos, Num):
Trong do: St: Biu thuc kiu xu ky tu.
Pos,Num: Biu thuc kiu nguyn.
Ham nay tra v cho ta mt xu moi tu xu St, ham bat du chep tu vi tri Pos va
chep Num ky tu. Vi du: St 'ABCDEI' thl lnh Copy(St, 3, 2) 'CD' va Copy(St,
4, 10) cho ta 'DEI'.
Giao trlnh Lp trlnh Pascal can ban
56
Trang 56
Ghi chu:
Nu Pos Num Length(St) thl ham se tra v cac ky tu trong xu St.
Nu Pos Length(St) thl ham Copy se tra v cho ta mt xu rng.
c. Concat(St
1
, St
2
,..., St
n
): Ham nay dung d ghep tt ca cac xu ky tu St1, St2,...,
St
n
thanh mt xu theo thu tu cac di s cung cp cho ham.
Ghi chu:
S luong di cua ham Concat phai 2.
Nu tng s chiu dai cac xu 255 thl may se bao li.
Co th dung phep cng () d ghep xu ky tu. Vi du: St :Concat(St1,St2
'N');
d. Pos(St1, St2):
Trong do: St1, St2 la biu thuc xu ky tu.
Ham nay tra v s nguyn biu din vi tri du tin cua St1 gap trong xu St2.
Nu khng tlm thy thl Pos 0.
4 Vi du: nu St : 'ABCDEIGBCD' thl Pos('DE',St) 4, Pos('BCD',St) 2,
Pos('XY',St) 0.
4 Vi du 1: Vit chuong trlnh nhp vao tu ban phim mt xu ky tu va in ra man
hlnh xu ky tu nguoc tuong ung. Vi du: nhp 'TRUNG TAM CONG NGHE
AVNET' may in ra 'TENVA EHGN GNOC MAT GNURT'.
Program DaoChuoi;
Uses CRT;
Var
Cau : String|80];
i : Byte;
Begin
Wite(' Nhap vao mot cau : ');
Readln(Cau);
Ior i : Length(Cau) DownTo 1 do
Write(Cau|i]);
Readln;
End.
Giao trlnh Lp trlnh Pascal can ban
57
Trang 57
4 Vi du 2: Hin thi chui con trong chui me duoc nhp tu ban phim, vi tri va s
ky tu hin thi cung duoc nhp tu ban phim.
Program SubString;
Uses CRT;
Var
St : String;
Pos, Len : Byte;
Begin
Wite(' Nhap vao mot chuoi : ');
Readln(St);
Wite(' Muon hien thi xau tu vi tri nao : ');
Readln(Pos);
Wite(' Do dai xau ky tu con : ');
Readln(Len);
Write(' Xau ky tu con la : ',Copy(St, Pos, Len));
Readln;
End.
4 Vi du 3: Vit cac ham chuyn di xu ky tu thanh chu hoa va chu thuong.
Iunction ToUpper(s : String) : String;
Var i : Byte;
Begin
Ior i : Length(s) do
s|i] : Upcase(s|i]);
ToUpper : s;
End;
(******************************)
Iunction ToLower(s : String) : String;
Var i : Byte;
Begin
Ior i : Length(s) do
II s|i] In |'A'..'Z'] then
s|i] : Chr(Ord(s|i]) 32);
ToLower : s;
End;
Giao trlnh Lp trlnh Pascal can ban
58
Trang 58
BAI 9. DU LIU KIU BAN GHI VA KIU TP

I. Kiu ban ghi:
1. Khai nim va dinh ngha:
Cac kiu cu truc du liu nhu kiu mang, tp hop du duoc tao ra bang mt tp
hop cac phn tu co cung kiu.
tao ra mt kiu cu truc du liu moi voi cac phn tu du liu co kiu khac
nhau, nguoi ta dinh ngha ra ban ghi (Record). RECORD la mt cu truc bao gm
nhiu thanh phn. Cac thanh phn co th thuc cac kiu du liu khac nhau va duoc
goi la cac truong (Iield), mi truong du duoc dat tn.
m ta mt kiu T co cu truc Record voi danh sach cac truong co tn la S1,
S2, ..., Sn va co cac m ta kiu tuong ung la truong co tn la T1, T2, ... Tn ta dung
cach vit nhu sau:
Type
T Record
S1 : T1;
S2 : T2;
...
Sn : Tn;
End;
Vi du: M ta thoi gian DATE co ba truong: Ngay, Thang, Nam
Type
Date Record
Ngay: 1..31;
Thang: 1..12;
Nam: Word;
End;
4 Vi du: m ta Nhn su cua phong t chuc, ta dung cac truong: HoDem, Ten,
NgaySinh, Luong,... o dy ta ly vi du co 5 truong:
Type
NhanSu Record
HoDem: String|20];
Ten: String|7];
NgaySinh: Date;
Giao trlnh Lp trlnh Pascal can ban
59
Trang 59
Luong: Real;
CoGiaDinh: Boolean;
End;
Var
NV, NV1: NhanSu;
DS: Array|1..100] oI NhanSu;
Danh sach tren la kieu mang mo ta nhan su cua mot co quan co duoi 100
nhan vien}
Ghi chu: Ta co th vit truc tip m ta truong NgaySinh nu nhu chua co kiu
Date nhu sau:
Type
NhanSu Record
HoDem: String|20];
Ten: String|7];
NgaySinh: Record
Ngay: 1..31;
Thang: 1..12;
Nam: Word;
End;
Luong: Real;
CoGiaDinh: Boolean;
End;
2. Su dung Record:
Mun truy cp mt bin kiu Record, ta phai truy cp theo thanh phn cua
chung. Cu phap d truy cp den mt thanh phn nao do la:
Tn bin Record.Tn truong
4 Vi du:
NV.HoLot : 'Huynh Dinh';
NV.Ten : 'Can';
NV.NgaySinh.Ngay : 4;
NV. NgaySinh.Thang : 2;
NV. NgaySinh. Nam : 1982;
NV.Luong : 500000;
NV.CoGiaDinh : Ialse;
Giao trlnh Lp trlnh Pascal can ban
60
Trang 60
4 Vi du 1: Nhp ly lich nhn vin cua mt co quan.
Uses CRT;
Type
Date Record
Ngay: 1..31;
Thang: 1..12;
Nam: Word;
End;
NhanSu Record
HoDem: String|20];
Ten: String|7];
NgaySinh: Date;
Luong: Real;
CoGiaDinh: Boolean;
End;
Var
DS: Array|1..100] oI NhanSu;
i, SoNV: Byte;
GD: Char;
Begin
ClrScr;
Writeln(' NHAP HO SO NHAN VIEN ');
Write(' So nhan vien tai co quan: ');
Readln(SoNV);
Ior i:1 to SoNV do
Begin
ClrScr;
Write(' Ho dem: '); Readln(DS|i].HoDem);
Write(' Ho dem: '); Readln(DS|i].Ten);
Write(' Ngay sinh: / /');
GotoXY(14,3); Readln(DS|i].NgaySinh.Ngay);
GotoXY(17,3); Readln(DS|i].NgaySinh.Thang);
GotoXY(20,3); Readln(DS|i].NgaySinh.Nam);
Write(' Luong: '); Readln(DS|i].Luong);
Write(' Co gia dinh (Y/N) ?: '); Readln(GD);
Giao trlnh Lp trlnh Pascal can ban
61
Trang 61
II Upcase(GD) 'Y' then
DS|i].CoGiaDinh : True
Else
DS|i].CoGiaDinh : Ialse;
End;
Readln;
End.
Ghi chu:
Cac bin Record cung kiu co th gan cho nhau. Vi du: NV : NV1; thay vl ta
phai thuc hin:
NV.HoDem : NV1.HoDem;
NV.Ten : NV1.Ten;
......
Co th dung phep so sanh:
II NV NV1 then Write(' Cung mot nhan vien ! ');
Hoac:
II (NV.HoDem NV1.HoDem) and (NV.Ten NV1.Ten) then
Write(' Hai nhan vien cung ho ten !. ');
Khng duoc dung cac thao tac sau:
Cac thu tuc doc va ghi (Read, Readln, Write, Writeln) cho ca mt bin kiu
Record nhu: Readln(NV), Writeln(NV);
Su dung cac phep toan quan h nhu: , , , . Nhung co th su dung
phep toan va cho hai bin Record co cung kiu.
Tt ca cac phep toan s hoc va logic.
3. Cu lnh With:
Khi cn truy cp nhiu thanh phn cua mt bin kiu Record, ta co th dung cu
lnh With d chuong trlnh duoc gon hon.
Cu phap:
WITH Bin kiu Record DO Cu lnh
4 Vi du 1: Theo nhu vi du 1, ta co th vit ngan gon hon nhu sau:
Uses CRT;
Type
Date Record
Ngay: 1..31;
Giao trlnh Lp trlnh Pascal can ban
62
Trang 62
Thang: 1..12;
Nam: Word;
End;
NhanSu Record
HoDem: String|20];
Ten: String|7];
NgaySinh: Date;
Luong: Real;
CoGiaDinh: Boolean;
End;
Var
DS: Array|1..100] oI NhanSu;
i, SoNV: Byte;
GD: Char;
Begin
ClrScr;
Writeln(' NHAP HO SO NHAN VIEN ');
Write(' So nhan vien tai co quan: ');
Readln(SoNV);
Ior i:1 to SoNV do
With DS|i] do
Begin
ClrScr;
Write(' Ho dem: '); Readln(HoDem);
Write(' Ho dem: '); Readln(Ten);
Write(' Ngay sinh: / /');
With NgaySinh do
Begin
GotoXY(14,3); Readln(Ngay);
GotoXY(17,3); Readln(Thang);
GotoXY(20,3); Readln(Nam);
End;
Write(' Luong: '); Readln(Luong);
Write(' Co gia dinh (Y/N) ?: '); Readln(GD);
II Upcase(GD) 'Y' then
Giao trlnh Lp trlnh Pascal can ban
63
Trang 63
CoGiaDinh : True
Else
CoGiaDinh : Ialse;
End;
Readln;
End.
Ghi chu: Nhu vy chung ta co th lng cac chi thi With ... Do ... vao voi nhau
d truy nhp vao cac truong o su trong Record phuc tap nhu bin Ds|i]. Cu phap
nhu sau:
With A do
With B do
......
Voi A, B du duoc m ta la Record song B la mt truong cua A thl ta co th co
cach vit nhu sau:
With A do With A, B do
With B do Begin
Begin .....
..... End;
End;
4 Vi du 2: oan chuong trlnh o vi du 1 co th vit lai:
.....
Ior i:1 to SoNV do
With DS|i], NgaySinh do
Begin
ClrScr;
Write(' Ho dem: '); Readln(HoDem);
Write(' Ho dem: '); Readln(Ten);
Write(' Ngay sinh: / /');
GotoXY(14,3); Readln(Ngay);
GotoXY(17,3); Readln(Thang);
GotoXY(20,3); Readln(Nam);
Write(' Luong: '); Readln(Luong);
Write(' Co gia dinh (Y/N) ?: '); Readln(GD);
II Upcase(GD) 'Y' then
Giao trlnh Lp trlnh Pascal can ban
64
Trang 64
CoGiaDinh : True
Else
CoGiaDinh : Ialse;
End;
.....
4. Record co cu truc thay di:
Cac kiu Record trlnh bay trn la kiu Record c dinh vl s thanh phn cung nhu
cu truc cua Record la da c dinh. Bn canh do Pascal con cho phep lp cac Record
co mt phn cu truc thay di duoc.
Truoc ht, ta xet thi du sau: trong muc NhanSu, nu ta xet thm truong
NgheNghiep thl se co nhiu truong hop xay ra, chang han:
Cng nhn : Cn ghi ro nganh gl ? Bc tho my ?
Ky su : Nganh gl ? Trlnh d thuc t ?
Bac s : Chuyn khoa gl ?
Ca bit : Khng ghi gl thm ?
Tuy ta co th lp mt Record gm dy du cac truong k trn nhung rt cng
knh (trong khi do co th mt nguoi o mt thoi dim nao do chi co mt nganh
ngh) va chim nhiu nho.
Tip theo ta co th lp ra bn kiu Record ging nhau phn du (HoDem, Ten,
NgaySinh, Luong, CoGiaDinh) nhung chi khac nhau phn cui la ngh nghip
(NgheNghiep), tuc la se co cac truong tuong ung voi bn ngh khac nhau. Cach nay
cung lam cng knh chuong trlnh vl ta phai dung dn bn kiu Record.
Ngn ngu Pascal cho phep lp Record co dang sau d tit kim nho va cho
phep linh hoat su dung:
Type
Nghe (CongNhan, KySu, BacSi, CaBiet);
Nganh (KhaiThac, CoKhi, CheBien, Nuoi, KinhTe);
Khoa (Noi, Ngoai, Nhi, Phu);
NhanSu Record
HoDem: String|20];
Ten: String|7];
NgaySinh: Date;
Luong: Real;
Giao trlnh Lp trlnh Pascal can ban
65
Trang 65
CoGiaDinh: Boolean;
CASE NgheNghiep: Nghe OI
CongNhan: (NganhCN: Nganh; BacTho: Byte);
KySu: (NganhKS: Nganh; TrinhDoTT: (Kem, TB, kha, Gioi));
BacSi: (ChuyenKhoa: Khoa);
CaBiet: ();
END; OI Record }
Var NV, NV1: NhanSu;
Begin
...
With NV do
Begin
HoDem : 'Vo Thanh';
Ten : 'Chau';
NgheNghiep : CongNhan;
NganhCN : CoKhi;
BacTho : 3;
End;
...
With NV1 do
Begin
HoDem : 'Huynh Dinh';
Ten : 'Can';
NgheNghiep : KySu;
NganhKS : KinhTe;
TrinhDoTT : Kha;
End;
...
END.
F Giai thich minh hoa trn:
HoDem, Ten, NgaySinh, CoGiaDinh la cac thanh phn c dinh cua Record
NhanSu.
NganhCN, NganhKS, BacTho, TrinhDoTT, ChuyenKhoa la cac thanh phn
thay di cua Record NhanSu.
Giao trlnh Lp trlnh Pascal can ban
66
Trang 66
Trong khai bao mt kiu Record, nu co thanh ph n thay di thl phai duoc dat
sau cac thanh phn c dinh va chi duoc phep co mt truong thay di.
Phn thay di nam sau cung trong danh sach va duoc bat du bang cu lnh
CASE. (Phn thay di nay lai co th chua Record khac co kiu cu truc thay di).
Ghi chu:
Phn thay di la mt truong goi la truong danh du (Tag Iield) va duoc dat
trong cu lnh CASE (Vi du trn la NgheNghiep). Ung voi mi gia tri cua truong
danh du, ta co cac bin dang cua Record voi danh sach cac truong tuong ung duoc
dat sau cac nhan cua lnh CASE va toan b danh sach nay phai duoc dat trong hai
du ngoac don () ngay ca khi no rng nhu truong hop CaBiet o vi du trn.
Truong m ta phai la cac kiu don gian (Byte, Integer, Word, LongInt, Real,
Double, Char, Boolean).
Tt ca cac tn bin trong phn thay di du bat but phai khac nhau. Theo vi du
trn, Nganh trong hai truong hop cua NgheNghiep la CongNhan va KySu duoc ky
hiu bang hai tn khac nhau la: NganhCN va NganhKS.
Giao trlnh Lp trlnh Pascal can ban
67
Trang 67
BAI 10. DU LIU KIU TP
I. Khai nim:
Khi giai cac bai toan co nhiu va cn su dung nhiu ln v sau thl ta phai t chuc
du liu luu tru trn da (du liu kiu tp). Khi k thuc chuong trlnh hoac tat may thl
du liu kiu tp vn tn tai trn da.
inh ngha mt kiu tp Tvoi cac phn tu co kiu KPT (Kiu phn tu) duoc vit
trong phn m ta kiu voi tu khoa Iile OI nhu sau:
TYPE
T IILE OI KPT;
4 Vi du:
Type
IileReal Iile oI Real;
Date record
Ngay: 1..31;
Thang: 1..12;
Nam: Word;
End;
NhanSu Record
MaSo: Word;
HoDem: String|20];
Ten: String|7];
NgaySinh: Date;
Luong: Real;
End;
InhanSu Iile OI NhanSu;
Var
I1: IileReal;
I2: INhanSu;
Ghi chu:
Kiu phn tu cua tp co th la bt ky kiu du liu nao ngoai tru kiu tp.
Bin tp duoc khai bao bang cach su dung mt kiu tp da duoc dinh ngha
truoc do hoac khai bao truc tip voi m ta kiu. Vi du:
Var
Giao trlnh Lp trlnh Pascal can ban
68
Trang 68
I3: Iile OI Char;
I4: Iile OI Array|1..5] OI Integer;
Bin tp la mt bin thuc kiu du liu tp. Mt bin kiu tp dai din cho mt
tp. Vic truy cp du liu o mt tp duoc th hin qua cac thao tac voi thng s la
bin tp dai din.
II. Cu truc va phn loai tp:
Cac phn tu cua mt Array (Mang) hoac Record co th truy cp duoc tuy y
(Random Access) thng qua tn bin, chi s hoac tn truong. Cac phn tu cua tp
khng co tn va vic truy cp khng th tuy tin duoc. Cac phn tu cua tp duoc
sap xp thanh mt day va o mi thoi dim chuong trlnh chi co th truy nhp vao
mt phn tu cua tp thng qua gia tri cua bin dm (Tampon Variable). Bin dm
dung d danh du vi tri truy nhp hay con goi la cua s cua tp. Ta co th hlnh dung
mt tp nhu la mt cun phim chup anh. Mi mt anh la mt phn tu va ng kinh la
cua s d nhln vao nn tai mi thoi dim chi nhln thy mt anh. Sau mi ln chup,
cua s se nhln vao anh o vi tri k tip.
Ta co th dung lnh lam dich chuyn cua s sang vi tri tip theo hoac v vi tri
du tp. Mi tp du duoc kt thuc bang du hiu dac bit d bao hiu ht tp, hay
goi la EOI(I) (End OI Iile I). Pascal co mt ham chun EOI tra v gia tri kiu
Boolean voi tham s la bin tp d xem cua s da dat vao vi tri kt thuc tp do
chua. Nu chua dn cui tp thl ham EOI tra v gia tri Ialse.
Vic phn loai tp dua trn vic b tri cac phn tu cua tp trong b nho ngoai va
cach truy cp vao tp: Tp truy nhp tun tu (Sequential Access) hoac tp truy nhp
truc tip (Direct Access).
i voi tp truy nhp tun tu vic doc mt phn tu bt ky cua tp phai di qua cac
phn tu truoc do; mun thm mt phn tu vao tp, phai dat cua s vao vi tri cui
tp. B nho ngoai tuong ung voi cu truc nay la bang tu. Tp truy nhp tun tu don
gian trong vic tao lp hay xu ly nhung kem tinh linh hoat.
i voi tp truy nhp truc tip, ta co th dat cua s vao mt vi tri bt ky cua tp.
B nho ngoai din hlnh la da tu (do du tu khi doc co th duoc diu khin dat vao
mt ch bt ky trn da tai moi thoi dim).
Tp truy nhp truc tip chi duoc dinh ngha o Turbo Pascal, Pascal chun khng
co. Khi khng noi ro la tp loai gl thl do duoc mac dinh la tp truy nhp tun tu.
III. Cac thao tac trn tp:
Giao trlnh Lp trlnh Pascal can ban
69
Trang 69
1. Mo tp moi d ct du liu:
Chuong trlnh chi co th luu lai du liu vao mt tp sau khi ta lam thu tuc mo tp.
Vic mo tp duoc tin hanh voi hai thu tuc di lin nhau theo thu tu:
Assign(IileVar, IileName)
ReWrite(IileVar);
Trong do:
IileVar:
IileName: tn cua tp dat trong thit bi nho ngoai duoc dua vao dang mt
String (quy tac dat tn tuong tu h diu hanh). Ta nn dat tn sao cho tn do phan
anh duoc y ngha hay ban cht, ni dung cua tp.
4 Vi du:
Assign(I1, 'HoSo.txt'); Gan tn la HoSo.txt cho bin I1}
ReWrite(I1); Mo tp HoSo.txt , tp chua co phn tu nao}
Sau khi mo tp xong, tp se rng vl chua co phn tu nao, cua s cua tp se khng
co gia tri xac dinh vl no tro vao cui tp (EOI).
Ghi chu: Khi mo tp, nu trn b nho ngoai (cung duong dn) da co san tp co
tn trung voi tn tp duoc mo thl ni dung cu se bi xoa.
2. Ghi cac gia tri vao tp voi thu tuc Write:
Thu tuc Write se dat cac gia tri moi vao tp.
Cu phap:
Write(IileVar, Item1, Item2, ..., ItemN);
Trong do: Item1, Item2, ..., ItemN: la cac gia tri cn ghi vao tp.
4 Vi du: Ta cn ghi vao tp ChuCai.txt cac gia tri 'a'.. 'z', thuc hin nhu sau:
...
Assign(I1, 'ChuCai.txt');
ReWrite(I1);
Ior ch: 'a' to 'z' do
Write(I1, ch);
...
4 Vi du 1: Tao mt tp chua cac s nguyn tu 1 dn 100 voi tn tp trn da la
''Nguyen.txt'.
Giao trlnh Lp trlnh Pascal can ban
70
Trang 70
Program TaoTepSoNguyen;
Var i: Integer;
I: Iile oI Integer;
Begin
Assign(I,'Nguyen.txt');
ReWrite(I);
Ior i: 1 to 100 do
Write(I,i);
Close(I);
End.
Ghi chu: Mt tp co th duoc dung lam tham s cua chuong trlnh con voi loi
khai bao bat buc phai sau chu Var tuc la tp duoc dung lam tham s bin.
3. oc du liu tu mt tp da co:
i voi tp tun tu, ta khng th vua ghi vua doc duoc cung mt luc. Sau khi ghi
du liu vao tp va dong lai, ta co th doc lai cac gia tri du liu trong tp.
Mt chuong trlnh mun su dung cac du liu da duoc chua trong mt tp, du tin
phai mo tp do ra d doc, thu tuc sau nha m mo mt doc:
Cu phap:
Assign(IileVar, IileName);
Reset(IileVar);
Sau lnh Reset, nu tp khng rng thl cua s tp bao gio cung tro vao phn tu
du tin cua tp va chuong trlnh se sao chep phn tu cua tp duoc tro sang bin dm
cua s. Ni dung tp nay khng bi xoa. Nu ta mo mt tp chua tn tai trn da thl
se co li.
doc du liu tu tp, ta dung thu tuc READ dang sau:
Read(IileVar, Var1, Var2,..., VarN);
Trong do: Var1, Var2,..., VarN la cac bin co cung kiu thanh phn cua IileVar.
Gap lnh nay may se doc cac gia tri tai vi tri cua s dang tro (nu co) gan sang bin
tuong ung cung kiu. Sau do, cua s dich chuyn sang vi tri tip theo va doc gia tri
cho bin khac, cu th doc cho dn bin VarN. READ chi co th doc gia tri cua tp
d gan gia tri cho cac bin.
Giao trlnh Lp trlnh Pascal can ban
71
Trang 71
Vic doc mt phn tu cua tp cn thoa man diu kin: phn tu do khng phai la
phn tu cui tp tuc la EOI. Do do, truoc khi mun doc tp va gan cho bin X, cn
phai thu xem tp do da kt thuc chua bang cu lnh:
II Not EOI(IileVar) Then Read(IileVar, X);
Hoac nu mun doc tt ca cac phn tu cua tp:
While Not EOI(IileVar) Do
Begin
Read(IileVar, X);
Xu ly bin x nu cn;
...
End;
Thuc hin xong ta phai dong tp voi thu tuc sau:
Close(IileVar);
4 Vi du1: Gia su da tn tai mt tp co tn la Nguyen.txt chua cac s kiu Byte va
co it nht ba phn tu. Thuc hin doc ra gia tri thu nht va thu ba cua tp va gan cho
hai bin A, B tuong ung.
Program DocSo;
Var A, B: Byte;
I: Iile OI Byte;
Begin
Assign(I,'Nguyen.txt');
Reset(I);
Read(I,A); doc mt phn tu thu nht cua tp ra bin A}
Read(I,B); doc mt phn tu thu hai cua tp ra bin B}
Read(I,B); doc mt phn tu thu hai cua tp ra bin B}
luc nay B khng giu gia tri thu hai nua}
Close(I);
End.
Vl dy la tp co cu truc tun tu nn mun doc phn tu thu ba ta buc phai doc
qua phn tu thu hai.
Ba ln Read(I,...) o trn co th thay th bang mt lnh doc duy nht:
Read(I,A, B, B);
Giao trlnh Lp trlnh Pascal can ban
72
Trang 72
4 Vi du 2: oc tt ca cac phn tu cua mt tp chua cac s co Integer nao do va ghi
ra man hlnh gia tri cac s do va cui cung ghi ra so phn tu cua tp.
Program DocTepSo;
Uses CRT;
Var i, SoPT: Integer;
I: Iile OI Byte;
IileName: String;
Begin
ClrScr;
Write('Tep can doc la gi ? (Tep so nguyen):');
Readln(IileName);
Assign(I, IileName);
Reset(I);
SoPT: 0;
While Not EOI(I) Do
Begin
Read(I,i); doc mot phan tu cua tep ra bien i}
Write(i,' ');
Inc(SoPT); dem so phan tu}
End;
Close(I);
Writeln;
Write('So phan tu cua tep ',IileName,' la ',SoPT);
Readln
End.
4. Tp truy nhp truc tip:
Pascal chun chi dinh ngha mt kiu tp truy nhp tun tu. Tuy nhin cac b
nho ngoai nhu da tu,... co th cho phep tinh toan toa d cua mt phn tu bt ky
trong tp (vl d dai cua cac phn tu la nhu nhau), do do co th truy nhp truc tip
vao mt phn tu cua tp mac du cu tao logic cua tp vn la dang tun tu. Trong
Turbo Pascal, d truy nhp truc tip vao phn tu cua tp, su dung thu tuc SEEK.
Cu phap:
Seek(IileVar, No);
Giao trlnh Lp trlnh Pascal can ban
73
Trang 73
Trong do, No la s thu tu cua phn tu trong tp (phn tu du tin cua tp duoc
danh s 0). Gap thu tuc nay, chuong trlnh se dat cua s cua tp vao phn tu thu No.
Tip theo mun doc phn tu do ra thl dung Read, nu mun dat gia tri moi vao
dung Write.
4 Vi du: Gia su tp Nguyen.txt trn da o thu muc hin hanh da chua 100 s
nguyn tu 1 dn 100. Ta kim tra xem phn tu thu hai (dm tu 0) cua tp co gia tri
bang 3 khng, nu khng thl sua lai bang mt gia tri nhp tu ban phim.
Var
i: Byte;
I: Iile OI Byte;
Answer: Char;
Begin
Assign(I,'Nguyen.txt');
Reset(I);
Seek(I,2); Dat cua so tep vao vi tri thu 3}
Read(I,i);
Writeln('i ',i);
Write('Ban muon sua lai khong ?(C/K):');
Readln(Answer);
II Answer In|'c','C'] Then
Begin
Seek(I,2);
Write(' Ban muon sua lai bang bao nhieu ?');
Readln(i);
Write(I,i); Thay doi gia tri cua phan tu hien tai }
End;
Close(I);
Readln
End.
5. Cac thu tuc va ham xu ly tp cua Turbo Pascal:
a. Ham IileSize(IileVar): Ham cho gia tri biu thi s phn tu cua tp IileVar. Ham
nhn gia tri 0 khi tp rng.
b. Ham IilePos(IileVar): cho bit vi tri hin tai cua con tro (cua s) tp IileVar.
Giao trlnh Lp trlnh Pascal can ban
74
Trang 7 4
Mt tp da tn tai chi co th lon thm bang cach ghi thm cac phn tu moi vao vi
tri cui cung cua tp. Mun dua con tro dn vi tri cui cung cua tp ta thuc hin
lnh sau:
Seek(IileVar, IileSize(IileVar));
c. Thu tuc Erase(IileVar): Dung d xoa tp trn da co tn n dinh voi IileVar.
Chu y: Khng duoc xoa tp dang mo.
4 Vi du:
...
Write('Cho biet ten tep can xoa:');
Readln(IileName);
Assign(I, IileName);
Erase(I);
...
d. Thu tuc Rename(IileVar, Str): Dung d thay di tn tp voi tn moi bang bin
Str kiu String.
Ghi chu: Tn moi phai khng trung tn tp nao co san trn da dang lam vic
Khng duoc di tn tp dang mo.
4 Vi du: Mun di tn tp Iile1.dat thanh Iile2.dat, thuc hin nhu sau:
Asign(I,'Iile1.dat');
Rename(I,'Iile1.dat');
6. Tp van ban (Text Iiles):
Trong Pascal co mt kiu tp da duoc dinh ngha truoc, do la tp van ban duoc
dinh ngha voi tn chun Text.
Cu phap khai bao:
I1, I2 :Text;
Thanh phn co so cua tp kiu Text la ky tu. Tuy nhin, van ban co th duoc cu
truc thanh cac dong, mi dong duoc kt thuc boi du hiu EOLN (End OI Line).
Nhu vy, mun doc va in ra tung dong cua tp van ban thl su dung dang Text.
Tp van ban duoc k tthuc boi du End OI Iile, cu th voi Turbo Pascal la CtrlZ
(Z) co ma ASCII 26.
Giao trlnh Lp trlnh Pascal can ban
75
Trang 7 5
a. Ham EOI(Var I: Text): Boolean. Ham tra v gia tri Ialse khi cua s tp chua
dn cui tp, nguoc lai, cho gia tri True. Ham nay thuong su dung d kim tra xem
da doc ht tp van ban chua. Vi du:
While not EOI(I) Do...
b. Ham EOLN(Var I: Text): Boolean. Ham tra v gia tri Ialse khi cua s tp chua
dn dim cui dong hoac cui tp, nguoc lai, cho gia tri True. Ham nay thuong su
dung d kim tra xem da doc dn cui dong chua. Vi du:
While not EOLN(I) Do..
c. Ghi vao mt tp van ban: Ta co th ghi cac gia tri kiu Integer, Real, Boolean,
String vao tp van ban bang lnh Write hoac Writeln. Co ba dang vit:
Write(IileVar, Item1, Item2,...,ItemN); (1)
Writeln(IileVar, Item1, Item2,...,ItemN); (2)
Write(IileVar); (3)
F Lnh (1): Vit cac gia tri Item1, Item2,...,ItemN la cac hang, biu thuc hay bin
co kiu don gian nhu: Nguyn, Thuc, Ky tu, Chui, Logic vao bin tp IileVar.
F Lnh (2): Tuong tu nhu (1) nhung co thm du hiu ht dong vao tp sau khi da
vit ht cac gia tri Item1, Item2,...,ItemN.
F Lnh (3): chi thuc hin vic dua thm du hiu ht dong vao tp.
Ghi chu: Tu cu lnh (2) ta co th chuyn sang vit nhu sau:
Begin
Write(IileVar, Item1);
...
Write(IileVar, Item2);
Writeln(IileVar);
End;
4 Vi du: Thuc hin ghi vao mt tp cac thng tin sau:
Chao cac ban den voi ngon ngu lap trinh Pascal
Trung tam Cong nghe Avnet

Var I: Text;
Begin
Giao trlnh Lp trlnh Pascal can ban
76
Trang 7 6
Assign(I,'VanBan.txt');
Rewrite(I);
Writeln(I,'Chao cac ban den voi ngon ngu lap trinh Pascal');
Writeln(I,' Trung tam Cong nghe Avnet ');
Writeln(I,' ');
Writeln(I);
Close(I);
End.
Ghi chu: Trong lnh Writeln,Write ta co th hin thi co quy cach nhu da trlnh
bay truoc dy.
d. oc du liu tu tp van ban:
Ta co th doc khng nhung cac ky tu tu tp van ban ma con co th doc lai cac s
nguyn, thuc, logic tu tp van ban thng qua cac thu tuc:
Read(IileVar, Var1, Var2,...,VarN); (1)
Readln(IileVar, Var1, Var2,...,VarN); (2)
Readln(IileVar); (3)
Trong do, Var1, Var2,...,VarN la cac bin thuc kiu ky tu, nguyn, thuc, logic,
chui. Lnh (1) se doc ni dung mt hay nhiu ph n tu ma khng chuyn cua s tp
xung dong. Lnh (2) doc nhu lnh (1) nhung se di chuyn cua s tp sang du
dong tip theo sau khi da ln luot doc cac bin tuong ung. Lnh (3) dua cua s tp
sang du dong tip theo ma khng doc gl ca.
4 Vi du: Chuong trlnh sau doc va in ra ni dung tp van ban VanBan.txt da duoc
tao ra tu chuong trlnh trn.
Program Doc_Iile_Text;
Uses CRT;
Var
I: Text;
Line:String|80];
Begin
ClrScr;
Assign(I,'VanBan.txt');
Reset(I);
While Not EOI(I) Do
Begin
Giao trlnh Lp trlnh Pascal can ban
77
Trang 77
Readln(I, Line);
Writeln(Line);
End;
Close(I);
Readln;
End.
e. Thu tuc thm dong:
Cu phap:
Append(Var I: Text);
Lnh Append mo tp van ban d ghi b sung cac dong, dinh vi cua s tp vao
cui tp. Ln su dung k tip voi thu tuc Write hay Writeln se thm van ban vao
cui tp.
4 Vi du: Chuong trlnh sau dy thm hai dong vao cui tp VanBan.txt.
Var I: Text;
Begin
Assign(I,'Vanban.txt');
Append(I);
Writeln(I,'Day la dong thu nhat them vao.');
Writeln(I,'Day la dong thu hai them vao.');
Close(I);
End.

_________ oo _________
Giao trlnh Lp trlnh Pascal can ban
78
Trang 7 8
PH N BAI TP THUC HANH
: 1. Luyn tp can ban: Khoi dng chuong trlnh Pascal va thuc hin:
1.1. Vit chuong trlnh hin thi ln man hlnh ni dung sau :
* * * * * * * * * * * * * * * * * * * * * * * *
* Trung tam Cong nghe AVnet *
* 74 Tran Quoc Toan *
* * * * * * * * * * * * * * * * * * * * * * * *
1.2. Vit chuong trlnh hin thi ln man hlnh tam giac sau :
*
* * *
* * * * *
* * * * * * *
1.3. Vit chuong trlnh hin thi ln man hlnh cac biu thuc sau :
a. 5000 100 200
b. 645 350 345
c. 45 45 32
1.4. Vit chuong trlnh d tinh kt qua cac biu thuc sau :
a. 5000 100 200
b. 645 350 345
c. 45 45 32
1.5. Chay thu chuong trlnh sau d tu rut ra nhn xet :
Program BieuThuc;
Begin
Write ( ' 45 756 16 ' );
Writeln (45 756 16 );
Write ( ' 36 56 3 ' );
Writeln ( 36 56 3 );
Readln;
End.
: 2. Bai tp don gian lam quen voi cac kiu du liu va mt s ham chun cua
Pascal
Giao trlnh Lp trlnh Pascal can ban
79
Trang 79
2.1. Tlm ch sai trong chuong trlnh sau:
Var i, n : Integer;
b : Byte;
Begin
n : 3;
b : 278;
i : b n;
Writeln(i);
End.
2.2. Vit chuong trlnh nhp gia tri cho cac bin tu ban phim voi kiu cua cac bin la
cac kiu du liu da duoc hoc, sau do hin thi mi gia tri cua mi bin trn mt
dong.
2.3. Vit chuong trlnh doc ky tu tu ban phim, sau do cho bit ma s cua ky tu vua
nhp trong bang ma ASCII.
2.4. Vit chuong trlnh tinh Sin(x), Cos(x). Trong do, goc x duoc nhp tu ban phim
va duoc do theo don vi Radian. (ta co th chuyn di bang cach: Cos(x * Pi / 180))
2.5. Vit chuong trlnh co su dung cac ham chun cua Turbo Pascal d tinh gia tri:
- blnh phuong
- tri tuyt di
- can bc hai
- logric co s e (e 2.718)
- ham e mu x (e
x
)
- sau khi cat bo phn thp phn
- lam tron s
cua x. Trong do, x la mt gia tri kiu thuc duoc nhp tu ban phim.
2.6. Vit chuong trlnh cho bit gia tri dung truoc, dung sau cua mt gia tri x kiu ky
tu (Char) va y kiu logic (Boolean), trong do, x va y duoc nhp tu ban phim.
: 3. Ap dung cac lnh don gian
3.1. Chuong trlnh sau cho kt qua gl?
Begin
Writeln( IalseTrue : 60 );
Giao trlnh Lp trlnh Pascal can ban
80
Trang 80
Writeln( '1' '2' );
Readln;
End.
Thu lai trn may d kim tra.
3.2. Cho bit kt qua va kiu du liu cua cac biu thuc sau:
a) 5 3.0
b) 6/3 2 div 3
c) (103) And (Not True And (12 div 31))
d) (10*((45 mod 3) 1)) / 6
Sau do, vit chuong trlnh thuc hin cac phep tinh trn (hin thi kt qua o dang co
dinh quy cach).
3.3. Vit chuong trlnh tao ra mt thip moi du sinh nht. Trong do, cac gia tri ly tu
ban phim gm: Ho tn nguoi duoc moi, Ngay t chuc tic, ia dim, Ho tn nguoi
moi.
3.4. Vit chuong trlnh tinh tng cac chu s cua mt s co 2 chu s (Huong dn: su
dung phep chia Div va Mod).
3.5. Ap dung phuong phap trn, vit chuong trlnh tinh tng cac chu s cua mt s
co 3, 4 chu s.
3.6. Vit chuong trlnh di mt s nguyn duoc ly tu ban phim biu din s giy
thanh gio, phut, giy va hin thi o dang gio : phut : giy
3.7. Trong mi truong Turbo Pascal, d tao ky tu chi cn n Alt 219 (cac s 2,
1, 9 va go tai khu vuc phim s). Vit chuong trlnh in ln man hlnh tu DA NANG
bang ky tu
3.8. Vit chuong trlnh tinh gia tri biu thuc sau:
: 4. Bai tp cho cac loai lnh co cu truc
4.1. Bai tp cho cu truc lnh II:
a. Vit chuong trlnh d giai phuong trlnh bc hai ax
2
bx c 0.
b x x c e
e b Sin x
b
+ + + +
+
) 256 . 0 ( 5
) (
0002345 . 0 3
Giao trlnh Lp trlnh Pascal can ban
81
Trang 81
b. Vit chuong trlnh m ta su hoat dng cua mach din (hlnh duoi) khi co hai cng
tac mac song song voi nhau, tuc la cho bit trang thai sang hay ti cua bong den khi
hai cng tac dong hoac ngat. (Huong dn: Su dung cac bin logic voi phep toan
OR).




c. Nhp 3 s a, b, c tuong ung voi 3 canh cua mt tam giac. Tinh din tich hlnh tam
giac theo cng thuc:
d. Tinh tin thuc lnh cho mi nhn vin trong xi nghip x theo cng thuc sau:



Voi quy dinh: nghi qua 5 ngay se bi tru 20 tng thuc lnh, lam thm qa 3 ngay
duoc tang 10 tng thuc lnh.
4.2. Bai tp cho cu truc lnh Case:
a. Vit chuong trlnh nhp mt ky tu tu ban phim, kim tra no va:
hin thi la so nu no la s.
hin thi la chu hoa nu no la chu hoa.
hin thi la chu thuong nu no la chu thuong.
ngoai ra, hin thi Khong phai la so hoac chu cai.
b. Vit chuong trlnh di nam duong lich (dang s) thanh nam m lich (dang chu).
Vi du: nhp nam 2000 duong lich may cho bit nam m lich la Canh Thln. (Huong
dn: su dung phep MOD giua nam voi 10 d ly phn ia Can va MOD giua nam
voi 12 d ly phn ia Chi, s du tuong ung se duoc kt qua theo bang sau:
S du (MOD 10) ia Can S du (MOD 12) ia Chi
0...................................Canh 0........................................Thn
1.....................................Tn 1......................................... Du
2................................. Nhm 2........................................ Tut
3.................................... Quy 3..........................................Hoi
K1
K2
) )( )( ( : c p b p a p p s =
Thuc lnh
26
(Luong chinh * S ngay cng)
(Phu cp Tam ung)
Giao trlnh Lp trlnh Pascal can ban
82
Trang 82
4................................... Giap 4........................................... Ty
5....................................... t 5..........................................Suu
6................................... Binh 6......................................... Dn
7................................... inh 7........................................ Meo
8....................................Mu 8........................................ Thln
9...................................... Ky 9........................................... Ty
10....................................... Ngo
11....................................... Mui
c. Giai phuong trlnh bc hai ax
2
bx c 0.
4.3. Bai tp cho cu truc vong lap Ior:
a. Vit chuong trlnh nhp mt s tu nhin N tu ban phim va tinh:
e 1 1/1! 1/2! ... 1/N!
b. Giai bai toan dn gian sau:
Vua ga vua cho.
Bo lai cho tron.
m du 100 chn.
Hoi co my ga, my cho ?
c. Vit chuong trlnh kim tra cng thuc sau dung hay sai voi moi N duong duoc
nhp tu ban phim:
1 2 3 ... N N(N1) / 2
d. Vit chuong trlnh nhp vao chiu dai, chiu rng cua hlnh chu nht va in hlnh
chu nht do ra man hlnh bang cac du *. Vi du: nhp dai 7, rng 3, hlnh chu
nht se co dang sau:
* * * * * * *
* *
* * * * * * *
e. Vit chuong trlnh tinh n! trong do, n la mt s nguyn duoc nhp tu ban phim
(Huong dn: ta nn khai bao bin d chua kt qua la mt bin kiu LongInt).
4.4. Bai tp cho cu truc vong lap Repeat:
a. Vit chuong trlnh lam cac cng vic sau: Tinh din tich hlnh chu nht, din tich
hlnh tam giac, hlnh tron. Dung lnh Repeat... Until d lp mt menu lua chon cng
vic theo mu:
Giao trlnh Lp trlnh Pascal can ban
83
Trang 83
TINH DIEN TICH CAC HINH
1. Hinh chu nhat.
2. Hinh tam giac.
3. Hinh tron..
4. Ket thuc.
Lua chon mt muc cua menu bang cach n s tuong ung, n phim s 4 may dung
chuong trlnh.
b. Vit chuong trlnh nhp vao tu ban phim ln luot cac s nguyn, du hiu chm
dut la s 0. Tinh tng va trung blnh cng cua cac s da nhp.
c. Vit chuong trlnh in ra bang tinh can bc hai cua mt tram s nguyn duong du
tin.
4.5. Bai tp cho cu truc vong lap While:
a. Vit chuong trlnh nhp vao tu ban phim ln luot cac s nguyn, du hiu chm
dut la s 0. Tinh tng va trung blnh cng cua cac s da nhp.
b. Vit chuong trlnh tlm va hin thi cac s nguyn t nho hon mt s n duoc nhp
tu ban phim (S nguyn t la s chi chia chan cho 1 va chinh no).
c. Vit chuong trlnh gia lam tro choi x s nhu sau: Nguoi choi nhp 5 ln, mi ln
mt s nguyn tuy y, may kim tra nu trong cac s nguoi choi nhp vao co 3 s tro
ln trung voi cac s may ly ngu nhin thl nguoi do thang va nguoc lai la thua.
Nu thua thl may bao Ban da thua ! nguoc lai may bao Ban da thang !
d. Vit chuong trlnh nhp vao mt ky tu ch bt ky, nu no la chu s thl bao ch la
chu so, nu no la chu cai thl bao ch la chu cai, ngoai ra, bao ch khong phai la so
hoac chu cai va thoat khoi chuong trlnh.
: 5. Bai tp cho du liu kiu doan con, lit k va kiu mang (Bai 5 va 6)
5.1. Vit chuong trlnh nhp vao mt da y n s a|1], a|2],..., a|n] va in ra man hlnh
cac thng tin sau:
Tng cac phn tu cua day.
S luong s duong va tng cua cac s duong cua day.
S luong s m va tng cua cac s m cua day.
Trung blnh cng cua day.
Giao trlnh Lp trlnh Pascal can ban
84
Trang 84
5.2. Vit chuong trlnh nhp vao mt day n s a|1], a|2],..., a|n] va in ra man hlnh
cac thng tin sau:
S hang duong lon nht cua day va chi s (vi tri) cua no.
S hang duong nho nht cua day va chi s (vi tri) cua no.
S hang m lon nht cua day va chi s (vi tri) cua no.
S hang m nho nht cua day va chi s (vi tri) cua no.
5.3. Vit chuong trlnh nhp vao mang a gm 10 phn tu nguyn, sau do, nhp mt
gia tri x. Tlm trong mang a nu co phn tu nao co gia tri bang voi x thl hin thi ln
man hlnh vi tri cua no trong mang a.
5.4. Vit chuong trlnh nhp vao mt ma trn vung, xut man ra man hlnh ma trn
do va cho bit tng cac phn tu trn duong cheo chinh.
: 7. Bai tp tao thu tuc va ham (Bai 7):
7.1. Vit mt thu tuc dung d ve hlnh vung bang du *. Chiu dai cua canh hlnh
vung duoc nhp tu ban phim. Goi thuc hin thu tuc boi chuong trlnh chinh.
7.2. Lp ba thu tuc tinh din tich hlnh tam giac, hlnh chu nht va hlnh tron.
7.3. Lp ba ham tinh din tich hlnh tam giac, hlnh chu nht va hlnh tron.
7.4. Lp mt ham d kim tra mt s co phai la s nguyn t hay khng. Sau do,
cho chuong trlnh chay lin tuc va hoi nguoi dung: Ban co tip tuc khng ? cho dn
khi nguoi dung nhp ky tu k hoac K thl dung lai.
7.5. Vit ham d tinh gia tri a
n
. Trong do, a va n la hai gia tri kiu thuc. (Huong
dn: a
n
e
n * ln(a)
).
7.6. Vit mt ham d tinh gia tri n!.
: 8. Bai tp cho phn xu ly chui (Bai 8):
8.1. Vit chuong trlnh nhp vao mt chui va dm trong chui do co bao nhiu ky
tu 'a', 'b' va 'c' (k ca 'A', 'B', 'C').
8.2. Vit chuong trlnh dm trong mt chui duoc nhp tu ban phim co bao nhiu tu,
gia su mi tu cach nhau bang mt ky tu trang (tam chp nhn giua hai tu khng
duoc nhp qua 1 ky tu trang).
8.3. Vit chuong trlnh nhp vao mt chui s, sau do, nhp vao m t tu bt ky va
kim tra trong chui s nu co tu do thl xoa di (tai vi tri du tin), nu khng tlm
thy tu do trong s thl bao Khong co tu nay trong chuoi vua nhap !
Giao trlnh Lp trlnh Pascal can ban
85
Trang 85
8.4. Tuong tu cu trn (7.3) nhung nu tlm thy trong chui s co bao nhiu tu do thl
xoa ht.
8.5. Vit chuong trlnh nhp vao tu ban phim Ho va tn Vit Nam, sau do in phn
tn ra man hlnh. Vi du: nhp Phan Van Anh Tuan thl in ra Tuan.
: BAI TP TNG UAT
1. Tlm tt ca cac s co 3 chu s a, b, c sao cho tng cac lp phuong cua cac chu s
bang chinh s do.
abc 100a 10b c a
3
b
3
c
3

2. Tlm va in ra cac s nguyn t nho hon mt s cho truoc n.
3. Vit chuong trlnh dm s ln xut hin cua tung loai ky tu tu 'A' dn 'Z' chua
trong mt chui duoc nhp tu ban phim.
4. Nhp mang hai chiu A gm m hang va n ct.
Tlm gia tri lon nht va nho nht trn mi hang, mi ct cung voi vi tri (dong,
ct) cua gia tri nay.
Tlm phn tu co gia tri lon nht va nho nht cua mang A cung voi vi tri (dong,
ct) cua hai phn tu nay.
Trong mang A co bao nhiu phn tu bang voi phn tu lon nht cua mang.
5. Vit chuong trlnh nhp vao tu ban phim mt ma trn vung va in ra man hlnh
tng cac phn tu trn duong cheo chinh.
6*. Vit mt chuong trlnh dung d giai cac bai toan bang cach t chuc mi thu tuc
d giai mt bai toan va tao menu d goi thuc hin cac thu tuc do theo yu cu sau:
1. Giai phuong trlnh bc hai (ax
2
bx c 0).
2. Tinh Sin(x).
3. Tinh Cos(x).
4. Tinh x
3
.
Ghi chu: Ngoai ra, hoc vin tu tlm thm bai tp d thuc hanh.

_________ oo _________
Giao trlnh Lp trlnh Pascal can ban
86
Trang 86
MUC LUC
BAI I. Gioi thiu ngn ngu pascal va cac vi du don gian .................................... 1
I. Xut xu ngn ngu Pascal ............................................................................. 1
II. Khoi dng.................................................................................................. 1
III. Cac phim chuc nang cn bit cua ngn ngu Pascal.................................... 2
IV. Cu truc mt chuong trlnh Pascal ............................................................. 2
1. Cu truc co ban....................................................................................... 2
2. Phuong phap khai bao va t chuc cu truc mt chuong trlnh Pascal........ 2
V. Cac vi du don gian lam quen voi ngn ngu Pascal.............................. 5
BAI 2. Cac khai nim co ban cua ngn ngu pascal.............................................. 7
I. Cac tu khoa (Key word) trong ngn ngu Pascal ...................................7
II. Cac kiu du liu co ban.............................................................................. 7
1. Cac kiu du liu dang s nguyn ............................................................ 7
a. Kiu Byte ........................................................................................... 7
b. Kiu Integer ....................................................................................... 7
c. Kiu Shortint ...................................................................................... 7
d. Kiu Word ......................................................................................... 7
e. Kiu Longint ...................................................................................... 7
2. Cac kiu du liu dang s co phn biu din thp phn ............................ 7
a. Kiu Single ........................................................................................ 7
b. Kiu Real ........................................................................................... 7
c. Kiu Double....................................................................................... 7
3. Kiu Char (ky tu) ................................................................................... 8
4. Kiu Logic ............................................................................................. 8
5. Kiu String (chui ky tu) ........................................................................ 8
III. Cac ham xu ly du liu co ban cua ngn ngu Pascal ................................... 8
IV. Su dung ham Random(n) d ly mt gia tri nguyn ngu nhin ................ 9
BAI 3. Hang s, bin s, biu thuc va cu lnh don gian trong ngn ngu pascal .. 10
I. Hang s ......................................................................................................10
1. Khai nim..............................................................................................10
2. Cu phap khai bao...................................................................................10
II. Bin s ......................................................................................................11
1. Khai nim..............................................................................................11
2. Cu phap khai bao cho cac bin ..............................................................11
Giao trlnh Lp trlnh Pascal can ban
87
Trang 87
III. Biu thuc .................................................................................................12
IV. Cu lnh don gian....................................................................................12
1. Lnh gan ...............................................................................................13
2. Lnh Xut .............................................................................................1 4
3. Lnh Nhp.............................................................................................17
BAI 4. Cac lnh co cu truc trong ngn ngu pascal............................................18
I. Lnh ghep ..................................................................................................1 8
II. Lnh lua chon ...........................................................................................19
1. Lnh II..................................................................................................19
2. Lnh CASE...........................................................................................21
III. Cac cu lnh lap.......................................................................................23
1. Cu lnh IOR........................................................................................23
a. Dang tin...........................................................................................23
b. Dang lui ............................................................................................2 4
2. Cu lnh Repeat ....................................................................................2 5
3. Cu lnh While......................................................................................27
IV. Cac lnh Goto, Break, Exit va Halt..........................................................2 8
1. Lnh Goto .............................................................................................2 8
2. Lnh Break............................................................................................29
3. Lnh Exit...............................................................................................30
4. Lnh Halt ..............................................................................................30
Bai 5. Du liu kiu v huong lit k va kiu doan con .......................................31
I. Kiu lit k.................................................................................................31
II. Kiu doan con...........................................................................................32
Bai 6. Kiu tp hop va kiu mang ......................................................................33
I. Kiu tp hop:..............................................................................................33
1. inh ngha.............................................................................................33
2. Cac phep toan trn tp hop ....................................................................33
a. Phep toan quan h .............................................................................33
b. Phep toan IN.....................................................................................3 4
c. Phep toan hop, giao, hiu...................................................................3 4
II. Kiu mang ................................................................................................3 5
1. Khai nim..............................................................................................3 5
2. Khai bao mang mt chiu......................................................................3 5
3. Truy cp cac phn tu cua mang..............................................................3 6
Giao trlnh Lp trlnh Pascal can ban
88
Trang 88
4. Mang nhiu chiu..................................................................................37
Bai 7. Chuong trlnh con: Ham va Thu tuc.......................................................... 40
I. Ham va thu tuc ........................................................................................... 40
II. Bin toan cuc, bin cuc b va vic truyn du liu...................................... 42
III. Cac ham va thu tuc thuong dung cua Unit CRT ....................................... 44
1. Thu tuc ClrScr....................................................................................... 44
2. Thu tuc ClrEOL..................................................................................... 44
3. Thu tuc DelLine .................................................................................... 45
4. Thu tuc InsLine ..................................................................................... 45
5. Thu tuc GotoXY(x, y: Byte) .................................................................. 45
6. Ham WhereX: Byte............................................................................... 45
7. Ham WhereY: Byte............................................................................... 45
8. Thu tuc Sound(Hz : Word) .................................................................... 45
9. Thu tuc NoSound .................................................................................. 45
10. Thu tuc TextBackGround(Color : Byte)............................................... 45
11. Thu tuc TextColor(Color : Byte) ......................................................... 45
12. Ham KeyPressed: Boolean .................................................................. 45
13. Ham ReadKey: Char............................................................................ 45
Bai 8. Kiu xu ky tu ......................................................................................... 48
I. Khai bao va cac phep toan.......................................................................... 48
1. Khai bao kiu xu.................................................................................. 48
2. Nhp va in xu ky tu.............................................................................. 48
3. Cac phep toan trn xu ky tu ................................................................. 49
a. Phep gan............................................................................................ 49
b. Phep ni String.................................................................................. 49
c. Cac phep toan so sanh ....................................................................... 49
II. Cac thu tuc va ham xu ly xu ky tu ........................................................... 49
1. Cac thu tuc ............................................................................................ 49
a. Delete(St , Pos, Num)........................................................................ 49
b. Insert(St2, St1, Pos)........................................................................... 50
c. Str(Value, St) .................................................................................... 50
d. Val(St, Var, Code) ............................................................................ 50
2. Cac ham................................................................................................ 51
a. Length(St) ......................................................................................... 51
Giao trlnh Lp trlnh Pascal can ban
89
Trang 89
b. Copy(St, Pos, Num) .......................................................................... 51
d. Pos(St1, St2) ..................................................................................... 52
Bai 9. Du liu kiu ban ghi va kiu tp .................................................... 54
I. Kiu ban ghi............................................................................................... 54
1. Khai nim va dinh ngha........................................................................ 54
2. Su dung Record..................................................................................... 55
3. Cu lnh With ....................................................................................... 57
4. Record co cu truc thay di ................................................................... 59
Bai 10. Du liu kiu tp ..................................................................................... 62
I. Khai nim................................................................................................... 62
II. Cu truc va phn loai tp........................................................................... 63
III. Cac thao tac trn tp ................................................................................ 63
1. Mo tp moi d ct du liu ...................................................................... 63
2. Ghi cac gia tri vao tp voi thu tuc Write ................................................ 64
3. oc du liu tu mt tp da co .................................................................. 65
4. Tp truy nhp truc tip .......................................................................... 67
5. Cac thu tuc va ham xu ly tp cua Turbo Pascal ...................................... 68
a. Ham IileSize(IileVar) ...................................................................... 68
b. Ham IilePos(IileVar) ....................................................................... 68
c. Thu tuc Erase(IileVar) ...................................................................... 68
d. Thu tuc Rename(IileVar, Str) ........................................................... 68
6. Tp van ban (Text Iiles)........................................................................ 69
a. Ham EOI(Var I: Text): Boolean....................................................... 69
b. Ham EOLN(Var I: Text): Boolean .................................................. 69
c. Ghi vao mt tp van ban.................................................................... 69
d. oc du liu tu tp van ban.................................................................70
e. Thu tuc thm dong.............................................................................71
PH N BAI TP THUC HANH .............................. 72
: 1. Luyn tp can ban.................................................................................72
: 2. Bai tp don gian lam quen voi cac kiu du liu va mt s ham chun cua
Pascal....................................................................................................72
: 3. Ap dung cac lnh don gian....................................................................73
: 4. Bai tp cho cac loai lnh co cu truc .....................................................7 4
4.1. Bai tp cho cu truc lnh II.................................................................7 4
Giao trlnh Lp trlnh Pascal can ban
90
Trang 90
4.2. Bai tp cho cu truc lnh Case............................................................7 5
4.3. Bai tp cho cu truc vong lap Ior .......................................................7 5
4.4. Bai tp cho cu truc vong lap Repeat ..................................................7 6
4.5. Bai tp cho cu truc vong lap While ...................................................7 6
: 5. Bai tp cho du liu kiu doan con, lit k va kiu mang ........................77
: 7. Bai tp tao thu tuc va ham.....................................................................77
: 8. Bai tp cho phn xu ly chui .................................................................7 8

You might also like