Tải bản đầy đủ

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

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


– Giạo trçnh Láûp trçnh Pascal càn bn —
–1—

BI 1: GIÅÏI THIÃÛU NGÄN NGỈỴ PASCAL V CẠC VÊ DỦ ÂÅN
GIN
I. Xút xỉï ngän ngỉỵ Pascal:
Pascal l ngän ngỉỵ láûp trçnh cáúp cao do Niklaus Wirth, giạo sỉ âiãûn toạn trỉåìng
âải hc k thût Zurich (Thy Sé), âãư xút nàm 1970 våïi tãn Pascal âãø k niãûm nh
toạn hc v triãút hc näøi tiãúng Blaise Pascal (ngỉåìi Phạp).
Ngän ngỉỵ láûp trçnh Pascal cọ âàûc âiãøm: ngỉỵ phạp, ngỉỵ nghéa âån gin v cọ tênh
logic; cáúu trục chỉång trçnh r rng, dãù hiãøu (thãø hiãûn tỉ duy láûp trçnh cáúu trục); dãù
sỉía chỉỵa, ci tiãún.
Trong quạ trçnh phạt triãøn, Pascal â phạt huy âỉåüc ỉu âiãøm v âỉåüc dng âãø tảo
ra nhiãưu ỉïng dủng trãn nhiãưu lénh vỉûc khạc nhau. Cạc täø chỉïc v cäng ty chun vãư
mạy tênh dỉûa trãn Pascal chøn â phạt triãøn thãm v tảo ra cạc chỉång trçnh dëch
ngän ngỉỵ Pascal våïi nhiãưu pháưn bäø sung, gim thiãøu khạc nhau. Vê dủ: TURBO
PASCAL ca hng Borland (M), QUICK PASCAL ca hng Microsoft, UCSD
PASCAL (University of California at San Diego), ANSI PASCAL (American


National Standard Institute),.v.v.

So våïi nhiãưu sn pháøm Pascal ca nhiãưu täø chỉïc v cäng ty khạc nhau xút bn,
TURBO PASCAL ca hng Borland t ra cọ nhiãưu ỉu âiãøm nháút v hiãûn nay â tråí
thnh ngän ngỉỵ láûp trçnh phäø biãún nháút trãn thãú giåïi sỉí dủng trong lénh vỉûc ging
dảy v láûp trçnh chun nghiãûp. Chè trong vng vi nàm Turbo Pascal âỉåüc ci tiãún
qua nhiãưu phiãn bn : 1.0, 2.0, 3.0, 4.0, 5.0, 5.5 (1989), 6.0 (1990), 7.0 (1972).
Cạc táûp tin chênh ca ngän ngỉỵ Turbo Pascal gäưm:
- Turbo.exe: chỉång trçnh soản tho, dëch v liãn kãút chỉång trçnh.
- Turbo.tpl (.tpl - Turbo Pascal Library): táûp tin thỉ viãûn lỉu cạc âån vë (Unit)
chøn âãø chảy våïi Turbo.exe.
Mún sỉí dủng cạc lãûnh âäư ha, phi cọ cạc táûp tin sau:
- Graph.tpu: Âån vë (Unit) chỉïa cạc lãûnh âäư hoả.
- Cạc táûp tin cọ pháưn måí räüng CHR (SANS.CHR, TRIP.CHR,
GOTH.CHR,.v.v.): Chỉïa cạc kiãøu chỉỵ trong chãú âäü âäư hoả.
- Cạc táûp tin cọ pháưn måí räüng BGI (EGAVGA.BGI, HERC.BGI, CGA.BGI,...):
âãø âiãưu khiãøn cạc loải mn hçnh tỉång ỉïng khi dng âäư hoả.
II. Khåíi âäüng:
Trang 1


– Giạo trçnh Láûp trçnh Pascal càn bn —
–2—

Ta cọ thãø khåíi âäüng Pascal tỉì Windows hồûc MS-DOS, chuøn âãún thỉ mủc BP
hồûc TP v chảy táûp tin BP.EXE hay TURBO.EXE. Hai cạch khåíi âäüng trãn thỉûc
hiãûn nhỉ sau:
- Khåíi âäüng tỉì dáúu nhàõc ca MS-DOS: Chuøn âãún thỉ mủc BP hồûc TP nåi
chỉïa táûp tin BP.EXE hồûc TURBO.EXE, g BP hồûc TURBO v áún .
- Khåíi âäüng tỉì Windows: chn menu Start/Program/Borland Pascal. Nãúu chỉång
trçnh Pascal chỉa âỉåüc ci vo menu Start, bản cọ thãø dng Windows Explorer
chuøn âãún táûp tin BP.EXE hồûc TURBO.EXE v khåíi âäüng Pascal bàòng cạch
chảy táûp tin ny.
III. Cạc phêm chỉïc nàng cáưn biãút ca ngän ngỉỵ Pascal:
- F2: Lỉu chỉång trçnh trong khi soản tho.
- F3: Tảo mäüt file måïi hồûc måí mäüt file c.
- F9: Dëch thỉí chỉång trçnh âãø kiãøm tra läùi.
- Ctrl - F9: Chảy chỉång trçnh.
- Alt - F5: Xem kãút qu chảy chỉång trçnh.

- Alt - X: Thoạt khi mn hçnh soản tho chỉång trçnh Pascal.
IV. Cáúu trục mäüt chỉång trçnh Pascal:
1. Cáúu trục cå bn:
Chỉång trçnh Pascal âån gin nháút phi cọ hai tỉì khoạ Begin v End nhỉ sau:
Begin
End.
Chỉång trçnh trãn tuy khäng lm gç khi chảy (áún Ctrl - F9) nhỉng l mäüt chỉång
trçnh håüp lãû do häüi â âiãưu kiãûn cáưn thiãút l cọ hai tỉì khoạ Begin v End.
Tỉì khoạ End cọ km dáúu “.” phêa sau bạo hiãûu kãút thục chỉång trçnh, âáy l âiãưu
bàõt büc phi cọ trong mäüt chỉång trçnh. Tỉì khoạ Begin trãn âỉåüc trçnh biãn dëch
hiãøu l bàõt âáưu thỉûc hiãûn cạc lãûnh sau nọ v kãút thục tải tỉì khoạ End cọ dáúu cháúm
“.”. Khäúi lãûnh nàòm trong càûp tỉì khoạ Begin v End nãúu cọ dáúu cháúm theo sau cn
gi l khäúi chỉång trçnh chênh. Ngoi ra, nãúu sau tỉì khoạ End khäng cọ dáúu hồûc
cọ dáúu “;” thç âọ cọ thãø l khäúi chỉång trçnh con, khäúi lãûnh ca hm hồûc khäúi lãûnh
trong chỉång trçnh. Trong chỉång trçnh cọ thãø cọ nhiãưu khäúi lãûnh, tỉïc cọ thãø cọ
nhiãưu càûp tỉì khoạ Begin v End.
2. Phỉång phạp khai bạo v täø chỉïc cáúu trục mäüt chỉång trçnh Pascal:
Trang 2


– Giạo trçnh Láûp trçnh Pascal càn bn —
–3—
Viãûc âàût cạc pháưn khai bạo v soản tho chỉång trçnh theo thỉï tỉû nhỉ sau:

Program ProgName;
Uses UnitName1, UnitName2, UnitNameN;
Label LabelName1, LabelName2, LabelNameN;
Const Const1 = n, Const2 = m, ConstN = k;
Type Type1 = AnyType;
Var Var1, Var2, VarN : Type;
Begin
{ Cạc lãûnh ca chỉång trçnh }

End.
Ư Gii thêch cáúu trục cạc khai bạo trãn:
Nãúu cọ pháưn khai bạo no cáưn cho chỉång trçnh thç phi tn theo thỉï tỉû trãn, vê
dủ: pháưn khai bạo thỉ viãûn (USES) khäng thãø âàût sau pháưn khai bạo hàòng säú
(CONST) hồûc sau (VAR)... sau mäùi pháưn khai bạo phi cọ dáúu ‘;’.
- Program: Tỉì khoạ ny dng âãø khai bạo tãn chỉång trçnh, ProgName l tãn
chỉång trçnh, tãn ny khạc våïi tãn táûp tin. Tãn chỉång trçnh phi tn theo quy tàõc:
+ khäng cọ k tỉû träúng xen giỉỵa.
+ khäng âàût säú åí k tỉû âáưu tiãn.
+ trong pháưn tãn khäng chỉïa cạc k tỉû âàût biãût nhỉ: ‘!’, ‘@’, ‘#’, ‘$’, ‘%’, ‘^’,

‘&’, ‘* ’, ‘(‘, ‘)’, ‘-‘, ‘+’, ‘/’, ‘\’, ‘.’, ’,’,.v.v.
+ kãút thục phi cọ dáúu ‘;’.
+ pháưn ny cọ thãø khäng cọ.

4 Vê dủ: mäüt cạch khai bạo tãn chỉång trçnh:

Program TimUSCLN;
Begin
End.

...

- Uses: Tỉì khoạ ny dng âãø khai bạo viãûc sỉí dủng Unit (thỉ viãûn) cho chỉång
trçnh. Thỉ viãûn l táûp håüp cạc hm, th tủc do ngän ngỉỵ Pascal cung cáúp km theo
hồûc cng cọ thãø do ngỉåìi láûp trçnh tảo ra âãø sỉí dủng. Ta khai bạo thỉ viãûn thäng
qua tãn ca thỉ viãûn, v trong chỉång trçnh âọ ta s cọ thãø sỉí dủng cạc th tủc hồûc
Trang 3


Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn
4
caùc haỡm coù trong thổ vióỷn õoù. Caùc thổ vióỷn chuỏứn cuớa ngọn ngổợ Pascal gọửm: CRT,
DOS, GRAPH, GRAPH3, OVERLAY, PRINTER, SYSTEM vaỡ TURBO3. Trong
õoù, thổ vióỷn SYSTEM mỷc õởnh õổồỹc chuyóứn vaỡo chổồng trỗnh maỡ ta khọng cỏửn
phaới khai baùo. Vờ duỷ mọỹt caùch khai baùo thổ vióỷn:

...
Uses CRT, GRAPH;
...
- Label: Duỡng õóứ khai baùo caùc nhaợn cho chổồng trỗnh. Nhaợn laỡ caùc tón duỡng õóứ
õaùnh dỏỳu trong chổồng trỗnh õóứ lóỷnh GOTO nhaớy õóỳn õuùng vở trờ õoù. Vióỷc sổớ duỷng
lóỷnh GOTO õổồỹc õóử cỏỷp ồớ baỡi 4. Vờ duỷ mọỹt caùch khai baùo nhaợn:

...
Label TH1, N2;
...
- Const: Tổỡ khoaù naỡy duỡng õóứ khai baùo caùc hũng sọỳ sổớ duỷng trong chổồng trỗnh,
khi baùo hũng sọỳ laỡ vióỷc cọỳ õởnh mọỹt vaỡi giaù trở naỡo õoù trong chổồng trỗnh thọng qua
tón hũng, vờ duỷ caùch khai baùo hũng:

...
Const k = 5, Max = 500, Ten = Nam;
...
- Type: tổỡ khoaù duỡng õóứ khai baùo caùc kióứu hũng dổợ lióỷu sổớ duỷng cho chổồng
trỗnh. Vồùi tổỡ khoaù naỡy, ta coù thóứ tổỷ taỷo rióng cho mỗnh nhổợng kióứu dổợ lióỷu rióng dổỷa
trón caùc kióứu dổợ lióỷu chuỏứn õóứ tióỷn sổớ duỷng trong vióỷc lỏỷp trỗnh. Caùc khaùi nióỷm vóử
dổợ lióỷu chuỏứn vaỡ phổồng phaùp taỷo kióứu dổợ lióỷu tổỷ taỷo seợ õổồỹc giồùi thióỷu ồớ caùc phỏửn
sau. Vờ duỷ mọỹt caùch õóứ khai baùo mọỹt kióứu dổợ lióỷu tổỷ taỷo:

...
Type Day = Array [1..7] of String[8];
...

- Var: Tổỡ khoaù duỡng õóứ khai baùo caùc bióỳn sọỳ õổồỹc sổớ duỷng trong chổồng trỗnh.
Bióỳn sọỳ laỡ caùc giaù trở coù thóứ thay õọứi õổồỹc trong suọỳt quaù trỗnh chaỷy cuớa chổồng
trỗnh. Khaùi nióỷm vóử bióỳn sọỳ rỏỳt quan troỹng trong vióỷc lỏỷp trỗnh (khaùi nióỷm naỡy õổồỹc
trỗnh baỡy kyợ ồớ baỡi 3). Mọỹt vờ duỷ vóử caùch khai baùo bióỳn:

...
Trang 4


– Giạo trçnh Láûp trçnh Pascal càn bn —
Var HoDem, Ten : String;
N : Integer;
...

–5—

Ư Ghi chụ:
- Thỉï tỉû cạc khai bạo trãn l âiãưu bàõt büc, ta phi nàõm thỉï tỉû ny cho d mäüt säú
khại niãûm ta chỉa âỉåüc biãút.
- Trong chỉång trçnh Pascal, âãø tảo låìi chụ thêch, ta sỉí dủng càûp dáúu {...} hồûc
(*...*) läưng cạc cáu chụ thêch vo bãn trong nọ.
- Trãn mäüt dng cọ thãø viãút mäüt hồûc nhiãưu cáu lãûnh.
V. Cạc vê dủ âån gin lm quen våïi ngän ngỉỵ Pascal:
4 Vê dủ 1:
Program GioiThieu;
Begin
Writeln ( ‘ Trung tam Trung hoc Chuyen nghiep va Day nghe ‘ );
Write ( ‘
74 Tran Quoc Toan - Tel: 0511 872664
‘ );
End.
F Gii thêch chỉång trçnh GioiThieu:
- Begin: Tỉì khoạ cho biãút bàõt âáưu chỉång trçnh.
- Writeln: l th tủc xút näüi dung cạc thnh pháưn bãn trong càûp dáúu (...) lãn mn
hçnh v chuøn con tr xúng dng. Bãn trong càûp dáúu (...) cọ thãø cọ nhiãưu thnh
pháưn gäưm chùi k tỉû (hàòng giạ trë chùi), biãún säú hồûc hm. Giỉỵa cạc thnh pháưn
trong càûp dáúu (...) phi cạch nhau bàòng dáúu ‘,‘ nãúu khäng cng loải, tỉïc l chùi k
tỉû phi âỉåüc cạch våïi biãún säú hồûc hm âỉïng trỉåïc nọ hay sau nọ bàòng dáúu ‘,‘.
Chùi k tỉû mún hiãøn thë ngun vàn phi âỉåüc âàût trong càûp dáúu ‘ ‘.
- Write: l th tủc xút näüi dung cạc thnh pháưn bãn trong càûp dáúu (...) lãn mn
hçnh, th tủc ny cọ chỉïc nàng tỉång tỉû Writeln nhỉng khäng chuøn con tr xúng
dng.
- End: l tỉì khoạ cho biãút kãút thục chỉång trçnh.
- Cạc dng lãûnh nàòm giỉỵa Begin v End l lãûnh m chỉång trçnh cáưn phi thỉûc
hiãûn.
- Âãø xem chỉång trçnh trãn, ta chảy bàòng Ctrl - F9 v xem lải bàòng Alt - F5.
Trang 5


– Giạo trçnh Láûp trçnh Pascal càn bn —
4 Vê dủ 2:

–6—

Program DonXinPhep;
Uses CRT;
Begin
ClrScr;
Writeln ( ‘ ********************************** ’ );
Writeln ( ‘ * Cong hoa Xa hoi Chu nghia Viet Nam * ‘ );
Writeln ( ‘ *
Doc Lap - Tu Do - Hanh Phuc
* ‘ );
Writeln ( ‘ *
DON XIN PHEP NGHI HOC
* ‘ );
Writeln ( ‘ ********************************** ’ );
Writeln ( ‘... ‘ );
Readln;
End.
F Gii thêch chỉång trçnh trãn:
- Khai bạo: Uses CRT; ð khai bạo thỉ viãûn CRT, do cọ sỉí dủng lãûnh ClrScr.
- Lãûnh ClrScr; ð lau sảch mn hçnh (Clear Screen).
- Cạc lãûnh Writeln (...) ð xút ra mn hçnh näüi dung bãn trong dáúu (...) v xúng
dng.
- Lãûnh Readln; ð dỉìng chỉång trçnh, phỉång phạp ny dng âãø hiãøn thë näüi

dung sau khi thỉûc hiãûn cạc lãûnh bãn trãn v chåì ngỉåìi dng áún phêm báút k âãø tiãúp
tủc thỉûc hiãûn cạc lãûnh kãú sau nọ. Trong trỉåìng håüp trãn, kãú tiãúp l tỉì khoạ End nãn

chỉång trçnh âỉåüc kãút thục sau khi cọ mäüt phêm báút k âỉåüc áún.
4 Vê dủ 3:
Program TinhTong;
Uses CRT;
Begin
ClrScr;
Write ( ‘ 30 + 40 + 15 = ‘, 30 + 40 + 15 );
Readln;
End.

1 Kãút qu: Mạy thỉûc hiãûn phẹp tênh v hiãøn thë 30 + 40 + 15 = 85

Trang 6


Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn
7
F Trong cỏu lóỷnh Write ồớ trón, coù hai thaỡnh phỏửn, bióứu thổùc thổù nhỏỳt: 30 + 40 +15
= õổồỹc hióứu laỡ mọỹt chuọựi phaới õổồỹc hióứn thở nguyón vn do coù cỷp dỏỳu ồớ hai
õỏửu. Thaỡnh phỏửn thổù hai õổồỹc caùch vồùi thaỡnh phỏửn thổù nhỏỳt bũng dỏỳu , vaỡ do
khọng coù cỷp dỏỳu hai õỏửu nón noù õổồỹc tờnh tọứng vaỡ traớ vóử giaù trở cuớa bióứu thổùc.
_________ oo _________

Trang 7


– Giạo trçnh Láûp trçnh Pascal càn bn —
–8—

BI 2 : CẠC KHẠI NIÃÛM CÅ BN CA NGÄN NGỈỴ PASCAL
I. Cạc tỉì khoạ (Key word) trong ngän ngỉỵ Pascal:
Cạc tỉì khoạ l cạc tỉì dng âãø khai bạo, âàût tãn cho âäúi tỉåüng trong Pascal, khi
ta âàût tãn cho âäúi tỉåüng no âọ, khäng âỉåüc âàût trng tãn våïi cạc tỉì khoạ.
Bng tỉì khoạ trong ngän ngỉỵ Pascal gäưm:

and, array, asm, begin, case, const, constructor, destructor, div, do, downto, else,
end, file, for, function, goto, if, implementation, in, inline, interface, label, mod, nil,
not, object, of, or, packed, procedure, program, record, repeat, set, shl, shr, string,
then, to, type, unit, until, uses, var, while, with, xor.
Turbo Pascal khäng phán biãût k tỉû thỉåìng hồûc hoa. Vê dủ, cạc cạch viãút sau cọ
nghéa nhỉ nhau: Begin, BEGIN, begin, beGIN, bEGIN,...
II. Cạc kiãøu dỉỵ liãûu cå bn:
1. Cạc kiãøu dỉỵ liãûu dảng säú ngun:
a. Kiãøu Byte: Kiãøu Byte thüc kiãøu dỉỵ liãûu biãøu diãùn cạc giạ trë säú ngun tỉì 0 âãún
255. Kiãøu Byte chiãúm 1 byte trãn bäü nhåï.
b. Kiãøu Integer: Kiãøu Integer l kiãøu dỉỵ liãûu biãøu diãùn cạc giạ trë säú ngun tỉì 32768 âãún 32767. Kiãøu Integer chiãúm 2 bytes trãn bäü nhåï.
c. Kiãøu Shortint: Kiãøu Shortint l kiãøu dỉỵ liãûu biãøu diãùn cạc giạ trë säú ngun tỉì 128 âãún 127. Kiãøu Shortint chiãúm 1 byte trãn bäü nhåï.
d. Kiãøu Word: Kiãøu Word l kiãøu dỉỵ liãûu biãøu diãùn cạc giạ trë ngun tỉì 0 âãún
65535. Kiãøu Word l kiãøu säú khäng biãøu diãùn âỉåüc giạ trë ám. Kiãøu Word chiãúm 2
bytes trãn bäü nhåï.
e. Kiãøu Longint: Kiãøu Longint biãøu diãùn cạc giạ trë säú ngun tỉì -2.147.483.648
âãún 2.147.483.647. Kiãøu Longint chiãúm 4 bytes trãn bäü nhåï.
2. Cạc kiãøu dỉỵ liãûu dảng säú cọ pháưn biãøu diãùn tháûp phán:
a. Kiãøu Single: L táûp håüp cạc säú theo kiãøu dáúu ‘.‘ âäüng trong giåïi hản tỉì 1.5E -45
âãún 3.4 E38 (1,5 x 10-45 âãún 3,4 x 1038). Kiãøu Single chiãúm 4 bytes trãn bäü nhåï.
b. Kiãøu Real: L táûp håüp cạc säú theo kiãøu dáúu ‘.‘ âäüng trong giåïi hản tỉì 2.9E -39
âãún 1.7E 38 (2,9 x10 - 39 âãún 1,7 x 10 38). Kiãøu Real chiãúm 6 bytes trãn bäü nhåï.

Trang 8


– Giạo trçnh Láûp trçnh Pascal càn bn —
–9—
c. Kiãøu Double: L táûp håüp cạc säú theo kiãøu dáúu ‘,‘ âäüng trong giåïi hản tỉì 5.0E -324
âãún 1.7E 308 (5,0 x10 - 324 âãún 1,7 x 10 308). Kiãøu Double chiãúm 8 bytes trãn bäü
nhåï.
3. Kiãøu Char (k tỉû):
Kiãøu Char dng âãø biãøu diãùn cạc giạ trë l cạc k tỉû thüc bng chỉỵ cại: ‘A’, ‘b’,
‘x’,... cạc con säú: 0..9 hồûc cạc k tỉû âàûc biãût : ‘!’, ‘@’, ‘#’, ‘$’, ‘%’, ‘&’, ‘*’,...
Âãø biãøu diãùn thäng tin, ta cáưn phi sàõp xãúp cạc k tỉû theo mäüt chøn no âọ v
mäùi cạch sàõp xãúp âọ gi l bng m, thäng dủng nháút l bng m ASCII (American
Standard Code for Information Interchange). Bng m ASCII cọ 256 k tỉû âỉåüc
gạn m säú tỉì 0..255, mäùi k tỉû cọ mäüt m säú nháút âënh, vê dủ : k tỉû ‘A’ cọ m säú l
65, ‘a’ cọ m säú l 97 trong bng m ASCII,.v.v.

Âãø hiãøn thë bng m ASCII, bản chảy chỉång trçnh sau:
Program ASCI I_Table;
Uses CRT;
Var I : Integer;
Begin
ClrScr;
For I := 0 to 255 do
Write( I, ’ = ’ , CHR( I ), ’
Readln;
End.

‘ );

4. Kiãøu Logic:
Kiãøu logic l kiãøu biãøu diãùn hai trảng thại l âụng (True) hồûc sai (False). Tỉì
khoạ âãø khai bạo cho kiãøu logic l BOOLEAN.
4 Vê dủ:
Var Co : Boolean;
Co := True;
5. Kiãøu String (chùi k tỉû):
String l kiãøu dỉỵ liãûu chỉïa cạc giạ trë l nhọm cạc k tỉû hồûc chè mäüt k tỉû, kãø c
chùi räùng. Âäü di täúi âa ca mäüt biãún kiãøu String l 255, tỉïc l nọ cọ thãø chỉïa täúi
âa mäüt dy gäưm 255 k tỉû.
Cụ phạp khai bạo: (1) Var Biãún_1, Biãún_2, Biãún_n: String;
Trang 9


– Giạo trçnh Láûp trçnh Pascal càn bn —
Hồûc

– 10 —

(2) Var Biãún_1, Biãún_2, Biãún_n: String [30];

Cạch khai bạo (1) s cho phẹp biãún HoTen nháûn täúi âa 255 k tỉû. Cạch (2) cho
phẹp biãún HoTen nháûn täúi âa 30 k tỉû.
Ư Ghi chụ: Cạch sỉí dủng kiãøu dỉỵ liãûu String s âỉåüc trçnh by chi tiãút åí bi 8.
III. Cạc hm xỉí l dỉỵ liãûu cå bn ca ngän ngỉỵ Pascal:
- SQR(x)

bçnh phỉång ca mäüt säú ngun hay thỉûc.

- ABS(x)

trë tuût âäúi ca x.

- SQRT(x)

càn báûc hai ca x.

- SIN(x)

tênh giạ trë Sin(x) våïi x l Radian.

- COS(x)

tênh giạ trë Cos(x) våïi x l Radian.

- ARCTAN(x) tênh giạ trë Arctan(x).
- LN(x)

hm logaric cå säú e = 2.718.

- EXP(x)

hm ex.

- TRUNC(x)

càõt b pháưn tháûp phán ca x nãúu cọ. Vê dủ: Trunc(4.86) = 4,

- ROUND(x)

cho säú ngun gáưn x nháút. Vê dủ: Round(1.6) = 2, Round(-

- PRED(x)

Trunc(-3.2) = 4.

23.68) = -24, Round(1.5) = 2.

cho giạ trë âỉïng trỉåïc x, âäúi säú x cọ thãø l kiãøu logic, kiãøu
ngun hồûc kiãøu k tỉû. Vê dủ: Pred(‘B’); ð cho giạ trë ‘A’,
Pred(2) cho giạ trë 1, Pred(True) cho giạ trë False. Tuy nhiãn,
Pred(False) lải khäng cho âỉåüc giạ trë no do giạ trë False âỉïng

trỉåïc giạ trë True âäúi våïi kiãøu Boolean.
- SUCC(x)

cho giạ trë âỉïng sau x, âäúi säú x cọ thãø l kiãøu logic, kiãøu ngun
hồûc kiãøu k tỉû. Vê dủ: Succ(‘B’); ð cho giạ trë ‘C’, Succ(2) cho
giạ trë 3, Succ(False) cho giạ trë True.

- ORD(x)

cho säú thỉï tỉû ca k tỉû x trong bng m ASCII. Vê dủ: Ord(‘A’)

- CHR(x)

tr vãư k tỉû thỉï x trong bng m ASCII. Vê dủ: Chr(65) = ‘A’,

= 65, Ord(‘a’) = 97,...
Chr(50) = 2,...

Trang 10


Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn
- ODD(x)

11
Traớ vóử giaù trở True nóỳu x laỡ sọỳ leớ vaỡ traớ vóử giaù trở False nóỳu x laỡ
sọỳ chụn.

IV. Sổớ duỷng haỡm Random(n) õóứ lỏỳy mọỹt giaù trở nguyón ngỏựu nhión:
Haỡm Random(n) seợ traớ vóử mọỹt giaù trở nguyón maỡ maùy lỏỳy ngỏựu nhión coù giaù trở tổỡ
0 õóỳn n. Trong õoù, n laỡ mọỹt sọỳ kióứu Word tổùc laỡ trong khoaớn tổỡ 0.. 65535.
Trổồùc khi sổớ duỷng haỡm Random ta phaới goỹi thuớ tuỷc Randomize õóứ khồới taỷo bọỹ
taỷo sọỳ ngỏựu nhión
_________ oo _________

BAèI 3: HềNG S, BIN S, BIỉU THặẽC VAè CU LNH
N GIAN TRONG NGN NGặẻ PASCAL
I. Hũng sọỳ:
1. Khaùi nióỷm:
- Hũng sọỳ laỡ caùc giaù trở khọng thay õọứi trong quaù trỗnh chaỷy chổồng trỗnh.
- Coù hai phổồng phaùp sổớ duỷng hũng :
+ Gaùn trổỷc tióỳp giaù trở hũng.Vờ duỷ: DT := R * R * 3.14; ChuVi := D * 3.14;
+ ỷt cho hũng mọỹt tón goỹi vaỡ trong quaù trỗnh soaỷn chổồng trỗnh ta duỡng tón
goỹi thay cho vióỷc duỡng trổỷc tióỳp giaù trở õoù. Vờ duỷ: ChuVi := D * Pi; trong õoù, Pi laỡ
mọỹt hũng sọỳ chuỏứn cuớa Pascal (tổùc laỡ ta coù thóứ duỡng maỡ khọng cỏửn khai baùo vaỡ gaùn

giaù trở).

- Hũng sọỳ luọn luọn õổồỹc khai baùo trổồùc phỏửn khai baùo bióỳn nóỳu sổớ duỷng theo
phổồng phaùp õỷt tón cho hũng.
2. Cuù phaùp khai baùo:

Const a1 = Trở_sọỳ_1, a2 = Trở_sọỳ_2, an = Trở_sọỳ_n;
Trong õoù: a1... an laỡ tón caùc hũng sọỳ, caùc trở_sọỳ_1,2,...,n laỡ caùc giaù trở gaùn cho caùc
tón hũng a1...an.
F Vờ duỷ mọỹt caùch khai baùo hũng sọỳ: Const Pi = 3.1416, Max = 500;
4 Vờ duỷ: chổồng trỗnh tờnh chu vi õổồỡng troỡn coù sổớ duỷng hũng sọỳ Pi do ta õởnh
nghộa:
Program TinhCV_DT_HT;
Const Pi = 3.1416;
Var R :Real;
Begin
Trang 11


Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn
12
Write ( Nhap ban kinh hinh tron : );
Readln (R);
Writeln ( Dien tich hinh tron = , Pi * R * R );
Writeln ( Chu vi hinh tron = , 2 * R * Pi);
Readln;
End.
ệ Ghi chuù:
- Ta traùnh vióỳt: z := Exp(1.23) + Sin(2.34) * Sin(2.34);
- Ta seợ thỏỳy tai haỷi ngay vỗ khi muọỳn tờnh laỷi z vồùi giaù trở mồùi cuớa x, vờ duỷ x =
1.55, khọng leợ laỷi õi thay hóỳt 3 vở trờ vồùi 2.34 (laỡ giaù trở cuỷ thóứ cuớa x maỡ ta õaợ khọng
sổớ duỷng hũng sọỳ) thaỡnh 1.55 !!
- Trong chổồng trỗnh trón, baỷn coù thóứ tọỳi ổu hoaù thóm õóứ chổồng trỗnh chaỷy
nhanh hồn bũng caùch thay hai lỏửn tờnh Sin(x) bũng mọỹt lỏửn. Cuỷ thóứ, ta thổỷc hióỷn nhổ
sau:

t := Sin(x);
z := Exp(a + t * t - x);
Taùc phong tọỳi ổu hoaù naỡy seợ rỏỳt coù ờch cho baỷn khi baỷn coù mọỹt chổồng trỗnh vồùi
khọỳi lổồỹng tờnh toaùn õọử sọỹ, coù thóứ chaỷy vaỡi ngaỡy õóm lión tuỷc nhổng nóỳu bióỳt tọỳi ổu
ngay tổỡ õỏửu thỗ seợ giaớm bồùt xuọỳng coỡn mọỹt ngaỡy chúng haỷn. Luùc naỡy baỷn mồùi thỏỳu
hióứu tọỳi ổu hoaù õóứ laỡm gỗ ?
II. Bióỳn sọỳ:
1. Khaùi nióỷm:
- Laỡ õaỷi lổồỹng maỡ giaù trở cuớa noù coù thóứ thay õọứi trong quaù trỗnh thổỷc hióỷn chổồng
trỗnh. Bióỳn õổồỹc khai baùo bũng tổỡ khoaù VAR.
- Bióỳn laỡ tón cuớa mọỹt vuỡng bọỹ nhồù lổu trổợ dổợ lióỷu.
- Bióỳn õổồỹc truy xuỏỳt trong chổồng trỗnh thọng qua tón bióỳn.
- Bióỳn laỡ mọỹt cỏỳu truùc ghi nhồù dổợ lióỷu vỗ vỏỷy phaới õổồỹc quy õởnh theo mọỹt kióứu
dổợ lióỷu naỡo õoù, vờ duỷ kióứu Integer, Byte, Char,...
2. Cuù phaùp khai baùo cho caùc bióỳn:

VAR Tón_bióỳn_1, Tón_bióỳn_2, Tón_bióỳn_n : Kióứu_dổợ_lióỷu_cuớa_bióỳn;
Trong õoù: Tón_bióỳn_1, Tón_bióỳn_2, Tón_bióỳn_n laỡ tón caùc bióỳn cỏửn khai baùo õóứ
sổớ duỷng trong chổồng trỗnh, Kióứu_dổợ_lióỷu_cuớa_bióỳn laỡ mọỹt trong caùc kióứu dổợ lióỷu
Trang 12


– Giạo trçnh Láûp trçnh Pascal càn bn —
– 13 —

chøn (â âỉåüc nãu trong pháưn II ca bi 2) ca Pascal hồûc do ngỉåìi dng âënh
nghéa.
F Vê dủ mäüt cạch khai bạo biãún:

Var a,b : Integer;
c : Real;
Ten : String [10];

4 Vê dủ: chỉång trçnh tênh täøng hai säú ngun âỉåüc nháûp tỉì bn phêm. Trong bi
ny, ta cáưn khai bạo hai biãún a v b âãø tênh toạn.
Uses CRT;
Var a, b : Integer;
Begin
ClrScr;
Write( ‘ Nhap so thu nhat : ‘ );
Readln(a);
Write( ‘ Nhap so thu hai : ‘ );
Readln(b);
Write( ‘ Ket qua : ‘, a ,’ + ‘, b ,’ = ‘, a + b);
Readln;
End.
III. Biãøu thỉïc:
Mäüt biãøu thỉïc âỉåüc tảo båíi cạc toạn tỉí (phẹp toạn) v cạc toạn hảng dng âãø thãø
hiãûn mäüt cäng thỉïc toạn hc. Toạn hảng cọ thãø l hàòng, hm hồûc biãún.
4 Vê dủ: Sau khi khai cọ bạo:

Const Max = 120;
Var x: Integer;
ta cọ thãø viãút biãøu thỉïc sau: 5 + Max * Exp(x);
Trong âọ: + v * l hai toạn tỉí, cạc hàòng säú 5, Max v hm Exp(x) l cạc toạn
hảng.
Ư Chụ :
- Mäüt hàòng, mäüt biãún, mäüt hm cng âỉåüc xem l biãøu thỉïc, âọ l biãøu thỉïc âån
gin.
- Cạc phẹp toạn trong mäüt biãøu thỉïc âỉåüc sàõp xãúp theo thỉï tỉû ỉu tiãn nhỉ sau:
Trang 13


– Giạo trçnh Láûp trçnh Pascal càn bn —
– 14 —
+ Cạc phẹp toạn mäüt ngäi âỉåüc ỉu tiãn thỉï nháút l: dáúu dỉång (+), dáúu ám (), phẹp ph âënh (not).
+ Cạc phẹp toạn nhán chia: nhán (*), chia (/), láúy pháưn ngun (div), láúy

pháưn dỉ (mod), phẹp v (and).

+ Cạc phẹp cäüng trỉì: cäüng (+), trỉì (-), phẹp hồûc (or).
+ Cạc phẹp so sạnh: <, <= , > , >= , = , < >.
- Biãøu thỉïc trong càûp dáúu ngồûc ( ) âỉåüc thỉûc hiãûn trỉåïc tiãn nãúu cọ.
- Cạc toạn tỉí cng thỉï tỉû ỉu tiãn thç âỉåüc thỉûc hiãûn tỉì trại qua phi.

4 Vê dủ viãûc sỉí dủng cạc toạn tỉí v toạn hảng:

3 + 5 * 3 = 18
(3 + 5) * 3 = 24
5 / 2 * 3 = 7.5
(5 + 2 > 4) and not (true or (5 - 3 = 8)) = false
( -b + sqrt(d) ) / 2 * a ( cọ nghéa:

−b+ d
a )
2

IV. Cáu lãûnh âån gin:
Sau pháưn khai bạo dỉỵ liãûu l pháưn lãûnh ca chỉång trçnh. Pháưn ny xạc âënh cạc
cäng viãûc m chỉång trçnh phi thỉûc hiãûn xỉí l cạc dỉỵ liãûu â âỉåüc khai bạo. Cáu
lãûnh âỉåüc chia thnh hai loải:
- Cáu lãûnh âån gin:
+ Lãûnh gạn (:=)
+ Lãûnh Nháûp - Xút (READ, READLN, WRITE, WRITELN).
+ Gi th tủc.
+ Lãûnh nhy (GOTO).
- Cáu lãûnh cọ cáúu trục:
+ Lãûnh ghẹp (BEGIN... END)
+ Lãûnh lỉûa chn (IF... ELSE, CASE... OF)
+ Lãûnh làûp (FOR, REPEAT... UNTIL, WHILE... DO)
+ Lãûnh WITH.
Ư Ghi chụ: Näüi dung bi ny chè âãư cáûp âãún cạc lãûnh âån gin. Cạc lãûnh cọ cáúu

trục âỉåüc trçnh by åí bi 4.

1. Lãûnh gạn:
Trang 1 4


– Giạo trçnh Láûp trçnh Pascal càn bn —
– 15 —
Lãûnh gạn dng âãø gạn giạ trë ca mäüt biãøu thỉïc (cọ thãø l hm, biãún hồûc giạ trë)
cho mäüt biãún.
Cụ phạp:

Biãún := biãøu_thỉïc;
F Âáưu tiãn, mạy tênh giạ trë ca biãøu thỉïc åí vãú phi, sau âọ, giạ trë tênh âỉåüc tỉì vãú

phi âỉåüc gạn cho vãú trại (biãún).

Ư Chụ :
- Vãú trại ca lãûnh gạn chè cọ thãø l biãún. Vê dủ: viãút x + y = 7; l sai vç vãú trại ca
cáu lãûnh ny l mäüt biãøu thỉïc chỉï khäng phi l mäüt biãún.
- Kiãøu giạ trë ca biãøu thỉïc (hm, biãún hồûc giạ trë) åí vãú phi phi trng våïi kiãøu
ca biãún â âỉåüc khai bạo, trỉì mäüt säú trỉåìng håüp nhỉ biãún kiãøu thỉûc (Single, Real,
Double) cọ thãø nháûn giạ trë kiãøu ngun (Shorint, Byte, Integer, Word, Longint),...
do táûp håüp säú ngun l táûp con ca säú thỉûc.
4 Vê dủ: Sau khi â cọ khai bạo:

Var
i, j
x, y

c1, c2 : Char;
: Integer;
: Real;

thç ta cọ thãø thỉûc hiãûn cạc phẹp gạn sau:

c1 := ‘A’;
c2 := Chr(97);
i := (23 + 6) * 2 mod 3;
j := Round(20 / 3);
x := i;
y := j;
2. Lãûnh Xút:
Lãûnh xút dng âãø in lãn mn hçnh cạc dỉỵ liãûu, kãút qu hay cạc thäng bạo.
Cụ phạp

(1). WRITE(Biãøu_thỉïc_1, Biãøu_thỉïc_2,..., Biãøu_thỉïc_n);
(2). WRITELN(Biãøu_thỉïc_1, Biãøu_thỉïc_2,..., Biãøu_thỉïc_n);
(3). WRITELN;

Trang 1 5


– Giạo trçnh Láûp trçnh Pascal càn bn —
– 16 —
Dảng (1): In lãn mn hçnh giạ trë cạc biãøu thỉïc tải vë trê hiãûn hnh ca con tr
theo thỉï tỉû viãút trong lãûnh. Sau khi thỉûc hiãûn xong lãûnh WRITE(... ); con tr âënh vë
tải sau giạ trë biãøu_thỉïc_n ca cáu lãûnh.
Dảng (2): In lãn mn hçnh giạ trë cạc biãøu thỉïc tải vë trê hiãûn hnh ca con tr
theo thỉï tỉû viãút trong lãûnh. Sau khi thỉûc hiãûn xong lãûnh WRITELN(... ); con tr
âënh vë tải âáưu dng kãú tiãúp.
Dảng (3): Dng âãø chuøn con tr xúng dng.
4 Vê dủ:

Var a, b : Byte;
Begin
A := 2;
B := 4;
Write ( ‘ Day la ket qua phep nhan A voi B: ‘, a * b);
Writeln;
Writeln( ‘
****
‘ );
Write ( ‘ ------------------------------------------------- ‘ );
End.
1 Kãút qu sau khi chảy chỉång trçnh trãn:
Day la ket qua phep nhan A voi B: 8
****
-------------------------------------------Ư Chụ : Cọ hai dảng viãút trong th tủc Write v Writeln l viãút khäng quy cạch
v viãút cọ quy cạch. Âiãưu ny ta xẹt qua tỉìng kiãøu dỉỵ liãûu.

(1). Vê dủ vãư cạc dảng viãút khäng cọ quy cạch:
Uses CRT;
Var
I : Integer; R : Real;
Ch : Char;
B : Boolean;
Begin
I := 123; R := 123.456; Ch := ‘A’; B := 2<5;
Writeln( I );
{1}
Trang 1 6


– Giạo trçnh Láûp trçnh Pascal càn bn —
Writeln( R);
Writeln( 3.14 );
Writeln( 20 * 2.5);
Writeln;
Writeln( Ch );
Writeln( B );
Writeln( #7 );
End.

– 17 —
{2}
{3}
{4}
{5}
{6}
{7}

F Cạch viãút khäng quy cạch s canh näüi dung theo lãư bãn trại.
- Säú ngun âỉåüc viãút ra våïi säú chäù âụng bàòng säú chỉỵ säú gạn vo, kãø tỉì vë trê bãn
trại. Lãûnh {1} in ra: 123
- Säú thỉûc âỉåüc viãút ra våïi trçnh tỉû sau: mäüt dáúu cạch, tiãúp âãún l mäüt säú pháưn
ngun, dáúu cháúm, 10 vë trê säú tháûp phán, tiãúp âãún l chỉỵ E, dáúu ca pháưn m (+,-),

hai säú biãøu diãùn giạ trë pháưn m:

+ Lãûnh {2}in ra: 1.2345600000E+02
+ Lãûnh {3}in ra: 3.1400000000E+00
+ Lãûnh {4}in ra: 5.0000000000E+01
- Kiãøu k tỉû in bçnh thỉåìng, mäüt k tỉû chiãúm mäüt chäù. Lãûnh {5}in ra: A
- Kiãøu Boolean in ra mäüt trong hai tỉì True hồûc False. Lãûnh {6}in ra: True
- Lãûnh {7}: phạt ra mäüt tiãúng Beep åí loa.

(2). Vê dủ vãư cạc dảng viãút cọ quy cạch:
Var
I : Integer;
R , Z : Real;
Ch : Char;
B : Boolean;
Begin
I := 123; R := 123.456; Ch := ‘A’;
Writeln( I :8 );
Writeln( -23564:8 );
Writeln( R:12:6);

B := 2<5; Z := 543621.342;
{1}
{2}
{3}
Trang 17


– Giạo trçnh Láûp trçnh Pascal càn bn —
– 18 —
Writeln( 35.123456789:12:6 );
{4}
Writeln( R:12 );
{5}
Writeln( Ch:5);
{6}
Writeln(‘ABC’:5);
{7}
Writeln( B:7 );
{8}
Writeln( Z:1:2 );
{9}
End.
F Cạch viãút cọ quy cạch s canh näüi dung theo lãư bãn phi, nãúu thỉìa chäù thç pháưn

lãư bãn trại âỉåüc âãø tràõng.

- Lãûnh {1} v {2} dnh 8 k tỉû trãn mn hçnh âãø in cạc säú ngun.
- Lãûnh {3} v {4} dnh 12 k tỉû trãn mn hçnh âãø in cạc säú thỉûc våïi 6 säú l pháưn
tháûp phán, kãút qu in ra: 123.456000 v 35.123457 (do pháưn tháûp phán >6 chäù nãn

âỉåüc lm trn säú).

- Lãûnh {5}in giạ trë ca R våïi 12 chäù dảng m säú: 1.23456E+02
- Lãûnh {6},{7} dnh 5 chäù âãø in chỉỵ A v xáu k tỉû ABC.
- Lãûnh {8} dnh 7 k tỉû âãø in giạ trë True.
- Lãûnh {9} in säú thỉûc Z nhỉ sau: Writeln( Z : m : n ). Nãúu m < n thç säú thỉûc Z
âỉåüc in våïi n säú l, cn säú chäù trãn mn hçnh thç tu vo âäü di ca säú Z. Trong
trỉåìng håüp m > n v âäü di ca säú låïn hån m thç säú âỉåüc tỉû âäüng canh phi. Trỉåìng
håüp m > n v âäü di ca säú nh hån m thç säú âỉåüc canh phi dỉ bao nhiãu k tỉû
mạy âãø träúng bãn trại.
Ư Trỉåìng håüp trong cáu cáưn hiãøn thë dáúu ‘ thç ta phi viãút hai dáúu ‘ liãưn nhau (“).
4 Vê dủ: Write( ‘ Don‘’t forget me ! ’ );
1 Kãút qu: Trãn mn hçnh hiãøn thë:

Don‘t forget me !
Ư Ghi chụ: Mún in dỉỵ liãûu ra mạy in ta dng lãûnh Write hồûc Writeln våïi tham
säú LST vo trỉåïc. Biãún LST âỉåüc khai bạo trong Unit Printer, vç váûy, âãø sỉí dủng
lãûnh in ta cáưn phi khai bạo thỉ viãûn Printer trong chỉång trçnh.
4 Vê dủ:

Uses Printer;
Trang 1 8


– Giạo trçnh Láûp trçnh Pascal càn bn —
– 19 —

Begin
Writeln(Lst,’ Welcome to Turbo Pascal Language ! ‘ );
End.
1 Kãút qu: Khi chảy mạy in ra giáúy cáu Welcome to Turbo Pascal Language !
3. Lãûnh Nháûp:
Lãûnh nháûp dng âãø âỉa dỉỵ liãûu tỉì bn phêm vo cạc biãún.
Cụ phạp:

(1)
(2)

Readln(Biãún_1, biãún_2, biãún_n);
Read(Biãún_1, biãún_2, biãún_n);

Khi thỉûc hiãûn lãûnh ny, mạy dỉìng lải chåì ngỉåìi dng nháûp vo â n láưn nháûp dỉỵ
liãûu tỉång ỉïng våïi n biãún.
Ngoi ra, ta cọ thãø sỉí dủng th tủc Readln âãø dỉìng chỉång trçnh v chåì ngỉåìi
dng áún mäüt phêm báút k âãø tiãúp tủc, k tỉû âỉåüc áún khäng hiãøn thë lãn mn hçnh.
Ư Chụ :
- Cạc biãún trong th tủc Readln phi thüc kiãøu ngun, thỉûc, k tỉû hồûc xáu k
tỉû. Do âọ, ta khäng thãø nảp tỉì bn phêm giạ trë True hồûc False cạc biãún kiãøu
Boolean.
- Dỉỵ liãûu nháûp vo phi tỉång ỉïng våïi kiãøu â khai bạo. Phi áún phêm Enter âãø
thỉûc hiãûn lãûnh nháûp sau khi g xong giạ trë cáưn nháûp.
4 Vê dủ 1: Våïi a, b l hai biãún ngun, x l biãún thỉûc. Xẹt âoản chỉång trçnh sau:
Readln(a, b);
Readln(x);
Nãúu ta g cạc phêm: 2 24 6.5 14 < Enter >
1 Kãút qu: a nháûn giạ trë 2, b nháûn giạ trë 24. Cạc k tỉû cn lải bë b qua v
khäng âỉåüc xẹt trong th tủc Readln(x) tiãúp theo. Nhỉ váûy, mạy dỉìng lải åí cáu lãûnh
Readln(x) âãø chåì nháûp säú liãûu cho biãún x.
4 Vê dủ 2: Gi sỉí ta â khai bạo: Var s1, s2, s3 : String[5];
Xẹt cáu lãûnh: Readln(s1, s2, s3);
Nãúu ta khäng nháûp k tỉû m chè áún < Enter > thç c 3 biãún s1, s2, s3 âãưu l xáu
räùng.

Trang 19



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×