Documente Academic
Documente Profesional
Documente Cultură
Fie P o problem, soluia creia se afl printre elementele mulimii S cu un numr finit de elemente.
Schema de aplicare
STAR T
x s1 x satisface condiia problemei Includem x n soluie n S exist elemente necercetate d x un element necercetat din S
a n u d a n u
STO P
Problem prototip
Se consider numerele naturale din mulimea !, ", #, ..., n$. S se determine toate elementele acestei mulimi, pentru care suma cifrelor este egal cu un numr dat m.
Schema de re%ol&are
Pentru i de la 1 p'n la n: Se calculea% suma cifrelor numrului i. Dac suma cifrelor este egal cu m includem i 'n soluie Particulariti de implementare (enerarea )i cercetarea consecuti& a elementelor mulimii S.
+erificarea apartenenei elementului cercetat si la soluie Plasarea elementului curent 'n soluie (enerarea urmtorului element al mulimii ,dac e necesarProblem S se scrie un program care determin toate sec&enele binare de lungime n, fiecare din ele conin'nd nu mai puin de k cifre de 1. Intrare: numere naturale n, 1<n<20, )i k, k<n, se citesc de la tastatur. Ieire: fiecare linie a fi)ierului te.t OUT.TXT &a conine c/te o sec&en binar distinct, ce corespunde condiiilor din enunul problemei.
0nali%a problemei
1umrul sec&enelor binare de lungime n este 2n, finit. ,&e%i: 2nformatica, manual pentru clasa 3Prin urmare, pentru problema dat poate fi aplicat metoda trierii.
Modelul matematic
555 55 = 54 ...
n
555 5! = !4 ...
n
Elementele mulimii S pot fi interpretate ca numere {0, 1, 2, ..., 2n-1}, repre entate pe n po iii binare. !entru "enerarea consecuti# a sec#enelor binare se #a utili a formula$
"
Separarea subproblemelor
(enerarea sec#enelor binare de lun"ime n cu r, r>k uniti
Structuri de date
tablou unidimensional cu n elemente, ce pot primi #aloarea 0 sau 1. !entru problema propus n nu dep*e* #aloarea 20. fi*ier text pentru stocarea soluiei.
Algoritm
2niiali%m &ariabilele n )i k, fi)ierul de ie)ire, tabloul B. a!ul 1. Cercetarea secvenei curente
Dac Dac
r k, sec&ena curent B este 'nscris 'n fi)ierul de ie)ire. r = n se 'nchide fi)ierul de ie)ire, apoi STO
.
in
at/t timp c/t B[i]
B[i]
$%&'()(TII: ro*ram Triere+ con!t nma,-20+ t.pe !ec/enta01arra.01..nma,1 of 0..1+ /ar b:!ec/enta01+ r2i2n2k:inte*er+ f:te,t+ 3U4&TII: function numara1:inte*er+ /ar !25:inte*er+ be*in !:-0+ for 5:-1 to n do !:-!6b051+ numara1:-!+ end+ )O&%$U))I: procedure !crie+ /ar 5: inte*er+ be*in for 5:-1 to n do 7rite 8f2b0519+ end+
7riteln8f9+
procedure urmator 8/ar ,:!ec/enta019+ /ar 5:inte*er+ be*in 5:-n+ 7:ile ,051-1 do be*in ,051:-0+ 5:-5;1+ end+ end+
,051:-1+
<'O&U' $% &('&U': be*in readln8n2k9+ a!!i*n8f2=OUT.TXT=9+re7rite8f9+ for i:-1 to n do b0i1:-0+ repeat r:- numara1+ 6
if r >- k t:en !crie+ if r < n t:en urmator8b9+ until r-n+ clo!e8f9+ end.