Professional Documents
Culture Documents
Giao Trinh Va Bai Tap Pascal Lop 11
Giao Trinh Va Bai Tap Pascal Lop 11
Giao Trinh Va Bai Tap Pascal Lop 11
Bi tp Pascal
LI M U
CC THNH PHN C BN CA
NGN NG LP TRNH PASCAL
Pascal l mt ngn ng lp trnh bc cao do Niklaus Wirth, gio s in ton trng
i hc k thut Zurich (Thy S) xut nm 1970. ng ly tn Pascal k nim
nh ton hc v nh trit hc ngi Php ni ting Blaise Pascal.
1. Cc tp tin cn thit khi lp trnh vi Turbo Pascal
lp trnh c vi Turbo Pascal, ti thiu cn 2 file sau:
TURBO.EXE: Dng son tho v dch chng trnh.
TURBO.TPL: Th vin cha cc n v chun chy vi TURBO.EXE.
Ngoi ra, mun lp trnh ho th phi cn thm cc tp tin:
GRAPH.TPU: Th vin ho.
*.BGI: Cc file iu khin cc loi mn hnh tng ng khi dng ho.
*.CHR: Cc file cha cc font ch ha.
2. Cc bc c bn khi lp mt chng trnh Pascal
Bc 1: Son tho chng trnh.
Bc 2: Dch chng trnh (nhn phm F9), nu c li th phi sa li.
Bc 3: Chy chng trnh (nhn phm Ctrl-F9).
3. Cu trc chung ca mt chng trnh Pascal
{ Phn tiu }
PROGRAM Tn_chng_trnh;
{ Phn khai bo }
USES ......;
CONST .....;
TYPE .......;
VAR
........;
PROCEDURE ............;
FUNCTION ..............;
...............
{ Phn thn chng trnh }
BEGIN
...........
END.
V d 1: Chng trnh Pascal n gin nht
BEGIN
CC KIU D LIU C BN
KHAI BO HNG, BIN, KIU, BIU THC V CU LNH
I. CC KIU D LIU C BN
1. Kiu logic
- T kha: BOOLEAN
- min gi tr: (TRUE, FALSE).
- Cc php ton: php so snh (=, <, >) v cc php ton logic: AND, OR, XOR,
NOT.
Trong Pascal, khi so snh cc gi tr boolean ta tun theo qui tc: FALSE < TRUE.
Gi s A v B l hai gi tr kiu Boolean. Kt qu ca cc php ton c th hin
qua bng di y:
A
TRUE
TRUE
FALSE
FALSE
B
TRUE
FALSE
TRUE
FALSE
A AND B
TRUE
FALSE
FALSE
FALSE
A OR B
TRUE
TRUE
TRUE
FALSE
A XOR B
FALSE
TRUE
TRUE
FALSE
NOT A
FALSE
FALSE
TRUE
TRUE
2. Kiu s nguyn
2.1. Cc kiu s nguyn
Tn kiu
Shortint
Byte
Integer
Word
LongInt
Phm vi
-128 127
0 255
-32768 32767
0 65535
-2147483648 2147483647
Dung lng
1 byte
1 byte
2 byte
2 byte
4 byte
A
B
A AND B
A OR B A XOR B
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
n
SHL (php dch tri): a SHL n a 2
SHR (php dch phi): a SHR n a DIV 2n
3. Kiu s thc
3.1. Cc kiu s thc
:
Tn kiu
Single
Real
Double
Extended
Phm vi
1.510-45 3.410+38
2.910-39 1.710+38
5.010-324 1.710+308
3.410-4932 1.110+4932
NOT A
0
0
1
1
Dung lng
4 byte
6 byte
8 byte
10 byte
10
1
a.b. sin( ) vi a,b l di 2 cnh v l gc
2
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.
Bi tp 2.2: Vit chng trnh tnh
tng:
1
Ta c:
x = xn = en
x , x>0.
ln x
Program Tinh_can_bac_n_cua_x;
Var x,S: Real;
n: Word;
Begin
Write('Nhap vao n= '); Readln(n);
11
x+ y
x
2+
y
b/
( a + 4)( b 2c + 3)
r
9( a 1)
2h
c/ xy , x>0
2
d/ e | a + sin ( x) x|
Bi tp 2.5: Vit chng trnh tnh sin tch tam gic theo cng thc sau:
12
p( p a)( p b)( p c) vi p =
1
(a+b+c)
2
A.xi + B. y i + C
A2 + B 2
Bi tp 2.7: Vit chng trnh tch mt s n thnh 2 s a, b sao cho tch P=a*b2 t
cc i vi n c nhp vo t bn phm.
Gi :
Gi x l s th hai th s th nht l: (n-x). Theo ta c: P(x) = x2.(n-x).
Hm P t cc i khi P(x) = -3x2 + 2nx = 0 x = 2n/3.
Bi tp 2.8: Mn hnh ha ca mt my tnh c phn gii: 640x480. Bit rng,
mi im trn mn hnh chim 1 byte. Hi cn bao nhiu byte lu tr ton b mn
hnh ha ?
C 2 sinh vin vit chng trnh tnh s byte lu tr mn hnh ha:
Program Sinhvien1;
Var a,b:integer;
s:Word;
Begin
a:=640; b:=480;
s:=a*b;
writeln(s); readln;
End.
Program Sinhvien2;
Var a,b:Word;
s: LongInt;
Begin
a:=640; b:=480;
s:=a*b;
writeln(s); readln;
End.
Hy cho bit 2 chng trnh trn cho kt qu ng hay sai? Ti sao?
Bi tp 2.9: Mn hnh ha ca mt my tnh c phn gii: 640x480. Bit rng,
mi im trn mn hnh chim 1 byte. Hi cn bao nhiu byte lu tr mt vng c
kch thc bng 1/10 mn hnh ha ?
C 2 sinh vin vit chng trnh gii bi ton ny nh sau:
Program Sinhvien1;
13
14
CC CU LNH C CU TRC
I. CU LNH R NHNH
1.1. Lnh IF
C php:
(1) IF B THEN S;
(2) IF B THEN S1 ELSE S2;
S thc hin:
(1)
(2)
S1
...
S2
...
Dng 2
CASE B OF
Const 1: S1;
Const 2: S2;
...
Const n: Sn;
ELSE Sn+1;
END;
Trong :
) B: Biu thc kiu v hng m c nh kiu nguyn, kiu logic, kiu k t,
kiu lit k.
15
Dng li
Bin m:=Min
Bin m:=Max
Bin m<=Max
+
S;
INC(Bin m);
Bin m>=Max
Thot
S;
DEC(Bin m);
Thot
16
While
S
B
+
S;
Thot
Thot
BI TP MU
Bi tp 3.1: Vit chng trnh nhp vo mt s nguyn 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
Writeln('So vua nhap vao la so chan')
Else
Writeln('So vua nhap vao la so le');
17
18
19
20
21
abc
sao cho:
abc
= a3 + b3 + c3.
22
23
24
25
26
27
28
{A=10 B=200}
{A=50 B=200}
IV. QUI
4.1. Khi nim qui
Trong mt chng trnh, mt CTC c th gi mt CTC khc vo lm vic. Nu nh
CTC gi li chnh n th gi l s qui.
4.2. Phng php thit k gii thut qui
Tham s ha bi ton
Tm trng hp suy bin.
Phn tch cc trng hp chung (a v cc bi ton cng loi nhng nh hn).
V d: Vit hm qui tnh n! = 1.2...n.
Tham s ha: n! = Factorial(n);
Factorial(0) = 1
(trng hp suy bin)
Factorial(n) = n*Factorial(n-1) (trng hp chung)
Function Factorial(N:integer):Longint;
Begin
If N=0 Then Factorial:=1
Else Factorial:=N*factorial(N-1); { li gi qui }
End;
4.3. Gii thut quay lui
Bi ton:
Hy xy dng cc b gi tr gm n thnh phn (x1,...,xn) t mt tp hu hn cho
trc sao cho cc b tha mn yu cu B cho trc no .
29
30
31
Ch :
Tn ca Unit phi trng vi tn file.
Ch c nhng chng trnh con c khai bo phn INTERFACE mi s
dng c cc chng trnh khc.
Cc th tc v hm c khai bo phn INTERFACE th bt buc phi c
trong phn IMPLEMENTATION.
5.2. V d minh ha
To Unit MYTOOL lu file MYTOOL.PAS.
UNIT MYTOOL;
INTERFACE
USES CRT;
VAR m:Integer;
Procedure WriteXY(x,y:Integer; St:String);
Function UCLN(a,b:Integer):Integer;
Function NGUYENTO(n:Word):Word;
IMPLEMENTATION
Procedure WriteXY(x,y:Integer; St:String);
Var i:Byte;
Begin
Gotoxy(x,y); Write(St);
End;
Function UCLN(a,b:Integer):Integer;
Begin
While a<>b Do
Begin
If a>b Then a:=a-b Else b:=b-a;
End;
UCLN:=a;
End;
Function NGUYENTO(n:Word):Boolean;
Var d,i:Word;
Begin
d:=0;
For i:=2 To n DIV 2 Do
If n MOD i=0 Then d:=d+1;
NGUYENTO:=d=0;
32
33
34
35
36
A(m,n) =
A(m 1,1) , n = 0
A(m 1, A(m, n 1)) , m > 0 n > 0
F(n) =
37
I. KHAI BO MNG
C php:
TYPE <Kiu mng> = ARRAY [ch s] OF <Kiu d liu>;
VAR <Bin mng>:<Kiu mng>;
hoc khai bo trc tip:
VAR <Bin mng> : ARRAY [ch s] OF <Kiu d liu>;
V d:
TYPE Mangnguyen = Array[1..100] of Integer;
Matrix = Array[1..10,1..10] of Integer;
MangKytu = Array[Byte] of Char;
VAR A: Mangnguyen;
M: Matrix;
C: MangKytu;
hoc:
VAR A: Array[1..100] of Integer;
C: Array[Byte] of Char;
II. XUT NHP TRN D LIU KIU MNG
- truy cp n phn t th k trong mng mt chiu A, ta s dng c php: A[k].
- truy cp n phn t (i,j) trong mng hai chiu M, ta s dng c php: M[i,j].
- C th s dng cc th tc READ(LN)/WRITE(LN) i vi cc phn t ca bin
kiu mng.
BI TP MU
Bi tp 5.1: Vit chng trnh tm gi tr ln nht ca mt mng cha cc s nguyn
gm N phn t.
tng:
- Cho s ln nht l s u tin: Max:=a[1].
- Duyt qua cc phn t a[i], vi i chy t 2 ti N: Nu a[i]>Max th thay
Max:=a[i];
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
38
39
40
41
42
43
44
45
7
5
3
6
1
8
3 16
20 8
Ty 7 25
24 12
11 4
Bc
9
21
13
5
17
Nam
22 15
14 2
1 19 ng
18 6
10 23
Phung php:
Xut pht t bn phi ca nm gia. i theo hng ng bc in cc s 1,
2, ...
Khi in s, cn ch mt s nguyn tc sau:
- Nu vt ra pha ngoi bn phi ca bng th quay tr li ct u tin.
- Nu vt ra pha ngoi bn trn ca bng th quay tr li dng cui cng.
- Nu s in k chia ht cho N th s tip theo s c vit trn cng mt hng
vi k nhng cch 1 v pha bn phi.
Uses Crt;
Var A:Array[1..20,1..20] Of Word;
n,i,j,k:Word;
Begin
Write('Nhap N= '); Readln(n);
Clrscr;
{nh v xut pht}
i:=n DIV 2 + 1;
j:=n DIV 2 + 2;
{in cc s k t 1 n n*n}
For k:=1 To n*n Do
Begin
A[i,j]:=k;
If k MOD n=0 Then j:=j+2
Else Begin
{i theo hng ng bc}
j:=j+1; i:=i-1;
End;
If j>n Then j:=j MOD n;
If i=0 Then i:=n;
End;
{In kt qu ra mn hnh}
For i:=1 To n Do
Begin
46
47
48
49
50
A
k =1
ik
* Bkj
Bi tp 5.17: Vit chng trnh nhp vo 2 dy s nguyn (a)n v (b)m, mn. Kim tra
xem dy {b} c phi l dy con ca dy {a} khng?
Bi tp 5.18: Vit chng trnh nhp vo mt dy s nguyn a1, a2, ..., an. Tm trong
dy {a} mt dy con tng dn di nht (c s phn t ln nht) v in ra mn hnh dy
con .
Bi tp 5.19: Cho mng 2 chiu A cp mxn. Vit chng trnh sp xp li mng A theo
yu cu sau:
a/ Cc phn t trn mi dng c sp xp theo th t gim dn.
b/ Cc dng c sp xp li theo th t tng dn ca tng cc phn t trn mi
dng.
Bi tp 5.20: Vit chng trnh kim tra mt dy cc s nguyn c nhp vo t
bn phm c sp theo th t tng dn hay cha theo 2 cch: qui v khng
qui.
Gi :
- Nu dy c 1 phn t th dy tng dn.
- Ngc li:
+ Nu A[n-1]>A[n] th dy khng tng dn.
+ Ngc li: Gi qui vi dy c n-1 phn t (b bt i phn t cui cng).
Bi tp 5.21: Vit chng trnh nhp vo 2 mng s nguyn A, B i din cho 2 tp
hp (khng th c 2 phn t trng nhau trong mt tp hp). Trong qu trnh nhp, phi
kim tra: nu phn t va nhp vo c trong mng th khng b sung vo mng.
a/ In ra mn hnh hp ca 2 tp hp A, B.
b/ In ra mn hnh hiu ca 2 tp hp A, B.
Gi :
a/ - In ra mn hnh tt c cc phn t ca tp hp A.
- Duyt qua tt c cc phn t biB. Nu biA th in bi ra mn hnh.
b/ Duyt qua tt c cc phn t aiA. Nu aiB th in ai ra mn hnh.
Bi tp 5.22: Vit chng trnh tnh tng ca 2 a thc h(x) = f(x) + g(x). Trong ,
mi a thc c dng: a0 + a1x + a2x2 + ... + anxn.
Gi :
Dng cc mng A, B, C lu tr cc h s ai ca cc a thc f(x), g(x) v h(x).
51
52
53
54
55
56
57
58
59
60
61
62
63
Record
a,b:Real;
End;
Var c1,c2,c3:Complex;
dau:string;
Begin
Writeln(Nhap so phuc c1:);
Write(Phan thuc a = ); Readln(c1.a);
Write(Phan ao b = ); Readln(c1.b);
Writeln(Nhap so phuc c2:);
Write(Phan thuc a = ); Readln(c2.a);
Write(Phan ao b = ); Readln(c2.b);
{Tnh tng 2 s phc}
c3.a := c1.a + c2.a;
c3.b := c1.b + c2.b;
{In kt qu ra mn hnh}
Writeln(Tong cua 2 so phuc:);
If c1.b>=0 Then dau:=+i else dau:=-i;
Writeln(c1 = , c1.a:0:2, dau, abs(c1.b):0:2); {S phc c1}
If c2.b>=0 Then dau:=+i else dau:=-i;
Writeln(c2 = , c2.a:0:2, dau, abs(c2.b):0:2); {S phc c2}
Writeln(La so phuc:);
If c3.b>=0 Then dau:=+i else dau:=-i;
Writeln(c3 = , c3.a:0:2, dau, abs(c3.b):0:2); {S phc c3}
Readln;
End.
Bi tp 7.2: Vit chng trnh qun l im thi Tt nghip ca sinh vin vi 2 mn thi:
C s v chuyn ngnh. Ni dung cng vic qun l bao gm:
Nhp im cho tng sinh vin.
In danh sch sinh vin ra mn hnh.
Thng k s lng sinh vin thi u.
In ra mn hnh hnh danh sch nhng sinh vin b thi li.
64
65
66
1 n
dt(S)= | (xi yi+1 xi+1yi ) |
2 i=1
trong : (xi,yi) l ta nh th i ca a gic S.
b/ Nhp vo thm mt im P(x,y). Hy kim tra xem P nm trong hay ngoi a
gic S.
tng:
Ni P vi cc nh ca a gic S th ta c n tam gic: Si= PPiPi+1, vi Pn+1=P1.
n
Nu
dt(S ) = dt(S) th P S.
i =1
Uses Crt;
Type Toado=Record
x,y:integer;
end;
Mang=array[0..30] of Toado;
Var n:Byte;
A:Mang;
P:ToaDo;
Procedure NhapDinh(var n:Byte; Var P:Mang);
Var i:Byte;
Begin
Write('Nhap so dinh cua da giac n = '); readln(n);
For i:=1 to n do
Begin
Write('P[',i,'].x = ');readln(P[i].x);
Write('P[',i,'].y = ');readln(P[i].y);
End;
End;
Function DienTichDaGiac(n:Byte;P:Mang):real;
Var i,j:integer;
s:real;
Begin
s:=0;
for i:= 1 to n do
begin
if i=n then j:=1 else j:=i+1;
s:=s+((P[i].x*P[j].y-P[j].x*P[i].y));
67
68
im Ngoi ng
9
5
.....................
im T.Bnh Xp loi
8.5
Gii
6.0
T.Bnh
............
..............
c/ In ra mn hnh danh sch nhng sinh vin phi thi li (n mt trong hai mn).
d/ In ra danh sch nhng sinh vin xp loi Gii.
e/ Tm v in ra mn hnh nhng sinh vin c im trung bnh cao nht lp.
f/ Sp xp li danh sch sinh vin theo th t Alphabet.
g/ Sp xp li danh sch sinh vin theo th t gim dn ca im trung bnh.
h/ Vit chc nng tra cu theo tn khng y ca sinh vin. V d: Khi nhp vo
tn Phuong th chng trnh s tm v in ra mn hnh thng tin y ca nhng sinh
vin c tn Phuong (chng hn nh: Pham Anh Phuong, Do Ngoc Phuong, Nguyen
Nam Phuong...).
Bi tp 7.6: Vit chng trnh qun l sch th vin gm cc trng sau: M s
sch, Nhan , Tn Tc gi, Nh Xut bn, Nm xut bn.
a/ Nhp vo kho sch ca th vin (gm tt c cc trng).
b/ In ra mn hnh tt c cc cun sch c trong th vin.
c/ Tm mt cun sch c m s c nhp vo t bn phm. Nu tm thy th in ra
mn hnh thng tin y ca cun sch , ngc li th thng bo khng tm thy.
c/ Tm v in ra mn hnh tt c cc cun sch c cng tc gi c nhp vo t bn
phm.
d/ Lc ra cc cun sch c xut bn trong cng mt nm no .
e/ Tm v in ra mn hnh cc cun sch m nhan c cha t bt k c nhp
vo t bn phm.
69
70
71
72
73
74
75
76
77
78
79
80
KQ.OUT
54
5
3 8 1 5
15 4 8 12 12
5 7 8 0
4 3 1 6
2 4 1 7
3 6 8 -5
Program Vidu_8;
Var
f,g: Text;
S:array[byte] of real;
m,n,i,j: byte;
Begin
assign(f,MT.INP);
reset(f);
readln(f,m,n);
fillchar(S,m,0);
for i:= 1 to m do
begin
for j:=1 to n do
begin
read(f,x);
S[i]:=S[i]+x;
end;
81
d il = aij * b jk * c kl
j =1 k =1
Program Vidu_9;
Var
f,g: Text;
A, B, C, D:array[1..100,1..100] of integer;
m,n,p,q,i,j,k,l,r,s: byte;
Begin
assign(f,MATRIX.INP);
reset(f);
readln(f,m,n,p,q);
fillchar(D,mxq,0);
for i := 1 to m do
begin
for j:= 1 to n do read(f,A[i,j]);
readln(f);
end;
for j:= 1 to n do
begin
for k:=1 to p do read(f,B[j,k]);
readln(f);
82
83
84
Bi tp 8.11: Vit chng trnh sao chp ni dung ca mt file cho trc vo file khc,
tn ca file ngun v file ch c nhp t bn phm khi chy chng trnh.
Program Sao_chep_File;
const
bufsize = 200;
var
f,g: file;
File_nguon, file_dich: String;
Buf: array[1..63000] of Byte;
No_read, Temp: integer;
Begin
write(Nhap ten file nguon: );
readln(file_nguon);
assign(f,file_nguon);
reset(f);
write(Nhap ten file dich: );
readln(file_dich);
assign(g,file_dich);
rewrite(g);
Temp:= filesize(f);
while Temp > 0 do
begin
if bufsize < =Temp then
No_read:= bufsize
else
No_read:= Temp;
BlockRead((f, Buf, No_read);
BlockWrite(g,Buf, No_Read);
Temp:=Temp No_read;
end;
close(g);
End.
BI TP T GII
Bi tp 8.12: Vit chng trnh i tn mt file c trn a.
Gi :
Dng th tc Rename.
Bi tp 8.13: Vit chng trnh xa mt file c trn a.
85
86
87
88
Y [i ] = A[i, j ]* X [ j ]
j =1
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
HA
I. MN HNH TRONG CH HA ( GRAPHIC)
Hnh nh trong ch ha c to ra bng cc im nh (Pixel), s im nh
ca mn hnh ha ty thuc vo tng loi CARD mn hnh v MODE qui nh cho
mn hnh .
Vic lp trnh trong ch ha cn phi xc nh c loi mn hnh ang s
dng v chng trnh phi vn hnh c trn nhiu loi mn hnh khc nhau.
Ta ca mt im nh trn mn hnh ha cng ging nh trong ch vn
bn (TEXT) vi im nh u tin trn gc tri mn hnh l (0,0), ta nh di
phi ty thuc vo phn gii ca mn hnh, CARD mn hnh v MODE mn hnh.
(0,0)
(MaxX,MaxY)
d dng c ch ha trn mn hnh, ta cn phi c cc File sau:
GRAPH.TPU Cha cc lnh ha
* .BGI
Cha Font mn hnh
* .CHR
Cha Font k t
II. KHI TO V THOT KHI CH HA
2.1. Khi to ch ha
Th tc INITGRAPH(Gd,Gm:Integer; Path:String);
trong :
- Gd: Ch CARD mn hnh.
Thng thng, mt chng trnh phi c chy trn nhiu loi mn hnh khc
nhau nn ta c th khai bo:
Gd = Detect
(=0)
Vi hng Detect, my s t ng tm CARD mn hnh tng ng chy chng
trnh.
- Gm: Ch MODE mn hnh.
Trong trng hp khai bo Gd = Detect th khng cn thit phi khai bo Gm v
my tnh s t xc nh loi CARD mn hnh v thit lp ch MODE mn hnh
tng ng vi CARD mn hnh .
- Path: ng dn n ni cha cc file *.BGI. Nu Path = th ta hiu l cc file
*.BGI nm trong th mc hin hnh.
Hm GRAPHRESULT:Integer;
Hm ny tr v kt qu ca vic khi ng ha.
= 0 : Thnh cng.
<>0 : B li.
Tn ca li c xc nh bi hm GRAPHERRORMSG(Er:Integer):String;
113
114
115
116
117
(x2,y2)
C np
Top = TRUE: Hnh hp c np.
Top = FALSE: Hnh hp khng c np.
Khng c np
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
tng:
c dng pht sinh k tip, mi on thng c thay bi mt hnh gy gm 2
on ngn hn to vi nhau mt gc 900. Cc on mi c di bng 1/ 2 ln on
bc trc.
Xt hng v mt u ca on thng. v hnh gy, hng v quay tri 450, v
mt on, quay phi 900, v on th hai v sau tr v hng c bng cch quay
gc 450.
Uses graph,crt;
Procedure ThietLapDohoa;
Var gd,gm,gr:integer;
Begin
gd:=0;
Initgraph(gd,gm,'D:\bp\bgi');
End;
PROCEDURE VeC_Cung;
Var n:Integer;
Goc,length:real;
Procedure Rong(dir,len:real;n:integer);
const d=0.7071067;
rads=0.017453293;
begin
if n>1 then
begin
dir:=dir+45;
Rong(dir,len*d,n-1);
dir:=dir-90;
Rong(dir,len*d,n-1);
dir:=dir+45;
end
else LineRel(Round(len*cos(rads*dir)),Round(len*sin(rads*dir)));
end;
136
C Cung
Bi tp 10.13: Vit chng trnh v tp Mandelbrot - l mt hnh trong mt phng
phc. Tp Mandelbrot c pht sinh theo cng thc sau:
z z2 + c (*)
Tp hp Mandelbrot l tp bao gm nhng s phc c sao cho z2+c vn hu hn vi
mi ln lp.
tng:
Ta chn s phc c nh c v tnh biu thc z2+c vi z l s phc bin i.
Nu chn z = 0 th z2+c = c. Thay z vo cng thc (*) ta c c2+c.
Tip tc thay z bng gi tr mi, ta li c: (c2+c)2+c, ...
C nh vy, ta thu c mt dy v hn cc s z.
Uses crt,graph;
Const row=1;
col=1;
Var x1,y1,x2,y2,kx,ky:real;
Gioihan:Byte;
x0,y0:word;
Diemduoi,Diemtren:Integer;
Procedure ThietLapDohoa;
Var gd,gm,gr:integer;
Begin
gd:=0;
Initgraph(gd,gm,'D:\bp\bgi');
End;
137
138
Tp MandelBrot
Bi tp 10.14: Vit chng trnh m phng php quay mt tam gic quanh gc ta
.
tng:
Cos ( ) Sin( )
139
140
c/ y =
Bi tp 10.20: Hnh v cung Koch da trn 3 cnh ca tam gic u nh hnh sau:
141
142
MC LC
Li m u ...................................................................................................................... 1
Chng 1: CC THNH PHN C BN CA NGN NG LP TRNH
PASCAL .......................................................................................................................... 2
Chng 2: CC KIU D LIU C BN KHAI BO HNG, BIN, KIU,
BIU THC V CU LNH
I. Cc kiu d liu c bn .............................................................................................. 6
II. Khai bo hng ............................................................................................................ 8
III. Khai bo bin ........................................................................................................... 8
IV. nh ngha kiu ........................................................................................................ 9
V. Biu thc..................................................................................................................... 9
VI. Cu lnh .................................................................................................................... 9
Bi tp mu ................................................................................................................... 11
Bi tp t gii................................................................................................................ 12
Chng 3: CC CU LNH C CU TRC
I. Lnh r nhnh ........................................................................................................... 15
II. Lnh lp.................................................................................................................... 16
Bi tp mu ................................................................................................................... 17
Bi tp t gii................................................................................................................ 24
Chng 4: CHNG TRNH CON: TH TC V HM
I. Khi nim v chng trnh con ............................................................................... 27
II. Cu trc chung ca mt chng trnh c s dng CTC ..................................... 27
III. Bin ton cc v bin a phng ........................................................................ 28
IV. qui....................................................................................................................... 29
V. To th vin (UNIT)................................................................................................ 31
Bi tp mu ................................................................................................................... 33
Bi tp t gii................................................................................................................ 36
Chng 5: D LIU KIU MNG
I. Khai bo mng .......................................................................................................... 38
II. Xut nhp trn d liu kiu mng ......................................................................... 38
Bi tp mu ................................................................................................................... 38
Bi tp t gii................................................................................................................ 50
Chng 6: XU K T
I. Khai bo kiu xu k t ........................................................................................... 53
II. Truy xut d liu kiu String................................................................................. 53
III. Cc php ton trn xu k t ............................................................................... 53
143
144