Sei sulla pagina 1di 10

Fie P o problem, soluia creia se afl printre elementele mulimii S cu un numr finit de elemente.

S={s1, s2 , s3 , ... , sn}

Soluia se determin prin analiza fiecrui element si din mulimea S.

START

x s1

condiia problemei
da

x satisface

nu

Includem x n soluie n S exist elemente necercetate


da nu

STOP

x un element necercetat din S

Se consider numerele naturale din mulimea {1, 2, 3, ..., n}. S se determine toate elementele acestei mulimi, pentru care suma cifrelor este egal cu un numr dat m. Schema de rezolvare

Pentru i de la 1 pn la n:

Se calculeaz suma cifrelor numrului i. Dac suma cifrelor este egal cu m includem i n soluie

Generarea i cercetarea consecutiv a elementelor mulimii S. Utilizarea funciilor i procedurilor pentru fiecare din subproblemele:
Verificarea apartenenei elementului cercetat si la

soluie Plasarea elementului curent n soluie Generarea urmtorului element al mulimii (dac e necesar)

Declaraii Program Triere; const nmax=20; type secventa01= array[1..nmax] of 0..1; var b:secventa01; r,i,n,k:integer; f:text;

Funcii function numara1:integer; var s,j:integer; begin s:=0; for j:=1 to n do s:=s+b[j]; numara1:=s; end;

Proceduri
procedure scrie; var j: integer; begin for j:=1 to n do write (f,b[j]); writeln(f); end; procedure urmator (var x:secventa01); var j:integer; begin j:=n; while x[j]=1 do begin x[j]:=0; j:=j-1; end; x[j]:=1; end;

Blocul de calcul
begin readln(n,k); assign(f,'OUT.TXT');rewrite(f); for i:=1 to n do b[i]:=0; repeat r:= numara1; if r >= k then scrie; if r < n then urmator(b); until r=n; close(f); end.

Coordonator:Zapeatnic Svetlana

Potrebbero piacerti anche