Tải bản đầy đủ (.doc) (53 trang)

bài giảng pascal bồi dưỡng học sinh giỏi

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (944.44 KB, 53 trang )

Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
CHNG I
THUT TON
I. Khỏi nim thut toỏn
1. Khỏi nim: Thut toỏn l mt dóy hu hn cỏc thao tỏc, c sp xp theo mt trỡnh
t xỏc nh, sao cho t Input ca bi toỏn ta xỏc nh c Output cn tỡm.
2. Vớ d: Mt hp kớn cha hu hn cỏc viờn bi cú kớch thc khỏc nhau. Hóy tỡm
thut toỏn tỡm ra viờn bi ln nht, bit rng mi ln ch c bc mt viờn.
Thut toỏn c trỡnh by nh sau:
Bc 1: Bc mt viờn bt k.
Bc 2: Kim tra xem hp ó rng cha?
Nu ỳng chuyn qua bc 4.
Nu sai chuyn qua bc 3.
Bc 3: Bc tip mt viờn bi khỏc, so sỏnh hai viờn v gi li viờn ln ri chuyn
qua bc 2.
Bc 4: Viờn bi hin ti l viờn bi ln nht, kt thỳc.
II. Cỏc tớnh cht ca thut toỏn.
1. Tớnh ph dng: Thut toỏn khụng ch gii quyt mt bi toỏn riờng l m c
dựng gii quyt mt lp cỏc bi toỏn (cú th la vụ hn), cỏc bi toỏn cựng loi.
2. Tớnh hu hn: Thut toỏn phi c kt thỳc sau mt s hu hn bc thc hin
cỏc thao tỏc.Mt thut toỏn khụng cú tớnh hu hn l khụng kh thi.
3. Tớnh xỏc nh: Thut toỏn ũi hi mi bc thao tỏc phi rừ rng v xỏc nh mt
cỏch n tr bc tip theo.
4. Tớnh hiu qu: Th hin cỏc yờu cu sau:
- Tớnh ỳng n.
- Tớnh ti u: Tit kim thi gian thc hin, tit kim b nh.
III. Cỏc i lng ca thut toỏn.
1. i lng vo: L nhng i lng cho trc lm c s cho vic hỡnh thnh nờn
bi toỏn.
2. i lng ra: Thng l kt qu sau khi ó thc hin xong thut toỏn v ú cng
chớnh l yờu cu ca bi toỏn.


3. i lng trung gian: L cỏc i lng tham gia vo quỏ trỡnh gii bi toỏn
nhng khụng phi l i lng vo m cng chng phi l i lng ra.
Vớ d: Bi toỏn gii phng trỡnh bc hai: ax
2
+ bx + c = 0 (a 0).
i lng vo l cỏc h s a,b,c.
i lng ra l: hoc l nghim kộp, hoc l hai nghim phõn bit nhng cng cú
khi l mt cõu thụng bỏo vụ nghim.
i lng trung gian: delta = b
2
4ac.
Mọi chi tiết liên hệ: Đỗ Anh Hải 1 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
4. Hng, bin, kiu:
biu din cỏc i lng nờu trờn ca thut toỏn ta s dng cỏc hng, bin v phi
cú kiu d liu nht nh.
- Hng: L i lng khụng thay i trong quỏ trỡnh thc hin thut toỏn.
- Bin: L i lng cú th thay i giỏ tr trong quỏ trỡnh thc hin thut
toỏn.
- Kiu: L tp hp cỏc giỏ tr (min tr) m cỏc i lng cúth nhn, ng
thi vi vic quy nh cỏc phộp toỏn tỏc ng trờn ú.
IV. Biu din ca thut toỏn
1. Cỏc dng biu din ca thut toỏn: Cú th biu din thut toỏn bng 3 dng sau:
- Lit kờ cỏc bc (nh vớ d 1).
- Cu trỳc theo ngụn ng quy c ca thut toỏn.
- S khi.
2. Biu din thut toỏn bng s khi: õy l dng biu din cú cu trỳc trc
quan, rừ rng.
a. Cỏc kớ hiu dựng biu din thut toỏn:


Dựng ch s bt u v kt thỳc ca thut toỏn
Dựng ch vic nhp d liu v ghi d liu ra mn hỡnh
Dựng biu din cỏc thao tỏc ca thut toỏn
Dựng kim tra iu kin.
Dựng hng i ca thut toỏn.
Ngoi ra ta cũn s dng ký hiu := biu din cho vic gỏn giỏ tr cho cỏc bin.
b. Cỏc vớ d:
Vớ d 1: V s thut toỏn gii phng trỡnh: ax + b = 0;
- D liu vo l a, b.
- D liu ra l nghờm hoc mt cõu thụng bỏo.
Mọi chi tiết liên hệ: Đỗ Anh Hải 2 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
Vớ d 2: S thut toỏn gii bi toỏn tớnh tng:
S = 1 + 2 + 3 + + n
(Vi N nguyờn dng bt k v khụng dựng cụng thc S = n(n+1)/2).
Mọi chi tiết liên hệ: Đỗ Anh Hải 3 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Begin
Nhp a,b
a=0
x=-b/a
b=0
moi x
Vụ nghim
End.
F
F
T

T
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
BI TP CHNG I
Bng phng phỏp dựng s khi, trỡnh by thut toỏn gii cỏc bi toỏn sau õy:
1. Tớnh S = 1 + 2 + 3 + + n.
2. Tớnh S = 1 2 + 3 - + (-1)
n-1
n.
3. Gii phng trỡnh bc 2: ax
2
+ bx + c = 0 (a 0).
4. Tỡm c chung ln nht ca hai s nguyờn dng.
5. Tỡm bi chung nh nht ca hai s nguyờn dng.
6. Kim tra mt s nguyờn dng cú phi l mt s nguyờn t hay khụng
Mọi chi tiết liên hệ: Đỗ Anh Hải 4 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Begi
n
Nhõp n
S:=0; i:=1
i> n
S:=S+i;
i=i+1
S
End.
T
F
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
CHNG II
CC KIN THC CHUNG V

NGễN NG LP TRèNH PASCAL
Pascal l mt ngụn ng lp trỡnh bc cao do Niklaus Wirth, giỏo s in toỏn trng
i hc k thut Zurich (Thy S) xut nm 1970. ễng ly tờn Pascal k nim nh
toỏn hc v nh trit hc ngi Phỏp ni ting Blaise Pascal.
I. Cỏc tp tin cn thit khi lp trỡnh vi Turbo Pascal
lp trỡnh c vi Turbo Pascal, ti thiu cn 2 file sau:
TURBO.EXE: Dựng son tho v dch chng trỡnh.
TURBO.TPL: Th vin cha cỏc n v chun chy vi TURBO.EXE.
Ngoi ra, mun lp trỡnh ho thỡ phi cn thờm cỏc tp tin:
GRAPH.TPU: Th vin ho.
*.BGI: Cỏc file iu khin cỏc loi mn hỡnh tng ng khi dựng ho.
*.CHR: Cỏc file cha cỏc font ch ha.
II. Cỏc bc c bn khi lp mt chng trỡnh Pascal
1. Cỏc bc lp trỡnh tng quỏt:
Bc 1: Phõn tớch bi toỏn; Xỏc nh d liu vo, d liu ra lm c s cho vic hỡnh
thnh gii thut.
Bc 2: Xõy dng thut toỏn: Trờn c s xỏc nh d liu vo, ra; cỏc gi thit ca
bi toỏn, cỏc mi liờn h gia chỳng v nhng kin thc liờn quan ta cn a ra thut
toỏn tng ng.
Bc 3: T chc d liu v lp chng trỡnh theo thut toỏn ó ố ra.
2. Cỏc bc lp trỡnh v thc hin (vi Turbo Pascal):
Bc 1: Khi ng Turbo Pascal (Turbo. exe)
Bc 2: Son tho chng trỡnh.
Bc 3: Biờn dch (Nhn t hp phớm ALT F9).
+ Nu thnh cụng thỡ chuyn qua bc 4.
+ Nu khụng thnh cụng chuyn qua bc 2.
Bc 4: Chy th chng trỡnh.
+ Nu tt chuyn qua bc 5.
+ Nu cha tt thỡ quay v bc 2.
Bc 5: Ghi vo a, dch thnh file *.exe.

Bc 6: Kt thỳc.
III. Mt s phớm chc nng thng dựng
F2: Lu chng trỡnh ang son tho vo a.
Mọi chi tiết liên hệ: Đỗ Anh Hải 5 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
F3: M file mi hoc file ó tn ti trờn a son tho.
Alt-F3: úng file ang son tho.
Alt-F5: Xem kt qu chy chng trỡnh.
F8: Chy tng cõu lnh mt trong chng trỡnh.
Alt-X: Thoỏt khi Turbo Pascal.
Alt-<S th t ca file ang m>: Dch chuyn qua li gia cỏc file ang m.
F10: Vo h thng Menu ca Pascal.
IV.Cỏc thao tỏc c bn khi son tho chng trỡnh
IV.1. Cỏc phớm thụng dng
Insert: Chuyn qua li gia ch ố v ch chốn.
Home: a con tr v u dũng.
End: a con tr v cui dũng.
Page Up: a con tr lờn mt trang mn hỡnh.
Page Down: a con tr xung mt trang mn hỡnh.
Del: Xoỏ ký t ngay ti v trớ con tr.
Back Space (): Xúa ký t bờn trỏi con tr.
Ctrl-PgUp: a con tr v u vn bn.
Ctrl-PgDn: a con tr v cui vn bn.
Ctrl-Y: Xúa dũng ti v trớ con tr.
IV.2. Cỏc thao tỏc trờn khi vn bn
Chn khi vn bn: Shift + <Cỏc phớm >
Ctrl-KY: Xoỏ khi vn bn ang chn
Ctrl-Insert: a khi vn bn ang chn vo Clipboard
Shift-Insert: Dỏn khi vn t Clipboard xung v trớ con tr.

V. Cỏc khỏi nim v cỏc thnh phn c bn
1. B ký t (Dựng son tho chng trỡnh)
Bao gm cỏc loi ký t sau õy:
Cỏc ch cỏi: a z; A Z (Khi son tho chng trỡnh, Turbo Pascal khụng
phõn bit ch hoa hay ch thng).
Cỏc ký t s: 0 9.
- Cỏc du toỏn: + - * / ^ = > < .
- Cỏc ký t c bit: ? ; . : ! [ ] { } # $ @.
Du gch ni:
- Cỏc ký t iu khin.
2. T v t khoỏ
a. T: L mt dóy liờn tip cỏc ký t khụng cha ký t trng v ký t iu khin.
Mọi chi tiết liên hệ: Đỗ Anh Hải 6 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
b. T khoỏ: L t dnh riờng ca Pascal vi chc nng v cỳ phỏp c quy nh
sn. Vỡ vy khi s dng phi theo ỳng quy nh v khụng c s dng cỏc t khoỏ vo
cỏc cụng vic khỏc.
Vớ d: Begin, end, if, then, const, var, function,
3. Tờn v tờn chun.
a. Tờn: L mt t bao gm ti a 255 ký t, ch c ly trong cỏc ch cỏi, ch s v
du gch ni, nhng khụng c bt u bng s. Tờn dựng t cho cỏc i tng
trong chng trỡnh nh hng, bin, hm, th tc, kiu d liu,
b.Tờn chun: L tờn m Turbo Pascal ó nh sn ch cỏc hm, hng, bin, th tc
th vin ca nú.
VI. Cu trỳc chung ca mt chng trỡnh Pascal
{ Phn tiờu }
PROGRAM Tờn_chng_trỡnh;
{ Phn khai bỏo v nh ngha}
USES ;

CONST ;
TYPE ;
VAR ;
PROCEDURE ;
FUNCTION ;

{ Phn thõn chng trỡnh }
BEGIN

END.
1. Phn tiờu :
T khoỏ khai bỏo l Program tip n l tờn ca chng trỡnh do ngi dựng t t.
Phn ny khụng bt buc phi cú.
2. Phn khai bỏo v nh ngha:
Uses: Dựng khai bỏo cỏc Unit (n v chng trỡnh) ca Turbo Pascal. Nu cú
nhiu Unit thỡ s dng du phy , ngn cỏch.
Const: Dựng khai bỏo cỏc hng.
Cỳ phỏp: Tờn_hng = Giỏ tr.
Type: Dựng nh ngha cỏc kiu d liu ca ngi dựng.
Cỳ phỏp: Tờn_kiu = nh ngha c th cho tng kiu.
Var: Khai bỏo bin.
Cỳ phỏp: Tờn_bin: Kiu_d liu;
(Hoc khai bỏo trc tip khụng thụng qua kiu.).
Nu cú nhiu bin cựng kiu thỡ s dng du phy , ngn cỏch.
Procedure: nh ngha chng trỡnh con dng th tc.
Function: nh ngha chng trỡnh con dng hm.
Mọi chi tiết liên hệ: Đỗ Anh Hải 7 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
3. Phn thõn chng trỡnh: c bt u bng t khoỏ Begin v kt thỳc bi t khoỏ

End. Gia cp t khoỏ ny cú cỏc cõu lnh ca chng trỡnh.
Chỳ ý:
- Turbo Pascal cng s dng du ; kt thỳc phn ny chuyn qua phn
khỏc cng nh gia khai bỏo ny qua khai bỏo khỏc ca chng trỡnh.
- Khi son tho chng trỡnh cho phộp a vo cỏc cõu chỳ thớch nhng phi
c t trong cp du múc {} hoc (**).
Vớ d 1: Chng trỡnh Pascal n gin nht
BEGIN
Write(Hello World!);
END.
Vớ d 2:
Program Vidu2;
Const PI=3.14;
Var R,S:Real;
Begin
R:=10; {Bỏn kớnh ng trũn}
S:=R*R*PI; {Din tớch hỡnh trũn}
Writeln(Dien tich hinh tron = , S:0:2); { In ra mn hỡnh }
Readln;
End.
Mọi chi tiết liên hệ: Đỗ Anh Hải 8 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
CHNG III
CC KIU D LIU N GIN
I. Tng quan v cỏc kiu d liu trong Turbo Pascal
Cỏc kiu d liu trong Turbo Pascal c chia lm hai loi:
- Cỏc kiu d liu n gian.
- Cỏc kiu d liu co cu trỳc.
1. Cỏc kiu d liu n gin gm:

Kiu chun:
- Logic.
- S nguyờn.
- S thc.
- Ký t.
- Xõu.
Kiu do ngi dung nh ngha:
- Kiu on con.
- Kiu lit kờ.
2. Cỏc kiu d liu cú cu trỳc:
- Mng.
- Tp hp.
- Bn ghi.
- File
II. Cỏc kiu d liu n gin chun
1. Kiu logic:
T khoỏ: Boolean.
Min tr: Ch cú hai giỏ tr l True v False.
Cỏc phộp toỏn: AND, OR, NOT, XOR.(Xem bng di õy)
Cỏc phộp toỏn: phộp so sỏnh (=, <, >)
Trong Pascal, khi so sỏnh cỏc giỏ tr boolean ta tuõn theo qui tc: FALSE < TRUE.
Gi s A v B l hai giỏ tr kiu Boolean. Kt qu ca cỏc phộp toỏn c th hin qua
bng di õy:
A B A AND B A OR B A XOR B NOT A
TRUE TRUE TRUE TRUE FALSE FALSE
TRUE FALSE FALSE TRUE TRUE FALSE
FALSE TRUE FALSE TRUE TRUE TRUE
FALSE FALSE FALSE FALSE FALSE TRUE
Mọi chi tiết liên hệ: Đỗ Anh Hải 9 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.

Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
2. Kiu s nguyờn
2.1. Cỏc kiu s nguyờn
Cú 5 kiu s nguyờn:
Min tr ca cỏc kiu ú nh sau:
Tờn kiu Phm vi Dung lng
Shortint
-128 127
1 byte
Byte
0 255
1 byte
Integer
-32768 32767
2 byte
Word
0 65535
2 byte
LongInt
-2147483648 2147483647
4 byte
2.2. Cỏc phộp toỏn trờn kiu s nguyờn
2.2.1. Cỏc phộp toỏn s hc:
+, -, *, / (phộp chia cho ra kt qu l s thc).
Phộp chia ly phn nguyờn: DIV (Vớ d : 34 DIV 5 = 6).
Phộp chia ly s d: MOD (Vớ d: 34 MOD 5 = 4).
2.2.2. Cỏc phộp toỏn x lý bit:
Trờn cỏc kiu ShortInt, Integer, Byte, Word cú cỏc phộp toỏn:

NOT, AND, OR, XOR.

A B A AND B A OR B A XOR B NOT A
1 1 1 1 0 0
1 0 0 1 1 0
0 1 0 1 1 1
0 0 0 0 0 1

SHL (phộp dch trỏi): a SHL n a ì 2
n

SHR (phộp dch phi): a SHR n a DIV 2
n
3. Kiu s thc
Cú 5 kiu s thc:
Min tr ca cỏc kiu ú nh sau:
3.1. Cỏc kiu s thc:
Tờn kiu Phm vi Dung lng
Single
1.5ì10
-45
3.4ì10
+38
4 byte
Real
2.9ì10
-39
1.7ì10
+38
6 byte
Double
5.0ì10

-324
1.7ì10
+308
8 byte
Extended
3.4ì10
-4932
1.1ì10
+4932
10 byte
Comp
-9.2*10
18
9.2*10
18
4 byte
Mọi chi tiết liên hệ: Đỗ Anh Hải 10 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
Chỳ ý: Cỏc kiu s thc Single, Double v Extended yờu cu phi s dng chung vi b
ng x lý s hoc phi biờn dich chng trỡnh vi ch th {$N+} liờn kt b gi lp
s.
3.2. Cỏc phộp toỏn trờn kiu s thc: +, -, *, /
Chỳ ý:
(1). Min tr ca cỏc kiu d liu (tr comp) c hiu l ly trong cỏc on:
[-max, -min]
[max, min]
s 0.
Nu mt s < -max hoc > max thỡ s khụng biu din c v xem nh l trn s.
Nu mt s <-min nh hn 0 hoc ln hn 0 nh hn min thỡ c xem nh l 0

(2). Ch mc nh ca TurboPascal l ch cho phộp lm vic vi kiu s thc
REAL. Mun s dng cỏc kiu khỏc ta vo bng chn OPTION -> COMPILER->
NUMERIC PROCESING ri ỏnh du [x] vo mc 8087/80287.
(3). Trong mỏy tớnh s thc c biu din di hai dng:
Du chm tnh, vớ d: 3.14, 123.456
Du chm ng (ch mc nh), vớ d: 3.1400000000E+02 (tc l 3.14*10
2
).
(4)Trờn kiu s thc khụng tn ti cỏc phộp toỏn DIV v MOD.
4. Kiu ký t (CHAR. )
- T khoỏ: CHAR.
- Min tr: Cỏc ký t trong bng mó ASCII bao gm:
0 31 : Cỏc ký t iu khin.
32 127 : Cỏc ký t thụng dng.
128 255 : Cỏc ký t c bit ( ho).
Vớ d: kớ t A cú mó l 65; Ký t a cú mó l 97.
- biu din mt ký t, ta cú th s dng mt trong s cỏc cỏch sau õy:
t ký t trong cp du nhỏy n. Vớ d 'A', '0'.
Dựng hm CHR(n) (trong ú n l mó ASCII ca ký t cn biu din). Vớ d
CHR(65) biu din ký t 'A'.
Dựng ký hiu #n (trong ú n l mó ASCII ca ký t cn biu din). Vớ d #65.
- Phộp so sỏnh: Mun so sỏnh hai ký t ta so sỏnh cỏc mó ASCII tng ng ca chỳng,
ký hiu no cú mó ASCII ln hn c xem l ln hn. Vớ d: a > A. Vỡ 97 > 65.
Chỳ ý: Mt kiu d liu c gi l vụ hng m c nu min tr ca nú l mt tp
hp m c v trờn ú tn ti quan h th t. Vớ d: Kiu Byte; kiu Integer; kiu
Char; kiu Boolean
Mọi chi tiết liên hệ: Đỗ Anh Hải 11 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
III. Kiu lit kờ v kiu on con

1. Kiu lit kờ:
a. nh ngha kiu v khai bỏo bin:
nh ngha kiu:
Type ten_kieu = (Danh sỏch cỏc giỏ tr);
Gii thớch:
Ten_ kieu ký hiu cho tờn kiu do ngi dung t t
Danh sỏch cỏc giỏ tr l tp hp cỏc giỏ tr c phõn cỏch bi du phy ,.
Khai bỏo bin:
Var ten_bien : ten_kieu;
Gii thớch:
ten_bien ký hiu cho tờn bin do ngi dựng t t
ten_kieu ó c khai bỏo;
Vớ d:
Type ngay = (sun, mon, tue, wed, thu, fri, sat);
Cviec = (dihoc, dilam, thuchanh, nghi);
Var hqua, hnay: ngay;
Viec: cviec;
Cng cú th khai bỏo bin kiu lit kờ trc tip m khụng cn khai bỏo kiu.
Vớ d: var gioitinh: (nam, nu);
Mau: (xanh, do, tim, vang);
b. Cỏc tỏc ng lờn d liu kiu lit kờ:
Cú th thc hin phộp gỏn giỏ tr cho bin.

Phộp so sỏnh: Giỏ tr lit kờ trong danh sỏch i trc c xem l bộ hn giỏ tr
sau.
Mọi chi tiết liên hệ: Đỗ Anh Hải 12 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
c. Chỳ ý:
- Khụng th nhp, xut vi d liu kiu lit kờ.

- Giỏ tr kiu lit kờ thng c dựng lm ch s cho lnh lp for, cỏc trng
hp chn la trong lnh Case, hoc ch s cho mng.
2. Kiu on con:
a. nh ngha kiu v khai bỏo bin:
nh ngha kiu:
Type ten_kieu = hang duoi hang tren;
Gii thớch:
Ten_ kieu ký hiu cho tờn kiu do ngi dung t t
Hang_duoi tc l ký hiu giỏ tr hng cn di, hang tren tc l ký hiu giỏ tr
hng cn trờn tt nhiờn l hang tren >= hang duoi v phi cú cựng kiu vụ hng
m c.
Khai bỏo bin:
Var ten_bien : ten_kieu; ( Tờn kiu ó c khai bỏo)
Vớ d: Type Ky_tu_so: 0 9;
Chu_cai : a z
Var a,b : Ky_tu_so;
Ch : Chu_cai ;
IV. Cỏc hm chun
1. Cỏc hm s hc s dng cho kiu s nguyờn v s thc:
SQR(x): Tr v x
2
SQRT(x): Tr v cn bc hai ca x (x0)
ABS(x): Tr v |x|
SIN(x): Tr v sin(x) theo radian
COS(x): Tr v cos(x) theo radian
ARCTAN(x): Tr v arctang(x) theo radian
LN(x): Tr v ln(x)
EXP(x): Tr v e
x
TRUNC(x): Tr v s nguyờn gn vi x nht nhng bộ hn x.

INT(x): Tr v phn nguyờn ca x
FRAC(x): Tr v phn thp phõn ca x
ROUND(x): Lm trũn s nguyờn x
PRED(n): Tr v giỏ tr ng trc n
SUCC(n): Tr v giỏ tr ng sau n
ODD(n): Cho giỏ tr TRUE nu n l s l.
INC(n): Tng n thờm 1 n v (n:=n+1). I:= i+1 hoac i:= inc(i)
DEC(n): Gim n i 1 n v (n:=n-1). I:=i-1 hoac i:= dec(i)
Mọi chi tiết liên hệ: Đỗ Anh Hải 13 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
2.Cỏc hm trờn kiu ký t:
- UPCASE(ch): Tr v ký t in hoa tng ng vi ký t ch. Vớ d: UPCASE('a') = 'A'.
- ORD(ch): Tr v s th t trong bng mó ASCII ca ký t ch. Vớ d ORD('A')=65.
- CHR(n): Tr v ký t tng ng trong bng mó ASCII cú s th t l n. Vớ d:
CHR(65)='A'.
- PRED(ch): cho ký t ng trc ký t ch. Vớ d: PRED('B')='A'.
- SUCC(ch): cho ký t ng sau ký t ch. Vớ d: SUCC('A')='B'.
Chỳ ý: Mt kiu d liu gi l vụ hng m c nu min tr ca nú l mt tp
hp m c v trờn ú tn ti quan h th t. Vớ d: Kiu Byte, Kiu Integer; Kiu
Char, Kiu Boolean
BI TP CHNG III
Mọi chi tiết liên hệ: Đỗ Anh Hải 14 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
1. Tỡm cụng thc i mt ký t l ch hoa thnh ch thng.
A: 65 ord(A) = 65
B: 66 b: 98
C: 67 c: 99 (ORD(ch) + 32) VD: CHR(ORD(A)+32)
a: 97 chr(97) = a

2. Dựng cỏc hm v cỏc phộp toỏn biu din cỏc cụng thc sau:
a.
n
x
, x>0.
a
logaX
= x
b.
x y
x
y
+
+
2
c.
( )( )
( )
a b c
r
h
a
+ +

4 2 3
2
9 1
d.
|)(sin|
2

xxa
+
3. So sỏnh cỏc ký t v cỏc xõu sau õy:
a. Ch A v ch a.
b. Ch A v ch s 1.
c. Ký t trng v ch a.
CHNG IV
Mọi chi tiết liên hệ: Đỗ Anh Hải 15 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
BIU THC V CU LNH N GIN
I. Biu thc
1. Hng: Hng l mt i lng cú giỏ tr khụng thay i trong sut chng trỡnh. Cú
cỏc loi hng: hng s, hng ký t, hng xõu, hng logic T khoỏ khai bỏo hng l
CONST.
- Cỳ phỏp:
CONST <Tờn hng> = <Giỏ tr>;
hoc:
CONST <Tờn hng>: = <Biu thc hng>;
Vớ d:
CONST Max = 100;
Name = 'Tran Van Hung';
Continue = FALSE;
Logic = ODD(5); {Logic =TRUE}
Chỳ ý: Ch cỏc hm chun di õy mi c cho phộp s dng trong mt biu thc
hng:
ABS CHR HI LO LENGTH ODD ORD
PTR ROUND PRED SUCC SIZEOF SWAP TRUNC
2. Bin: Bin l mt i lng m giỏ tr ca nú cú th thay i trong quỏ trỡnh thc
hin chng trỡnh. Bin dựng lu tr d liu, bin c khai bỏo sau t khoỏ VAR.

Vic khai bỏo cỏc bin l nhm cung cp cỏc vựng nh lu tr d liu trong quỏ trỡnh
thc hin chng trỡnh.
3. Cỳ phỏp:
VAR <Tờn bin>[,<Tờn bin 2>,] : <Kiu d liu>;
Vớ d:
VAR x, y: Real; {Khai bỏo hai bin x, y cú kiu l Real}
a, b: Integer; {Khai bỏo hai bin a, b cú kiu integer}
Chỳ ý: Ta cú th va khai bỏo bin, va gỏn giỏ tr khi u cho bin bng cỏch s
dng cỳ phỏp nh sau:
CONST <Tờn bin>: <Kiu> = <Giỏ tr>;
Vớ d:
CONST x:integer = 5;
Vi khai bỏo bin x nh trờn, trong chng trỡnh giỏ tr ca bin x cú th thay i. (iu
ny khụng ỳng nu chỳng ta khai bỏo x l hng).
4. Toỏn t: L cỏc phộp toỏn tỏc ng lờn d liu (hay cũn gi l toỏn hng).
Vớ d: Cỏc phộp +, -, *, /, and, or, not
5. Toỏn hng: L mt trong cỏc i lng sau:
Mọi chi tiết liên hệ: Đỗ Anh Hải 16 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
Hng
Bin
Hm
Biu thc
6. Biu thc: L mt tp hp gm cỏc toỏn t v cỏc toỏn hng trong ú toỏn t tỏc
ng phự hp lờn toỏn hng.
Chỳ ý:
(1). Trong mt biu thc cỏc toỏn t trong du ngoc () c u tiờn thc hin
trc
(2). Nu cú nhiu phộp toỏn cựng cp u tiờn thỡ cỏc phộp toỏn c thc hin tun t

t trỏi qua phi.
(3). Mi biu thc cho kt qu bng s c gi l biu thc s hc, cho kt qu l
kiu logic thỡ c gi l biu thc logic.
II. Cõu lnh
1. Phõn loi cõu lờnh: Trong Pascal cú hai loi cõu lnh ú l cõu lnh n gin v
cõu lnh cú cu trỳc.
Cõu lnh n gin gm:
- Cõu lnh gỏn
- Cỏc lnh xut nhp d liu: READ/READLN, WRITE/WRITELN.
- Li gi hm, th tc.
Cõu lnh cú cu trỳc gm:
- Cõu lnh ghộp: BEGIN END;
- Cỏc cu trỳc iu khin: IF , CASE , FOR , REPEAT , WHILE
2. Cõu lnh n gin:
a. Lnh gỏn:
Cỳ phỏp: <Tờn bin>:=<Biu thc>;
í ngha: Lnh s thc hin vic gỏn giỏ tr ca Biu thc cho Tờn bin.
b. Th tc ghi d liu lờn mn hỡnh:
xut d liu ra mn hỡnh, ta s dng ba dng sau:
(1) WRITE(<tham s 1> [, <tham s 2>, ]);
(2) WRITELN(<tham s 1> [, <tham s 2>, ]);
(3) WRITELN;
Cỏc th tc trờn cú chc nng nh sau:
(1) Sau khi xut giỏ tr ca cỏc tham s ra mn hỡnh thỡ con tr khụng xung dũng.
(2) Sau khi xut giỏ tr ca cỏc tham s ra mn hỡnh thỡ con tr xung u dũng tip
theo.
(3) Xut ra mn hỡnh mt dũng trng.
Cỏc tham s cú th l cỏc hng, bin, biu thc. Nu cú nhiu tham s trong cõu lnh
thỡ cỏc tham s phi c phõn cỏch nhau bi du phy.
Mọi chi tiết liên hệ: Đỗ Anh Hải 17 Email:

Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
Khi s dng lnh WRITE/WRITELN, ta cú hai cỏch vit: khụng qui cỏch v cú qui
cỏch:
- Vit khụng qui cỏch: d liu xut ra s c canh l phớa bờn trỏi. Nu d liu l s
thc thỡ s c in ra di dng biu din khoa hc.
Vớ d:
WRITELN(x); WRITE(sin(3*x));
- Vit cú qui cỏch: d liu xut ra s c canh l phớa bờn phi.
Vớ d:
WRITELN(x:5); WRITE(sin(13*x):5:2);
Cõu lnh Kt qu trờn mn hỡnh
Writeln('Hello');
Writeln('Hello':10);
Writeln(500);
Writeln(500:5);
Writeln(123.457)
Writeln(123.45:8:2)
Hello
Hello
500
500
1.2345700000E+02
123.46
c. Nhp d liu t bn phớm
nhp d liu t bn phớm vo cỏc bin cú kiu d liu chun (tr cỏc bin kiu
BOOLEAN), ta s dng cỳ phỏp sau õy:
Cỳ phỏp:
(1). READ(<bin 1> [,<bin 2>, ,<bin n>]);
(2).READLN(<bin 1> [,<bin 2>, ,<bin n>]);

(3). READLN;
í ngha:
(1): Cho phộp ln lt nhp d liu cho cỏc bin.
(2): Tng t dng (a)ch khỏc ch sau khi nhp xong d liu con tr c a v
u dũng tip theo.
(3): Ch lm thao tỏc tm dng chng trỡnh, ch gừ phớm Enter tip tc.
Chỳ ý: Khi gp cõu lnh READLN; (khụng cú tham s), chng trỡnh s dng li ch
ngi s dng nhn phớm ENTER mi chy tip.
3. Cỏc hm v th tc thng dựng trong nhp xut d liu
Hm KEYPRESSED: Hm tr v giỏ tr TRUE nu nh cú mt phớm bt k c
nhn, nu khụng hm cho giỏ tr l FALSE.
Hm READKEY: Hm cú chc nng c mt ký t t b m bn phớm.
Th tc GOTOXY(X,Y:Integer): Di chuyn con tr n ct X dũng Y.
Th tc CLRSCR: Xoỏ mn hỡnh v a con tr v gúc trờn bờn trỏi mn hỡnh.
Th tc CLREOL: Xúa cỏc ký t t v trớ con tr n ht dũng.
Th tc DELLINE: Xoỏ dũng ti v trớ con tr v dn cỏc dũng phớa di lờn.
Mọi chi tiết liên hệ: Đỗ Anh Hải 18 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
Th tc TEXTCOLOR(color:Byte): Thit lp mu cho cỏc ký t. Trong ú color
[0,15].
Th tc TEXTBACKGROUND(color:Byte): Thit lp mu nn cho mn hỡnh.
4. Cỏc vớ d:
Vớ d 1: Vit chng trỡnh nhp vo di hai cnh ca tam giỏc v gúc gia hai cnh
ú, sau ú tớnh v in ra mn hỡnh din tớch ca tam giỏc.
í tng:
Cụng thc tớnh din tớch tam giỏc: S =
)sin(
2
1


ba
vi a,b l di 2 cnh v l gúc
kp gia 2 cnh a v b.
Program Tinh_dien_tich_tam_giac;
Var a,b,goc,dientich: Real;
Begin
Write('Nhap vao do dai canh thu nhat: '); Readln(a);
Write('Nhap vao do dai canh thu hai: '); Readln(b);
Write('Nhap vao goc giua hai canh: '); Readln(goc);
Dientich:=a*b*sin(goc)/2;
Writeln('Dien tich cua tam giac la: ',Dientich:0:2);
Readln;
End.
Vớ d 2: Vit chng trỡnh tớnh
n
x
, x>0.
í tng:
Ta cú:
n
x
=
n
x
1
=
x
n
e

ln
1
Program Tinh_can_bac_n_cua_x;
Varx,S: Real;
n: Word;
Begin
Write('Nhap vao n= '); Readln(n);
Write('Nhap vao x= '); Readln(x);
S:=EXP(1/n*LN(x));
Writeln('S = ',S:0:2);
Readln;
End.
Mọi chi tiết liên hệ: Đỗ Anh Hải 19 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
Vớ d 3:Vit chng trỡnh nhp vo 2 s a, b. Sau ú hoỏn i giỏ tr ca 2 s ú:
a/ Cho phộp dựng bin trung gian.
Program Swap;
Var a,b,tam: Integer;
Begin
Write('Nhap vao a= '); Readln(a);
Write('Nhap vao b= '); Readln(b);
tam:=a; {tam ly giỏ tr ca a}
a:=b; {a ly giỏ tr ca b}
b:=tam; {b ly li giỏ tr ca tam}
Writeln('a = ',a, b = ,b);
Readln;
End.
b/ Khụng c phộp dựng bin trung gian.
Program Swap;

Var a,b: Integer;
Begin
Write('Nhap vao a= '); Readln(a);
Write('Nhap vao b= '); Readln(b);
a:=a+b; {a ly tng giỏ tr ca a+b}
b:=a-b; {b ly giỏ tr ca a}
a:=a-b; {a ly li giỏ tr ca b}
Writeln('a = ',a, b = ,b);
Readln;
End.
BI TP CHNG IV
Bi tp 1: Vit chng trỡnh tớnh khong cỏch t mt im I(x
i
,y
i
) n ng thng cú
phng trỡnh D: Ax + By + C = 0.
Gi ý:
Cụng thc tớnh khong cỏch: h =
22

BA
CyBxA
ii
+
++
Bi tp 2: Vit chng trỡnh tỏch mt s n thnh 2 s a, b sao cho tớch P=a*b
2
t cc i
vi n c nhp vo t bn phớm.

Gi ý:
Gi x l s th hai thỡ s th nht l: (n-x). Theo ta cú: P(x) = x
2
.(n-x).
Hm P t cc i khi P(x) = -3x
2
+ 2nx = 0 x = 2n/3.
Bi tp 3: Vit chng trỡnh nhp vo ba ct im vi cỏc h s 1,2 v 3. Tớnh v in lờn
mn hỡnh im trung bỡnh cng.
Mọi chi tiết liên hệ: Đỗ Anh Hải 20 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
Bi tp 4: Vit chng trỡnh nhp vo s nguyờn dng n, in lờn mn hỡnh tng sau:
S = 1
2
+2
2
+3
2
++n
2
.
(Bit cụng thc s = n*(n+1)*(2*n+1) div 6)
Mọi chi tiết liên hệ: Đỗ Anh Hải 21 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
CHNG V
CU LNH Cể CU TRC
I. CU LNH R NHNH
1.1. Lnh IF

Cỳ phỏp:
(1) IF <btdk> THEN CL;
(2) IF <btdk> THEN CL1 ELSE CL2;
Trong ú: btdk ký hiu cho biu thc logic.
Dng (1) gi l dng thiu, dng (2) gi l dng .
í ngha:
(1) Nu btdk nhn giỏ tr true thỡ mỏy s thc hin CL , ngc li thỡ khụng thc hin.
(2) Nu btdk nhn giỏ tr true thỡ mỏy s thc hin CL1, ngc li thỡ thc hin CL2.
S thc hin:
Chỳ ý: Khi s dng cõu lnh IF thỡ ng trc t khoỏ ELSE khụng c cú du chm
phy (;).
Cỏc vớ d:
Vớ d 1: Vit chng trỡnh nhp vo mt s nguyờn v kim tra xem s va nhp l s
chn hay s l.
Uses crt;
Var x:integer;
Begin
Write('Nhap vao mot so nguyen : '); Readln(x);
If x MOD 2=0 Then
Mọi chi tiết liên hệ: Đỗ Anh Hải 22 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
(1)
btdk
+ -
CL

(2)
btdk
+ -
CL1 CL2


Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
Writeln('So vua nhap vao la so chan')
Else
Writeln('So vua nhap vao la so le');
Readln;
End.
Vớ d 2: Vit chng trỡnh gii phng trỡnh bc nht ax+b=0
Uses Crt;
Var a,b,x : real;
Begin
Write('a = '); Readln(a);
Write('b = '); Readln(b);
If a = 0 Then { Nu a bng 0 }
If b = 0 Then { Trng hp a = 0 v b = 0 }
Writeln('Phuong trinh co vo so nghiem')
Else { Trng hp a=0 v b

0 }
Writeln('Phuong trinh vo nghiem')
Else { Trng hp a

0 }
Begin
x:= -b/a;
Writeln('Phuong trinh co nghiem la :',x:0:2);
End;
Readln;
End.
1.2. Lnh CASE

Cỳ phỏp:
Dng 1 Dng 2
CASE <BT> OF
Const 1: CL
1
;
Const 2: CL
2
;

Const n: CL
n
;
END;
CASE <BT> OF
Const 1: CL
1
;
Const 2: CL
2
;

Const n: CL
n
;
ELSE CL
n+1
;
END;
Trong ú:

BT: Biu thc kiu vụ hng m c nh kiu nguyờn, kiu logic, kiu ký t,
kiu lit kờ.
Mọi chi tiết liên hệ: Đỗ Anh Hải 23 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
Const i: Hng th i, cú th l mt giỏ tr hng, cỏc giỏ tr hng (phõn cỏch nhau bi
du phy) hoc cỏc on hng (dựng hai du chm phõn cỏch gia giỏ tr u
v giỏ tr cui).
Giỏ tr ca biu thc v giỏ tr ca tp hng i (i=1án) phi cú cựng kiu.
Khi gp lnh CASE, chng trỡnh s kim tra:
- Nu giỏ tr ca biu thc BT nm trong tp hng const i thỡ mỏy s thc hin lnh CL
i
tng ng.
- Ngc li:
+ i vi dng 1: Khụng lm gỡ c.
+ i vi dng 2: thc hin lnh CL
n+1
.
Cỏc vớ d:
Vit chng trỡnh nhp vo tui ca mt ngi v cho bit ngi ú l thiu niờn, thanh
niờn, trung niờn hay lóo niờn. Bit rng: nu tui nh hn 18 l thiu niờn, t 18 n 39 l
thanh niờn, t 40 n 60 l trung niờn v ln hn 60 l lóo niờn.
Uses crt;
Var tuoi:Byte;
Begin
Write(Nhap vao tuoi cua mot nguoi:'); Readln(tuoi);
Case tuoi Of
1 17: Writeln(Nguoi nay la thieu nien');
18 39: Writeln(Nguoi nay la thanh nien');
40 60: Writeln(Nguoi nay la trung nien');

Else Writeln(Nguoi nay la lao nien');
End;
Readln;
End.
II. CU LNH LP
2.1. Vũng lp xỏc nh (FOR - DO)
Cỳ phỏp: Cú hai dng sau:
Dng tin
FOR <bin m>:=<giỏ tr u> TO <giỏ tr cui> DO CL;
Dng lựi
FOR <bin m>:=<giỏ tr cui> DOWNTO <giỏ tr u> DO CL;
S thc hin vũng lp FOR:
Mọi chi tiết liên hệ: Đỗ Anh Hải 24 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Bi ging ngụn ng lp trỡnh Pascal ễn hc sinh gii
í ngha:
Dng tin: Cõu lnh s c thc hin bng s ln m Bin m c gỏn tng dn
ln lt t giỏ tr ca giỏ tr u n giỏ tr ca giỏ tr cui.
Dng lựi: Cõu lnh s c thc hin bng s ln m Bin m c gỏn gim dn
ln lt t giỏ tr ca giỏ tr cui n giỏ tr ca giỏ tr u
Chỳ ý: Khi s dng cõu lnh lp FOR cn chỳ ý cỏc im sau:
Khụng nờn tu tin thay i giỏ tr ca bin m bờn trong vũng lp FOR vỡ lm
nh vy cú th s khụng kim soỏt c bin m.
Giỏ tr Max v Min trong cõu lnh FOR s c xỏc nh ngay khi vo u vũng
lp. Do ú cho dự trong vũng lp ta cú thay i giỏ tr ca nú thỡ s ln lp cng
khụng thay i.
Cỏc vớ d:
Vớ d 1: Vit chng trỡnh tớnh tng S = 1+2+ +N.
Dựng vũng lp FOR.
Program TinhTong;

Uses crt;
Var N,i,S:integer;
Begin
Clrscr;
Write('Nhap vao gia tri cua N :'); Readln(N);
S:=0;
Mọi chi tiết liên hệ: Đỗ Anh Hải 25 Email:
Mỗi bớc đi làm con đờng ngắn lại. Hãy nhẫn nại để thành công.
Dng tin
Bin m:=u
Bin m<=cui
+
-
Thoỏt
CL;
INC(Bin m);
Dng lựi
Bin m:=cui
Bin m>=cui
+
-
Thoỏt
CL;
DEC(Bin m);

×