
100 bài t p Pascal ậTài li u b i d ng HSG Tin h c ệ ồ ưỡ ọ
*** **
100 BÀI T PẬ
PASCAL
L P 8Ớ
Trang 1

100 bài t p Pascal ậTài li u b i d ng HSG Tin h c ệ ồ ưỡ ọ
(Tài li u b i d ng h c sinh gi i môn tin h c ệ ồ ưỡ ọ ỏ ọ
dành cho h c sinh THCS)ọ
GI I THI U TÓM T T T P TÀI LI UỚ Ệ Ắ Ậ Ệ
1. S c n thi t:ự ầ ế
Các tr ng THCS đang có xu h ng d y môn t ch n tin h c thay cho ch đ t ch nườ ướ ạ ự ọ ọ ủ ề ự ọ
khi mà c s v t ch t ph c v cho vi c d y h c môn h c này đc trang b ngày càng t t h n.ơ ở ậ ấ ụ ụ ệ ạ ọ ọ ượ ị ố ơ
R t nhi u h c sinh, ph huynh h c sinh, lãnh đo các tr ng mu n b n thân, con mình, h cấ ề ọ ụ ọ ạ ườ ố ả ọ
sinh mình tham gia các k thi h c sinh gi i môn tin h c (K thi tin h c tr , K thi h c sinh gi iỳ ọ ỏ ọ ỳ ọ ẻ ỳ ọ ỏ
l p 9...) b i tính m i m , h p d n, thi t th c c a b môn. L n đu tiên b môn tin h c đcớ ở ớ ẻ ấ ẫ ế ự ủ ộ ầ ầ ộ ọ ượ
đa vào d y h c t i các tr ng THCS nên tài li u b i d ng cho h c sinh gi i ư ạ ọ ạ ườ ệ ồ ưỡ ọ ỏ dành cho h cọ
sinh THCS h u nh ch a có. Đáp ng nhu c u b i d ng t i các tr ng, t p tài li u b iầ ư ư ứ ầ ồ ưỡ ạ ườ ậ ệ ồ
d ng h c sinh gi i môn tin h c c p THCS v i tên g i ưỡ ọ ỏ ọ ấ ớ ọ 100 bài t p Turbo Pascalậ đc bượ ộ
ph n chuyên môn Phòng GD&ĐT Qu S n biên so n.ậ ế ơ ạ
2. N i dung:ộ
T p tài li u đc biên so n theo đnh h ng 10 x 10. N i dung b i d ng đc chiaậ ệ ượ ạ ị ướ ộ ồ ưỡ ượ
làm 10 ch ng. M i ch ng g m tóm t t lý thuy t và 10 bài t p xoay quanh n i dung c aươ ỗ ươ ồ ắ ế ậ ộ ủ
ch ng. M i bài t p đc trình bày theo c u trúc:ươ ỗ ậ ượ ấ
a. Đ bài.ề
b. H ng d n, thu t toán.ướ ẫ ậ
c. Mã ch ng trình.ươ
d. Nh n xét: Nh n m nh n i dung m i, quan tr ng c n n m sau khi th c hi n bài t p, gi i ậ ấ ạ ộ ớ ọ ầ ắ ự ệ ậ ả
quy t bài toán theo thu t toán khác, đi m đc và ch a đc c a thu t toán ...ế ậ ể ượ ư ượ ủ ậ
N i dung các bài t p các ch ng đã đc l a ch n theo h ng k th a, tăng d n đ khó. ộ ậ ở ươ ượ ự ọ ướ ế ừ ầ ộ
Nhi u bài toán c n gi i quy t trong th c t đc đa vào các bài t p nh m tăng h ng thú ề ầ ả ế ự ế ượ ư ậ ằ ướ
h c t p ....ọ ậ
H u h t các bài t p có đ khó v a ph i, phù h p v i n i dung b i d ng c p tr ng. N i ầ ế ậ ộ ừ ả ợ ớ ộ ồ ưỡ ở ấ ườ ộ
dung liên quan v i môn toán và các môn khác t l p 8 tr xu ng. N i dung b i d ng đc ớ ừ ớ ở ố ộ ồ ưỡ ượ
chia thành 10 ch ng nh sau:ươ ư
L p 8ớ:
I. Làm quen v i ch ng trình Pascal – Khai báo, s d ng bi n – Các th t c vào ra.ớ ươ ử ụ ế ủ ụ
II. C u trúc l a ch n: if … then … elseấ ự ọ
Case ... of ...
III. C u trúc l p v i s l n l p đã bi t: For … to … doấ ặ ớ ố ầ ặ ế
IV. C u trúc l p v i s l n l p ch a bi t.ấ ặ ớ ố ầ ặ ư ế
V. D li u ki u m ng (m t chi u).ữ ệ ể ả ộ ề
VI. Ch ng trình con.ươ
VII. Chuyên đ: Tính chia h t- S nguyên t .ề ế ố ố
VIII. Chuyên đ dãy con.ề
IX. Chuyên đ ch s - h c s .ề ữ ố ệ ơ ố
X. Chuyên đ đa th c.ề ứ
3. Đ ngh :ề ị
Ch c ch n t p tài li u c n hi u ch nh, b sung đ có th đa vào s d ng. R t mong ắ ắ ậ ệ ầ ệ ỉ ổ ể ể ư ử ụ ấ
H i đng th m đnh cho y ki n c th v :ộ ồ ẩ ị ế ụ ể ề
- Nh ng hi u ch nh v c u trúc c a t p tài li u.ữ ệ ỉ ề ấ ủ ậ ệ
Trang 2

100 bài t p Pascal ậTài li u b i d ng HSG Tin h c ệ ồ ưỡ ọ
- Nh ng n i dung c n b sung thêm, nh ng n i dung c n gi m b t cho phù h p v i th c t ữ ộ ầ ổ ữ ộ ầ ả ớ ợ ớ ự ế
b i d ng t i các đn v tr ng.ồ ưỡ ạ ơ ị ườ
- Đ xu t các bài t p hay h n đ thay th cho các bài t p đã có t p tài li u. Các bài t p mà ề ấ ậ ơ ể ế ậ ở ậ ệ ậ
t p tài li u còn thi u.ậ ệ ế
CH NG IƯƠ
CÁC KI U D LI U C B NỂ Ữ Ệ Ơ Ả
KHAI BÁO H NG, BI N, KI U, BI U TH C VÀ CÂU L NHẰ Ế Ể Ể Ứ Ệ
A. LÝ THUY T:Ế
I. CÁC KI U D LI U C B NỂ Ữ Ệ Ơ Ả
1. Ki u logicể
- T khóa: ừBOOLEAN
- mi n giá tr : ề ị (TRUE, FALSE).
- Các phép toán: phép so sánh (=, <, >) và các phép toán logic: AND, OR, XOR, NOT.
Trong Pascal, khi so sánh các giá tr boolean ta tuân theo qui t c: FALSE < TRUE.ị ắ
Gi s A và B là hai giá tr ki u Boolean. K t qu c a các phép toán đc th hi n quaả ử ị ể ế ả ủ ượ ể ệ
b ng d i đâ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
2. Ki u s nguyênể ố
2.1. Các ki u s nguyênể ố
Tên ki uểPh m viạDung l ngượ
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 ki u s nguyênể ố
2.2.1. Các phép toán s h c:ố ọ
+, -, *, / (phép chia cho ra k t qu là s th c).ế ả ố ự
Phép chia l y ph n nguyên: ấ ầ DIV (Ví d : 34 DIV 5 = 6).ụ
Phép chia l y s d : ấ ố ư MOD (Ví d : 34 MOD 5 = 4).ụ
3. Ki u s th cể ố ự
3.1. Các ki u s th c:ể ố ự
Tên ki uểPh m viạDung l ngượ
Single 1.510-45 3.410+38 4 byte
Real 2.910-39 1.710+38 6 byte
Trang 3

100 bài t p Pascal ậTài li u b i d ng HSG Tin h c ệ ồ ưỡ ọ
Double 5.010-324 1.710+308 8 byte
Extended 3.410-4932 1.110+4932 10 byte
Chú ý: Các ki u s th c Single, Double và Extended yêu c u ph i s d ng chung v i b đngể ố ự ầ ả ử ụ ớ ộ ồ
x lý s ho c ph i biên dich ch ng trình v i ch th ử ố ặ ả ươ ớ ỉ ị {$N+} đ liên k t b gi l p s .ể ế ộ ả ậ ố
3.2. Các phép toán trên ki u s th c:ể ố ự +, -, *, /
Chú ý: Trên ki u s th c không t n t i các phép toán DIV và MOD.ể ố ự ồ ạ
3.3. Các hàm s h c s d ng cho ki u s nguyên và s th c:ố ọ ử ụ ể ố ố ự
SQR(x): Tr v xả ề 2
SQRT(x): Tr v căn b c hai c a x (xả ề ậ ủ 0)
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ả ề
TRUNC(x): Tr v s nguyên g n v i x nh t nh ng bé h n x.ả ề ố ầ ớ ấ ư ơ
INT(x): Tr v ph n nguyên c a xả ề ầ ủ
FRAC(x): Tr v ph n th p phân c a xả ề ầ ậ ủ
ROUND(x): Làm tròn s nguyên xố
PRED(n): Tr v giá tr đng tr c nả ề ị ứ ướ
SUCC(n): Tr v giá tr đng sau nả ề ị ứ
ODD(n): Cho giá tr TRUE n u n là s l .ị ế ố ẻ
INC(n): Tăng n thêm 1 đn v (n:=n+1).ơ ị
DEC(n): Gi m n đi 1 đn v (n:=n-1).ả ơ ị
4. Ki u ký tể ự
- T khoá: ừCHAR.
- Kích th c: 1 byte. ướ
- Đ bi u di n m t ký t , ta có th s d ng m t trong s các cách sau đây:ể ể ễ ộ ự ể ử ụ ộ ố
Đt ký t trong c p d u nháy đn. Ví d 'A', '0'.ặ ự ặ ấ ơ ụ
Dùng hàm CHR(n) (trong đó n là mã ASCII c a ký t c n bi u di n). Ví dủ ự ầ ể ễ ụ
CHR(65) bi u di n ký t 'A'.ễ ễ ự
Dùng ký hi u #n (trong đó n là mã ASCII c a ký t c n bi u di n). Ví d #65.ệ ủ ự ầ ể ễ ụ
- Các phép toán: =, >, >=, <, <=,<>.
* Các hàm trên ki u ký t :ể ự
- UPCASE(ch): Tr v ký t in hoa t ng ng v i ký t ch. Ví d : UPCASE('a') = 'A'.ả ề ự ươ ứ ớ ự ụ
- ORD(ch): Tr v s th t trong b ng mã ASCII c a ký t ch. Ví d ORD('A')=65.ả ề ố ứ ự ả ủ ự ụ
- CHR(n): Tr v ký t t ng ng trong b ng mã ASCII có s th t là n. Ví d :ả ề ự ươ ứ ả ố ứ ự ụ
CHR(65)='A'.
- PRED(ch): cho ký t đng tr c ký t ch. Ví d : PRED('B')='A'.ự ứ ướ ự ụ
- SUCC(ch): cho ký t đng sau ký t ch. Ví d : SUCC('A')='B'.ự ứ ự ụ
II. KHAI BÁO H NGẰ
- H ng là m t đi l ng có giá tr không thay đi trong su t ch ng trình. ằ ộ ạ ượ ị ổ ố ươ
Trang 4

100 bài t p Pascal ậTài li u b i d ng HSG Tin h c ệ ồ ưỡ ọ
- Cú pháp:
CONST <Tên h ng> = <Giá tr >;ằ ị
III. KHAI BÁO BI NẾ
- Bi n là m t đi l ng mà giá tr c a nó có th thay đi trong quá trình th c hi n ch ngế ộ ạ ượ ị ủ ể ổ ự ệ ươ
trình.
- Cú pháp:
VAR <Tên bi n>[,<Tên bi n 2>,...] : <Ki u d li u>;ế ế ể ữ ệ
Ví dụ:
VAR x, y: Real; {Khai báo hai bi n x, y có ki u là Real}ế ể
a, b: Integer; {Khai báo hai bi n a, b có ki u integer}ế ể
Chú ý: Ta có th v a khai báo bi n, v a gán giá tr kh i đu cho bi n b ng cách s d ng cúể ừ ế ừ ị ở ầ ế ằ ử ụ
pháp nh sauư:
CONST <Tên bi n>: <Ki u> = <Giá tr >;ế ể ị
Ví dụ:
CONST x:integer = 5;
V i khai báo bi n x nh trên, trong ch ng trình giá tr c a bi n x có th thay đi. (Đi u nàyớ ế ư ươ ị ủ ế ể ổ ề
không đúng n u chúng ta khai báo x là h ng).ế ằ
IV. BI U TH CỂ Ứ
Bi u th c (expression) là công th c tính toán mà trong đó bao g m các phép toán, cácể ứ ứ ồ
h ng, các bi n, các hàm và các d u ngo c đn.ằ ế ấ ặ ơ
Ví dụ: (x +y)/(5-2*x) bi u th c s h cể ứ ố ọ
(x+4)*2 = (8+y) bi u th c logicể ứ
Trong m t bi u th c, th t u tiên c a các phép toán đc li t kê theo th t sau:ộ ể ứ ứ ự ư ủ ượ ệ ứ ự
L i g i hàm.ờ ọ
D u ngo c ()ấ ặ
Phép toán m t ngôi (NOT, -).ộ
Phép toán *, /, DIV, MOD, AND.
Phép toán +, -, OR, XOR
Phép toán so sánh =, <, >, <=, >=, <>, IN
V. CÂU L NHỆ
6.1. Câu l nh đn gi nệ ơ ả
- Câu l nh gán (:=)ệ: <Tên bi n>ế:=<Bi u th c>;ể ứ
- Các l nh xu t nh p d li u: ệ ấ ậ ữ ệ READ/READLN, WRITE/WRITELN.
- L i g i hàm, th t c.ờ ọ ủ ụ
6.2. Câu l nh có c u trúcệ ấ
- Câu l nh ghép: ệBEGIN ... END;
- Các c u trúc đi u khi n: ấ ề ể IF.., CASE..., FOR..., REPEAT..., WHILE...
6.3. Các l nh xu t nh p d li uệ ấ ậ ữ ệ
6.3.1. L nh xu t d li uệ ấ ữ ệ
Đ xu t d li u ra màn hình, ta s d ng ba d ng sau:ể ấ ữ ệ ử ụ ạ
(1) WRITE(<tham s 1> [, <tham s 2>,...]);ố ố
Trang 5

