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 uPh m viDung 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 uPh m viDung 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