Professional Documents
Culture Documents
focus
FILL.
TEORIE i APLICAII
Algoritmul
Consideraii teoretice
AXY 2
fill(X, Y + 1)
fill(X + 1, Y)
fill(X, Y - 1)
fill(X - 1, Y)
sfrit dac
sfrit algoritm
algoritm fill(X, Y)
dac AXY = 0 atunci
35
focus
K1
AXY 2
ST1K X
ST2K Y
36
KK+1
ST1K ST1,K-1 - 1
ST2K ST2,K-1
sfrit dac
dac X < N i AX+1,Y = 0
i nu continu
atunci
continu adevrat
AX+1,Y 2
KK+1
ST1K ST1,K-1 + 1
ST2K ST2,K-1
sfrit dac
dac Y > 1 i AX,Y-1 = 0
i nu continu
atunci
continu adevrat
AX,Y-1 2
KK+1
ST1K ST1,K-1
ST2K ST2,K-1 - 1
sfrit dac
dac Y < M i AX,Y+1 = 0
i nu continu
atunci
continu adevrat
AX,Y+1 2
KK+1
ST1K ST1,K-1
ST2K ST2,K-1 + 1
sfrit dac
sfrit ct timp
KK-1
sfrit ct timp
sfrit dac
sfrit algoritm
Aplicaii
Exist o serie de probleme care pot fi
privite drept aplicaii i adaptri ale
algoritmului FILL.
Prezentm n continuare patru
astfel de probleme.
6
6
4
9
9
2
9
8
3
3
4
4
Rspuns corect:
dac X > 1 i AX-1,Y = 0
i nu continu
atunci
continu adevrat
AX-1,Y 2
Labirint
Un labirint este codificat printr-o matrice binar cu N linii i M coloane.
Considerm c singura ieire din
labirint este celula de coordonate (N,
M).
2 3
3 2
// "umplerea" matricei B
pentru toate celulele (L, C) de
pe marginea matricei B
i nu BLC execut
fill(L, C)
sfrit pentru
// afiarea rezultatelor
pentru I 1, N execut
pentru J 1, M execut
sfrit algoritm
ncheiere
Ne exprimm sperana c acest articol se va dovedi util pentru clarificarea mecanismului algoritmului FILL.
De asemenea, propunem cititorilui rezolvarea aplicaiilor enunate
n cadrul acestui articol.
Bibliografie
1. Radu Viinescu, Bazele programrii - prin exerciii i probleme - ,
Editura Petrion, 2002;
2. ***, probleme propuse la concursurile de programare.
// iniializarea matricei B
pentru I 1, N execut
pentru J 1, M execut
BIJ fals
sfrit pentru
sfrit pentru
sfrit pentru
sfrit pentru
focus
subalgoritm fill(L, C)
dac nu BLC atunci
BLC adevrat
37