Professional Documents
Culture Documents
PHN I: PHN M U
---------------------I. L DO CHN TI :
Ngn ng lp trnh l mt trong nhng ni dung c a vo dy chnh thc
b mn Tin hc nh trng ph thng. c bit, cc lp khi chuyn Tin th yu
cu hc sinh phi nm vng cc kin thc v t duy thut ton, s dng ngn ng lp
trnh thnh tho c th gii c cc bi ton trong Tin hc.
Nh ta bit, cc php lp l mt trong nhng k thut c dng gii cc
bi ton trong Tin hc v c gii thiu phn tin hc c s. Vi cc php lp,
ta gii bi ton bng cch thc hin lin tip mt s cc cu lnh trong vng lp cho
ti khi mt iu kin no c tha mn.
Mt k thut lp trnh c s dng thay th cho cc php lp l k thut
quy. Mt khc, trong thc t c rt nhiu bi ton i hi s lp i lp li mt
cch phc tp. V quy cung cp cho ta c ch gii quyt bi ton phc tp mt
cch n gin. Hn na, quy cn thch hp gii quyt cc bi ton c bn cht
quy v rt nhiu bi ton cho n nay vn cha c li gii phi quy.
c th hiu r hn v k thut quy, ng dng ca quy gii cc bi
ton trong Tin hc chng em chn ti: Tm hiu v quy lm ti nghin
cu khoa hc ca mnh.
II. MC CH NGHIN CU:
ti : Tm hiu v quy nhm t mc ch sau: Gip cho bn thn chng
em c th hiu r hn, su hn v k thut quy, ng dng quy gii cc bi
ton trong Tin hc, t nng cao kh nng t hc, kh nng lp trnh ca bn thn.
III. PHNG PHP NGHIN CU:
Khi nghin cu ti ny chng em s dng cc phng php sau:
Phng php nghin cu l thuyt
S dng phng php thu thp thng tin v tng hp, phn tch, so snh
da trn l thuyt v quy.
IV. I TNG NGHIN CU:
i tng nghin cu ca ti ny chnh l l thuyt v quy v ng dng
ca quy gii cc bi ton trong Tin hc v cc ti liu, cc thng tin lin quan.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Stack
gt(2):= 2 * 1; v cho kt qu l 2
Nh vy kt qu cui cng tr v l 6. Ta c: 3! = 6.
5. u im v hn ch ca quy
5.1. u im:
Trang 6
6. Mt s bi ton v quy
Bi 1: Tnh lytha: an (vi n l s nguyn dng)
Program Giai_thua;
Const fi='Giaithua.inp';
fo='Giaithua.out';
Var a:longint;n: Integer;
f:text;
Procedure Doc;
Begin
Assign(f,fi);
Reset(f);
Readln(f,a,n);
Close(f);
End;
Function lt(a,n: Word): Longint;
Begin
If n = 0 then lt := 1
else lt := a * lt(a,n - 1);
End;
Procedure Ghi;
Begin
Assign(f,fo);
Trang 7
Trang 8
Trang 9
a,b:longint;
f:text;
Function
tinh(n,x:longint):real;
Begin
If n=1 then tinh:=x*sin(x)
else tinh:=x*sin(x)*(1+tinh(n-1,x));
End;
Procedure Ghi;
Begin
Assign(f,fo);
Rewrite(f);
Writeln(f,Tongsin(a,b));
Close(f);
End;
Begin
Doc;Ghi;
End.
Bi 5: Tm s o ngc
Program So_dao_nguoc;
Trang 10
Trang 11
Trang 12
Trang 13
Bc 1: Chuyn
mt a t A qua C.
Bc 2: Chuyn
mt a t A qua B.
Bc 3: Chuyn
mt a t C qua B.
Bc 4: Chuyn
mt a t A qua C.
Bc 5: Chuyn
mt a t B qua A.
Bc 6: Chuyn
mt a t B qua C.
Bc 7: Chuyn
mt a t A qua C.
* Nhn xt:
kt qu ca bc th ba. y l mt kt qu quan trng v n cho ta thy t
trng hp N=3 bi ton c phn chia thnh hai bi ton vi kch thc nh
Trang 14
Trang 15
Step
1 A C
THN(0,B,A,C)
THN(2,A,C,B)
Step
2 A B
THN(0,C,B,A)
THN(1,C,A,B)
Step
3 C B
THN(0,A,C,B)
THN(3,A,B,C) Step
4 A C
THN(0,B,A,C)
THN (1,B,C,A)
Step
5 B A
THN(0,C,B,A)
THN(2,B,A,C)
Step
6 B C
THN (0,A,C,B)
THN(1,A,B,C)
Step
7 A C
Trang 16
Trang 17
Trang 18
...
- Thc hin bc i th j:
+ nh du gi tr c chn: KT[i]:= False.
+ Gn gi tr ca i cho s th j:
Trang 19
X
j=
...
Lu vt: X[j]:=i;
- Thnh cng: khi chn N s ( j=N).
- Hy bc i th j: gn gi tr True cho KT[i]: KT[i]: =True;
Ci t chng trnh:
Program Hoanvi;
const maxn=100;
type mmc=array[1..maxn] of byte;
mang=array[1..maxn] of boolean;
var x:mmc;kt:mang;n:byte;
procedure try(j:byte);
var i,k:byte;
begin
for i:=1 to n do
if kt[i]=true then
begin
kt[i]:=false;
x[j]:=i;
if j=n then
begin
for k:=1 to n do write (x[k],' ');
writeln;
end
else try(j+1);
kt[i]:=true;
end;
end;
begin
Trang 20
Output
1
1
1
1
1
1
2
2
3
3
4
4
3
4
2
4
2
3
4
3
4
2
3
2
2
2
2
2
2
2
3
1
1
3
3
4
4
1
3
4
1
4
1
3
2
4
3
4
1
3
1
4
3
3
3
3
3
4
4
1
2
2
4
4
1
1
4
1
4
1
2
2
3
2
4
1
2
1
3
2
4
4
4
4
2
2
3
3
1
3
1
2
3
1
2
1
Trang 21
Phn tch:
D nhin ta khng nn tm li gii bng cch xt mi trng hp ng vi mi v
tr ca 8 qun hu trn bn c ri lc ra cc trng hp chp nhn c. Khuynh
hng th tng bc thot nghe c v hi l, nhng li th hin mt gii php thit
thc: n cho php tm ra tt c cc cch sp xp khng c qun hu no n c
nhau.
Nt c trng ca phng php l ch cc bc i li gii hon ton c lm
th. Nu c mt la chn c chp nhn th ghi nh cc thng tin cn thit v tin
hnh bc th tip theo. Nu tri li khng c mt la chn no thch hp c th lm
li bc trc, xa bt cc ghi nh v quay v chu trnh th vi cc la chn cn li.
Hnh ng ny c gi l quay lui, v cc gii thut th hin phng php ny gi
l gii thut quay lui.
i vi bi ton 8 qun hu: do mi ct ch c th c mt qun hu nn la chn
i vi qun hu th j, ng vi ct j, l t n vo hng no m bo an ton
ngha l khng cng hng, khng cng ng cho vi j-1 qun hu c sp xp
trc . R rng i ti cc li gii ta phi th tt c cc trng hp sp xp qun
hu u tin ti ct 1. Vi mt v tr th nh vy ta phi gii quyt bi ton 7 con hu
vi phn cn li ca bn c, ngha l ta quay li bi ton c!
Trang 22
a
ch s m
b
ch s i
c
ch s k
-7
-6
-5
T
5
T
15
-3
T
7
T
-4
16
T
6
1<=i, j<=8
Nn suy ra
2<=i +j <=16
-7<=i - j<=7
ng cho i+j
ng cho i-j
hng i
Trang 23
x
ch s k
i
1
+ Lu vt:
x[j] := i;
a[i] := false;
b[i+j] := false;
c[i-j] := false;
- Thnh cng: khi j=8 tc l t xong v tr ca 8 con hu, khi s thng bo
kt qu v tr cc con hu t, ngc li s tip tc th t cc con hu tip
theo.
- Hy bc i th j:
a[i] := true;
b[i+j] := true;
c[i-j] := true;
Th tc quy quay lui cho bi ton ny c vit nh sau:
Procedure TRY( j: byte );
Begin
For i :=1 to 8 do
If (a[i]) and (b[i+j])
Begin
x[j] := i;
a[i] := false;
b[i+j] := false;
c[i-j]:=false;
If j=8 then
Begin
For k:=1 to 8 do
write(x[k], )
writeln;
and
(c[i-j])
then
Trang 24
Trang 25
x2
5
x3
8
x4
6
x5
3
x6
7
x7
2
x8
4
1
2
7
4
5
6
8
8
2
3
4
1
6
7
3
5
Trang 26
Trang 27
-2
-2
-1
ch s m
-1
2
5
-1
-1
7
-2
ch s m
1
2
3
4
5
6
7
Khi : phng n m l di chuyn m n (i+d[m], j+c[m]).
-2
8
Trang 28
Trang 29
Trang 30
Trang 31
Trang 32
mc lc
---------------------Phn i - phn m u....................... Error! Bookmark not defined.
Phn ii - phn ni dung ................. Error! Bookmark not defined.
1. Khi nim v quy ........................................................................................ 2
1.1. Khi nim v hnh thc quy.................................................................... 2
1.2. Khi nim v quy ................................................................................... 3
1.3. Cc bc gii bi ton quy................................................................. 3
2. Gii thut quy.............................................................................................. 3
2.1. Khi nim gii thut quy ........................................................................ 3
2.2. V d ........................................................................................................... 4
3. Chng trnh con quy................................................................................. 5
3.1. Khi nim chng trnh con quy ............................................................ 5
3.2. Cu trc chnh ca chng trnh con quy ............................................... 5
4. Nguyn tc hot ng ca gii thut quy................................................... 6
4.1. Khi nim stack: ......................................................................................... 6
4.2. Nguyn tc hot ng: ................................................................................ 6
5. u im v hn ch ca quy....................................................................... 6
5.1. u im: ..................................................................................................... 6
5.2. Hn ch:...................................................................................................... 7
6. Mt s bi ton v quy ................................................................................ 7
7. quy quay lui (Back tracking) ................................................................... 18
7.1. Tng quan v quy quay lui ................................................................... 18
7.2. Gii thut tng qut................................................................................... 18
8. Mt s bi ton v quy quay lui................................................................ 19
8.1. Bi ton Tm hon v................................................................................. 19
8.2. Bi ton Tm qun hu ............................................................................. 22
8.3. Bi ton M i tun................................................................................... 27
Phn iii - phn kt lun ............... Error! Bookmark not defined.
ti liu tham kho ......................................................................................32
Trang 33