You are on page 1of 103

Autor: CAZACU N. NINA LICEUL C. A.

ROSETTI,, BUCURESTI
CAIETUL PROFESORULUI
DE
INFORMATICA
(limbaj Pascal)
Cuprins
CAP. I ALGORITMI
1 Notiunea e a!"orit#
$ Prin%ipii!e Pro"ra#arii stru%turate
& E!e#ente e 'a(a a!e !i#'a)u!ui
&.1 Stru%tura Pro"ra#e!or Pas%a!
&.$ *es%rierea sinta+ei %u a)utoru! ia"ra#e!or e sinta+a
&.& ,o%a'u!aru! !i#'a)u!ui
&.- Constante
&.. Notiunea e tip ata
1
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
&./ In0or#atii re0eritoare !a tipuri!e e ate
- Stru%turi e %ontro!
. Citirea si s%rierea ate!or
/ E+presii
1 *e0inirea %onstante!or si e%!ararea 2aria'i!e!or
3 A!"orit#i si#p!i
CAP. II TIPURI *E *ATE
1 Tipu! ta'!ou 4e0inire, e+e#p!e5
$ Tipu! strin"
& Tipu! inre"istrare 4arti%o!5
- Tipu! #u!ti#e
. 6isiere
/ Su'pro"ra#e, pro"ra#are stru%turata
CAP. III BAC7 ELEMENTAR SAU ITERATI,
1 Pro'!e#a re"ine!or
$ Pro'!e#a partitii!or unui nu#ar natura!
& Pro'!e#a p!atii unei su#e in 'an%note e 2a!ori ate
CAP .I, RECURSI,ITATE
1 6un%tii re%ursi2e
1.1 Ca!%u!u! !ui n 0a%toria!
1.$ Siru! !ui 6i'ona%%i
$ Pro%euri re%ursi2e
$.1 ,arianta re%ursi2a 'a%8
$.1.1 La'irintu!
$.1.$ Saritura %a!u!ui
$.$ A!"orit#u! e 6i!!
& *i2ie et i#pera
&.1 Ma+i#u! si #ini#u! intr9un sir
&.$ Cautare 'inara
&.& Turnuri!e in :anoi
CAP. , ANALIZA COMBINATORICA
1. Prous %arte(ian
$. Aran)a#ente
&. Su'#u!ti#i!e unei #u!ti#i
CAP .,I STRUCTURI *INAMICE
1. Sti2a 4%reare, operatii5
$. Coaa 4%reare, operatii5
&. Lista u'!u in!antuita
-. Lista %ir%u!ara
.. Ar'ori 'inari 4%reare, par%ur"ere5
/. Ar'ore!e 'inar e %autare
Bi'!io"ra0ie
$
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI


&
Introu%ere
Lu%rarea este stru%turata in / %apito!e, %uprin(an pro'!e#e!e
prin%ipa!e in eru!area !or, %on0or#a Pro"ra#ei, 0ie%are %apito! tratan
o se%tiune a %erinte!or intr9un #o %are se oreste %at #ai a%%esi'i!.
Ma)oritatea su'ie%te!or sunt tratate in pseuo%o, %ou! 0iin aso%iat.

*orinta noastra este sa9i a)uta# pe %ei %are, ur#an a%est pro0i!
e spe%ia!itate, nu sunt neaparat e!e2i e e+%eptie, %i oar e!e2i, si, spu9
ne# noi 2iitori in0or#ati%ieni.

In 0ina!u! !u%rarii, este pre(entata o 'i'!io"ra0ie %o#p!eta, eoa9
re%e #a)oritatea a!"orit#i!or nu sunt ori"ina!i, %i se!e%tati in #anua9
!e!e re%o#anate e i2erse eituri !a pro0i!u! e spe%ia!itate.
Mu!t Su%%es;

pro0. Nina Ca(a%u
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
CAPITOLUL I
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
ALGORITMI
I.1 NOTIUNEA *E ALGORITM 4RETETA, METO*A, PROCE*EU5

*e0initie:
ALGORITM este o se%2enta 0inita e operatii, oronata si %o#p!et e0inita, %are p!e%an e !a
ate4intrari5 prou%e re(u!tate 4iesiri5.
*es%rierea unui a!"orit# se 0a%e prin inter#eiu! unor propo(itii %are sunt e 0apt %o#en(i
e+e%uta'i!e, in %a(u! nostru aresate %a!%u!atoru!ui.6ie%are propo(itie spe%i0i%a o operatie 4a%tiune5
%are se ap!i%a ate!or a!"orit#u!ui eter#inan #oi0i%area a%estora.
Cara%teristi%i!e unui a!"orit#:
a5 sa 0ie 'ine e0init, e%i operatii!e %erute sa 0ie spe%i0i%ate ri"uros si 0ara a#'i"uitate=
'5 sa 0ie 0init, ai%a sa se ter#ine upa e+e%utarea unui nu#ar 0init e operatii=
%5 sa 0ie "enera! pentru re(o!2area unei %!ase e pro'!e#e.
$. A!"orit#u! !u%rea(a %u anu#ite o'ie%te. A%estea sunt:
- ate!e=
- e+presii!e=
- operatii!e.
*e0initie :
*ate!e sunt entitati asupra %arora operea(a %a!%u!atoru!, 0urni(ate in s%opu! o'tinerii unor
re(u!tate.
*ate!e pot a2ea 2a!oare 0i+a sau #oi0i%a'i!a, pri#e!e nu#inu9se %onstante, %e!e in ur#a
2aria'i!e. Intre ate pot inter2eni operatii iar re(u!tatu! sa 0ie o e+presie .
Operatii!e nu pot inter2eni e%at intre e!e#ente!e %o#pati'i!e. *ate!e se introu% su' 0or#a unui
te+t, ai%a o se%2enta e %ara%tere %e apartin unui anu#it set e %ara%tere, %e! #ai u(ua! 0iin
%ou! ASCII. In interioru! %a!%u!atoru!ui in0or#atia este "rupata in CU,INTE, 0ie%are CU,ANT
a2an o !un"i#e e n 'iti. E! este #e#orat e n ispo(iti2e %u $ 2a!ori 4> sau 15 in $?n #ouri
4stari5, une n are o 2a!oare 0i+a, e o'i%ei n@3.

-
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
I.$ PRINCIPIILE PROGRAMARII STRUCTURATE
6or#e!e %on2entiona!e e repre(entare a a!"orit#i!or
9 s%Ae#e !o"i%e 4or"ani"ra#e5=
9 !i#'a)e pseuo%o.
S%Ae#e!e !o"i%e uti!i(ea(a sa"eti pentru 0!u+u! %ontro!u!ui a!"orit#i!or 4su%%esiuni!e posi'i!e a!e
a%tiuni!or5= sa"eti!e !ea"a i0erite 0or#e "eo#etri%e %are si#'o!i(ea(a a%tiuni!e.
Li#'a)e!e pseuo%o 0o!oses% B%u2inte9 %AeieC si %ate2a re"u!i si#p!e e a!iniere.
*e0initie:
Cu2inte!e9 %Aeie sunt %u2inte %u inte!es presta'i!it %are ienti0i%a operatii!e %e se e+e%uta.
SC:EME LOGICE
1. B!o% e %itire: 42a!ori %itite5


$. B!o% e s%riere: 42a!ori re(u!tate5

&. B!o% e atri'uire:

-. B!o% e e%i(ie sau sa!t %onitionat4 %u $ iesiri5
sau:
.. B!o% e in%eputD s0arsit or"ani"ra#a:
/.B!o% e instru%tiuni 4su'a!"orit#5
.
S
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
PSEU*OCO*
Pre(inta oua tipuri e enunturi: !i#'a en"!e(a
!i#'a ro#ana
e+e#p!u: a%a +E> atun%i s%rie +
i0 +E> tAen Frite + et%.
TEOREMA LUI GACOPINI: 4TEOREMA *E STRUCTURA5
Ori%e a!"orit# a2an o intrare si o iesire poate 0i repre(entat %a o %o#'inatie a & stru%turi:
a5 se%2enta 4su%%esiunea e $ sau #ai #u!te operatii5=
'5 e%i(ia 4a!e"erea unei optiuni in $ posi'i!e5=
%5 %i%!u! %u test initia! 4repetarea unei a%tiuni atat ti#p %at o %onitie este inep!inita5.
In p!us, eri2ate in a, ', %, #ai sunt in%a & 2ariante uti!i(ate e %atre Pro"ra#area stru%turata:
5 se!e%tia 4a!e"erea in #ai #u!te %a(uri posi'i!e5=
e5 %i%!u! %u te+t 0ina!
05 %i%!u! %u %ontor iteratii
SC:EMA LOGICA A STRUCTURILOR *E BAZA
I.$.1 Se%2enta 4stru%tura e %a!%u!5



A este o trans0or#are e ate:
- una sau #ai #u!te atri'uiri, sau %a!%u!are ur#ata e atri'uire %a e e+e#p!u : + >, H
%os4+5Isin4+5 et%.
- una sau #ai #u!te enunturi: %itire, a0isare %a e e+e#p!u : rea!n4+5= Frite4+IH5= 4in interioru!
Pro"ra#u!ui, nu introu%ere e ate initia!e 5

I.$.$ *e%i(ia

C
A B
Se e2a!uea(a %onitia C: a%a C este ae2arata atun%i se e+e%uta se%2enta A, a%a nu se e+e%uta
se%2enta B.
PSEU*OCO*: a%a C atun%i A a!t0e! B respe%ti2 : i0 C tAen A e!se B
,arianta 0or#a s%urta :
Se e2a!uea(a %onitia C : a%a C este ae2arata atun%i se e+e%uta se%2enta A.
PSEU*OCO* : a%a C atun%i A respe%ti2 : i0 C tAen A

NU
C


/
S

*A
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI

I. $.& Ci%!u! 4'u%!a, iteratia5 :
9 %u test initia!
Se e2a!uea(a %onitia C : a%a C este ae2arata, se e+e%uta se%2enta A, apoi %i%!u! se reia:
se e2a!uea(a C, a%a C este ae2arata atun%i se e+e%uta A.
PSEU*OCO* : %at ti#p C e+e%uta A FAi!e C o A

NU
C
*A
A
- %u test 0ina!
Se e+e%uta se%2enta A. Se e2a!uea(a %onitia C. Cat ti#p %onitia C nu este ae2arata se reia %i%!u! :
se e+e%uta A, se e2a!uea(a C.
PSEU*OCO* :
repeta A pana %an C repeat A unti! C

A
NU
C

*A
- %u %ontor
Se%2enta A se e+e%uta in ti#p %e
un nu#arator 4%ontor5 ia 2a!ori
intre o 2a!oare initia!a 2i si res9
pe%ti2 o 2a!oare 0ina!a 20. NU *A
Intre 2a!ori %onse%uti2e %onto9
ru! %reste %u 2a!oarea pas. C
A

Contor 9%ontor Ipas
PSEU*OCO*
1
C
C
contor i
OF
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
pentru %ontor @ 2i, 20, pas e+e%uta A sau : 0or %ontor:@2i to 4oFnto5 20 o A
I.$.- Se!e%tia 4per#ite a!e"erea in #ai #u!te a!ternati2e5
A B C *
Se %onsiera e+presia e, nu#ita se!e%tor, se e2a!uea(a %o#paranu9se re(u!tatu! %u o anu#ita
%onstanta intr9un sir at, 21,2$..2n= in 0un%tie e a%est re(u!tat, este e+e%utata una in se%2ente!e A,
B, C,..*
PSEU*OCO* !. ro#ana !. en"!e(a
Se!e%tie4e5 CASE4e5
21: A 21: A e @ se!e%tor4e+presie %u 2a!oare orina!a5
2$ :B 2$ : B
2&: C 2&: C
J J
2n : * 2n: *
a!t0e! E e!se E
s0arsit se!e%tie enCASE

I.& ELEMENTE *E BAZA ALE LIMBAGULUI PASCAL
I.&.1. STRUCTURA PROGRAMELOR PASCAL este %o#pusa in trei se%tiuni:
a5 Antet 4tit!u5
'5 Se%tiune e%!arati2a
%5 Se%tiune e+e%uta'i!a

e e+e#p!u :


I.&.$ *ESCRIEREA ,OCABULARULUI LIMBAGULUI PASCAL CU AGUTORUL
*IAGRAMELOR *E SINTAKA.
*e0initie: *ia"ra#a e sinta+a este un ansa#'!u e e!e#ente "ra0i%e: e!ipse, %er%uri, reptun"Aiuri,
a2an 0ie%are un ro! 'ine e0init.
E!ipse!e in%area(a Bter#ina!eC 4ne#oi0i%a'i!e5, iar reptun"Aiuri!e in%area(a Batri'uteC=
%er%uri!e sunt uti!i(ate pentru BseparatoriC. Le"aturi!e se rea!i(ea(a prin sa"eti .
3
..
Pro!ram e+e#p!u= L antetu!, %are poate !ipsiM
Lse%tiunea e%!arati2aM
"s#s %rt=
ar %A: %Aar=
Lse%tiunea e+e%uta'i!aM
b#!in
Frite4Napasati o tasta:O5= rea!n4%A5=
#n$%
ant#t
Pro!ram Se%tiune
e%!arati2ae
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
I.&.& ,OCABULARUL LIMBAGULUI 4setu! e %ara%tere, ienti0i%atorii, separatorii, %o#entarii!e5
I.&.&.1 Setu! e %ara%tere a! !i#'a)u!ui Pas%a!
9 #inus
$ P in#u!tit
& D i#partit
- @ e"a!
. Q aresa
/ R #ai #i%
1 E #ai #are
3 4
S 5
!itera L
a M
A T
' U
B .
..... ,
H :
V =
( O
Z W Lie(M
< 4uner!ine5 X Lo!arM
O'ser2atie: Li#'a)u! Pas%a! nu istin"e #a)us%u!e!e e #inus%u!e;;;
*ia"ra#a e sinta+a:
Pro"ra#
Antet
pro"ra# = Se%tiune e+e%uta'i!a

*e0initii:
I.&.&.$ Ienti0i%atorii sunt siruri e %ara%tere a!0a'eti%e, nu#eri%e sau <, pri#u! %ara%ter 0iin toteauna
o !itera.
&
ienti0i%ator
lit#ra
ci'ra
Nu pot 0i 0o!osite %a ienti0i%atori anu#ite siruri e %ara%tere, apartinan !i#'a)u!ui, nu#ite %u2inte
%Aeie , %are %o#p!etea(a 2o%a'u!aru! : a'so!ute, aan, arraH, s#, %onst, 'e"in, %ase, %onstru%tor, estru%tor,
i2, o, oFnto, e!se, en, e+terna!, 0i!e, 0or, 0orFar, 0un%tion, in, i0, i#p!e#entation, in, in!ine, inter0a%e,
interrupt, !a'e!, #o, ni!, not, o')e%t, on, o0, or, pa%8e, pro%eure, Pro"ra#, re%or, repeat, set, sAr, sA!,
strin", tAen, to, tHpe, unit, unti!, uses, 2ar, 2irtua!, FAi!e, FitA, +or.
I.&.&.& Separatorii sunt : = , 2ir"u!a, eo0,eo!n, %u #entiunea %a u!ti#i!e oua nu sunt printa'i!e
I.&.&.- Co#entarii!e sunt te+te e+p!i%ati2e, %are nu sunt %o#pi!ate 4e+e%utate5
S
S#cti"n#
#(#c"tabila
)
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI


L %Aara%ter M
4P %ara%ter P5
E+e#p!e e %o#entarii:
L a%esta este un %o#entariuM
4Psi a%esta este un %o#entariuP5
I.&.- CONSTANTE
- CONSTANTA INTREAGA : 91$., XA1, X6666, 11
MAKINT@&$.1/14%e! #ai !un" intre"5
MAKLONGINT@$.1-1.-3&./-14%e! #ai #are intre" u'!u5
Litere!e sunt uti!i(ate pentru a es%rie %onstante!e intre"i s%rise in 'a(a 1/ 4 siste#u! Ae+a(e%i#a!5:
> 1 $ & - . / 1 3 S A B C * E 6
41> 11 1$ 1& 1- 1.5
Un intre" poate 0i e0init rept %onstanta intr9un Pro"ra#, uti!i(an %u2antu! %Aeie B%onstC, se#nu! e
e"a!itate , %a in e+e#p!u! ur#ator:
Const a@1>=
Constanta intrea"a 0or#ata in %i0re (e%i#a!e :

I,9 Ci'ra
*#cimala
- CONSTANTA REALA:
- E+e#p!e : ..1&., ..$&eI1>, 11e9$>4notatie e+ponentia!a5
9 CONSTANTA CARACTER
E+e#p!e :NaO, NAO, NSO, W// 4%ara%teru! NBO5
9 CONSTANTA SIR *E CARACTERE 4se%2enta e #a+i# $./ e %ara%tere5
E+e#p!e : ?A= W/.W1& = NSIRO

Eer%itiu: S%rieti ia"ra#e!e e sinta+a a!e e+e#p!e!or e #ai sus

La 0e! %a si intre"ii, si %e!e!a!te %onstante se 2or putea e0ini %u a)utoru! %u2antu!ui %onst :
Const ci=10; cc=a; cb=true; csir=string; cr=2.3;

9CONSTANTE SIMBOLICE 4 ese#nate printr9un ienti0i%ator 5
A%este %onstante nu pot 0i #oi0i%ate in ti#pu! e+e%utiei pro"ra#u!ui asi"uran inepenenta
a%estuia re!ati2a !a tentati2a e a !e atri'ui u!terior.
a5 e0inite e uti!i(ator 4 %a in e+e#p!e!e e #ai sus5
%onst CT@-1=
e@ &.1-= !una@Osepte#'rieO=
'5 pree0inite 4e0inite in unit9u! SVSTEM5: MAKINT, MAKLONGINT, NIL, TRUE, 6ALSE
PI este nu#aru! , apro+i#at %u 1$ (e%i#a!e:&,1-1.S$/.&.3S1S&$&3-/$/-&&3&$1S.
1>
caract#r
caract#r
+
,
- (&)
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
I.&.. NOTIUNEA *E TIP *E *ATA
*e0initie :
*ata este ori%e entitate asupra %areia poate opera %a!%u!atoru!. Tipu! e ata este #u!ti#ea in0or#atio9na!a
e0inita printr9un nu#e in %are9si poate !ua 2a!ori!e o anu#ita ata.
C!asi0i%area tipuri!or e ate:
a5 NESTRUCTURATE4SIMPLE5 : rea!e si orina!e4 pree0inite in SVSTEM, sau e0inite e uti!i(ator5
*ate!e si#p!e orina!e sunt : ate!e pree0inite: intre" , 'oo!ean, %Aar.
ate!e e0inite e uti!i(ator: enu#erat, su'o#eniu
Tipuri!e orina!e e0ines% o #u!ti#e 0inita si oronata e 2a!ori, in ti#p %e tipu! rea!, esi este tot pre9
e0init, nestru%turat, nu este orina!.
'5 STRUCTURATE: ta'!ou, strin", arti%o!4inre"istrare5, #u!ti#e, 0isier.
%5 REPER4POINTER, RE6ERINTA5
I.&./ IN6ORMATII GENERALE ASUPRA TIPURILOR *E *ATE
I.&./.1 TIPUL REAL: o%upa / o%teti41191$ %i0re5 pri#u! 'it 0iin 'itu! e se#n
2ariante: 4in #eiu! Tur'o, optiunea options/compiler/numeric processing este pe ON5
sin"!e4o%upa - o%teti pri#u! 'it 0iin 'itu! e se#n5
ou'!e4o%upa 3 o%teti pri#u! 'it 0iin 'itu! e se#n5
e+tene4o%upa 1> o%teti pri#u! 'it 0iin 'itu! e se#n5
E+presii!e arit#eti%e %are 0o!oses% tipu! rea! au %a operatori : I,9,P,D si 0un%tii stanar: a's4+5, sYr4+5, sin4+5,
%os4+5, ar%tan4+5, !n4+5, e+p4+5 4 e+p!i%it :e+p4+5@ e?+5, int4+5, 0ra%4+5.
E0e%tu! ap!i%arii 0un%tii!or #entionate este su"erat e enu#ire :
a's 4+5 9 %a!%u!ea(a 2a!oarea a'so!uta a !ui +
sYr4+5 9 %a!%u!ea(a patratu! !ui +
sin4+5, %os4+5, ar%tan4+5, !n4+5, e+p4+5 sunt ana!o"e 0un%tii!or #ate#ati%e sinus, %osinus,ar%tan"enta,
!o"arit# natura!, e+ponentia!a %u 'a(a e 4'a(a !o"arit#u!ui natura!5, e%i au a%e!asi e0e%t.
int4+5 9 %a!%u!ea(a partea intrea"a a !ui +, re(u!tatu! 0iin e tip rea!
0ra%4+5 9 %a!%u!ea(a partea 0ra%tionara a !ui +
PI 9 este nu#aru! , apro+i#at %u 1$ (e%i#a!e:&,1-1.S$/.&.3S1S&$&3-/$/-&&3&$1S.
4 se %onsiera %a 0un%tie %u re(u!tat rea!, 0ara ar"u#ent5
I.&./.$ TIPUL INTREG: o%upa $ o%teti pri#u! 'it 0iin 'itu! e se#n, %u inter2a!u! e 2a!ori posi'i!e
T9MAKINT91, MAKINTU=
,ariante: sAortint4o%upa 1 o%tet, pri#u! 'it 0iin 'itu! e se#n, %u inter2a!u! e 2a!ori posi'i!e
T91$3, 1$1U5=
'Hte4o%upa 1 o%tet 0ara se#n, %u inter2a!u! e 2a!ori posi'i!e T>, $..U=
For 4o%upa $ o%teti 0ara se#n, %u inter2a!u! e 2a!ori posi'i!e T>, /...&.U5=
!on"int 4o%upa - o%teti, pri#u! 'it 0iin 'itu! e se#n5, %u inter2a!u! e 2a!ori posi'i!e
T9MAKLONGINT91, MAKLONGINTU=
/& /&
%o#p4o%upa 3 o%teti 0ara se#n5 , inter2a!u! e 2a!ori posi'i!e T9$ , $ 91U
E+presii!e arit#eti%e %are 0o!oses% tipu! intre" au %a operatori : I,9,P,D, i2, #o, sA!, sAr, not, or, +or, an,
operatori re!ationa!i 4R,E,@,R@,E@,RE5, pre%u# si 0un%tii stanar: a's4+5, sYr4+5, trun%4+5,
roun4+5, su%%4+5, pre4+5, or4+5, u!ti#e!e 0iin spe%i0i%e ori%arui tip orina!.
trun%4+5 Z %a!%u!ea(a partea intrea"a a unui nu#ar rea!, %u re(u!tat intre"
roun4+5 Z %a!%u!ea(a rotun)irea !ui + , prin aaos, %u re(u!tat intre"
su%%4+5 Z %a!%u!ea(a su%%esoru! !ui +
pre4+5 Z %a!%u!ea(a pre%eentu! !ui +
or4+5 9 se ap!i%a unui %ara%ter si intoar%e nu#aru! intre" aso%iat a%estuia in %ou! ASCII
11
i$#nti'icat
or
constanta (.)
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
I.&./.& TIPUL BOOLEAN 9 o%upa 1 o%tet, are $ 2a!ori: 0a!se si true 4%orespun(ator %u > si 15
E+presii!e %are 0o!oses% tipu! !o"i% au operatori4pe 'iti5 %are sunt : an, or, +or, not, si respe%ti2 operatori
re!ationa!i %are sunt : R, E, @, R@, E@, RE. 6un%tii!e stanar uti!i(ate %are !u%rea(a %u a%est tip sunt : or45
or4true5@1, or40a!se5@>=
o45 o4i5@ >, a%a i@par si o4i5@ 1, a%a i este i#par, une i este intre" oare%are
I.&./.- TIPUL C:AR 9 o%upa 1 o%tet.E+ista $./ e %ara%tere %are 0or#ea(a %ou! nu#it ASCII, 0ie%aruia
%orespun(anu9i un nu#ar in inter2a!u! T>, $..U 4Ane+a<15
e+e#p!e: W1&, ?a, NaO, NAO. 4e e+e#p!u : %ara%teru!ui NAO i se aso%ia(a nu#aru! /.5
Operatorii %are se pot ap!i%a ate!or e a%est tip sunt %o#uni ate!or e tip orina!, operatorii re!ationa!i
4R,E,@,R@,E@,RE5 6un%tii!e stanar %are uti!i(ea(a ate e tip %ara%ter sunt e ase#enea tipi%e ori%aror ate
e tip orina! : su%%4%5, pre4%5, or4%5, une % este un %ara%ter , si in p!us 0un%tia : %Ar4i5, i intre" in
inter2a!u! T>, $..U5
or4% 5 sunt 0un%tii in2erse una %e!ei!a!te: %Ar4or4%55@% si or4%Ar4i55@i
Co#pararea a oua %ara%tere %orespune %o#pararii nu#ere!or e orine, aso%iate !or in setu! e+tins e
%ara%tere, e%i in %ou! ASCII : NAOROBO, eoare%e /.R// 4or4NAO5R or4NBO55
Cara%tere e %ontro!: W14aso%ia(a un sunet5, W34ep!asare stan"a 5,W1>4ep!asare )os 5=
E0e%te spe%ia!e : WS4ep!asare peste %ate2a %o!oane ,Rta'E5, W1&4ep!asare !a %ap e ran,RAo#eE5=
I.&./.. TIPUL ENUMERAT:
Este e0init printr9un sir e o'ie%te e a%e!asi 0e!, ase(ate in orine %res%atoare, in%epan %u po(itia >, intr9o
#aniera %a %ea ur#atoare:
%onst sapta#ana@ 4!uni, #arti, #ier%uri, )oi, 2ineri5
> 1 $ & -
tipu! enu#erat ( i$#nti'icator )

/
*ate!e e tip enu#erat nu se pot %iti sau a0isa, 2a!ori!e !or putan 0i #oi0i%ate nu#ai prin atri'uiri.
I.&././ TIPUL INTER,AL4SUB*OMENIU5
*e0ineste o su'#u!ti#e a o#eniu!ui %orespun(ator unui tip e ata orina!. Notiunea in sine este
ana!o"a %e!ei in #ate#ati%a, ar %u o notatie i0erita:
2ar natura! : >..MAKINT=4su'o#eniu a! tipu!ui INTEGER5
%i0re :>..S=
!itere<#i%i :NaO..O(O=
tipu! su'o#eniu
%onstanta 415 J %onstanta 4n5
Operatii!e si 0un%tii!e sunt %e!e per#ise e tipu! pree0init a! %o#ponente!or sa!e.

E+er%itii:
6ie 2ar i,),8:inte"er=
a, ', %: rea!= p, Y, r : 'oo!ean=
#a)us%u!a: NAO..OZO=
(i: 4!uni, #arti, #ier%uri5=
Sa se %a!%u!e(e:
a5 %Ar4or4#a)us%u!a59or4NAO5Ior4NaO55= une #a)us%u!a@OBO=
1$
0
constanta (1)
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
'5 aIe+p4%P!n4a's4'555= su%%4su%%4pre4#arti555= une '@S.13, %@$.,a@$.
%5 a's4)5R@.= 5 p or not Y or r= une: p@true, Y@0a!se, %@true, )@9&
5 4(iR@#ier%uri5 an 4(iE@ !uni5
Raspunsuri:
a5 '
'5 331.11 = #ier%uri
%5 5 e5 true
Cou! Pas%a! %orespun(ator, %are re(o!2a e+er%itii!e %u e+%eptia '5, partea a oua:
2ar i,),8:inte"er=a,',%:rea!=p,Y,r:'oo!ean=
#a)us%u!a:[A[..[Z[=(i:4!uni,#arti,#ier%uri5=
'e"in
#a)us%u!a:@[B[= p:@true=Y:@0a!se=r:@true=a:@$=':@$=%:@S.13=):@&=
Frite!n4%Ar4or4#a)us%u!a59or4[A[5Ior4[a[55,
aIe+p4%P!n4a's4'555,
a's4)5R@.,p or not Y or r,
4(iR@2ineri5 an 4(iE@!uni55=
rea!n=
en.
I.- STRUCTURI *E CONTROL 4INSTRUCTIUNI *E BAZA5
Cou! instru%tiuni!or e 'a(a este pre(entat, insotit e pseuo%ou! aso%iat %on0or# %u para"ra0u! $, 0ara
pres%urtari, s%riin pe !ar" %u2inte!e: C e2ine %onitie= A,B,..*,E e2in instru%tiune<1, instru%9tiune<$,
et%. Instru%tiuni!e pot 0i in!o%uite %u se%2ente e instru%tiuni 4instru%tiuni %o#puse5.
2s#"$oco$ 3l%romana co$ Pascal
I.-.1. Stru%tura a!ternati2a: 4I65 Linstru%tiunea e%i(iona!aM
a%a %onitie atun%i instru%tiune<1 i0 %onitie tAen instru%tiune<1
a!t0e! instru%tiune<$ e!se instru%tiune<$=
I.-.$. Stru%tura se!e%ti2a 4CASE5 L instru%tiunea e se!e%tieM
se!e%tie 4se!e%tor5: se!e%tor@2aria'i!a e tip orina!
%onstanta<1: instru%tiune<1 %ase se!e%tor o0
%onstanta<$: instru%tiune<$ %onstanta<1:instru%tiune<1=
JJJ. %onstanta<$ :instru%tiune<$=
%onstanta<n: instru%tiune<n91 JJJJJJJ
a!t0e! instru%tiune<n %onstanta<n: instru%tiune<n91
s0arsit se!e%tie e!se instru%tiune<n=
en=
I.-.&. Stru%turi repetiti2e
I.-.&.1 Stru%tura repetiti2a %u %onitie initia!a 4\:ILE5 Linstru%tiunea repetiti2a %onitionata anteriorM
atat ti#p %at %onitie e+e%uta instru%tiune FAi!e %onitie o instru%tiune=
I.-.&.$ Stru%tura repetiti2a %u test 0ina! 4REPEAT5 Linstru%tiunea repetiti2a %onitionata posteriorM
repeta instru%tiune pana %an %onitie repeat instru%tiune unti! %onitie
I.-.&.& Stru%tura repetiti2a %u %ontor 4 6OR5 Linstru%tiunea repetiti2a %u %ontorM
pentru %ontor@2a!oare<1, 2a!oare<$, pas 0or %ontor @2a!oare<1 to 4oFnto5 2a!oare<$
e+e%uta instru%tiune o instru%tiune
I.-.&.- Stru%tura e sa!t ne%onitionat 4GO TO5 Linstru%tiunea e sa!t ne%onitionat M
#er"i !a eti%Aeta "o to eti%Aeta
I.-.&.. Stru%tura se%2entia!a 4atri'uire sau %o#pusa5
ienti0i%ator e+presie ienti0i%ator:@ e+presie= Latri'uireM
L instru%tiune %o#pusa M
'e"in
instru%tiune<1=
instru%tiune<$=
1&
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
J en=
I... CITIREA SI SCRIEREA *ATELOR

I...1 Pro%euri stanar e intrareDiesire
Introu%erea si a0isarea ate!or se rea!i(ea(a in !i#'a) Pas%a! in #o stanar
%u a)utoru! unor pro%euri a0!ate in unitu! SVSTEM, si e%i ape!ate auto#at e pro9
"ra# : rea 4!ista e para#etri5, rea!n4!ista e para#etri5, Frite4!ista e para#etri5,
Frite!n4!ista e para#etri5, une B!ista e para#etriC este un sir e ienti0i%atori e
2aria'i!e, separati prin 2ir"u!a.
Pri#e!e oua se uti!i(ea(a pentru introu%erea ate!or, %e!e!a!te oua pentru
a0isarea a%estora. *eose'irea intre %e!e oua a!ternati2e in a%eea %a 2arianta %u
su0i+u! B!nC4!ine5 rea!i(ea(a atat %itirea4s%rierea5 %at si sa!tu! !a ranu! ur#ator.
Trans0eru! in 'u00eru! e #e#orie se e+e%uta !a apasarea tastei Enter 4RCREIRL6E5
I...$. A0isarea ate!or este i#p!i%it intr9un 0or#at e !un"i#e #a+i#a, nu9
#it Bstiinti0i%C sau e+ponentia!.Ape!u! ur#ator
Frite!n4a5= pentru a@.,13 2a a2ea %a re(u!tat:
..11SSSSSSSSS33-EI>>>>
%eea %e , #ate#ati% repre(inta : .,11SSSSSSSSS33- P 1> ],i0i%i! e traus. A!terna9
ti2a e+p!i%ita este a0isarea %u 0or#at, in pri#u! ran pentru ate! e tip nu#eri%, ar
nu nu#ai. Ast0e!, 2o# s%rie pentru:
9 tipu! intre", %ara%ter, sir e %ara%tere, !o"i% 4'oo!ean5 :
Frite!n4ienti0i%ator:!un"i#e<e<a0isare5=
e+e#p!u:
a:@1>= Frite!n4a:-5=
Re(u!tat :'!an%'!an%1> 4!un"i#ea e a0isare este -, a!iniere !a reapta5
- tipu! rea!:
Frite!n4ienti0i%ator:!un"i#e<e<a0isare :!un"i#e<parte<(e%i#a!a5
e+e#p!u :
a:@S.3 = Frite!n4a:-:$5=
Re(u!tat :S.3> 4!un"i#ea e a0isare este -, in %are oua %i0re (e%i#a!e5
I...& Pro%euri!e stanar e %itire si s%riere pot 0i ape!ate 0ara ar"u#ente :
Rea!n= Lasteapta apasarea unei tasteM
\rite!n= Lsare un ran 4s%rie un ran !i'er5M
I...- O'ser2atii :
9*ate!e e tip enu#erat nu pot 0i %itite si a0isate, e%i nu %onstituie ar"u9
#ente a!e pro%euri!or stanar e %itire sau s%riere.
9*ate!e e tip !o"i%4'oo!ean5 nu se pot %iti, e%i nu sunt ape!ate e pro%e9
uri!e stanar e %itire.
I./ EKPRESII
In 0un%tie e tipu! re(u!tatu!ui, e+presii!e pot 0i: arit#eti%e, !o"i%e, sir e %ara%tere sau
%ara%ter, uti!i(an operatorii si 0un%tii!e spe%i0i%e. Prioritatea !or este4es%res%ator5 :
1] unari 4not5
$] 'inari : a5 #u!tip!i%ati2i 4P, D, i2, #o, sA!, sAr, an5
'5 aiti2i 4I, 9,or, +or5
%5 re!ationa!i 4R,E,@,R@,E@,RE, in5
1-
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
I.1. *E6INIREA CONSTANTELOR, *ECLARAREA ,ARIABILELOR
A5 *e0inirea %onstante!or si#'o!i%e uti!i(ator se rea!i(ea(a in se%tiunea CONST. *upa %u#
a# 2a(ut in para"ra0u! 1.&.-, %onstante!e si#'o!i%e sunt %onstante ese#nate prin
ienti0i%atori 4I5, repre(entan 2a!ori %are nu se pot #oi0i%a pe par%ursu! e+e%utiei
pro"ra#u!ui, si pot 0i : intre"i, rea!e, 'oo!eene, sir e %ara%tere.
In p!us, in se%tiunea CONST se pot e0ini constant# c" ti2 , e 0apt, ariabil#
initiali*at#, a!e %aror 2a!ori se 2or putea #oi0i%a in %ursu! e+e%utiei pro"ra#u!ui.
CONST a@1$&.-.=
n@1>>1= sinta+a 3 I$ 4 #(2r#si# 5
i#par:'oo!ean@o4n5=
B5 *e%!ararea 2aria'i!e!or
I$ 3 ti2
6ie%arei 2aria'i!e i se aso%ia(a un ienti0i%ator si un tip e ata, %eea %e se rea!i(ea(a
printr9o e%!aratie e 2aria'i!e, e 0or#a :

ar I$ 3 ti2 5

,
,AR %o:'Hte= +,H,(:rea!=
I.3. ALGORITMII SIMPLI, SELECTATI *E PROGRAMA
1. Ca!%u! putere rapia4 a!"orit#u! !ui A! 7asAi5
$. Tre%erea unui nu#ar intr9o 'a(a in a!ta
&. ,eri0i%area %ara%teru!ui pri# a! unui nu#ar natura!
-. A!"orit#u! !ui Eu%!i pentru %a!%u!u! %.#.#..%. si %.#.#.#.%
.. Siru! !ui 6i'ona%%i
Re(o!2area se 2a rea!i(a in pseuo%o, upa pre(entarea %ontinutu!ui4 te+tu!ui5 0ie%arei
pro'!e#e.

Se %ere %a, potri2it pseuo%ou!ui , sa se s%rie %ou! Pas%a!4CII5 aso%iat.
PSEU*OCO*URI
42arianta in !.ro#ana5
1. ALGORITMUL LUI AL97AS:I 4CALCUL PUTERE RAPI*A5
Se %a!%u!ea(a ' !a puterea n, printr9un nu#ar #ini# e operatii4in#u!tiri5
p@ puterea, '@ 'a(a, e+p@ e+ponentu!, nr@nu#ar in#u!tiri, n@ e+ponent initia!
p1= nr>
%iteste ' si e+p
ne+p
atat ti#p %at e+pE> e+e%uta
a%a o4e+p5 atun%i
ppP'
e+pe+p91
a!t0e! ''P'
e+pe+p i2 $
nrnrI1
s%rie4p5 s%rie 4nr915
1.
ti2
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
$. TRECEREA *IN BAZA A IN BAZA B
Se s%Ai#'a 'a(a e nu#eratie a nu#aru!ui n, in a in '. A!"orit#u! se 2a re0eri !a
nu#ere a ne#u!tip!e a!e !ui ' Se 2a !u%ra in oua etape:
15 tre%erea e !a 'a(a a !a 'a(a 1> $5 tre%erea e !a 'a(a 1> in 'a(a '.
Citeste n, a , ' n@nu#ar, a si '@ 'a(e!e e nu#eratie r@rest.
ETAPA 1 4tre%erea in 'a(a a in 'a(a 1>5
%iteste n, a, '
p1 #>
atat ti#p %at nE> e+e%uta
##I4n #o 1>5 Pp
ppPa
nn i2 1>
ETAPA$ 4tre%erea in 'a(a 1> in 'a(a '5
i>
repeta r# #o '
## i2 '
iiI1
po(itionare 1S9i s%rie r
pana %an #@>

&. ,ERI6ICAREA CARACTERULUI PRIM AL UNUI NUMAR ;
A!"orit#u! 2eri0i%a a%a un nu#ar este pri#:
se#a0or@1 n@nu#aru! at i@%ontor 4 i2i(or posi'i!;5
%iteste n
se#a0ortrue
pentru i@$ , trun%4sYrt4 n 55 , 1 e+e%uta
a%a n #o i@> atun%i se#a0or 0a!se
a%a se#a0or @true atun%i s%rieOpri#O
a!t0e! s%rie Nnu e pri#O
-. ALGORITMUL LUI EUCLI*
A!"orit#u! %a!%u!ea(a %##% a oua nu#ere.
6ie a,'@ nu#ere!e ate p@ prousu! !or r@restu!

%iteste a si '.
ra #o '
atat ti#p %at rE> e+e%uta
a'
'r
ra #o '
s%rie 4%##%@'5


1/
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
.. SIRUL LUI 6IBONACCI
Se %iteste n nu#ar natura!. *a%a n este in siru! !ui 6i'ona%%i se 2a a0isa un
#esa) %orespun(ator a%a nu se 2a in%er%a s%rierea nu#aru!ui %itit %a su#a
e nu#ere a!e siru!ui.
Se stie %a in sir, ori%e ter#en a! a%estui sir este su#a a oi ter#eni %onse%uti2i
4 pre%eentii ter#enu!ui at5 Se au pri#e!e 2a!ori in sir : > si 1.
*e ase#enea se 0o!oseste o 2aria'i!a 'oo!eana initia!i(ata BtrueC %u ro! e se#a0or .
,or 0i pre(entate oua 2ariante a!e a%estui a!"orit#, %are nu i0era esentia!
*eose'irea este %a pri#a 2arianta este s%risa iterati2, 0ara a uti!i(a stru%turarea in
ti#p %e a oua re(o!2a %erinte!e pro'!e#ei intr9o pro%eura iterati2a, ape!ata in
pro"ra#u! prin%ipa!, a! %arui pseuo%o este e ase#enea pre(entat.
,ARIANTA ITERATI,A
%iteste n
se#a0or true
repeta
a>
'1
%aI'
atat ti#p %at %Rn e+e%uta a'
'%
%aI'
*a%a %@n atun%i
a%a se#a0or @ true atun%i s%rie Bnu#ar 6i'ona%%iC
a!t0e! s%rie %
n> 4iesire 0ortata5
a!t0e!
s%rie '
se#a0or0a!se
nn9'
pana %an n@>

,ARIANTA STRUCTURATA
pro%eura 0i'o4a,',%, n, se#a0or5
a%a %@n atun%i
a%a se#a0or @ true atun%i s%rie Bnu#ar 6i'ona%%iC
a!t0e! s%rie %
n> 4iesire 0ortata5
a!t0e!
s%rie '
se#a0or0a!se
nn9'
pro"ra# prin%ipa!
11
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
%iteste n se#a0or true
repeta
a>
'1
%aI'
atat ti#p %at %Rn e+e%uta a'
'%
%aI'
0i'o4a,',%,n,se#a0or5
pana %an n@>
Sol"tiil# c#rint#i $# la 6I%7/ 2!% .8 (co$"ri Pascal asociat# 2s#"$oco$"l"i 2r#*#ntat)
1. CALCUL PUTERE RAPI*A
uses %rt=
2ar i,),nr,n,e+p:'Hte=p,':!on"int=
'e"in
p:@1=nr:@>=
Frite!n4[Ba(a si e+ponentu! 2a ro":[5=
rea!n4'5=rea!n4e+p5=n:@e+p=
FAi!e e+pE> o 'e"in
i0 o4e+p5 Li#parM tAen 'e"in
p:@pP'=e+p:@e+p91=en
e!se
'e"in
':@sYr4'5=e+p:@e+p i2 $=
en=
nr:@nrI1=
en=
Frite!n4[Re(u!tatu! [,p,[ Nr e operatii: [,nr915=
en.

$.TRECEREA UNUI NUMAR NATURAL *IN BAZA A IN BAZA B
Operatia e tre%ere e s%Ai#'are a 'a(ei e nu#aratie se 'a(ea(a, %on0or#
pseuo%ou!ui pe e+e%utarea i#partirii repetate a nu#aru!ui at !a 'a(a in %are
2re# sa9! tre%e#. In pro"ra#u! %are ur#ea(a se 0a%e tre%erea in 'a(a (e%i9
#a!a in 'a(a 'inara, a unui nu#ar natura! .
Pro"ra# 'a(a1><'a(a$=
uses %rt=
2ar n,r,i:For=
'e"in
%!rs%r=
Frite!n4[nu#aru! in 'a(a 1>:[5=
rea!n4n5=i:@>=
"oto+H4->,1>5=te+t%o!or41-5=
Frite4[nu#aru! in 'a(a $:[5="oto+H41S,1>5=
te+t%o!or4-5=
repeat
13
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
r:@n #o $=
n:@n i2 $=
i:@iI1=
"oto+H41S9i,1>5= Frite4r5=
unti!4n@>5=
rea!n= en.

Genera!i(an, tre%erea e !a o 'a(a a !a o a!ta 'a(a ' se poate rea!i(a %u a)utoru! 'a(ei inter#eiare 1>.
Pro"ra# 'a(a<a<'a(a<'=
uses %rt=
2ar p,n,r,#,i,a,':For=
'e"in
%!rs%r=
Frite!n4[nu#aru! si 'a(e!e:[5=
rea!n4n,a,'5=
Ltre%erea in 'a(a a in 'a(a 1>M
p:@1=#:@>=
repeat
#:@#I4n #o 1>5Pp=
p:@pPa=
n:@n i2 1>=
unti! n@>=
Frite4[nu#aru! in 'a(a 1>:[,#5=
Ltre%erea in 'a(a 1> in 'a(a 'M
"oto+H4->,1>5=te+t%o!or41-5=
Frite4[nu#aru! in 'a(a:[,'5="oto+H41S,1>5=
te+t%o!or4-5=
i:@>=
repeat
r:@# #o '=
#:@# i2 '=
Frite4r5= i:@iI1=
"oto+H41S9i,1>5=
unti!4#@>5=
rea!n= en.
*e e+e#p!u, nu#aru! 11>1, s%ris in 'a(a $, 2a 0i 111, s%ris in 'a(a &, inter#eiar 1&, s%ris in (e%i#a!.
&. ,ERI6ICAREA CARACTERULUI PRIM AL UNUI NUMAR NATURAL
,eri0i%area pri#a!itatii unui nu#ar n se 2a 0a%e testan toate nu#ere!e #ai #i%i e%at n, in sensu!
e a 0i sau nu i2i(or a! !ui n.
uses %rt=
2ar se#a:'oo!ean=
n,i:For=
'e"in
%!rs%r=
se#a:@true=
rea!n 4n5=
0or i:@$ to trun%4sYrt4n55 o
i0 n #o i@> tAen se#a:@0a!se=
i0 not se#a tAen Frite!n 4[nu este pri#[5
e!se Frite!n 4[este pri#[5=
1S
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
en.
-. ALGORITMUL LUI EUCLI*
*upa %u# se stie, a%est a!"orit# %onstan in i#partiri repetate, ne %onu%e, %u u!ti#u!
rest inainte e restu! >, !a o'tinerea %##% a oua nu#ere.
2ar ,r,p,i:For=
'e"in
rea!n 4,i5=
p:@Pi=
r:@ #o i=
FAi!e rE> o 'e"in :@i= i:@r=r:@ #o i=en=
Frite!n 4[%.#.#..%@[,i5=
rea!n= en.

.. SIRUL LUI 6IBONACCI
Istoria siru!ui atea(a in e2u! #eiu, iar autoru! pro'!e#ei era %a!u"ar= pri#ii oi
ter#eni sunt > si 1 iar 0ie%are ter#en ur#ator a! siru!ui se o'tine prin aunarea
%e!or $ pre%eenti.Ter#enii sunt retinuti in 2aria'i!e!e a,',%. *a%a nu#aru! n at se 2a
a0!a printre ter#enii %a!%u!ati a! siru!ui,atun%i e! este un nu#ar B6i'ona%%iC.
2ar a,',%,n:For=se#a:'oo!ean=
'e"in
rea!n4n5= se#a:@true=
repeat
a:@>= ':@1= %:@aI'=
FAi!e %Rn o 'e"in a:@'=':@%=%:@aI'=en=
i0 %@n tAen 'e"in i0 se#a tAen Frite4n,[ 6i'ona%%i[5
e!se Frite4%5=
n:@>=
en=
e!se 'e"in
Frite4',[I[5= se#a:@0a!se=
n:@n9'=
en=
unti! n@>=
rea!n=en.
PROBLEME *I,ERSE
1. Construiti un Pro"ra# e#onstrati2 pentru !u%ru! in #o te+t, uti!i(an stru%turi!e stuiate.
So!utie : 4in p!us, pentru esi"n, sunt uti!i(ate si pro%euri!e stanar e ster"ere, %o!orare,
po(itionare in e%ran, sunet, intar(iere, esenarea e 0erestre si %ara%tere "ra0i%e5
9999999999999999999999999A: ^BAC^INTRO^CASLE.PAS 999999999999999999999999
A%est pro"ra# este o ap!i%atie a #ou!ui e !u%ru te+tM
_Pro"ra# %aste!=
_uses %rt=
_2ar i,),8:inte"er=%A:%Aar=
'e"in
_%!rs%r=te+t'a%8"roun415=
_0or i:@1 to 1> o 'e"in %!rs%r=
_te+t'a%8"roun4iI15=
`FinoF4&>IiP$,.Ii,.>9iP$,$>9i5=
en=
$>
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
_0or i:@1 to . o 'e"in %!rs%r=
_te+t'a%8"roun4iI&5=FinoF4$.9i,.Ii,$.IiP$,1S5=en=
_0or i:@1 to . o 'e"in
%!rs%r=
_te+t'a%8"roun4iI&5=FinoF4..9$Pi,.Ii,..Ii,1S5=en=
_%!rs%r=te+t'a%8"roun415=
_FinoF41,1,1S,$-5=te+t%o!or41-5=
_"oto+H4$>,&5=Frite4[ACEST CASTEL ESTE O *EMONSTRATIE LA MO*UL TEKT;[5=
_te+t'a%8"roun4>5=
"oto+H4$1,115=Frite4[ababababababab[5=
_"oto+H4$1,1$5=Frite4[a b[5="oto+H4$1,1&5=Frite4[ababababababab[5=
_"oto+H4-/,115=Frite4[ababababababab[5="oto+H4-/,1$5=Frite4[a b[5=
_"oto+H4-/,1&5=Frite4[ababababababab[5=
_"oto+H4$1,1.5=Frite4[999999999999I[5=
_"oto+H4$1,1/5=Frite4[_ _[5=
_"oto+H4$1,115=Frite4[_ _[5=
_"oto+H4$1,135=Frite4[_ 9 _[5=
_"oto+H4$1,1S5=Frite4[I I[5=
_"oto+H4-/,1.5=Frite4[999999999999I[5=
"oto+H4-/,1/5=Frite4[_ _[5=
_"oto+H4-/,115=Frite4[_ _[5=
_"oto+H4-/,135=Frite4[_ 9 _[5=
_"oto+H4-/,1S5=Frite4[I I[5=
_0or i:@1 to &> o 'e"in soun4.>Pi5=e!aH41>>5=en=
_0or i:@1 to &> o 'e"in soun4.>Pi5=e!aH41>>5=en=
_0or i:@1 to &> o 'e"in soun41>>> i2 1>>Pi5=e!aH41>>5=en=
_0or i:@1 to &> o 'e"in soun41>>> i2 1>>Pi5=e!aH41>>5=en=
_0or i:@1 to &> o 'e"in soun4.>Pi5=e!aH41>>5=en=
_0or i:@1 to &> o 'e"in soun41>>> i2 1>>Pi5=e!aH41>>5=en=
_0or i:@1 to &> o 'e"in soun4.>Pi5=e!aH41>>5=en=
_0or i:@1 to &> o 'e"in soun41>>> i2 1>>Pi5=e!aH41>>5=en=
_0or i:@1 to &> o 'e"in soun4.>Pi5=e!aH41>>5=en=
_0or i:@1 to &> o 'e"in soun41>>> i2 1>>Pi5=e!aH41>>5=en=
_nosoun=rea!n4%A5=
_%A:@rea8eH
_en.
n
$. Sa se %a!%u!e(e su#a : +
$i91
D4$i915;
i@1
So!utie 4%o Pas%a!5 :
pro"ra# %a!%u!<su#e<i2erse=
2ar +,n,p1,p$,i,8:inte"er=
s:rea!=
'e"in
rea!n4n,+5=
s:@>=
0or i:@1 to n o
'e"in
p1:@1=
0or 8:@1 to $Pi91 o p1:@p1P+=L%a!%u! putereM
p$:@1=
$1
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
0or 8:@1 to $Pi91 o p$:@p$P8= L%a!%u! 0a%toria!M
s:@sIp1Dp$=
en=
Frite!n4[s@[,s:-:$5=
rea!n=
en.
CAPITOLUL II
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
TIPURI STRUCTURATE *E *ATE
I. TIPUL TABLOU
Un ta'!ou este o stru%tura %u nu#ar 0i+ e %o#ponente, toate e a%e!asi tip. Tipu! %o#ponente!or este
tipu! e 'a(a a! ta'!ou!ui. Tipu! inu%e!ui 0i+ea(a nu#aru! #a9+i# e e!e#ente a!e ta'!ou!ui. Sunt per#ise
#ai #u!te tipuri ine+,separate prin 2ir"u!e. Pentru tipu! e!e#ente!or se poate a!e"e ori%e tip stanar sau
uti!i(ator, si#p!u sau stru%turat. Se poate e0ini un ta'!ou in se%tiuni!e :tHpe, %onst, sau 2ar a!e unui Pro"ra#.
*ia"ra#a e sinta+a:
tip tip orina! tip e!e#ent
ARRAV 9 (in$ic#) : OF
ta'!ou
/
OBS :Tipu! orina! #entionat !a ini%e 2a 0i e #a+i# $./ 2a!ori, e%i : 'Hte,%Aar,'oo!ean
sau su'o#enii a!e tipuri!or orina!e %u #ai #u!t e $./ e!e#ente : For, inte"er, !on"int.
Tipu! e!e#entu!ui unui ta'!ou poate 0i pree0init in Pas%a! sau e0init e uti!i(ator.
E+e#p!u! 1: tHpe #atri%e@arraHT1...,1...U o0 inte"er=
2ar a,':#atri%e=
E+e#p!u! $: tHpe 2e%tor@arraHT1...U o0 'Hte=
%onst a:2e%tor@4$,&,1,$.>,35=
sau, pentru 'ii#ensiona!: tHpe 2e%t@arraHT1..$,1..&U o0 inte"er=
%onst ':2e%t@449$,1,35,4-,>,9$>55=
Cu e!e#ente!e unui ta'!ou se pot 0a%e toate operatii!e a#ise e tipu! e 'a(a a! ta'!ou!ui.
Se!e%tarea e!e#entu!ui se 0a%e uti!i(an ini%e!e : 4pentru e+e#p!e!e e #ai sus5
aTiU, 'Ti,)U, une i@ini%e!e e !inie, )@ini%e!e e %o!oana
$$
ARRA;
ti2 or$inal
(in$ic#)
ti2 #l#m#nt
/
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
A% AL<ORITMII SIMPLI SELECTATI DE PRO<RAMA4 %are uti!i(ea(a tipu! stru%turat ta'!ou5
A1. A0!area #a+i#u!ui si #ini#u!ui intr9o !ista e e!e#ente.
A$. Sortari 4oronari5:
9 sortarea prin se!e%tie ire%ta
9 sortarea upa #ini# sau #a+i#
9 sortarea prin nu#arare
9 #etoa 'u!e!or4 Bu''!e 9Sort5
9 #etoa sortarii Mer"e9Sort
9 #etoa sortarii cui%89Sort
9 #etoa sortarii #ate#ati%e4 *ona! SAe!!5
9 #etoa sortarii prin inter%!asare
A&. Inter%!asarea a oua siruri
A-. Cautarea si#p!a si 'inara
In %e!e %e ur#ea(a 2o# %onsiera rept B%o#p!e+itateC, nu#aru! e operatii e0e%tuate e a!"orit#, si o
2o# nota O4 e4n55 , !a ar"u#ent 0iin o e+presie e4n5 une n este un nu#ar natura!, e o'i%ei un nu#ar
!e"at e o operatie %are se %ontori(ea(a in a!"orit# 4u(ua! o %o#paratie5.In #area #a)oritatea %a(uri!or n
se re0era !a nu#aru! e ate, ar nu %e!e initia!e. E+presia e4n5 poate 0i : un po!ino# in 2aria'i!a
n4%o#p!e+itate po!ino#ia!a5, o e+presie e+ponentia!a
e ar"u#ent n si 'a(a natura!a4%o#p!e+itate e+ponentia!a5, o
e+presie !o"arit#i%a e ar"u#ent n si 'a(a natura!a4%o#p!e+i9
tate !o"arit#i%a5. In %a(u! unui po!ino# se #ai ana!i(ea(a si "ra9
u! in raport %u 2aria'i!a ar"u#ent: a%a "rau! este 1, %o#9
p!e+itatea 2a 0i po!ino#ia!a O4n5, a%a este $, %o#p!e+itatea 2a
0i O4nd5, et%.
A1. A0!area #a+i#u!ui si #ini#u!ui intr9o !ista e e!e#ente
#a+a1
pentru i@1,n,1 e+e%uta
a%a #a+Rai atun%i #a+ai
#ina1
pentru i@1,n,1 e+e%uta
a%a #inEai atun%i #inai
A$.A!"orit#ii e sortare4oronare5, asa %u# su"erea(a si enu#irea !or, rea!i(ea(a ase(area e!e#ente!or
unui 2e%tor 4#u!ti#e5 in orine %res%atoare sau es%res%atoare si sunt i2ersi. Cei pre(entati in
%e!e %e ur#ea(a repre(inta nu#ai o parte intre a%estia .
Sortarea prin se!e%tie ire%ta
pentru i@1, n91,1 e+e%uta
pentru )@iI1, n,1 e+e%uta
a%a aiEa) atun%i s%Ai#'a4ai,a)5
S%Ai#'area !ui ai %u a) se rea!i(ea(a intr9o pro%eura a! %arei %ontinut
este repre(entat e a!"orit#u! ur#ator:
pro%eure s%Ai#'a4ai,a)5
au+@ 2aria'i!a au+i!iara, e a%e!asi tip %u ai, a)
au+ai
aia)
a)au+
Co#p!e+itatea este e orin Bpo!ino#ia!C, ai%a O4nd5, eoare%e e+ista oua
$&
PrPro"ra# #a+<#in=
,ar a:arraHT1..1>U o0 inte"er=
n,i:'Hte= #a+,#in:inte"er=
'e"in
Frite4N*ati i#ensiunea 2e%toru!ui:O5=
rea!n4n5=
Frite!n4N*ati e!e#ente!e 2e%toru!ui:O5=
0or i:@1 to n o rea!n4aTiU5=
#a+:@a1=
0or i:@1 to n o i0 #a+RaTiU tAen
#a+:@aTiU=
#in:@a1=
0or i:@1 to n o i0 #inEaTiU tAen
#in:@aTiU=
Frite!n4NMa+i#u!@O,#a+:-,OMini#u!@O,
#in:-5=
rea!n=en.
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
iteratii, i#'ri%ate 4una in interioru! %e!ei!a!te5 e orin n. Ana!o" pentru a!"orit#ii e sortare ur#atori .
Sortarea upa #ini# Z2arianta %u #u!ti#i
6ie 2e%toru! a e n %o#ponente istin%te= %onsiera# #u!ti#ea H a %o#ponente!or sa!e si
%ontoru! 8, initia!i(at nu!, %are nu#ara e!e#ente!e nou!ui 2e%tor ', o'tinut in a upa oronare.
O 2aria'i!a 'oo!eana 2', se#na!ea(a o'tinerea 0ie%arui e!e#ent a! 2e%toru!ui '.
*e retinut : a%east a!"orit# nu poate 0i ap!i%at e%at unui sir e e!e#ente istin%te, eoare%e uti!i(ea(a
notiunea e #u!ti#e, in %are unu!, oua sau #ai #u!te e!e#ente e"a!e sunt ins%rise o sin"ura ata.

8>4P H %ontine e!e#ente!e 2e%toru!ui a %are
sti# %a sunt istin%teP5
HLa1,a$,..,anM
repeta
2'etrue
#ine #a+2a! 4#ini#u! se initia!i(a si %u un nr. 0. #are5
pentru i@1,n,1 e+e%uta
a%a #inEai si ai H atun%i:
#inai
2'0a!se
H@H9L#inM 88I1= '8#in
pana %an 2'
E+er%itiu:
1.Res%rieti a!"orit#u! at #ai sus, ur#arin #a+i#u! in !o% e #ini#
Sortarea prin nu#arare
Se nu#ara %ate e!e#ente in siru! at sunt #ai #i%i e%at e!e#en9
tu! %o#parat apoi se reasea(a in orinea %res%atoare a pree%esori!or
0ie%arui e!e#ent. Un 2e%tor au+i!iar 8, %ontine nu#aru! pree%esori!or .
%iteste ai, %u i@1,n pentru i@1,n,1 e+e%uta 8i>
4oronarea 2e%toru!ui a5
pentru i@1,n91,1 e+e%uta
pentru )@iI1,n,1 e+e%uta
a%a aiRa) atun%i 8)8)I1
a!t0e! 8i8iI1
pentru i@1,n,1 e+e%uta '8i I1ai

Sortarea %u 'u!e 4Bu''!e9Sort5
%iteste ai, %u i@1..n si uti!i(ea(a o 2aria'i!a se#a0or 2'
repeta
2'true
pentru i@1,n91,1 e+e%uta:
a%a aiEaiI1 atun%i
s%Ai#'a4ai, aiI15
2'0a!se
pana %an 2'
$-
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
Sortarea Mer"e9Sort
s@#ar"inea stan"a4 pri#u! ini%e in sir5 @#ar"inea reapta4u!ti#u! ini%e in sir5
A!"orit#u! este re%ursi2, 2arianta iterati2a ra#ane e+er%itiu.
pro%eura Mer"e4s,5
2'true
pentru i@1,n91,1 e+e%uta
a%a aiEaiI1 atun%i :
s%Ai#'a4ai,aiI15
2'0a!se )iI1
a%a 2'@0a!se 4siru! nu este in%a oronat5 atun%i:
8T4sI5D$U
a%a )R8 atun%i #er"e4s,85
a!t0e! #er"e4s,8I15
Co#p!e+itatea s%ae prin in)u#atatirea 2e%toru!ui si uti!i(area 2aria'i!ei
'oo!eene, ra#anan e orin po!ino#ia! . Ana!o" pentru a!"orit#u! :
Sortarea cui%89Sort
%iteste ai, %u i@1..n
pentru i@1,n91,1 e+e%uta
pentru )@iI1,n,1 e+e%uta
a%a aiEa) atun%i s%Ai#'a4ai, a)5


Co#p!e+itate po!ino#ia!a. ,arianta %u se#a0or42aria'i!a 'oo!eana5 a a%estui a!"orit# 2a 0i ana!o"a
sortarii %u 'u!e, %u eose'irea %a sunt uti!i(ati oi ini%i i si ) in !o% e unu! sin"ur :
%iteste ai, %u i@1..n
repeta
se#a0ortrue
pentru i@1,n91,1 e+e%uta
pentru )@iI1,n,1 e+e%uta a%a aiEa) atun%i
s%Ai#'a4ai, a)5
se#a0or0a!se
pana %an se#a0or@true
Sortarea #ate#ati%a 4*ona! SAe!!5
Se uti!i(ea(a 2e%toru! a, nu#aru! n si ini%e!e e 4 ini%e e
!u%ru5o 2aria'i!a au+i!iara au+ si una 'oo!eana 2'.
en
repeta
se i2 $
repeta
2'true
pentru i@1,n9e,1 e+e%uta
)iIe
a%a a)Rai atun%i
aia)
$.
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
2'0a!se
pana %an 2'
pana %an e@1
Sortarea prin inter%!asare

Se uti!i(ea(a s si , %u a%e!easi se#ni0i%atii %a si !a sortarea rapia, oi 2e%tori a si ', a neoronat iar '
oronat, e a%easi i#ensiune, 2aria'i!a # pentru ini%e!e e #i)!o%, si %ontorii 8,i,). Co#p!e+itatea,esi
ra#ane e orin po!ino#ia!, se #i%sorea(a prin in)u#atatirea nu#aru!ui e operatii 4sortarea pe )u#atati,
rea!i(ata re%ursi25

pro%eura sortin%4s,5 42arianta re%ursi2a a #etoei i2ie et i#pera5 5
a%a sR atun%i
#T4sI5D$U
sortin%4s,#5
sortin%4#I1,5
inter%!asare

pro%eura inter%!asare 42arianta iterati2a5
4se 2a !u%ra %u & %ontori, i, ), 8 si se 2a %a!%u!a a! patru!ea Z
ini%e!e #5 #4sI5D$ is )8I1 8s91
4 se a 2e%toru! a si se %onstruieste 2e%toru! '5
s@ ini%e stan"a= i retine ini%e!e s = 8 retine #ai putin %u o unitate
e%at i = ) retine #ai #u!t %u o unitate e%at 8= # retine ini%e!e e!e9
#entu!ui in #i)!o%u! 2e%toru!ui= %ontorii i si ) ur#ares% e!e#ente!e
2e%toru!ui at a, iar 8 pe %e!e a!e 2e%toru!ui %are se 2a o'tine '.
repeta
88I1
a%a aiRa) atun%i
'8ai
iiI1
a!t0e!
'8a)
))I1
pana %an 4iEs5 sau 4)E5
a%a iEs atun%i
pentru i@),,1 e+e%uta
88I1
'8ai
a!t0e!
pentru )@i,s,1 e+e%uta
88I1
'8a)

pentru i@s,,1 e+e%uta ai'i

A&. Inter%!asarea a oua !iste
,o# %onsiera 2e%torii a si ', oronati, %are nu au o'!i"atoriu a%eeasi i#ensiune. 6ie # si n
i#ensiunea pri#u!ui, repe%ti2 a %e!ui e9a! oi!ea 2e%tor. ,e%toru! % 2a %ontine %o#ponente!e %e!or oi
2e%tori a si ', s%rise o sin"ura ata.
$/
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
i1 )1 81
repeta
a%a aiR@') atun%i :
%8ai
iiI1
a!t0e!
%8')
)R999)I1

88I1
pana %an 4iE#5 sau 4)En5
4 *a%a unu! intre 2e%torii a sau ' si9a epui(at e!e#ente!e, atun%i 2e%toru! % se 2a %o#p!eta %u e!e#ente!e
ra#ase.in %e!a!a!t 2e%tor. 5
atat ti#p %at 4iR@#5 e+e%uta :
%8ai
iiI1
88I1


atat ti#p %at 4)R@n5 e+e%uta :
%8 ')
))I1
88I1
pentru i@1,891,1 e+e%uta s%rie %i

A-. Cautarea si#p!a, %autarea 'inara
A!"orit#ii e %autare, 2eri0i%a, upa %u# su"erea(a si
enu#irea, e+istenta unui e!e#ent intr9o #u!ti#e4 sir, !ista, 2e%tor at5 e e!e#ente.
a5 Cautarea si#p!a
Co#p!e+itatea este e orin po!ino#ia!, si eoare%e se e+e%uta nu#ai #a+i# n %autari, nota# O4n5
a@2e%tor e e!e#ente ate , +@e!e#ent %autat
2' 0a!se
pentru i@1,n,1 e+e%uta
a%a ai@+ atun%i 2'true
a%a 2' atun%i s%rie NGasitO
a!t0e! s%rie NNe"asitO

'5 Cautarea 'inara
A%est #o e %autare presupune i#partirea %onse%uti2a a 2e%toru!ui at in oi 2e%tori e !un"i#i e"a!e,
%o#pararea 2a!orii %autate %u e!e#entu! in #i)!o% si %ontinuarea %autarii nu#ai pe unu! intre %ei oi
2e%tori9)u#atati, in 0un%tie e re(u!tatu! a%estei %o#parari. Ceea %e se uti!i(ea(a, e%i 2aria'i!e!e sunt
pre(entate anterior a!"orit#u!ui:
a, +, s,, 84 s@stan"a, @reapta, +@e!e#ent %autat, 8@%ontor e #i)!o%, a@2e%tor5
$1
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
variante recursive
pro%eura %aut<'in14s,5
a%a a4s5@+ atun%i s%rie N"asitO
a!t0e!
a%a sR atun%i
8T4sI5D$U
%aut<'in14s,85
%aut<'in148I1,5
A%easta 2arianta are a2anta)u! %a siru! nu este oronat ar si nea)unsu! unui nu#ar e operatii re!ati2
#ai #are .Cea %are se uti!i(ea(a %e! #ai es este ur#atoarea :
pro%eura %aut<'in$4s,5
a%a sR@ atun%i
8T4sI5D$U
a%a +@a8 atun%i s%rie N"asitO
a!t0e! a%a +Ra8 atun%i %aut<'in$4s,85
a!t0e! %aut<'in$48I1,5=

Co#p!e+itatea este in a%est %a( e orinu! O4!o"4n55 e%i a!"orit#u! este
#ai 'un ar e(a2anta)u! este ne%esitatea sortarii 2e%toru!ui a in prea!a'i!.
4!o"4n5 R n, !o"4n5 R nd, et%.5
Ca 2arianta iterati2a este pre(entata a!ternati2a %e!ei pre%eente, %u a%eeasi
#entiune a ne%esitatii oronarii prea!a'i!e a siru!ui e e!e#ente.
varianta iterativa pro%eura %aut<'in&
s1 n
repeta
a%a sR atun%i
8T4sI5D$U
a%a +@a8 atun%i
s%rie N"asitO
e+it
a!t0e!
a%a +Ra8 atun%i 8
a!t0e! s8I1


pana %an 8@>

E+er%itii 4so!utii in pseuo%o5
&. Oronati %res%ator o #atri%e 'ii#ensiona!a, in raport %u e!e#ente!e e pe ia"ona!a prin%ipa!a.
-. Oronati %res%ator o #atri%e 'ii#ensiona!a, in raport %u e!e#ente!e e pe ia"ona!a
se%unara.
.. Oronati %res%ator o #atri%e 'ii#ensiona!a, in raport %u e!e#ente!e e pe !inii.

E+er%itiu! 1, e !a para"ra0u! f14se%tiunea A!"orit#ii si#p!i in Pro"ra#a5
Cerinta era: trans0or#area a!"orit#u!ui e o #aniera in %are sortarea sa se
rea!i(e(e prin insertie upa #a+i#, nu upa #ini# :
$3
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
8>4P H %ontine e!e#ente!e 2e%toru!ui a %are
sti# %a sunt istin%teP5
HLa1,a$,..,anM
repeta
2'etrue
#a+e 9#a+int 4#a+i#u! se initia!i(a si %u un nr. 0. #i%5
pentru i@1,n,1 e+e%uta
a%a #a+Rai si ai H atun%i:
#a+ai
2'0a!se
H@H9L#a+M 88I1= '8#a+
pana %an 2'
E+er%itiu! $, a%e!asi para"ra0, %erea trans0or#area stru%turata a a!"orit#u!ui pre(entat !a sortarea rapia ,
pri#u! 0iin rea!i(at in #aniera nestru%turata.
LPro%eure sortare<rapiaM
repeta
se#a0ortrue
pentru i@1,n91,1 e+e%uta
pentru )@iI1,n,1 e+e%uta a%a aiEa) atun%i
s%Ai#'a4ai, a)5
se#a0or0a!se
pana %an se#a0or@true
L Pro"ra# prin%ipa! M
%iteste ai, %u i@1..n
sortare<rapia=
E+er%itiu! -. Este ase#anator %u %e! pre%eent, in 2arianta %u %ontor sau 0ara, sortarea in raport %u e!e#ente!e
ia"ona!ei se%unare 2a tine %ont, pentru inters%Ai#'area a oua e!e#ente e %onitia :
a9i/n&i:=a9i-./n&i&.:/ une I este ini%e!e e !inie.

pro"ra# sortare<pe<ia"ona!a<se%unara=
tHpe ini%e@1..1>=
2e%t@arraHTini%eU o0 inte"er=
2ar a:arraHTini%eU o0 2e%t=
se#a:'oo!ean=i,),8,n:'Hte=au+:inte"er=':2e%t=
'e"in
rea!n4n5=0or i:@1 to n o 0or ):@1 to n o rea!n4aTi,)U5=
repeat
se#a:@true=
0or i:@1 to n91 o
i0 aTi,n9iUEaTiI1,n9i91U tAen 'e"in
':@aTiU=aTiU:@aTiI1U=aTiI1U:@'=
0or ):@1 to n o 'e"in
$S
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
au+:@aT),n9iU=aT),n9iU:@aT),n9i91U=aT),n9i91U:@au+=
en=
se#a:@0a!se=
en=
unti! se#a@true=
0or i:@1 to n o 'e"in
0or ):@1 to n o Frite4aTi,)U,[ [5=
Frite!n=
en=
rea!n=
en.
In %ontinuare este pre(entata so!utia pentru oronarea tuturor e!e#ente!or #atri%ei, pe !inii
%res%ator5 con$itia $# sc>imbar#3 a9i/j:=a9i-./j:
2ar a:arraHT1..1>,1..1>U o0 inte"er=
au+,i,),n:inte"er=se#a0or:'oo!ean=
'e"in
rea4n5=
0or i:@1 to n o
0or ):@1 to n o
rea 4aTi,)U5=
0or ):@1 to n o 'e"in
repeat
se#a0or:@true=
0or i:@1 to n91 o
i0 4aTi,)UEaTiI1,)U5 tAen
'e"in
au+:@aTi,)U=
aTi,)U:@aTiI1,)U=
aTiI1,)U:@au+=
se#a0or:@0a!se=
en=
unti! se#a0or=
en=
0or i:@1 to n o 'e"in
0or ):@1 to n o Frite4aTi,)U,[ [5=
Frite!n=
en=
en.{}
ALTE TIPURI STRUCTURATE *E *ATE
II. TIPUL STRING
Tipu! strin" este un tip spe%ia! e ta'!ou %u e!e#ente e tip %Aar. E! #e#orea(a in a0ara %ara%tere!or
in sir si nu#aru! a%estora 4in po(itia > a siru!ui5. Nu#aru! e %ara%tere a! unei ate e tip strin" poate
2aria in ti#pu! e+e%utiei pro"ra#u!ui intre >4 siru! 2i: NO5 si o 2a!oare #a+i#a spe%i0i%ata in e%!aratia
siru!ui respe%ti2.
*ia"ra#a e sinta+a:
Ti2 strin! 9 constanta $# : 5
Strin! ti2 b?t#
O's: Spe%i0i%area i#ensiunii intre parante(e!e patrate poate !ipsi, %a( in %are se 2a %onsiera
i#ensiunea #a+i#a ai%a $./ e!e#ente. Moa!itati e e%!arare :
E+e#p!u! 1:
%onst sir:strin"T.U@NMariaO=
E+e#p!u! $ :
&>
strin!
Constanta
$# ti2 b?t#
END
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
tHpe sir@ strin"T1>U=
2ar a:sir=
E+e#p!u! &:
2ar sir, sir1, sir$: strin"T1>U
Strin"u! este un un 2e%tor %are o%upa in #e#orie un nu#ar e o%teti e"a! %u 2a!oarea %onstantei intre
parante(e, p!us 1, intru%at se #e#orea(a si !un"i#ea e0e%ti2a a siru!ui.
a5 Atri'uirea unei 2aria'i!e e tip strin" se rea!i(ea(a %u o e+presie e tip strin", ar e o !un"i#e
%o#pati'i!a %u !un"i#ea e%!arata4a%a este #ai #are, %ara%tere!e in p!us se 2or ne"!i)a5
'5 Se!e%tia este ana!o"a tipu!ui ta'!ou : aTiU, este %ara%teru! e pe po(itia i
%5 Intre oua strin"uri se sta'i!este o re!atie e oronare4!e+i%o"ra0i%a5, 0ie pe 'a(a !un"i#ii, iar a%a
sunt e"a!e %a !un"i#e, pe 'a(a nu#aru!ui e orine in %ou! ASCII a! %o#ponente!or e pe a%eeasi
po(itie.Rea#inti# %a tipu! %ara%ter, 0iin un tip orina!, a#ite operatori re!ationa!i, ast0e! %a un %ara%ter este
#ai #are a%at a!tu! a%a nu#aru! e orine in %ou! ASCII aso%iat pri#u!ui este #ai #are e%at a! %e!ui e9
a! oi!ea: or4NAO5 R or4NBO5
*e e+e#p!u 2o# a2ea: Na'%O R Na'%O ar si : Na'%O R N'%O
%5 Citirea si s%rierea se rea!i(ea(a %u pro%euri!e stanar, %u o'ser2atia %a, in %a(u! %an 2aria'i!e!e nu
au toate !un"i#ea e%!arata se 2a 0o!osi nu#ai pro%eura REA*LN.
5 6un%tii!e si pro%euri!e spe%i0i%e sunt %e!e %are operea(a nu#ai %u siruri e %ara%tere, isponi'i!e in
'i'!iote%a !i#'a)u!ui, in unitu! SVSTEM. Pentru %o Pas%a!, e e+e#p!u: n@!en"tA4sir5 =
sir1:@ %opH4sir,a,'5= e!ete4sir,a,'5= insert4sir1,sir$,a5= n@pos4sir1,sir$5= sir@%on%at4sir1,sir$5 et%.
Ce se#ni0i%atie au a%este 0un%tii si pro%euri spe%i0i%e g
n@ !en"tA4sir5 este !un"i#ea siru!ui sir ; n@pos4sir1,sir$5 este ini%e!e in%epan %u %are su'siru! sir1 se
re"aseste in siru! sir2, a%a nu se "aseste, 2a!oarea intoarsa este >= sir1@%opH4sir,i,)5 este siru! e %ara%tere
o'tinut %opiin in siru! sir, in po(itia i pe !un"i#ea ) toate %ara%tere!e=e!ete4sir,i,)5 e0e%9tuea(a ster"erea
%ara%tere!or siru!ui sir, in%epan %u po(itia i, pe !un"i#ea )4e%i ster"e ) %ara%tere in%epan %u %e! a0!at pe
po(itia i5= insert4sir1,sir$,i5 inter%a!ea(a in siru! sir1, toate %ara%tere!e siru!ui sir2, in%epan %u po(itia i, a
siru!ui sir1.
e5 Con%atenarea se 0a%e si %u a)utoru! operatoru!ui BIC. E+e#p!u: Na'%OIOe0O@Oa'%e0O
II.& TIPUL INREGISTRARE 6IKA4ARTICOL5
Tipu! inre"istrare 0i+a 4ARTICOL5 %uprine un nu#ar 0i+ e %o#ponente nu#ite CAMPURI, %are
pot a2ea tipuri i0erite. *ia"ra#a e sinta+a:
:
tip RECORD
inre"istrare i$#nti'icator 3 TIP END 5
/
5
Ca#puri!e pot 0i si e!e e tip inre"istrare= BtipC poate 0i ori%e tip e ate Pas%a!, pree0init sau uti!i(ator, %u
e+%eptia tipu!ui 6ILE. Ienti0i%atorii %a#puri!or sunt !o%a!i e0initiei e tip inre"istrare si in2i(i'i!i
in e+terior. Moa!itati e e%!arare:
E+e#p!u! 1: tHpe e!e2@ re%or
nu#e: strin"=
2arsta:'Hte=
en=
2ar a:e!e2=
E+e#p!u! $:
Un 2e%tor %u ast0e! e e!e#ente se poate e%!ara: 2ar ta':arraHT1..1>U o0 e!e2=
In pri#u! %a(, a%%esu! !a %a#p se rea!i(ea(a %u a)utoru! operatoru!ui B.C , nu#it Be se!e%tieC.
a.nu#e
&1
i$#nti'icator
ti2
5
Ti2 or$inal
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
In a! oi!ea %a(, se tine %ont e 0aptu! %a o inre"istrare este un e!e#ent e ta'!ou. Ca ur#are:
i9999999999E ta'TiU.nu#e
Operatii!e per#ise sunt %e!e pe %are !e a#ite tipu! e 'a(a .
Instru%tiunea \IT: : si#p!i0i%a a%%esu! !a %a#puri!e unei inre"istrari. Presupunan %a I* este
ienti0i%atoru! unei 2aria'i!e e tip inre"istrare, 2o# o'tine e 0or#a:
\IT: I *O instru%tiune
Sau :
I$ DO
@ITA instr"cti"n#
E+e#p!u : i:@1=
FitA aTiU o 'e"in rea!n4nu#e5= i:@iI1= rea!n42arsta5= en=
II.- TIPUL MULTIME
*enu#irea a%estui tip ne apropie e o#eniu! #ate#ati%ii, 0iin pre(ent nu#ai in %ou! Pas%a!, nu si in
CII.O #u!ti#e este o %o!e%tie e ate e a%e!asi tip, nu#it e 'a(a. Orinea e!e#ente!or nu are i#portanta.
O 2a!oare nu apare e #ai #u!te ori in #u!ti#e.
*ia"ra#a e sinta+a:

tip
SET Ti2 or$inal
#u!ti#e

Tipu! orina! este e #a+i# $./ e!e#ente, e%i poate 0i unu! in %e!e pree0inite: %Aar, 'Hte, 'oo!ean, sau un
su'o#eniu a! %e!or!a!te tipuri orina!e. In #e#orie sunt po(itionati pe 1 nu#ai 'itii %orespun(atori, %a
nu#ar e orine, 2a!ori!or in #u!ti#e, %ei!a!ti 0iin po(ionati pe >. O #u!ti#e poate 0i %onstruita %u a)utoru!
e!e#ente!or sa!e, 0o!osin B%onstru%toriiC e #u!ti#i: T U, ast0e!:
T 2a!1..2a!$U sau : T2a!1, 2a!$, 2a!&U a%a nu sunt 2a!ori %onse%uti2e.
*e%!arari e #u!ti#i:
E+e#p!e:
a5 %onst a: set o0 'Hte@T>..1>U=
'5 2ar ': set o0 NAO..OZO= Notatie pentru #u!ti#ea 2ia: T U
%: set o0 >..1>=
: set o0 %Aar= Atri'uiri: a:@T>..1>U=
e: set o0 'Hte= ':@TNAO.. NCOU=
0: set o0 'oo!ean= Re!atii : aE@'=
4 a in%!ue ', e2ient 0a!s in e+e#p!u! e #ai sus5
Operatii!e posi'i!e %u ate!e e a%est tip sunt spe%i0i% #ate#ati%e: reuniunea4I5, interse%tia4P5,
i0erenta495= re!atii!e sunt : e apartenenta 4in5, in%!u(iune nestri%ta 4R@, E@5, e"a!itate4@5, respe%ti2
in%!u(iune stri%ta 4R, E5.
O'ser2atie: In parante(e sunt tre%uti operatorii %orespun(atori in cod Pascal . In pseuo%o 2o# uti!i(a
notatii!e e !a #ate#ati%a4 este reuniune, este interse%tie, este in%!u(iune, este apartenenta,
este nein%!us in , este nu apartine5
E+er%itii: Trans%rieti in Pas%a!, pseuo%ou! aso%iat ur#atori!or a!"orit#i:
1. Se a un sir e nu#ere intre"i 4 in inter2a!u! T9$./=$..U5= se!e%tati intre"ii po(iti2i intr9o
#u!ti#e A si a0isati e!e#ente!e a%esteia.
$. Se %onsiera $ 2e%tori e intre"i 4 in inter2a!u! T9$./=$..U5.
A0isati e!e#ente!e !or %o#une uti!i(an interse%tia e #u!ti#i.
&. *oua %u2inte au %ara%tere i0erite si %ara%tere %o#une. A!%atuiti, uti!i(an #u!ti#i!e,
un a! trei!ea %u2ant %ontinan e!e#ente!e 4%ara%tere!e5 %are se repeta in %e!e oua
%u2inte ate.
&$
SET
OF
@ITA
instru%tiune
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
-. Oronati a!0a'eti% o !ista e 1> e!e2i, a2an inre"istrate nu#e!e si nota, %u un %ap e ta'e!
%ontinan oua %o!oane: NUME, NOTA.

Sol"tiil# #(#rcitiilor 2ro2"s# (in 2s#"$oco$) 3
.% Nota# : 2@ siru! e nu#ere intre"i = a@#u!ti#ea e!e#ente!or !ui = i@%ontor=
+@e!e#ent a! #u!ti#ii a= n@nu#ar e %o#ponente a!e !ui 2= p@ nu#ar
e e!e#ente a!e #u!ti#ii a
%iteste 2i, i@1..n
aLM 4P#u!ti#ea 2iaP5
pentru i@1,n,1 e+e%uta
a%a 24i5 E > atun%i aaL24i5M
pentru +@>,$..,1 e+e%uta
a%a +a atun%i s%rie +
1% Nota# : u,2@2e%torii e intre"i= a, '@#u!ti#i!e e!e#ente!or !or= +@e!e#ent e a%e!asi
tip %u %o#ponente!e 2e%tori!or= %@#u!ti#ea interse%tie = ),i@ %ontori
%iteste ui,2i, i@1..n= )@1..#
a LM
'LM 4P#u!ti#i!e sunt initia! 2ieP5
pentru i@1,n,1 e+e%uta aaLu4i5M
pentru )@1,#,1 e+e%uta ''L24)5M
%@ a'
pentru +@>,$..,1 e+e%uta
a%a +% atun%i s%rie +
B% Nota# : +,H@ ate e tip strin"= a,',%@ #u!ti#i e %ara%tere= i,)@ %ontori
Sin"ura i0erenta raportat !a a!"orit#u! pre%eent este introu%erea e!e#en9
te!or.
%iteste +, H a LM 'LM
4P#u!ti#i!e sunt initia! 2ieP5
n!en"tA4+5
#!en"tA4H5 4P n si # retin nu#aru! e %o#ponente a!e %e!or P5
pentru i@1,n,1 e+e%uta aaL+4i5M 4Poua strin"uriP5
pentru )@1,#,1 e+e%uta ''LH4)5M
%@ a'
pentru or4(5@>,$..,1 e+e%uta
a%a (% atun%i s%rie (
8% Nota#: e!e2 2aria'i!a e tip arti%o!, a2an %a#pu! nu#e 4strin"5 si nota4su'o#eniu5 ta'
este 2e%tor e e!e#ente e tip e!e2= au+1 si au+$ sunt 2aria'i!e au+i!iare e tipu! %a#9
puri!or tipu!ui arti%o! e0init= n este nu#aru! e %o#ponente a!e 2e%toru!ui= i este %ontor =
enu#iri!e %e!or oua %a#puri : nu#e, nota= se#a0or este 2aria'i!a e tip 'oo!ean

%iteste n
pentru i@1,n,1 e+e%uta
%iteste ta'4i5.nu#e
%iteste ta'4i5.nota
repeta
se#a0ortrue
pentru i@1,n91,1 e+e%uta
a%a ta'4i5.nu#eEta'4i5I1.nu#e atun%i
&&
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
s%Ai#'a4ta'4i5.nu#e,ta'4iI15.nu#e5
s%Ai#'a4ta'4i5.nota,ta'4iI15.nota5
se#a0or0a!se
pana %an se#a0or
pentru i@1,n,1 e+e%uta
s%rie ta'4i5.nu#e
s%rie ta'4i5.nota

II... 6ISIERE
A. 6ISIERE CU TIP
B. 6ISIERE TEKT
6ISIERUL este o stru%tura e ate e a%e!asi tip, ar %u un nu#ar ne0i+at e %o#ponente. E! se
ienti0i%a printr9o 2aria'i!a e tip B0isierC. Co#ponente!e 0isieru!ui se nu#es% arti%o!e. Co!e%tia e ate e tip
0isier se #e#orea(a pe suport e+tern.
Li#'a)u! Pas%a! %!asi0i%a 0isiere!e, in pun%t e 2eere a! #ou!ui e repre(entare a ate!or pe
suportu! e+tern, in 0isiere te+t 4ate!e sunt in 0or#at ASCII5 si 'inare4ate!e sunt #e#orate in 0or#at ienti%
%e!ui in #e#oria interna5. 6isiere!e 'inare se i#part !a ranu! !or in 0isiere %u tip si 0isiere 0ara tip. In pri#u!
%a( pre!u%ari!e e intrareDiesire sunt pe arti%o!e e stru%tura si !un"i#e 0i+a, in a! oi!ea, pe '!o%uri 'inare e
stru%tura si !un"i#e 0i+a. E+ista oua 0isiere stanar e intrare si iesire: INPUT,4asi"9
nat tastaturii5 OUTPUT4asi"nat #onitoru!ui5, e tip te+t, e0inite in unitu! SVSTEM. A%este 0isiere se
nu#es% stanar si se es%Ai, respe%ti2 in%Ai auto#at !a in%eputu! si s0arsitu! e+e%utiei 0ie%arui
Pro"ra# . 6isiere!e nestanar tre'uie sa 0ie ienti0i%ate printr9o 2aria'i!a e tip 0isier, e%!arata inainte e
0o!osire.
Moa!itati e e%!arare:
2ar 0: te+t= L e0ineste un 0isier e tip te+tM
": 0i!e o0 tip=4e0ineste un 0isier e arti%o!e e tipu! tip5
In Pas%a! e+ista pro%euri si 0un%tii stanar e pre!u%rare a 0isiere!or, in%!use in unitu! SVSTEM.
Pentru a9! e0ini B0i(i%C 4 aso%ierea 2aria'i!ei e tip 0isier %u un 0isier 0i(i% e+istent pe is%5 se 0o!oseste
pro%eura ASSIGN4 5 ast0e!:
Assi"n40, Nte+t.t+tO5= Assi"n4", NInput.atO5=
Pri#a 2aria'i!a este %ea e tip 0isier, a oua este nu#e!e at e uti!i(ator 0isieru!ui e pe is% e2entua!
%u B%a!eaC %orespun(atoare. 6isiere!e e tip te+t se pot 2i(ua!i(a si par%ur"e !a 0e! %a ori%e 0isier nee+e%uta'i!,
%u %o#ana B2ieFC, respe%ti2 BeitC, e%Ai2a!ente taste!or B6&C, respe%ti2 B6-C, in uti!i9(atoru! NC 4Norton
Co##aner5
In %ontinuare, 0isiere!e se pre"ates% pentru s%riere %u %o#en(i!e : RE\RITE405= RE\RITE4"5= iar e
%itire %u %o#en(i!e: RESET405= RESET4"5= Co#en(i!e sunt pro%euri stanar a!e !i#'a)u!ui, spe%i0i%e
0isiere!or. E+ista une!e eose'iri intre %e!e oua tipuri e 0isiere in #o#entu! s%rierii sau %itirii e ate.
E+e#p!e : tHpe e!e2@ re%or
nu#e: strin"= nota: 1..1>= en=
2ar 0: te+t= ":0i!e o0 e!e2= a: e!e2= ':strin"= %:%Aar=
,o# putea uti!i(a instru%tiuni!e: rea40,'5= rea!n405=
Frite40,'5= Frite!n405=
sau pe s%urt : rea!n40,'5= Frite!n40,'5=
in pri#u! %a(, inse#nan %itireaDs%rierea unui sir e %ara%tere in B0C, ur#ata e %itireaDs%rierea unui ran
!i'er, e%i sa!t !a ranu! ur#ator, in a! oi!ea %a( o sin"ura instru%tiune %ontinan a%este oua a%tiuni. *a%a
ate!e sunt 2e%tori e tip nu#eri%, spre e+e#p!u:
2ar t: arraHT1..1>U o0 inte"er=
Se%2enta ur#atoare este %ore%ta , per#itan ins%rierea e!e#ente!or unui 2e%tor in 0isieru! 0 :
0or i:@1 to 1> o rea!n4tTiU5= 0or i:@1 to 1> o Frite40,tTiU: .5=
&-
Lista
2aram#trilor
'ormali
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
Tipu! B0isier te+tC a#ite a0isarea %u 0or#at, pentru toate tipuri!e e ate. 6isieru! e arti%o!e per#ite s%rierea
si %itirea unei inre"istrari intre"i. Sa presupune# %a e+ista e%!aratia:
2ar ta': arraHT1..1>U o0 e!e2=
Citirea in 0isier si s%rierea in 0isier, a 2a!ori!or unei ast0e! e 2aria'i!e :
0or i:@1 to 1> o rea4", ta'TiU5
0or i:@1 to 1> o Frite4",ta'TiU5=
A!te operatii sunt %ea e aau"are, respe%ti2 %autare, ire%ta sau se%2entia!a in 0isieru! e inre"istrari
Pentru 0isiere!e e tip te+t, pro%eura4%o#ana, instru%tiunea5 stanar APPEN*405 po(itionea(a
%ursoru! !a s0arsit e 0isier, upa %are se pot s%rie noi ate. Cautarea in 0isieru! te+t se poate 0a%e nu#ai
se%2entia!, %ara%ter %u %ara%ter, se%2enta %u se%2enta sau !inie %u !inie.
A!aturi e %autarea se%2entia!a, 0isieru! e inre"istrari a#ite si %autarea ire%ta %u a)utoru! pro9
%eurii SEE74",n5= une n este nu#aru! e orine a! arti%o!u!ui pe %are se 2a po(itiona %ursoru!, ur#an a se
0a%e a%tua!i(area %a#puri!or. In%Aierea a#'e!or tipuri e 0isiere se 2a 0a%e %u a)utoru! pro%eurii CLOSE45,
une !a ar"u#ent este ienti0i%atoru! e 0isier. 4%!ose405, %!ose4"55
*upa in%Aiere, 0isiere!e se pot reenu#i %u a)utoru! %o#en(ii4 pro%eura5: RENAME40, nu#e<nou5
e e+e#p!u, pentru 0isieru! Bte+t.t+tC 2o# s%rie rena#e40, Nnu#e.t+tO5= une pri#u! ar"u#ent este 2aria'i!a e
tip 0isier, iar a! oi!ea ar"u#ent este noua enu#ire a a%e!uiasi 0isier.
*e ase#enea, pentru a#'e!e 0isiere e+ista in 'i'!iote%a Pas%a! :

eo0405, eo04"5 9pro%eura %are testea(a s0arsitu! e 0isier
si(eo0405, si(eo04"5 9pro%eura %are intoar%e i#ensiunea 0iseru!ui
erase405, erase4"5 9pro%eura %are ster"e 0i(i% 0isieru! e pe is%
nu#ai pentru 0isiere!e te+t :
eo!n405 9 returnea(a true a%a pointeru! ini%a s0arsit e !inie sau 0isier
see8eo!n405 9 sare peste TAB sau '!an%, si returnea(a ie# %a pre%eenta.
see8eo0405 9 sare peste TAB, '!an%, CRIL6, si returnea(a true a%e se e9
te%te(a s0arsit e 0isier
trun%ate505 9 s%rie #ar%a)u! e s0arsit e 0isier pe !o%u! ini%at e pointer.
II./ SUBPROGRAME 9 PROGRAMAREA STRUCTURATA
Su'pro"ra#e!e sunt parti ienti0i%a'i!e prin nu#e a!e unui pro"ra# si %are se pot a%ti2a
4!ansa in e+e%utie5 !a %erere prin inter#eiu! a%estor nu#e. Li#'a)u! Pas%a! are oua tipuri e su'pro"ra#e :
15 6un%tii!e returnea(a o 2a!oare, e a%eea !or !i se aso%ia(a si un tip
$5 Pro%euri!e e0e%tuea(a nu#ai pre!u%rari e ate, 0ara a returna in
#o ne%esar o 2a!oare 4 putan returna e2entua! #ai #u!te 2a!ori5.
Li#'a)e!e ispun e 0un%tii si pro%euri stanar, ar uti!i(atoru! poate %rea !a ranu! sau
su'pro"ra#e si ape!anu9!e in pro"ra#u! prin%ipa!, sa rea!i(e(e asa nu#ita stru%turare.
La e%!ararea pro%eurii sau a 0un%tiei pot 0i spe%i0i%ati asa nu#itii para#etrii 0or#a!i in9
tr9o !ista a0!ata in antet.
*ia"ra#a e sinta+a a unei pro%euri este:
pro%eura
PROCEDURE i$#nti'icator ( lista 2aram#tri )
'ormali
*ia"ra#a e sinta+a a unei 0un%tii este:
0un%tie
FUNCTION i$#nti'icator ( lista 2aram )
3 ti2"l alorii
r#t"rnat#
&.
)
i$#nti'icator
FUNCTION
Ti2"l alorii
r#t"rnat#
3
Lista
2aram#rilor
'ormali
i$#nti'icator
PROCE*URE
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
Lista para#etri!or 0or#a!i
i$#nti'icator 3 ti2
5

Stru%tura unui su'pro"ra# este a%eeasi %u %ea a unui pro"ra# prin%ipa! in sensu! %a
are rept %o#ponenete:
9antetu!
9se%tiunea e%!arati2a
9se%tiunea e+e%uta'i!a
*e(2o!tarea unui su'pro"ra# in %aru! pro"ra#u!ui prin%ipa! se poate 0a%e upa #oe!e:
A. se%2entia! B. neste 4i#'ri%at5
SEC,ENTIAL:

NESTE*:

O's: Pentru un sin"ur su'pro"ra#, %e!e oua #oe!e se %on0una. *a%a !ista pra#etri!or 0or9#a!i
%uprine #ai #u!ti ienti0i%atori, a%estia se 2or separa prin = si se 2or e%!ara %u tip. *a%a sunt #ai #u!ti
ienti0i%atori e a%e!asi tip in !ista, atun%i a%estia se 2or separa prin 2ir"u!a, tipu! e%!aranu9se o sin"ura
ata.

I$#nti'icator 3 ti2
/
5
La ape!are, para#etrii e0e%ti2i se separa nu#ai prin 2ir"u!a. Ape!u! a%estor para#e9
tri se poate 0a%e in oua #ouri:
A. prin 2a!oare
B. prin aresa 4re0erinta59 in pri#u! ran pentru ta'!ouri
A%esti para#etri sunt pre%eati e %u2antu! %Aeie 9,AR
MASI,UL este ori%e ta'!ou ienti0i%at printr9un nu#e %are repre(inta insasi aresa (onei e #e#orie
in %are s9au inre"istrat 2a!ori!e %o#ponente!or sa!e In 0ata a%estui tip e para#etru 0or#a! se s%rie %u2antu!
%Aeie ,AR.
*o#eniu! e 2i(i'i!itate a! unui ienti0i%ator este (ona e Pro"ra# in %are este 2a!a'i!a e%!aratia sau
e0initia a%e!ui ienti0i%ator.
In %aru! unui '!o%4pro"ra#, 0un%tie, sau pro%eura5 un ienti0i%ator poate 0i e%!arat o sin"ura ata,
si 2a 0i re%unos%ut oar in interioru! '!o%u!ui respe%ti2, #oti2 pentru %are se nu#es% si entitati !o%a!e. E!e
&/
i$#nti'icator
ti2
i$#nti'icator
ti2
3
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
apar !a !ansarea in e+e%utie a '!o%u!ui , spatiu! !or 0iin re(er2at in sti2a e e+e%utie a '!o%u!ui, iar #e#oria
re(er2ata este ea!o%ata !a in%Aeierea e+e%utiei.
*a%a un '!o% nu are para#etri 0or#a!i4pro%eura sau 0un%tie5 atun%i nu e+ista s%Ai#' e in0or#atii
intre a%est '!o% si pro"ra#u! prin%ipa! sau a%est s%Ai#' se 0a%e prin 2aria'i!e "!o'a!e.
O'ser2atie: *e(2o!tarea #entionata poate 0i s%Ai#'ata %u a)utoru! ire%ti2ei 4%u2ant %Aeie5
6OR\AR*.


E(#rcitii la ti2"ril# str"ct"rat# $# $at#
1.
S%rieti in %o Pas%a! un pro"ra# %are sa e+e#p!i0i%e #oe!u! e pr"ra#are stru%turata. *e e+e#p!u,
%itin un nu#ar natura! n, a%a a%esta este par, sa %a!%u!e(e su#a a n nu#ere introuse e !a tastatura, in
%a( %ontrar, sa se %a!%u!e(e prousu! !or.
So!utie: s@ 2aria'i!a su#a, !o%a!a 0un%tiei, p@2aria'i!a prous, !o%a!a pro%eurii
N@ nu#ar natura! , 2aria'i!a "!o'a!a.

Pro"ra# sinta+a<pro"ra#=
!a'e! S=
tHpe inter2a!@1..1>=
2ar i:inter2a!= n:inte"er=
0un%tion aunare4n:inte"er5:inte"er=
2ar s,i:inte"er=
'e"in
i:@1=s:@>=
FAi!e4iR@n5 o 'e"in
rea!n4+5=
s:@sI+=
in%4i5=
en=
aunare:@s=
en=
pro%eure prous4n:inte"er5=
2ar p,+:inte"er=
'e"in
i:@1=p:@1=
FAi!e4iR@n5 o 'e"in
rea!n4+5=
p:@pP+=
in%4i5=
en=
Frite4[prousu! este:[,p5=
en=
'e"in
S: 'e"in Frite!n4?A5=
Frite!n4W1&5=
en=
rea4n5=
i04n #o $@>5 tAen 'e"in
Frite4[su#a este:[,aunare4n55=
prous4n5=
en
e!se "oto S=
rea!n=
en.
2. Se %ites% oua siruri e %ara%tere s1 si s$. Se s%rie un sir nou 0or#at in %ara%tere!e %e!or oua
siruri,0o!osin o sin"ura ata 0ie%are %ara%ter. 4%o Pas%a!5
Pro"ra# 0a#i!ie<e<%u2inte=
2ar a,',%:set o0 [a[..[([=
&1
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
s1,s$:strin"T1>U=
%A:[a[..[([=
i:'Hte=
'e"in
a:@TU=
':@TU=
%:@TU=
Frite!n4[ati %u2inte!e :[5=
rea!n4s15=
rea!n4s$5=
0or i:@1 to !en"tA4s15 o i0 s1TiU in T[a[..[([U tAen a:@aITs1TiUU=
0or i:@1 to !en"tA4s$5 o i0 s$TiU in T[a[..[([U tAen ':@'ITs$TiUU=
%:@aP'=
0or %A:@[a[ to [([ o i0 %A in % tAen Frite4%A5=
en.

&.
S%rieti un pro"ra# %are sa a0ise(e un #esa) in %a(u! in %are, par%ur"an un te+t, re"aseste un anu#it
sir e %ara%tere, h2irusC.
4%o Pas%a!5
So!utie:
Te+tu! este un ta'!ou e !inii, iar 2irusu! %onstanta ia'%O

Pro"ra# s%an<2irus=
%onst 2irus@[a'%[=
tHpe !inie@strin"=
2ar n,i:'Hte=
te+t:arraHT1..1>U o0 !inie=
'e"in
Frite!n4[nr e !inii a!e te+tu!ui[5=
rea!n4n5=
Frite!n4[ati te+tu![5=
0or i:@1 to n o rea!n4te+tTiU5=
0or i:@1 to n o i0 pos42irus,te+tTiU5RE>
tAen Frite4[2irus "asit[5=
rea!n=
en.

-. S%rieti un pro"ra# %are epistea(a si in!atura un sir e %ara%tere intr9un 0isier te+t.
4%o Pas%a!5
Pro"ra# e2irusare<te+t=
%onst 2irus@[a'%[=
tHpe !inie@strin"=
2ar n,a,i:'Hte=
%A:%Aar=
te+t:arraHT1..1>U o0 !inie=
'e"in
Frite!n4[nr e !inii a!e te+tu!ui[5=
rea!n4n5=
Frite!n4[ati te+tu![5=
0or i:@1 to n o rea!n4te+tTiU5=
0or i:@1 to n o i0 pos42irus,te+tTiU5RE> tAen Frite4[2irus "asit[5=
Frite!n4[ oriti e2irusare g4*DN5[5=
rea!n4%A5=
i0 up%ase4%A5@[*[ tAen i0 pos42irus,te+tTiU5RE> tAen
'e"in
a:@ pos42irus,te+tTiU5=
e!ete4te+tTiU,a,!en"tA42irus55=
en=
0or i:@1 to n o Frite!n4te+tTiU5=
en.
.. Oronati a!0a'eti% o !ista e e!e2i, %ontinan nu#e!e si nota 0ie%aruia.
Pro"ra# oronare<a!0a'eti%a=
tHpe e!e2@re%or
nu#e:strin"=
&3
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
nota:inte"er=
en=
2ar ta':arraHT1..1>U o0 e!e2=
au+:e!e2=
se#a:'oo!ean=
i,n:'Hte=
pro%eure paAare=
'e"in
au+:@ta'TiU=
ta'TiU:@ta'TiI1U=
ta'TiI1U:@au+=
se#a:@0a!se=en=
pro%eure oronare=
'e"in
repeat
se#a:@true=
0or i:@1 to n91 o i0 ta'TiU.nu#eEta'TiI1U.nu#e
tAen paAare=
unti! se#a@true=
en=
'e"in
Frite4[ati nu#aru! e e!e2i[5=
rea!n4n5=
0or i:@1 to n o 'e"in
Frite 4[nu#e!e@[5=rea!n 4ta'TiU.nu#e5=
Frite 4[nota@[5=rea!n 4ta'TiU.nota5=
en=
oronare=
0or i:@1 to n o 'e"in
Frite 4[nu#e!e@[5=Frite!n 4ta'TiU.nu#e5=
Frite 4[nota@[5=Frite!n 4ta'TiU.nota5=
en=
EN*.
C% Se %ites% / nu#ere e !a tastatura si se ins%riu %u 0or#at intr9un 0isier te+t. Se a0isa(a %onti9nutu!
0isieru!ui pe e%ran, apoi se oronea(a nu#ere!e in 0isier si se s%riu in %ontinuarea %e!or e)a
e+istente. Care 2a 0i %ontinutu! nou!ui 0isierg 4%o Pas%a!5

Program numere_fisier;
uses %rt=
2ar 01,0$,0&:te+t=
au+,i,n:inte"er=
2':'oo!ean=
%A:%Aar=
!inie:strin"=
ta':arraH T1..1>U o0 inte"er=
'e"in
%!rs%r=
assi"n 401,[in<out.t+t[5=
reFrite 4015=
Frite!n401,[nu#ere!e sunt:[5=
rea!n 4n5=
0or i:@1 to n o 'e"in rea!n 4ta'TiU5= Frite 401,ta'TiU:15=
en=
%!ose4015=
assi"n 401,[in<out.t+t[5=
reset 4015=
i:@>=
FAi!e not eo04015 o 'e"in
rea 401,%A5=
Frite 4%A5=
en=
%!ose4015=
Frite!n=
assi"n 401,[in<out.t+t[5=
reset 4015=
FAi!e not eo0 4015 o 'e"in
rea!n401,!inie5=Frite!n 4!inie5=en=
%!ose4015=
assi"n 401,[in<out.t+t[5=
reset 4015=
rea!n 4015=
FAi!e not eo0 4015 o
rea401,ta'TiU5=
&S
FISIERUL IN_OUT.TXT
numerele sunt:
6 3 7 8 9
3 6 7 8 9
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
repeat
2':@true=
0or i:@1 to n91 o i0 ta'TiUEta'TiI1U tAen 'e"in
au+:@ta'TiU=
ta'TiU:@ta'TiI1U=
ta'TiI1U:@au+=
2':@0a!se en=
unti! 2'=
appen4015=
Frite!n 4015=
0or i:@ 1 to n o Frite401,ta'TiU,[ [5= %!ose4015= en.
D% Se %iteste un sir e %ara%tere e !a tastatura 4stanar INPUT5, repre(entan o e+presie
a!"e'ri%a Se %ere sa se s%rie su' 0or#a po!one(a post0i+ata 4intai operan(ii, apoi operatorii, in orinea
e0e%tuarii %a!%u!e!or, e !a stan"a !a reapta5 4%o Pas%a!5
So!utia uti!i(ea(a Pro"ra#area stru%turata, 2aria'i!a # retine siru! e %ara%tere, 2 retine 0or#a
po!onea post0i+ata, iar pro%euri!e s/ 2/ t/ ' se pot interape!a inainte e a 0i e+p!i%itate, prin
inter#eiu! ire%ti2ei 6OR\AR*, %u2ant9%Aeie, s%ris in reptu! antetu!ui su'Pro"ra#u!ui :
Pro"ra# 0or#a po!one(a< stati%=
uses %rt=
2ar p,e:strin"=
i,!:'Hte=
pro%eure %itire=
'e"in
Frite4[e+p:[5=
rea!n4e5=
!:@!en"tA4e5=
p:@[[=
Frite!n=
en=
pro%eure s= 0orFar=
pro%eure 0=
'e"in
i0 eTiU@[4[ tAen 'e"in
in%4i5=
s=
in%4i5=
en
e!se
'e"in
p:@pIeTiU=
in%4i5=
en=
en=
pro%eure t=
'e"in
0=
FAi!e 4eTiU @[P[5an4iR@!5 o 'e"in
i:@iI1=
0=
p:@pI[P[=
en=
FAi!e 4eTiU @[D[5an4iR!5 o 'e"in
i:@iI1=
0=
p:@pI[D[= en=
en=
pro%eure s=
'e"in
t=
FAi!e 4eTiU@[I[5an4iR!5 o 'e"in
i:@iI1=
t=
p:@pI[I[=
en=
FAi!e 4eTiU@[9[5an4iR!5 o 'e"in
i:@iI1=
t=
p:@pI[9[=
en=
->
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
en=
'e"in
%!rs%r=
%itire=
i:@1=
s=
Frite!n4[e+presie in 0or#a po!one(a : [,p:$>5=
rea!n=
en.
7% Rea!i(ati un pro"ra# %are in!o%uias%a %o#en(i!e COPV NUME<1.TKT NUME<$.TKT, si
TVPE NUME<$.TKT
Pro"ra# %opH<tHpe=
2ar 01,0$:te+t=
i:inte"er=
%A:%Aar= a:strin"=
pro%eure s%rie=
'e"in
reFrite4015=
0or i:@1 to $ o
'e"in
rea!n4a5=
Frite!n401,a5=
en=en=
BEGIN
assi"n401,[NUME<1.t+t[5=
s%rie=
assi"n40$,[NUME<$.t+t[5=
reset4015=
reFrite40$5=
FAi!e not eo04015 o
'e"in
rea401,%A5=
Frite40$,%A5=
en=
%!ose4015=
reset40$5=
FAi!e not eo040$5 o
'e"in
rea40$,%A5=
Frite4%A5=
en=
%!ose40$5=
rea!n=
en.
3. S%rieti un pro"ra# %are sa in!o%uias%a %o#en(i!e E*IT si RENAME . Uti!i(ati 0isieru! te+t IN.TKT
Moi0i%ati %ontinutu! a%estui 0isier si reenu#iti9! OUT.TKT.
2ar 0,":te+t=a:strin"=
'e"in
assi"n4",[IN.TKT[5=
appen4"5=
Frite4",[ BVE BVE ; [5=
assi"n40,[OUT.TKT[5=
%!ose4"5=
erase405=
Rena#e4",[IN.TKT[5=
en.

3. *intr9un 0isier %u tip uti!i(ator, a2an inre"istrari!e %u nu#e!e si 2arsta unor e!e2i, sa
e+tra"a a! oi!ea si sa se a0ise(e pe e%ran.
So!utia %are este pre(entata #ai )os 2a uti!i(a pro%eura stanar e a%%es ire%t: s##E

tHpe e!e2@re%or
nu#e:strin"=
2arsta:'Hte=
en=
2ar ta':arraHT1..1>U o0
e!e2=
-1
6isiere!e NUME<1 si NUME<$ sunt e
tip te+t, %reate prin Pro"ra#, iar pro%eura
scri# rea!i(ea(a s%rierea in pri#u! 0isier, %e!
%are 2a 0i %opiat.
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
0:0i!e o0 e!e2=
a:e!e2=i,n:inte"er=
'e"in
assi"n40,[e!e2i.at[5=
rea!n4n5=reFrite405=
0or i:@1 to n o ea!n4ta'TiU.nu#e5=
rea!n4ta'TiU.2arsta5=
Frite40,ta'TiU5=
en=
reset405=
see840,$5=
rea40,a5=
Frite!n4a.nu#e5=
Frite!n4a.2arsta5=
%!ose405= en.

S.
Se a ar'ores%enta e ire%toare si 0isiere a unei unitati e is%.Cunos%an nu#e!e unui
0isier sa se eter#ine su'ire%toare!e in %are 0a%e parte.
Pro"ra# ar'ore<ire%toare=
tHpe no@re%or
nu#e:strin"T$>U=
tata:inte"er=
en=
2ar 2:arraHT1..$>U o0 no=
n,in:inte"er=
+:strin"T$>U=
0un%tion %auta4+:strin"5:inte"er=
2ar i:inte"er=
'e"in
%auta:@>=
0or i:@1 to n o
i0 +@2TiU.nu#e tAen %auta:@i=
en=
pro%eure %itire=
2ar i,):inte"er=
+:strin"T$>U=
'e"in
Frite4[Nr. e e!e#ente in stru%tura ar'ores%enta[5=
rea!n4n5=
0or i:@1 to n o rea!n42TiU.nu#e5=
0or i:@1 to n o 'e"in
Frite!n4[*ati tata! !ui [,2TiU.nu#e5=
rea!n4+5=
2TiU.tata:@%auta4+5=
en=
en=
'e"in
%itire=
Frite!n4[*ati un nu#e:[5=
rea!n4+5=
in:@%auta4+5=
i0 in@> tAen Frite!n4[Nu e+ista[5 e!se
'e"in
in:@2TinU.tata=
FAi!e inRE> o 'e"in
Frite!n42TinU.nu#e5=rea!n=
e%4in5=
en=en=en.
CAPITOLUL III
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<
BAC7 ELEMENTAR SAU ITERATI,
Metoa 'a%8tra%8in" esi neper0or#anta in pun%t e 2eere a! ti#pu!ui e
!u%ru4e+ponentia!5 este potri2ita pentru re(o!2area pro'!e#e!or in %are so!utia se pre(inta
su' 0or#a e ta'!ou4uni9 sau #u!tii#ensiona!5 Nu#aru! e e!e#ente este at si 0init.
-$
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
E+ista si %ate2a pro'!e#e %!asi%e, %onsierate %a #oe!e e re(o!2are pentru o arie #ai
e+tinsa.
Ieea prin%ipa!a este testarea so!utiei o'tinute !a 0ie%are pas, nu#eri%, in raport
%u nu#aru! posi'i! e e!e#ente, si inep!inirea unui %riteriu, %onitie, propo(itie, iar a%a
a%este %onitii sunt inep!inite, se poate %ontinua pana !a epui(area tuturor e!e#ente!or
isponi'i!e, in %a( %ontrar, Be0e%tuan u9se un pas inapoiC, si re!uanu9se %autarea in restu!
#u!ti#ii e 2a!ori posi'i!e.
,e%toru! so!utie apare %a o sti2a e e!e#ente, %are se %onstruieste, se 2a!iea(a,
se testea(a, se a0isa(a, prin aau"area %onse%uti2a a %ate unui e!e#ent, iar in %a( e
nereusita se e2ansea(a, se tra"e %u un pas inapoi, pentru a re!ua pro%eeu! pana !a
epui(area tuturor e!e#ente!or ate. In %o Pas%a!, 2o# %onsiera e+e#p!u! %e! #ai si#p!u,
Bpro'!e#a per#utari!orC , %are se enunta ast0e!:
Se %onsiera pri#e!e n nu#ere natura!e %onse%uti2e. In %ate #ouri se pot ase(a a%este
nu#ere ast0e! in%at 0ie%are "rupare sa i0ere nu#ai prin #ou! e ase(are a! e!e#ente!or.
Pasii ne%esari pentru o'tinerea so!utii!or posi'i!e, prin pro%eeu! e #ai sus sunt :
a5 Initiali*ar#a sti2ei pe toate %o#ponente!e %u o 2a!oare #ini#a!a :
pro%eure init4 8:inte"er= 2ar st:sti2a5=
'e"in stT8U:@>= en=
'5 O'tinerea #l#m#nt"l"i "rmator a! sti2ei posi'i!ei so!utii:
pro%eure s"cc#sor42ar as:'oo!ean= 2ar st:sti2a= 8:inte"er5=
'e"in i0 stT8URn tAen 'e"in
stT8U:@stT8UI1=
as:@true=
en e!se as:@ 0a!se=
en=
In a%est e+e#p!u %!asi%, %e! a! %a!%u!u!ui e per#utari, e!e#entu! stT8U, pentru a
a2ea su%%esor, e%i se#a0oru! BasC sa 0ie Bpe 2ereC, se 2a sta'i!i %onitia e a nu 0i epasit
nu#aru! n tota! e e!e#ente ate, in %a( %ontrar se#a0oru! este Bpe rosuC, e%i as@0a!se.
%5 La 0ie%are #o#ent e ti#p, e%i pentru 0ie%are 8 se 2eri0i%a ali$itat#a sti2ei e
e!e#ente o'tinute: pro%eure ali$42ar e2: 'oo!ean= 2ar st:sti2a= 8:inte"er5=
'e"in e2:@true=
0or i:@1 to 891 o i0 stT8U@stTIU tAen e2:@0a!se=
en=
Ai%i, e e+e#p!u, nu sunt per#ise nu#ere!e %are se repeta, e%i e"a!e.4e!e#ente!e
per#utarii sunt istin%te5
5 O 0un%tie t#st 2a raspune a%a a# e+a%t nu#aru! e o'ie%te %erut pentru %a sti2a
o'tinuta sa 0ie sau nu o so!utie posi'i!a:
0un%tion sol"ti#48:inte"er5: 'oo!ean=
'e"in so!utie:@48@n5= en=
e5 In 0ina! o pro%eura 0ara para#etri 2a tipari so!utia:
pro%eure tipar=
'e"in 0or i:@1 to n o Frite4stTiU5= en=
Me%anis#u! prin%ipa! 2a ape!a %on0or# ieii pre(entate a%este su'pro"ra#e in #o
aproape ienti%, ini0erent e enuntu! pro'!e#ei %are se re(o!2a prin a%easta #etoa,
sin"ure!e %are pot su0eri #oi0i%ari 0iin su'pro"ra#e!e.
A!"orit#u! in pseuo%o:
81 init4st,85
atat ti#p %at 48E>5 e+e%uta
repeta
su%%esor4as,st,85
a%a as atun%i 2a!i4e2,st,85
pana %an 4not as5 sau 4as si e25
-&
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
a%a as atun%i
a%a so!utie485 atun%i tipar
a!t0e!
88I1
init4st,85
a!t0e! 8891

Co#entarii: Repetitia se opreste a%a nu e+ista su%%esor sau, %Aiar a%a e+ista su%%esor si
sti2a este 2a!iata, ur#an sa se teste(e o'tinerea unei so!utii rea!e, %u nu#aru! %o#p!et e
e!e#ente %erute.
*a%a nu s9a o'tinut as@true e%i nu e+ista su%%esor, se 0a%e un pas inapoi: 8891.
*esi"ur pasu! inapoi nu tre'uie sa ne ea un %ontor ne"ati2, %eea %e i#pune %onitia: 8E>.
In %a(u! %an as@true si e2@true, e%i e+ista su%%esor si sti2a o'tinuta este 2a!iata , se tre%e
!a pasu! ur#ator, prin initia!i(area unui nou ni2e!: 8@8I1. Pro%eeu! 2a 0i e+e#p!i0i%at pe
trei e+e#p!e %!asi%e:
1. Pro'!e#a re"ine!or
$. Pro'!e#a partitii!or unui nu#ar natura!
&. Pro'!e#a p!atii in 'an%note e 2a!ori ate
1. Pro'!e#a re"ine!or
N regine se asaza pe o tabla nn, astfel ca sa nu se atace reciproc. Se cer toate posibili-
tatile de aranjare.
Parti%u!ari(area su'pro"ra#e!or:
Apare o noutate in 2a!iarea so!utiei, eoare%e inter2ine spe%i0i%u! situatiei %a oua re"ine
sa nu se ata%e:
pro%eure 2a!i42ar e2: 'oo!ean= 2ar st:sti2a= 8:inte"er5=
'e"in e2:@true=
0or i:@1 to 891 o i0 44stT8U@stTiU5 or 4a's4stT8U9stTiU5@a's489i5
tAen e2:@0a!se=
en=
Re"ine!e se ata%a pe 2erti%a!a si ori(onta!a, pre%u# tura, iar pe ia"ona!a pre%u#
ne'unu!. ,erti%a!a se 2a e+%!ue prin a!e"erea 2a!orii 891 pentru %ontoru! #a+i#a!,
ra#anan nu#ai %onitia e pe ori(on9ta!a : stT8U stTiU iar %an ABC este reptun"Ai%
isos%e! aau"an %onitia e pe ia"ona!a :
ACABa's4stT8U9stTiU5@a's489i5


AC AB
stT8U
stTiU

I 8

$. Pro'!e#a partitii!or unui nu#ar natura!
Sa se descompuna numarul n in suma de numere naturale mai mici decat el .Sa se afiseze
toate si-
tuatiile posibile. e!emplu" #$2%&$1%'$..(
Parti%u!ari(area su'pro"ra#e!or:
La ori%e ni2e! 8 in sti2a, 2a!oarea #ini#a a %o#ponentei este 1 iar %ea #a+i#a este :
n948915 @ n98I1, a%a toti inaintea !ui au 0ost e"a!i %u 1.
*e%i %onitia in pro%eura su%%esor e2ine: stT8UR n98I1.
--
B
C
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
Pro'!e#a %erea i#partirea nu#aru!ui intr9o su#a e nu#ere %are sa 0ie e"a!a %u n %a
ur#are apare 2aria'i!a s ne%esara pentru %a!%u!u! su#ei e!e#ente!or in sti2a:
s:@>=
0or i:@1 to 8 o s:@sIstTiU=
Un 2e%tor 2a!i !a un #o#ent at, presupune %a a%est s s sa nu 0ie epasit e n :
i0 sR@n tAen e2:@true e!se e2:@0a!se=
*e%i, a%a s@n , atun%i s9a o'tinut %Aiar o so!utie : so!utie:@4s@n5= Nu#aru! e!e#ente!or
sti2ei nu este ne%esar n, %i 8, e%i se 2a tipari un 2e%tor e 8 e!e#ente : 0or i:@1 to 8 o
Frite4stTiU5=
&. Pro'!e#a p!atii in 'an%note e 2a!ori ate
Sa se ac)ite o suma s, data, in bancnote de valori ai, i$1..n, date, unde n este un numar
natuaral.
Parti%u!ari(area su'pro"ra#e!or:
Pentru initia!i(area sti2ei se uti!i(ea(a 2a!oarea 91 in !o% e 2a!oarea >, eoare%e > este
2a!oare a#isa in so!utie, une!e #onee putan !ipsi, e%i 2or 0i !uate e > ori.
stT8U:@91= 4 init4st,855
In #o#entu! in %are se %ites% 2a!ori!e a#ise pentru #one(i ai, i@1..n, se 2or %a!%u!a si
nu#ere!e #a9+i# posi'i!e e #one(i, pentru 0ie%are 2a!oare ata .
'i@ s i2 ai, une s este ata.
Pentru a 2eri0i%a a%a e+ista e!e#ent su%%esor in sti2a se %a!%u!ea(a su#a partia!a o'tinuta
%u nu#aru! e #one(i e)a "asite pana !a pasu! 8, uti!i(an o 2aria'i!a au+i!iara s1:
s1:@>=
0or i:@1 to 8 o s1:@s1IstTiUPaTiU=
iar %onitia pentru e!e#ent este :
stT8UR 'T8U=
Pro%eura su%%esor e2ine:
pro%eure su%%esor42ar as:'oo!ean= 2ar st:sti2a= 8:inte"er5=
'e"in
i0 stT8UR'T8U tAen 'e"in
s1:@>=
0or i:@1 to 8 o s1:@s1IaTiUPstTiU=
as:@4s1Rs5= en
e!se a:@0a!se=
i0 as tAen stT8U:@stT8UI1=
en=
,a!iarea i0era e ase#enea e %a(u! per#utari!or, eoare%e ori%e sti2a ast0e! o'tinuta si
testata pana !a pasu! 8 este 2a!ia: e2:@true=
So!utia propriu9(isa insa presupune re%a!%u!area su#ei , %u a)utoru! unei 2aria'i!e au+i!iare
s1, si %o#pa9rarea ei %u 2a!oarea ata s : s1:@>= 0or i:@1 to 8 o
s1:@s1IaTiUPstTiU=
so!utie:@4s1@s5=
Si in a%easta pro'!e#a, %a si !a partitia nu#aru!ui natura!, sti2a so!utie 2a %ontine 8
e!e#ente si nu n, esi 8 poate 0i e"a! e2entua! %u n:
0or i:@1 to 8 o Frite4stTiU, Ne 2a!oare N, aTiU5=
Ce o'ser2a# in toate %e!e trei e+e#p!e, este 0aptu! %a pseuo%ou! a!"orit#u!ui ra#ane
ienti%, sAi#'anu9se nu#ai %ontinutu! pro%euri!or, in raport %u %erinte!e.
Re(o!2ari!e e2in #ai "reoaie %an este 2or'a e %o CII, une este a0e%tata %Aiar
sti2a e ate a %a!%u!atoru!ui, pro"ra#u! 0iin #ai i0i%i! e 0ina!i(at.
PROBLEME LA CAPITOLUL III 4APLICATII LA METO*A BAC7TRAC7ING5
PROBLEMA 1
-.
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
SA SE A6ISEZE ARANGAMENTELE *E N LUATE CATE P SI NUMARUL LOR
PROGRAM ARANGAMENTE=
uses %rt=
tHpe sti2a@arraHT1..1>>U o0 inte"er=
2ar st:sti2a=n,8,p,nr<so!:inte"er=as,e2:'oo!ean=
pro%eure init48:inte"er=2ar st:sti2a5=
'e"in
stT8U:@>=
en=
pro%eure su%%esor42ar as:'oo!ean=2ar st:sti2a=8:inte"er5=
'e"in
i0 stT8URn tAen 'e"in
stT8U:@stT8UI1=
as:@true=
en
e!se as:@0a!se
en=
pro%eure 2a!i42ar e2:'oo!ean=st:sti2a=8:inte"er5=
2ar i:inte"er=
'e"in
e2:@true=
0or i:@1 to 891 o
i0 stT8U@stTiU tAen e2:@0a!se
en=
0un%tion so!utie48:inte"er5:'oo!ean=
'e"in
so!utie:@48@p5=
en=
pro%eure tipar=
2ar i:inte"er=
'e"in
0or i:@1 to p o Frite4stTiU:&5=
Frite!n=
en=
'e"in LppM
%!rs%r=
Frite4[n@[5=rea!n4n5=
Frite4[p@[5=rea!n4p5=
8:@1=init48,st5=nr<so!:@>=
FAi!e 8E> o 'e"in
repeat
su%%esor4as,st,85=
i0 as tAen 2a!i4e2,st,85=
unti! not as or as an e2=
-/
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
i0 as tAen i0 so!utie485 tAen 'e"in
tipar=
nr<so!:@nr<so!I1=
i0 4nr<so! #o $-5@> tAen rea!n=
en
e!se 'e"in
8:@8I1=
init48,st5
en
e!se 8:@891
en=
Frite4[nr aran)a#ente!or e [,n,[ !uate %ate [,p,[ este [,nr<so!5=
en.
PROBLEMA $
PE O TABLA *E SA: *E *IMENSIUNE N. O PIESA9CAL SE *EPLASEAZA IN TOATE
POZITIILE= SA SE A6ISEZE TRASEELE POSIBILE.
PROGRAM CAI=
uses %rt=
tHpe sti2a@arraHT1..1>>U o0 inte"er=
2ar st:sti2a=n,8,nr<so!:inte"er=as,e2:'oo!ean=
pro%eure init48:inte"er=2ar st:sti2a5=
'e"in
tT8U:@>=
en=
pro%eure su%%esor42ar as:'oo!ean=2ar st:sti2a=8:inte"er5=
'e"in
i0 stT8URn tAen 'e"in
stT8U:@stT8UI1=
as:@true=
en
e!se as:@0a!se
en=
pro%eure 2a!i42ar e2:'oo!ean=st:sti2a=8:inte"er5=
2ar i:inte"er=
'e"in
i0 8@1 tAen
e2:@true
e!se
i0 8@$ tAen
e2:@a's4stT8U9stT891U5RE$
e!se
e2:@4a's4stT8U9stT89$U5RE15 an 4a's4stT8U9stT891U5RE$5
en=
0un%tion so!utie48:inte"er5:'oo!ean=
'e"in
so!utie:@48@n5=
en=
-1
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
pro%eure tipar=
2ar i:inte"er=
'e"in
0or i:@1 to n o Frite4stTiU:&5=
Frite!n=
en=
'e"in LppM
%!rs%r=
Frite4[n@[5=rea!n4n5=
8:@1=init48,st5=nr<so!:@>=
FAi!e 8E> o 'e"in
repeat
su%%esor4as,st,85=
i0 as tAen 2a!i4e2,st,85=
unti! not as or as an e2=
i0 as tAen i0 so!utie485 tAen 'e"in
tipar=
nr<so!:@nr<so!I1=
i0 4nr<so! #o $-5@> tAen
rea!n=
en
e!se 'e"in
8:@8I1=
init48,st5
en
e!se 8:@891
en=
i0 nr<so!RE> tAen Frite4[nr<so!@[,nr<so!5
e!se Frite4[nu e+ista so!utie[5=
en=

PROBLEMA &
UN COMIS9,OIAGOR ARE *E PARCURS *RUMUL INTRE *OUA LOCALITATI A SI B, INTRE
CARE CUNOASTE TOATE ORASELE, SI URMEAZA SA SE INTOARCA INAPOI *E UN*E A
PLECAT.A6ISATI TOATE TRASEELE POSIBILE.
PROGRAM COMIS<,OIAGOR=
uses %rt=
tHpe sti2a@arraHT1..1>>U o0 inte"er=
2ar s:sti2a=n,8,i,),nr<so!:inte"er=as,e2:'oo!ean=
a:arraHT1...>,1...>U o0 >..1=
pro%eure init48:inte"er=2ar s:sti2a5=
'e"in
sT8U:@1=
en=
pro%eure su%%esor42ar as:'oo!ean=2ar s:sti2a=8:inte"er5=
'e"in
i0 sT8URn tAen 'e"in
sT8U:@sT8UI1=
as:@true=
en
-3
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
e!se as:@0a!se
en=
pro%eure 2a!i42ar e2:'oo!ean=s:sti2a=8:inte"er5=
2ar i:inte"er=
'e"in
e2:@true=
i0 aTsT891U,sT8UU@> tAen e2:@0a!se
e!se
0or i:@1 to 891 o
i0 sT8U@sTiU tAen e2:@0a!se=
i0 48@n5 an 4aT1,sT8UU@>5 tAen e2:@0a!se=
en=
0un%tion so!utie48:inte"er5:'oo!ean=
'e"in
so!utie:@48@n5=
en=
pro%eure tipar=
2ar i:inte"er=
'e"in
0or i:@1 to n o Frite4sTiU:&5=
Frite4[1[:&5=Frite!n=
en=
'e"in LppM
%!rs%r=
Frite4[n@[5=rea!n4n5=
0or i:@1 to n o
0or ):@1 to i91 o 'e"in
Frite4[a4[,i,[,[,),[5@[5=
rea4aTi,)U5=
aT),iU:@aTi,)U=
en=
stT1U:@1=8:@$=init48,s5=nr<so!:@>=
FAi!e 8E> o 'e"in
repeat
su%%esor4as,s,85=
i0 as tAen 2a!i4e2,s,85=
unti! not as or as an e2=
i0 as tAen i0 so!utie485 tAen 'e"in
tipar=
nr<so!:@nr<so!I1=
i0 4nr<so! #o $-5@> tAen rea!n=
en
e!se 'e"in
8:@8I1=
init48,s5
en
e!se 8:@891
en=
i0 nr<so!RE> tAen Frite4[nr trasee!or este e [,nr<so!5
e!se Frite4[nu are so!utie[5=
en.

PROBLEMA -
-S
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
IONEL TREBUIE SA COLOREZE O :ARTA PENTRU A *OUA ZI, LA GEOGRA6IE. EL NU ARE
,OIE SA REPETE CULORILE SI NU ARE LA IN*EMANA *ECAT UN NUMAR *E CREIOANE.
*E ASEMENEA :ARTA ARE UN NUMAR *AT *E TARI. AGUTATI9L PE COPIL SA9SI 6AC
TEMA SCRIIN* TOATE POSIBILITATILE *E COLORARE.
PROGRAM :ARTI=
uses %rt=
tHpe sti2a@arraHT1..1>>U o0 inte"er=
2ar s:sti2a=n,8,i,),nr<so!:inte"er=as,e2:'oo!ean=
a:arraHT1...>,1...>U o0 >..1=
pro%eure init48:inte"er=2ar st:sti2a5=
'e"in
sT8U:@>=
en=
pro%eure su%%esor42ar as:'oo!ean=2ar s:sti2a=8:inte"er5=
'e"in
i0 sT8URn tAen 'e"in
sT8U:@sT8UI1=
as:@true=
en
e!se as:@0a!se
en=
pro%eure 2a!i42ar e2:'oo!ean=s:sti2a=8:inte"er5=
2ar i:inte"er=
'e"in
e2:@true=
0or i:@1 to 891 o
i0 4sTiU@sT8U5 an 4aTi,8U@15 tAen e2:@0a!se=
en=
0un%tion so!utie48:inte"er5:'oo!ean=
'e"in
so!utie:@48@n5=
en=
pro%eure tipar=
2ar i:inte"er=
'e"in
0or i:@1 to n o Frite!n4[tara [,i,[ %u!oarea [,sTiU5=
rea!n=
en=
'e"in LppM
%!rs%r=
Frite4[n@[5=rea!n4n5=
0or i:@1 to n o
0or ):@1 to i91 o 'e"in
Frite4[a4[,i,[,[,),[5@[5=
rea4aTi,)U5=
aT),iU:@aTi,)U=
en=
8:@1=init48,s5=nr<so!:@>=
FAi!e 8E> o 'e"in
repeat
su%%esor4as,s,85=
i0 as tAen 2a!i4e2,s,85=
unti! not as or as an e2=
.>
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
i0 as tAen i0 so!utie485 tAen 'e"in
tipar=
nr<so!:@nr<so!I1=
i0 4nr<so! #o $-5@> tAen rea!n=
en
e!se 'e"in
8:@8I1=
init48,s5
en
e!se 8:@891
en=
i0 nr<so!RE> tAen Frite4[nr<so!@[,nr<so!5
e!se Frite4[nu e+ista so!utie[5=
en.
PROBLEMA .
PRO*USUL CARTEZIAN A N MULTIMI
SE *AU MULTIMILE A1@L1,$,...,71M
A$@L1,$,...,7$M...
AN@L1,$,...,7NM
SE CERE SA SE A6ISEZE PRO*USUL LOR CARTEZIAN
OBS9 ,ECTORUL A RETINE ,ALORILE 71,7$,...,7N
PROGRAM PRO*US<CARTEZIAN=
uses %rt=
tHpe sti2a@arraHT1..1>>U o0 inte"er=
2ar st:sti2a=n,8,nr<so!,i:inte"er=as,e2:'oo!ean=a:arraHT1..1>>U o0 inte"er=
pro%eure init48:inte"er=2ar st:sti2a5=
'e"in
stT8U:@>=
en=
pro%eure su%%esor42ar as:'oo!ean=2ar st:sti2a=8:inte"er5=
'e"in
i0 stT8URaT8U tAen 'e"in
stT8U:@stT8UI1=
as:@true=
en
e!se as:@0a!se
en=
pro%eure 2a!i42ar e2:'oo!ean=st:sti2a=8:inte"er5=
2ar i:inte"er=
'e"in
e2:@true=
en=
0un%tion so!utie48:inte"er5:'oo!ean=
'e"in
so!utie:@48@n5=
en=
pro%eure tipar=
2ar i:inte"er=
'e"in
0or i:@1 to n o Frite4stTiU:&5=
.1
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
Frite!n=
en=
'e"in LppM
%!rs%r=
Frite4[nu#aru! e #u!ti#i@[5=rea!n4n5=
0or i:@1 to n o 'e"in
Frite4[aT[,i,[U@[5=
rea!n4aTiU5=
en=
8:@1=init48,st5=nr<so!:@>=
FAi!e 8E> o 'e"in
repeat
su%%esor4as,st,85=
i0 as tAen 2a!i4e2,st,85=
unti! not as or as an e2=
i0 as tAen i0 so!utie485 tAen 'e"in
tipar=
nr<so!:@nr<so!I1=
i0 4nr<so! #o $-5@> tAen rea!n=
en
e!se 'e"in
8:@8I1=
init48,st5
en
e!se 8:@891
en=
Frite4[nr<so!@[,nr<so!5=
en.
O'ser2atie :
*in pun%t e 2eere #ate#ati%, a!"orit#u! se es0asoara e #aniera ur#atoare :
Se au #u!ti#i!e : A1@L1..81M A$@L1..8$M .. An@L1..8nM
Se %ere prousu! %arte(ian : A1A$..An@L 4+1,..,+n5` +iAi, i@1..nM
E+e#p!u : A1@L1,$M,A$@L1,$,&M, A&@L1,$,&M
A1A$A&@ L41,1,15,41,1,$5,41,1,&5,41,$,15,41,$,$5,41,$,&5,41,&,15,41,&,$5,41,&,&5,
4$,1,15,4$,1,$5,4$,1,&5,4$,$,15,4$,$,$5, 4$,$,&5,4$,&,15,4$,&,$5,4$,&,&5M
Pentru re(o!2are se 0o!oseste sti2a st si un 2e%tor a/ %are retine nu#ere!e 81,8$,..,8n
Parti%u!ari(area pro%euri!or:
a5 La nu2e!u! 8 a! sti2ei, 2a!iarea este e prisos eoare%e ori%e e!e#ent a0!at pe a%est
nu2e! 2a 0i 2a!i, %aur#are: e2:@true=
'5 Li#ita superioara !a ni2e!u! 8 este aT8U nu n.
1 $ aT1UR@$ stT1UR@$ 4in pro%eura su%%esor5
1 $ & aT$UR@&stT$UR@&
1 $ & aT&UR@&stT&UR@&
Construirea so!utii!or:
III
II 1 Pe ni2e!u! I s%rie# 1: se s%riu toate trip!ete!e %u pri#a %o#ponenta 1 si
a oua tot 1. A%estea sunt: 41,1,$5, 41,1,$5, 41,1,&5, in orinea
I 1 spe%i0i%ata, pe ni2e!e.
A# o'tinut so!utii!e : 1 $ & Pe ni2e!u! & nu #ai a2e# su%%esor,
e%i se %o'oara in sti2a pe ni2e!u! $
1 1 1
.$
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI

1 1 1
III
II $ Se s%riu toate trip!ete!e %u pri#a %o#ponenta 1 si a oua $. A%estea
sunt: 41,$,15, 41,$,$5, 41,$,&5
I 1
A# o'tinut so!utii!e : 1 $ & Pe ni2e!u! & nu #ai a2e# su%%esor,
e%i se %o'oara in sti2a pe ni2e!u! $
$ $ $


1 1 1

& Pro%eeu! %ontinua pana %an nu #ai e+ita su%%esor pe nu2e!u! 1
- So!utii!e o'tinute se tipares%.

1 Moi0i%ari!e se 2or "asi nu#ai in pro%euri!e su%%esor si 2a!i
pro%eure su%%esor42ar st:sti2a=2ar as:'oo!ean= 8:inte"er5=
'e"in
i0 stT8URaT8U tAen 'e"in
stT8U:@stT8UI1=
as:@true=
en e!se
as:@0a!se= en=
pro%eure 2a!i42ar st:sti2a=2ar as:'oo!ean= 8:inte"er5=
'e"in e2:@true= en=
Ce!e!a!te pro%euri si i#p!e#entarea sunt ienti%e.

PROBLEMA /
REZOL,ATI PROBLEMA RUCSACULUI, UTILIZAN* METO*A BAC7, ELEMENTAR
NERECURSI,:
PROGRAM RUCSAC;
uses %rt=
tHpe sti2a@arraHT1..1>>U o0 inte"er=
2ar st,%,",iau:sti2a="",%#a+,%%,i,n,8:inte"er=as,e2:'oo!ean=
Ln9o'ie%te,%9%asti"uri!e aso%iate,"9"reutati!e aso%iate
""9"reutatea #a+i#a a#isi'i!a,%%9%asti" %urent,%#a+9%asti" #a+i#M
pro%eure init48:inte"er=2ar st:sti2a5=
'e"in
stT8U:@91=
en=
pro%eure su%%esor42ar as:'oo!ean=2ar st:sti2a=8:inte"er5=
'e"in
i0 stT8UR1 tAen 'e"in
stT8U:@stT8UI1=
as:@true=
en
.&
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
e!se as:@0a!se=
en=
pro%eure 2a!i42ar e2:'oo!ean=st:sti2a=8:inte"er5=
2ar "reutate,i:inte"er=
'e"in
"reutate:@>=
0or i:@1 to 8 o
i0 stTiU@1 tAen "reutate:@"reutateI"TiU=
e2:@"reutateR@""=
en=
pro%eure tipar=
2ar i:inte"er=
'e"in
Frite!n4[o so!utie %u %asti" #a+i#: [5=
0or i:@1 to n o i0 iauTiURE> tAen Frite4i:&5=
Frite!n=
Frite!n4[%asti" #a+i#@[,%#a+5=
rea!n=
en=
'e"in LppM
%!rs%r=
Frite4[%ate tipuri e o'ie%te a2e# g[5=rea!n4n5=
Frite4["reutatea a#isa [5=rea!n4""5=
0or i:@1 to n o 'e"in
Frite!n4[%asti"u! o'tinut prin o'ie%tu! [,i,[ [5=
rea!n4%TiU5=
Frite!n4["reutatea o'ie%tu!ui [,i,[ [5=
rea!n4"TiU5=
en=
8:@1=init48,st5=%#a+:@>=
FAi!e 8E> o 'e"in
repeat
su%%esor4as,st,85=

i0 as tAen 2a!i4e2,st,85=
unti! not as or as an e2=
i0 as tAen i0 8@n tAen

'e"in
%%:@>=
0or i:@1 to n o
i0 stTiU@1 tAen %%:@%%I%TiU=
i0 %%E@%#a+ tAen
'e"in
%#a+:@%%=
0or i:@1 to n o
iauTiU:@stTiU=
en=
en
e!se 'e"in
8:@8I1=
init48,st5
en
e!se 8:@891
en=
i0 %#a+RE> tAen tipar
e!se Frite4[nu are so!utie[5=
.-
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
en.
CAPITOLUL I,
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<
RECURSI,ITATEA
Ganirea spe%i0i% re%ursi2a in #ate#ati%a, o re"asi# in 0eno#enu! e
autoape!are a 0un%tii!or sau pro%euri!or in pro"ra#area stru%turata
re%ursi2a.

1. 6UNCTII RECURSI,E
1.1. Ca!%u!u! !ui n 0a%toria! 4n;5
pseuo%o : 0un%tia 0a%t4n5
a%a n@> atun%i 0a%t1
a!t0e! 0a%t nP0a%t4n915

%o Pas%a! :
2ar n: inte"er=
0un%tion 0a%t4n:inte"er5:!on"int=
'e"in i0 n@> tAen 0a%t:@1 e!se 0a%t:@nP0a%4n915= en=
'e"in Frite4Nn@N5= rea!n4n5= Frite!n4N6a%toria! e N,n,O este: O,0a%t4n55= en.
..
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
1.$ Siru! !ui 6i'ona%%i : a4>5@>, a415@1, a4n5@ a4n915Ia4n9$5, nE@$
pseuo%o : 0un%tia 0i'o4n5 a%a n@> atun%i 0i'o>
a!t0e! a%a n@1 atun%i 0i'o1
a!t0e! 0i'o0i'o4n915I0i'o4n9$5
%o Pas%a! :
2ar n:inte"er=
0un%tion 0i'o4n:inte"er5:inte"er=
'e"in i0 n@> tAen 0i'o:@>
e!se i0 n@1 tAen 0i'o:@1
e!se 0i'o:@0i'4n915I0i'o4n9$5=
en=
'e"in Frite4Nn@N5= rea!n4n5=
Frite!n4N,a!oarea ter#enu!ui a! N,n,O 9!eaO,O in
siru! 6i'ona%%i este: N,0i'o4n55=
en.
1.& C##% si %###% a oua nu#ere natura!e a si '
Pentru re(o!2area a%estei pro'!e#e se pot 0o!osi atat a!"orit#u! !ui Eu%!i %at si #etoa
i0erente!or su%%esi2e . *eoare%e a!"orit#u! !ui Eu%!i !9a# pre(entat in %apito!e!e
pre%eente, iterati2, e! ra#ane %a e+er%itiu, sa 0ie trans0or#at re%ursi2. Ai%i 2a 0i pre(entata
#etoa i0erente!or, re%ursi2, si %are ni se pare #u!t #ai si#p!a:
pseuo%o : 0un%tia %##%4a,'5
a%a a@' atun%i %##%a
a!t0e!
a%a aE' atun%i %##%%##%4a9','5
a!t0e! %##%%##%4a,'9a5
%o Pas%a! :
2ar a,':inte"er=
0un%tion %##%4a,':inte"er5:inte"er=
'e"in i0 a@' tAen %##%:@a
e!se
i0 aE' tAen %##%:@%##%4a9','5
e!se %##%:@%##%4a,'9a5= en=
'e"in Frite4Na@N5=rea!n4a5=Frite4N'@N5= rea!n4'5=
Frite!n4N%##% a! nu#ere!or N,a,O si N,',O este : O, %##%4a,'55=en.
$. PROCE*URI RECURSI,E
$.1. In2ersarea e!e#ente!or unui sir 0ara a uti!i(a 2e%tori
pseuo%o : pro%eura in2=
%iteste %
a%a %REN>O atun%i in2
s%rie %
%o Pas%a! :

./
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
2ar %: %Aar= a:strin"=
pro%eure in24i:'Hte5=
'e"in
rea4aTiU5=%:@aTiU=
i0 %REN>O tAen 'e"in
in%4i5= in24i5=en=
i0 aTiUREN>O an iE> tAen 'e"in Frite4aTiU5= e%4i5=en=
en=
'e"in
Frite!n4NApasati Enter, apoi introu%eti siru! e %ara%tere:N5=
%:@rea8eH= in24>5= en.
$.$ ,arianta re%ursi2a a #etoei 'a%8tra%8in"
In 2arianta re%ursi2a su'pro"ra#e!e ra#an ienti%e %u e+%eptia pro%eurii su%%esor %are
se trans0or#a in 0un%tie e testare a e+istentei unui e!e#ent su%%esi2, intor%an %Aiar
2a!oarea 2a9
ria'i!ei BasC5
pseuo%o :
pro%eura 'a%8485 Ape! in Pro"ra#u! prin%ipa!:
'a%8415
a%a so!utie485 atun%i tipar
a!t0e!
init4st,85
atat ti#p %at su%%esor4st,85 e+e%uta :
2a!i4e2,st,85
a%a e2 atun%i 'a%848I15
%o Pas%a!:
2ar n: inte"er=
pro%eure 'a%848:inte"er5=
'e"in i0 so!utie485 tAen tipar
e!se 'e"in
init4st,85=
FAi!e su%%esor4st,85 o 'e"in
2a!i4e2,st,85=
i0 e2 tAen 'a%848I15=
en=
en=
'e"in Frite4Nn@N5= rea!n4n5= 'a%8415= en.
A%est tip e re%ursi2itate se nu#este ascendenta, %an in pri#u! ape!, para#etru! are
2a!oarea #ini#a, in %a( %ontrar, se nu#este recursivitate descendenta .
R. *IRECTA R.
ASCEN*ENTA41..N5
RECURSI,ITATE R.
*ESCEN*ENTA4N..15
.1
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
R. IN*IRECTA 4*IRECTI,A 6OR\AR*5
$.$.1 LABIRINTUL
O #atri%e n + n poate 0i %o#p!etata %u nu#ere e !a > !a n + n91. 6ie%are nu#ar se poate
es%rie in 'inar intr9un sir e > si 1.Consiera# patru posi'i!itati e iesire intr9o po(itie
4i,)5 si anu#e:
N
, 4i,)5 E
S
*eoare%e a#ite# %a #is%area se poate 0a%e nu#ai ori(onta! sau 2erti%a!. In a%est
#o, o #atri%e poate 0i ana!o"ata %u un !a'irint. *in 0ie%are po(itie se 2a putea iesi intr9un
#o es%ris #ai sus, ast0e! in%at 2a!ori!e %ooronate!e unui traseu sa 0or#e(e o sti2a
'ii#ensiona!a: stT1,iU@+4!inia5 si stT$,iU@ H4%o!oana5. Pentru a testa iesirea e pe ta'!a
#atri%ia!a 2o# 'ora ta'!ou! e nu#ere ate %u 2a!oarea n + n, %are nu poate aparea in ni%i
o %asuta. Ce!e - ire%tii e #is%are pot 0i o'tinute prin interse%tia nu#aru!ui in %asuta 4i,)5
%u unu! in nu#ere!e:
$
>
, $, $
$
, $
&

%are se s%riu in 'a(a $4'inar5 ast0e!: $
>
@1@>>>1
$ @$@>>1>
$
$
@-@>1>>
$
&
@3@1>>>
Interse%tia %u nu#aru! in %asuta se 0a%e prin operatoru! AN*, intre %ontinutu! %asutei si
nu#ere!e #ai sus #entionate, asi#i!ate %e!or - ire%tii.
Nota# #atri%ea a 4i,)5, i,)@1..n si a4i,)5@.@ >1>14in 'inar5. Ca ur#are:
Care 2or 0i posi'i!itati!e e a parasi a%easta %asutag
Interse%ta# pe ran %u %e!e patru Bire%tiiC:
>1>1 an >>>1@ >>>1RE> 4spre ,5
>1>1 an >>1>@ >>>>@ >
>1>1 an >1>>@ >1>>@ >1>>>RE> 4spre E5
>1>1 an 1>>>@ >>>>@ >
N435
,415 . E4-5
S4$5
Asaar, intr9o %asuta 4i,)5 %u %ontinutu! ., se poate p!e%a in ire%tii!e: E si ,.
In pri#a etapa 2o# %iti e%i i#ensiunea #atri%ei si %ontinutu! %asute!or %are i#a"inea(a
!a'irintu!. *e ase#enea, pentru a es%rie so!utia se 2a 0o!osi o sti2a 'ii#ensiona!a %are 2a
%ontine %ooronate!e pun%te!or 4po(itii!or5 par%urse. Initia!i(area ei se 0a%e %u po(itia e
.3
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
p!e%are initia!a, si %are este %unos%uta 4+,H5. Pentru a #asura !un"i#ea ru#u!ui9 so!utie se
2a uti!i(a o 2aria'i!a trans#isa prin aresa: 8.. A%est %ontor 2a 0i para#etru! pro%eurii
prin%ipa!e, 2a!oarea initia!a 0iin 8 > 4re%ursi2itate as%enenta5. Lista e para#etrii 0or#a!i
a pro%eurii prin%ipa!e #ai %ontine: 4+,H5@%ooronate!e po(itiei %urente= #atri%ea a si
2e%toru! st, 2aria'i!e trans#ise prin nu#e4aresa5 In%ararea in s%Ae#a presupune
uti!i(area unor pro%euri e 0or#a :
pro%eure init4+,H:inte"er=2ar st:sti2a=2ar 8:inte"er5=
'e"in stT1,8U:@+= stT$,8U:@H= en=

pro%eure 2a!i42ar e2:'oo!ean=2ar st:sti2a=2ar 8:inte"er5=
2ar i:'Hte=
'e"in e2:@true=
0or i:@ 1 to 891 o i0 4stT1,iU@stT1,8U5 an 4stT$,iU@stT$,8U5
tAen e2:@0a!se=
en=

0un%tion so!utie42ar a:#atri%e=+,H:inte"er5:'oo!ean=
'e"in so!utie:@4aT+,HU@nPn5= en=
pro%eure tipar42ar st:sti2a=2ar 8:inte"er5=
2ar i:'Hte=
'e"in Frite!n=
0or i:@1 to 8 o Frite4stT1,iU,O N,stT$,iU5=
en
Proc#$"ra 2rinci2ala/ car# l# "tili*#a*a a 'i analo!a sc>#m#i "ni$im#nsional#3

pro%eure 'a%842ar a:#atri%e=+,H:inte"er=2ar st:sti2a=2ar 8:inte"er5=
2ar i:'Hte=
'e"in i0 so!utie4a,+,H5 tAen tipar4st,85 e!se 'e"in
8:@8I1=
init4+,H,st,85=
2a!i4e2,st,85=
i0 e2 tAen 0or i:@1 to - o
%ase i o0
4 FAi!e su%%esor o 1:i04aT+,HU an 35RE> tAen 'a%84a,+91,H,st,85=
'a%84a,+1,H1,st,855 $:i04aT+,HU an -5RE> tAen 'a%84a,+,HI1,st,85=
&:i04aT+,HU an $5RE> tAen 'a%84a,+I1,H,st,85=
-:i04aT+,HU an 15RE> tAen 'a%84a,+,H91,st,85=
en= 8:@891=
en=
en=

Pro"ra#u! 2a %iti n@i#ensiunea !a'irintu!ui4#atri%ei5, apoi %ontinutu! %asute!or,
po(itia 4+,H5 e p!e%are, si 2a 'ora supra0ata %u B%asute i#posi'i!eC, in%ar%ate %u 2a!oarea
nPn:
0or i:@1 to n o
'e"in aT>,iU:@nPn= aTnI1,iU:@nPn= aTi,>U:@nPn= aTi,nI1U:@nPn=en=
Ape!u! initia! a! pro%eurii prin%ipa!e se 2a 0a%e %u 2a!oarea:
8:@>= 'a%84a,+,H,st,85=
O'ser2atie: Ase#anarea %u pro%eura stanar s%Ae#ati(ata este e2ienta, 0iin
s%Ai#'ata 2aria'i!a e as%enenta: in 8, %u# este in stanar, in po(itia 4+,H5 %urenta.
Sin"ura pro%eura %are !ipseste este su%%esoru!, !o%u! !ui 0iin !uat e %e!e - optiuni
posi'i!e e iesire in po(itia %urenta 4+,H5. *a%a este posi'i!a #a%ar o optiune atun%i sti2a
.S
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
se 2a %ontinua pe ire%tia respe%ti2a, ur#an 2eri0i%area o'tinerii iesirii in !a'irint %u
testu! so!utie485.,a!iarea se 0a%e inainte e tre%erea !a su%%esor. *a%a sti2a4traseu!5 nu este
2a!ia4%ore%t5 atun%i se 0a%e es%resterea 8:@891 a ni2e!u!ui in sti2a, ur#an re!uarea
%autarii in a!ta %asuta, pe a!te ire%tii. *a%a s9a o'tinut so!utia %o#p!eta, se 2a tipari, in %a(
%ontrar se 2a %ontinua %u initia!i(area unui nou ni2e! in sti2a si %autarea 2a %ontinua
48:@8I15 pro%eeu! re!uanu9se. Pseuo%ou! a!"orit#u!ui re%ursi2, upa s%Ae#a, asa %u#
a# in%er%at sa9! pre(enta# este ur#atoru!4 %o#parati %u pseuo%ou! iterati2 upa
s%Ae#a5:

Labirint
trans#isia para#etri!or prin 2a!oare

pro%eura 'a%84a,+,H,st,85
i:'Hte trans#isia para#etri!or prin aresa
a%a so!utie4a,+,H5 atun%i tipar4st,85
a!t0e!:
88I1 init4+,H,st,85
2a!i4e2,st,85 a%a e2 atun%i
pentru i@1,-,1 e+e%uta
i@1: a%a a4+,H5an 3RE> atun%i 'a%84a,+91,H,st,85
i@$: a%a a4+,H5an -RE> atun%i 'a%84a,+,HI1,st,85
i@&: a%a a4+,H5an $RE> atun%i 'a%84a,+I1,H,st,85
i@-: a%a a4+,H5an 1RE> atun%i 'a%84a,+,H91,st,85
8891
$.$.$ . SARITURA CALULUI
Prin%ipiu! e re(o!2are este ana!o", oar %a saritura %a!u!ui se 2a 0a%e in 3 po(itii
posi'i!e, in %entru, raia!, o%upan 3 !o%uri a!e %aror %ooronate se o'tin in %e!e initia!e
prin aunarea %u %o#ponente!e unui 'i2e%tor %onstant :
u4i,)5, %u i@1..$ si )@1..3
repre(entan %e!e 3 #utari posi'i!e a!e unui %a!, p!e%an in po(itia initia!a 4+,H5
1: 4+9$,HI15 4!inia, %o!oana5 9 $ 1
$: 4+91,HI$5 91 $
&: 4+I$,HI15 $ 1
-: 4+I1, HI$5 1 $
.: 4+91, HI$5 u@ 91 $
/: 4+9$, HI15 9$ 1
1: 4+9$, H915 9$ 91
3: 4+91 ,H9$5 91 9$
Conitia %a o %asuta sa 0ie un pas 2a!i4 #utare5 este %a ea sa 0ie !i'era 4@>5 si
%ooronate!e ei sa se a0!e in peri#etru! per#is. So!utia intrea"a presupune
par%ur"erea4 a%operirea5 intre"ii ta'!e, %a ur#are 8@ nPn, une n@ i#ensiunea ta'!ou!ui
si8 este %ontoru! %are ur#areste traseu!, si nu#ara pasii. Nota# :
st: sti2a 4sti2a@arraHT1..$,1..1>>U o0 tip5 so!utia
a:#atri%e 4#atri%e@arraHT1..1>,1..1>U o0 tip5
si !e initia!i(a# %u B>C. Pro%euri!e si 0un%tii!e uti!i(ate, upa s%Ae#a sunt:
/>
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI

pro%eure init4+o,Ho,8:inte"er5=
'e"in aT+o,HoU:@8= stT1,8U:@+o= stT$,8U:@Ho= en=
pro%eure 2a!i4 2ar e2:'oo!ean=+o,Ho:inte"er5=
'e"in e2:@44+oR@n5 an 4HoR@n5 an 4+oE@15 an 4HoE@15
an 4aT+o,HoU@>55=
en= L %onitii!e pentru %a piesa sa nu iasa in ta'!a e saAM


0un%tion so!utie48:inte"er5:'oo!ean=
'e"in so!utie:@48@nPn5= en=


pro%eure tipar=
2ar i:inte"er=
'e"in 0or i:@1 to nPn o Frite!n4N!inia@N,stT1,iU:-,
N%o!oana@N,stT$,iU:-5= en=

Pro%eura ape!anta a %e!or es%rise anterior se in%area(a, %u #i%i #oi0i%ari in 'a%89u!
re%ursi2, %u s%Ae#a putin in2ersata, testu! 0ina! si a0isarea a2an po(itionarea ase#anatoare
%u %ea in 'a%89u! e!e#entar. Pro%eura su%%esor45 !ipseste, in!o%uita e %e!e 3 #is%ari
posi'i!e a!e %a!u!ui, ase#anator %u pro'!e#a !a'irintu!ui, une se putea rea!i(a ep!asarea in
- ire%tii. Ce!e 3 po(itii posi'i!e sunt 2a!iate.

SARITURA CALULUI
pro%eure 'a%8 4+,H,8:inte"er5=
2ar 0or I:@1 to 3 o 'e"in
+o:@ +IuT1,iU= Ho:@HIT$,iU=
2a!i 4e2,+o,Ho5=
i0 e2 tAen i0 so!utie 485 tAen tipar
e!se 'e"in
init 4+o,Ho,85=
'a%84+o, Ho,8I15=
aT+o,HoU:@>= en=
en=
en=
Ape!u! initia! este 'a%84+,H,15, e%i pentru 8@1 iar + si H sunt ate si repre(inta %ooronate!e
pun%tu!ui e p!e%are pe ta'!a e saA. *ate!e initia!e #ai %ontin i#ensiunea ta'!ei n. *e
e+e#p!u: n@., +@&, H@$.
Matri%ea ta'!ei e saA se initia!i(ea(a %u B>C pe toate %o#ponente!e, !a 0e! si sti2a
'ii#ensiona!a:
0or i:@1 to n o 0or ):@1 to n o aTi,)U:@>=
0or i:@1 to nPn o 'e"in
stT1,iU:@>= stT$,iU:@>=
/1
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
en=
$.$.& ALGORITMUL *E 6ILL
Intr9o #atri%e 'inara A4%u e!e#ente!e > si 15 se %onsiera 2e%inu! unui pun%t
4+,H5 ori%e pun%t stan"a, reapta, sus, )os, in raport %u po(itia ata.*a%a e!e#entu! at
este > se trans0or#a in 1 iar 2e%inii se u#p!u tot %u 1, %ontinuanu9se pana in #o#entu!
inta!nirii unei po(itii e)a %o#p!etate %u 1, %a( in %are e+e%utia se in%Aeie. Pentru a nu
#ai testa iesirea in #atri%e, a%esta este 'orata nu#ai %u e!e!#ente e 1.
@
1

A@ @
>
a
+H

pseuo%o: pro%eura s%rie4+,H,a5
a%a a4+,H5@> atun%i a4+,H51
s%rie4+91,H,a5
s%rie4+I1,H,a5
s%rie4+,H91,a5
s%rie4+,HI1,a5

s%Ae#a !o"i%a:
a4+,H51
nu a s%rie4+91,H,a5
a4+,H5@> s%rie4+I1,H,a5
s%rie4+,H91,a5
s%rie4+,HI1,a5


%o Pas%a!
tHpe #atri%e@arraHT>..1>,>..1>U o0 inte"er=
2ar n,+,H,i,):'Hte= a:#atri%e=
pro%eure s%rie 4+,H :'Hte = a: #atri%e 5=
Frite4Nn@N5= rea!n4n5= Li#ensiune #atri%eM
Frite!n4Nati e!e#ente!e #atri%ei4> sau 15 :O5=
0or i:@1 to n o 0or ):@1 to n o rea!n4aTi,)U5=
L'orare %u e!e#ente e 1M
0or i:@1 to n o 'e"in
aT>,iU:@1=aTi,>U:@1=aTnI1,iU:@1=aTi,nI1U:@1=en=
Frite!n4Nati po(itia initia!a: O5=rea!n4+,H5=
s%rie4+,H,a5= Lape! pro%eura u#p!ereM
0or i:@1 to n o
'e"in La0isare upa u#p!ereM
Frite!n=0or ):@1 to n o Frite4aTi,)U,O N5=
en=

/$
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI

&. *I,I*E ET IMPERA

&.1 MAKIMUL SI MINIMUL *INTR9UN SIR *E ELEMENTE
Ieea este ur#atoarea: siru! e e!e#ente, asi#i!at unei stru%turi 2e%toria!e, se 2a
i#parti #ereu in oi su'2e%tori e !un"i#i e"a!e iar in #o#entu! in %are i#partirea nu #ai
poate a2ea !o% 4%apete!e sunt e"a!e5 atun%i #a+i#u! %autat este %Aiar e!e#entu! ra#as in sir.
Cautarea #a+i#u!ui4 #ini#u!ui5 presupune a0!area %e!ui #ai #are e!e#ent in
0ie%are su'sir si %o#pararea a%estor oua re(u!tate. Ma+i#u! 4#ini#u!5 2a 0i %e! #ai #are
4#i%5 intre %e!e oua #a+i#e 4#ini#e5, e a%eea se 2a 0o!osi o 0un%tie nu o pro%eura.
pseuo%o : 4a@ 2e%toru! at,%o#ponente ai, %u: i@1..n5
0un%tia #a+4i,)5 e tip intre"
a%a i@) atun%i #a+ai
a!t0e!:
#a+1#a+4i,4iI)5 i2 $5
#a+$#a+44iI)5 i2 $ I 1,)5
a%a #a+1E #a+$ atun%i #a+#a+1
a!t0e! #a+#a+$
Ape!u! initia!: #a+41,n5 e%i : i@1, )@n une n@!un"i#ea 2e%toru!ui at4nu#aru! e
e!e#ente5
%o Pas%a! :
tHpe 2e%tor@arraHT1..1>U o0 inte"er=
2ar n,i='Hte=a:2e%tor=
0un%tion #a+4i,)=inte"er=2ar a: 2e%tor5:inte"er=
2ar #a+1,#a+$:inte"er=
'e"in
i0 4i@)5 tAen #a+:@aTiU
e!se i0 4i@)915 tAen
'e"in
i0 aTiURaT)U tAen #a+:@aT)U
e!se #a+:@aTiU=
en
e!se
'e"in
#a+1:@#a+4i,4iI)5 i2 $,a5=
#a+$:@#a+44iI)5 i2 $,),a5=
i0 #a+1E#a+$ tAen #a+:@#a+1
e!se #a+:@#a+$=
en= en=
'e"in Frite4Nn@N5= rea!n4n5=
Frite!n4NE!e#ente!e 2e%toru!ui: N5=
0or i:@1 to n o rea!n4aTiU5=
Frite!n4NMa+i#u! este: N,#a+41,n55=
rea!n=
en.
&.$ CAUTARE BINARA
/&
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
Pentru "asirea unei 2a!ori intr9un sir at, a!"orit#u! B%autarii 'inareC uti!i(ea(a #etoa
i2ie et i#pera, %on0or# %u %are, %autarea se 2a 0a%e su%%esi2, pe )u#atati in es%restere,
iar e%i(ia e se!e%tare a unei ast0e! e i2i(iuni epine e re(u!tatu! %o#pararii %u
B#i)!o%u!C !a un #o#ent at.
pseuo%o:
0un%tie %aut4i,)5 :'oo!ean
a%a i@) atun%i
a%a a4i5@+ atun%i %autNaO 4%aut@ae2arat5
a!t0e! %autNnuO 4%aut@0a!s5
a!t0e! a%a +R a44iI)5 i2 $5 atun%i %aut%aut4i,4iI)5 i2 $5
a!t0e! %aut%aut44iI)5 i2 $ I 1, )5
Se poate uti!i(a pro%eura, ape!an !a o 2aria'i!a !o"i%a au+i!iara:
"asit:'oo!ean 4 e%!aratie "!o'a!a5
pro%eure %aut4i,)5=
a%a i@) atun%i a%a a4i5@+ atun%i "asit NaO 4"asit@ae2arat5
a!t0e! "asit @NnuO 4"asit@0a!s5
a!t0e! a%a +R a44iI)5 i2 $5 atun%i %aut4i,4iI)5 i2 $5
a!t0e! %aut44iI)5 i2 $ I 1, )5
,a!ori!e para#etri!or !a pri#u! ape! si, atat pentru 0un%tie %at pentru pro%eura sunt
!e"ate e !un"i#ea siru!ui at, iar e!e#entu! + %autat este e%!arat si initia!i(at "!o'a!:
2a!ori!e para#etri!or !a pri#u! ape!: i@1 si )@n
In %ontinuare pre(enta# %ou! Pas%a! aso%iat uti!i(arii pro%eurii, !asan %a
e+er%itiu aaptarea a%estuia pentru uti!i(area 0un%tiei e %autare ana!o"e, pre%u# si
trans!atia in %o CII.
pro%eure %aut4i,):inte"er5=
'e"in
i0 4i@)5 tAen 'e"in i0 aTiU@+ tAen "asit:@true
e!se "asit:@0a!se=
i0 "asit tAen Frite!n4NaO5 e!se Frite!n4NnuO5=
en
e!se 'e"in i0 +RaT4iI)5 i2 $U tAen %aut4i,4iI)5 i2 $5
e!se %aut44iI)5 i2 $ I 1,)5=
en=
en=
'e"in Frite4Nnu#ar e!e#ente sir at, n@N5= rea!n4n5=
Frite!n4NE!e#ente!e siru!ui at: N5=
0or i:@1 to n o rea!n4aTiU5=
Frite4N,a!oarea %autata: N5= rea!n4+5=
Frite!n4NEste 2a!oarea in siru! at gO5=Frite4NRaspuns:
N5=
%aut41,n5=
rea!n=en.

/-
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
&.& TURNURILE *IN :ANOI
A%eeasi #etoa B*i2ie et I#peraC , re(o!2a si pro'!e#a %e o 2o# pre(entata in
%ontinuare ,
%unos%uta su' nu#e!e anuntat : pro'!e#a se 2a es%o#pune in oua su'pro'!e#e a!e %aror
re(u!tate se 2or %o#para, si %o#'ina pana !a o'tinerea re(u!tat %erut.



Te+t: Pe o ti)a A se a0!a n is%uri ase(ate e )os in sus in orinea es%enenenta a i#ensiunii. Se
%ere sa se #ute a%este is%uri pe o a!ta ti)a B, unu! %ate unu!, respe%tan re"u!a, e%i easupra unui
is% at se 2a ase(a nu#ai unu! #ai #i%. Se 2a uti!i(a o ti)a inter#eiara C.
In a%est %onte+t, 2o# ape!a !a #etoa *i2ie et I#pera, e%i 2o# es%o#pune pro'!e#a su%%esi2,
re%ursi2 in raport %u n, in oua su'pro'!e#e upa %u# ur#ea(a"
Su'pro'!e#a 1
Se #uta n91 is%uri e pe A pe C uti!i(an %a ti)a inter#eiara B
Su'pro'!e#a $
Se #uta n91 is%uri e pe C pe B uti!i(an %a ti)a inter#eiara A 4nE@$5
/.
A
C
B
C
B
n&. is%uri e pe ti)a A se
#uta pe ti)a C, prin inter#e9
iu! ti)ei B, au+i!iare. In 0i9
"ura a!aturata se pre(inta o
ast0e! e #utare.
A
a
b
C
B A
c
C
B A
d
C
A
e
B
C
A
f
B
C
A
g
B
$

f g
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
Pentru un sin"ur is%: 4A,B 5
Nota# 0un%tia re(o!2anta %u : :4n,a,',%5 une a,',% 2or 0i e a%u# ti)e!e ate. Asaar
pentru n@1 : :41,a,',%5@4a,'5
In a!"orit# 2o# aso%ia a%estor ti)e %Aiar !itere!e %orespun(atoare, pentru a es%rie
#utari!e pe ti)e. 6un%tia 2a 0i e tip re%ursi2 es%enent :
4Ti)a inter#eiara se 2a situa per#anent upa ti)e!e sursa si estinatie9 u!ti#a5
4 a,' 5 a%a n@1
:4n,a,',%5 @

:4n91,a,%,'5, a', :4n91,%,',a5 a%a nE@$
6or#a e pro%eura, %u a0isarea #utari!or prin inter#eiu! %ara%tere!or NaO, N'O, N%O 2a
a2ea 0or#a:
pseuo%o :
pro%eura :4n,a,',%5
a%a n@1 atun%i s%rie 4a,'5
a!t0e!
:4n91, a, % '5
s%rie 4 a,' 5
:4n91, %, ', a5
%o Pas%a!: 4,a!ori!e initia!e n,a,',% se 2or a e %atre uti!i(ator5

2ar a,',%: %Aar= n:'Hte=
pro%eure :4n,a,',%5=
'e"in
i0 n@1 tAen Frite!n4a,'5
e!se 'e"in
:4n91,a,%,'5=
Frite!n4a,'5=
:4n91,%,',a5=
en=
en=
'e"in Frite4Nnu#ar e is%uri@ N5= rea!n4n5=
a:@NaO= ':@N'O= %:@N%O=
:4n,a,',%5=
rea!n=
en.

PROBLEME LA CAPITOLUL III
1. CALCULAREA MAKIMULUI PRIN RECURSI,ITATE
6un%tia MAKIM4I 5 %u 2a!ori e tipu! e!e#ente!or ate, este %onstruita pe prin%ipiu!
%o#pararii %onse%uti2e a 2a!orii "!o'a!e pre!uate in prin%ipa! si re0a%erea a%esteia
a%a este inta!nit un e9
!e#ent superior . 4initia!i(area #a+i#u!ui se 2a 0a%e %u pri#u! e!e#ent
:#a+:@2T1U5
tHpe ta'!ou@ arraHT1..1>U o0 inte"er=
2ar n, i, #a+, ), au+ : inte"er= 2:ta'!ou=
//
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
0un%tion #a+i#4i:inte"er5:inte"er=
'e"in
i0 4#a+R2TiU5 tAen #a+:@#a+i#4iI15= #a+i#:@#a+=
en=
'e"in
rea!n4n5= 0or i:@1 to n o rea!n42TiU5= #a+:@2T1U= Frite4#a+i#4$5:.5=
en.
$. CALCULUL RECURSI, AL COMBINARILOR
Se uti!i(ea(a 0or#u!a e re%urenta in #ate#ati%a
:
2ar 8,n:'Hte=
0un%tion %o#'inari4n:'Hte=8:'Hte5:rea!=
'e"in
i0 448@>5 or 448@15 an 4n@1555 tAen %o#'inari:@1
e!se
i0 48E@15 an 4nE15 tAen %o#'inari:@%o#'inari4n91,85I%o#'inari4n91,8915=
en=
'e"in
rea!n4n,85=
Frite4%o#'inari4n,85:1:$5=
en.
&. CALCULUL RECURSI, AL 6UNCTIEI PUTERE
Si ai%i este uti!i(ate re%urenta #ate#ati%a spe%i0i%a, 0un%tiei putere, e ata a%easta.

Pro"ra# putere<re%ursi2a=
2ar +,n:'Hte=
0un%tion putere48:'Hte5:!on"int=
'e"in
i0 8@> tAen putere:@1 e!se
putere:@+Pputere48915=
en=
'e"in
rea!n4+,n5=
Frite!n4putere4n5:15=
rea!n=
en.

-. OR*ONAREA UNUI SIR *E CARACTERE, UTILIZAN* METO*A *I,I*E ET IMPERA
Trans#iterea siru!ui se rea!i(ea(a prin aresa eoare%e e! ur#ea(a sa 0ie #oi0i%at
u!terior.
Pro"ra# sir<oronat<'inar=
2ar a:strin"=
0un%tion i2ie4!,r:'Hte=2:strin"5:strin"=
2ar 8,n:'Hte=au+:%Aar=
'e"in
n:@!en"tA425=
i0 !@r tAen i2ie:@2T!U e!se
i0 r@!I1 tAen 'e"in
au+:@2T!U=2T!U:@2TrU=2TrU:@au+=
i2ie:@2=
en
e!se 'e"in
8:@trun%44!Ir5D$5=
i2ie:@i2ie4!,8,25Ii2ie48I1,r,25=
en=
/1
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
en=
'e"in
rea!n4a5=
Frite!n4i2ie41,!en"tA4a5,a55=
rea!n= en.


.. SE *AU TREI BILE *E CULORI *I6ERITE, ASEZATE PE O TIGA. SE CERE SA SE MUTE
PE O
ALTA TIGE, UTILIZAN* O TIGA INTERME*IARA
Se 2a uti!i(a #etoa in Bpro'!e#a tunuri!or in :anoiC, e%i #etoa i2ie et
i#pera, aaptata !a %erinte!e spe%i0i%e.
Pro"ra# ti)e=
Const nrti)e@&= L 1I$I&@/M
THpe ti)a@1..nrti)e=
,ar n:'Hte=
Pro%eure #uta<'i!e4+:'Hte= I,):ti)a5=
L se #uta o 'i!a e pe ti)a I pe ti)a )M
'e"in
i0 +E1 tAen L a%a ra#ane #a%ar o 'i!aM
'e"in
#uta<'i!e4+91, i,/9i9)5= Lti)a /9i9) este e #ane2raM
Frite!n4I, N9EO, )5=
#uta<'i!e4+91, /9i9), )5=
en
e!se
Frite!n4i, N9EO, )5=
en=
'e"in
Frite4NNu#aru! e 'i!e n@O5= rea!n4n5=
#uta<'i!e4n,1,$5=
en.

CAPITOLUL ,
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<
ANALIZA COMBINATORICA
/3
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
I. Prous %arte(ian
Metoa ap!i%ata se nu#este B!e+i%o"ra0i%aC eoare%e se p!ea%a e !a %e! #ai #i% e!e#ent in
sens !e+i%o"ra0i% si anu#e : 2@41,1,..,15 pentru un prous e B#C #u!ti#i a2an 0ie%are
nT#U e!e#ente. 6ie %on%ret, un e+e#p!u:
#@$ 4oua #u!ti#i5
A@L1,$,&M, nT1U@& 4%ar A5
B@L1,$,&,-M, nT$U@- 4%ar B5
Atun%i #etoa 2a ur#ari ur#atoare!e etape:
SOLUTIE
)@1 2415@1 24$5@1 s%rie 42415, 24$55@ 41,15
8@1 8@$ 8@&
)@1 2415@1 24$5@$ s%rie 42415,24$55@ 41,$5
8@1 8@$ 8@&
)@& 2415@& 24$5@- s%rie 42415,24$55@4&,-5
8@1 8@$ 8@&
Pseuo%o : pentru )@1, nT8U, 1 e+e%uta
2485 @ )
88I1
G este ini%ator pentru e!e#ente!e in 0ie%are #u!ti#e= e! se 2a #oi0i%a nu#ai upa %e 2or
0i %up!ate toate e!e#ente!e a%esteia.4in a%est e+e#p!u e!e#ente!e unei #u!ti#i %oin%i %u
po(itii!e !or in #u!ti#e5 7 %are #entionea(a #u!ti#ea, #ai pre%is po(itia ei in 2e%toru! e
#u!ti#i at.4a %ata este5
A0isarea inter2ine !a 8 @ #I1, une #@nu#aru! e #u!ti#i, n4i 5, i@1..# este 2e%toru!
nu#aru!ui e e!e#ente pentru 0ie%are #u!ti#e iar e!e#enete!e sunt nu#ere natura!e
in%epan %u 1 si ter#inan %u %arina!u! a%e!ei #u!ti#i. So!utia este pastrata e 2e%toru! e
pere%Ai :
F (?4+((/?)G(Ai/?Aj/ i4./m5 j4i-./m,
#@1 nT1U@& A@L1,$,&M
1,$,&
)@1,J,nT1U
#@$ nT$U@- B@L1,$,&,-M
1,$,&,-
)@1,J,nT$U
O s%Ae#a restransa a a!"orit#u!ui este esenata in 0i"ura %e ur#ea(a. Pro%eura in
pseuo%o 2a 0i re%ursi2a upa 8@ini%e!e nu#arator a! #u!ti#i!or4 !a noi 8R@$5
Re%ursi2itatea este in raport %u 8 eoare%e 0ie%are e!e#ent a! prousu!ui %arte(ian 2a a2ea
e+a%t # e!e#ente, a0isarea !ui inter2enin pentru 8@#I1.
SOLUTIE
/S
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
8@1 2415@1 8@$ 24$5@1 8@& 41,15
2415@$ 24$5@$ 41,$5
2415@& 24$5@& 41,&5
24$5@- 41,-5
8@1 2415@$ 8@$ 24$5@1 8@& 4$,15
2415@& 24$5@$ 4$,$5
24$5@& 4$,&5
24$5@- 4$,-5
8@1 2415@& 8@$ 24$5@1 8@& 4&,15
24$5@$ 4&,$5
24$5@& 4&,&5
24$5@- 4&,-5
Con0or# s%Ae#ei pre%eente, o'tinerea e!e#ente!or in orine !e+i%o"ra0i%a este
e2ienta.
Presupunan %a a2e# o so!utie 24i5, i@1..# , %u 24i 5R nTiU, i@1..# atun%i e+ista o so!utie
ur#atoare
4 su%%esoare5 oar a%a unu! in e!e#ente!e 2e%toru!ui 421,J. 2# 5 poate 0i #arit. In %a(
%ontrar, s9a o'tinut pentru 0ie%are %o#poneneta, %arina!u! 0ie%arei #u!ti#i ate:4 nT1U,
nT$U, J, nT#U 5.
In %a(u! nostru, u!ti#u! e!e#ent este pere%Aea 4&,-5, une : nT1U@&, nT$U@-
Pro%eura in pseuo%o :
pro%eura pro<%art485
):'Hte
a%a 48@#I15 atun%i s%rie<so!utia
a!t0e! pentru )@1,n485,1 e+e%uta :
2485@) = pro<%art48I15

Ape!u! initia! este pentru 2a!oarea 8@1, re%ursi2itatea 0iin as%enenta pro<%art415
Cou! Pas%a! %orespun(ator 2a 0i :
2ar #,):'Hte= 2,n:arraHT1..1>>U o0 'Hte=
pro%eure pro<%ar48:'Hte5=
2ar ):'Hte=
'e"in i0 8@#I1 tAen s%rie e!se
0or ):@1 to nT8U o 'e"in
2T8U:@)=
pro<%art48I15=
en=
en=
'e"in Frite 4N#@O5= rea!n4#5= Frite!n4N%arina!e!e %e!orO,#,O#u!ti#i:O5=
0or i:@1 to # o rea!n 4nTiU5= Lape! pro%euraM post<%ar415= en.
1>
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
*omple!itatea este de ordinul O4 #P n
#
5 deci nu foarte performanta.
II. Aran)a#ente 4 e n !uate %ate #, #R@n 5
In re(o!2area %are ur#ea(a se 2a 0o!osi tot #etoa !e+i%o"ra0i%a e%i oronarea
%res%atoare
a e!e#ente!or si re%ursi2itatea as%enenta. Pentru %a e!e#ente!e 2e%toru!ui e #
%o#ponente sa nu
se repete, e!e 0iin in a%easi su'#u!ti#e, se uti!i(ea(a si un 2e%tor e #ar%are : 2i(4i 5,
i@1J.n , ini9
tia!i(at %u > peste tot. *a%a un nu#ar in #u!ti#ea ata este s%ris intr9o so!utie e #
e!e#ente, e! 2a
0i B#ar%atC, ai%a 2i(4i5@1, pentru a nu se repeta. 6ie : #@$, n@& si #u!ti#ea A @ L1,$,&M
in %are
ne propune# o'tinerea su'#u!ti#i!or 4aran)a#ente!or5 e $ e!e#ente. Se stie %a
aran)a#ente!e sunt
su'#u!ti#i a!e unei #u!ti#i ate, %are i0era intre e!e atat prin natura o'ie%te!or %at si prin
orinea
in interior , intre e!e#ente!e su'#u!ti#ii.
SOLUTIE
1 $ &
2i(415@> 2i(415@1 2i(4$5@> 2i(4&5@> s%rie:
2415@1 24$5@$ 4)@$5 L1,$M
4)@15 24$5@& 4)@&5 L1,&M

8@1 8@$ 8@&
SOLUTIE
$ & 1
2i(4$5@> 2i(4$5@1 2i(4&5@> 2i(415@> s%rie:
2415@$ 24$5@1 4)@15 L$,1M
4)@$5 24$5@& 4)@&5 L$,&M

8@1 8@$ 8@&

SOLUTIE
& 1 $
2i(4&5@> 2i(4&5@1 2i(415@> 2i(4$5@> s%rie:
2415@& 24$5@1 4)@15 L&,1M
4)@&5 24$5@$ 4)@$5 L&,$M
8@1 8@$ 8@&
pseuo%o :
pro%eura aran)a#485
a%a 8@#I1 atun%i s%rie<so!utia
11
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
a!t0e! : pentru )@1,n,1 e+e%uta
a%a 2i(4)5@> atun%i 2485@)
2i(4)5@1
aran)a#48I15
2i(4)5@>
Co Pas%a! :
2ar 2:arraHT1..1>>U o0 'Hte= 2i(:arraHT1..1>>U o0 >..1= #,n,),8:'Hte=
pro%eura aran)a# 48:'Hte5=
'e"in i0 8@#I1 tAen s%rie<so!utie e!se
0or ):@1 to n o
i0 2i(T)U@> tAen 'e"in
2T8U:@)= 2i(T)U:@1=
aran)a#48I15=2i(T)U:@>=
en=
en=
LPro"ra# prin%ipa!M
'e"in L%iteste # si nM
Frite 4Nn@O5=rea!n4n5= Frite4N#@O5= rea!n4#5=
Linitia!i(ea(a 2e%toru! #ar%a)e!orM
0or ):@1 to n o 2i(T)U:@>=
Lape!ea(a re%ursi2 as%enent pro%eura aran)a# 485M=
aran)a#415=
en.
Co#p!e+itatea este e orinu! : O4n;D4n9#5;5
Ana!o", pentru #@n se o'tin per#utari!e a n o'ie%te = se trans0or#a %orespun(ator %ou!
pre%eent:
2ar 2:arraHT1..1>>U o0 'Hte= 2i(:arraHT1..1>>U o0 >..1= n,),8:'Hte=
pro%eure per#48:'Hte5=
'e"in i0 8@nI1 tAen s%rie so!utie e!se
0or ):@1 to n o
i0 2i(T)U@> tAen 'e"in
2T8U:@)= 2i(T)U:@1=
per#48I15=
2i(T)U:@>= en= en=

'e"in
Frite4Nn@O5= rea!n4n5=
Linitia!i(ea(a 2e%toru! #ar%a)e!orM
0or ):@1 to n o 2i(T)U:@>=
Lape!ea(a re%ursi2 as%enent pro%eura per#485 pentru 8@1
per#415=
en.
Co#p!e+itatea a!"orit#u!ui se o'tine prin parti%u!ari(are pentru #@n, orinu! O4n;5.4>;@15
III. Su'#u!ti#i!e unei #u!ti#i
1$
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
Metoa se nu#este B#etoa 2e%tori!or %ara%teristi%iC, eose'in re(o!2area %are
ur#ea(a e %e!e oua pre%eente. Sa !ua# pentru e+e#p!i0i%are #u!ti#ea:
A@ L1,$,&M a2an su'#u!ti#i!e:
a1@L1M 41,>,>5 a-@L1,$M 41,1,>5 a1@L1,$,&M 41,1,15
a$@L$M 4>,1,>5 a.@L1,&M 41,>,15 4>,>,>5
a&@L&M 4>,>,15 a/@L$,&M 4>,1,15
Se o'ser2a %a nu s9au repetat #u!ti#i!e prin per#utarea o'ie%te!or, stiut 0iin %a nu
se 2or o'tine #u!ti#i i0erite. *e%i o'tinerea unei su'#u!ti#i a4)5 in a4i5 s9ar putea 0a%e
%on0or# aunarii 'inare: 4siste# e nu#eratie %u 'a(a $5
a- a1
a- 41,1,>5 1 1 > I
a1 41,>,15 1
1 1 1
sau : a$ a/
a$ 4>,1,>5 > 1 > I
a/ 4>,1,15 1
> 1 1
In a#'e!e %a(uri : > 1
In a!te %a(uri, e e+e#p!u :
a/ a1
a/ 4>,1,15 > 1 1 I
a1 41,>,>5 1
1 > >
*e%i in a%est %a( : 1 >
1 se#na!ea(a e+istenta e!e#entu!ui e pe po(itia respe%ti2a in su'#u!ti#e,iar > a'senta !ui.
Pseuo%ou! se reu%e !a ur#atoru! rationa#ent 4a!"orit#5:
a%a 2)1 atun%i :
2)>
)) 9 1
a!t0e! : 2i1 s%rie so!utia
Operatii!e se e0e%tuea(a e !a reapta !a stan"a iar ini%e!e ) tre'uie sa 0ie stri%t
po(iti2. Mai uti!i(a# %a ur#are o 2aria'i!a se#a0or 4posi'i!5 Pseuo%ou! e2ine:
posi'i!true
atat ti#p %at posi'i! e+e%uta:
)n
atat ti#p %at 42)@15 e+e%uta:
2)@>
) ) 9 1
a%a )@> atun%i posi'i! 0a!se
a!t0e! : 2)1
pentru i@1,n,1 e+e%uta:
a%a 2i@1 atun%i s%rie4i5
%ou! Pas%a! :
2ar 2: arraHT1..1>>U o0 >..1= i,),n:'Hte= posi'i!: 'oo!ean=
pro%eure su'#u!ti#i=
'e"in posi'i!:@true= 0or i:@1 to n o 2TiU:@>=
FAi!e posi'i! o 'e"in
):@n=
FAi!e 42T)U@15 o 'e"in
1&
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
2T)U:@>=
):@)91=
en=
I0 )@> tAen posi'i!:@0a!se e!se
'e"in
2T)U:@1=
0or i:@1 to n o
i0 2TiU@1 tAen Frite4):-5=
en=
en=
en=

'e"in
Frite4Nn@N5= rea!n4n5=
L nu#aru! e e!e#ente a!e #u!ti#ii ate, %onsierate e !a 1 !a n M
su'#u!ti#i= Lape! pro%euraM
en.
OBS: Orinu! e %o#p!e+itate, este ana!o" %e!ui e !a prousu! %arte(ian

III. Metoe!e %!asi%e e pro"ra#are in %o#paratie %u %e!e a!e ana!i(ei
%o#'inatori%e
*upa %u# a# 2a(ut, pro'!e#e!e a'orate in a%est %apito! nu sunt noi.
Su'ie%te!e !or !e9a#
inta!nit si !a %apito!e!e pre%eente. *i0era #etoe!e e re(o!2are. Ana!i(a
%o#'inatori%a 0o!oseste
2e%torii %ara%teristi%i si oronarea !e+i%o"ra0i%a.
Sa %onsiera# pro'!e#a aran)a#ente!or e n !uate %ate #4#R@n5
A5 #etoa 'a%8tra%8in"

pro"ra# aran)a#ente=
uses %rt=
tHpe sti2a@arraHT1..1>>U o0 inte"er=
2ar st:sti2a=
n,#,8:inte"er=
as,e2:'oo!ean=
pro%eure init42ar st:sti2a=8:inte"er5=
'e"in
stT8U:@>=
en=
pro%eure su%%esor42ar st:sti2a=2ar
as:'oo!ean=8:inte"er5=
'e"in
i0 stT8URn tAen
'e"in
stT8U:@stT8UI1=
as:@true=
en e!se as:@0a!se=
en=
pro%eure 2a!i42ar st:sti2a=2ar
e2:'oo!ean=8:inte"er5=
2ar i:inte"er=
'e"in
e2:@true=
0or i:@1 to 891 o i0 4stT8U@stTiU5 tAen e2:@0a!se=
en=
0un%tion so!utie48:inte"er5:'oo!ean=
'e"in
so!utie:@48@#5=
en=
pro%eure tipar=
2ar i:inte"er=
'e"in
0or i:@1 to # o Frite4stTiU,[ [5=
Frite!n=
en=
L@@@@@@@@@@@@@@@@@@@@@@M
'e"in
%!rs%r=
Frite4[n@ [5=rea!n4n5=
Frite4[#@ [5=rea!n4#5=
8:@1=
init4st,85=
FAi!e 8E> o
'e"in
1-
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
repeat
su%%esor4st,as,85=
i0 as tAen 2a!i4st,e2,85=
unti! 4not as5 or 4as an e25=
i0 as tAen i0 so!utie485 tAen tipar
e!se
'e"in
8:@8I1=
init4st,85=
en e!se 8:@891=
en=
rea!n=
en.
Se p!ea%a e !a un 2e%tor nu!, %are se %o#p!etea(a %u # e!e#ente, punan %onitia %a
a%estea sa nu se repete in interioru! unei su'#u!ti#i4pro%eura 2a!i5 si %autan
su%%esori pana !a %e! #a+i#, %are este n 4pro%eura su%%esor5
B5 Metoa 2e%tori!or %ara%teristi%i9ana!i(a %o#'inatori%a

Pro"ra#
"enerare<su'#u!ti#i<%u<2e%tori<%ara%teri
sti%i=
,ar n:'Hte=
Pro%eure "enerare4n:'Hte5=
2ar 2:arraHT1..1>U o0 'Hte=0:te+t=
e<posi'i!:'oo!ean=i,):'Hte=
'e"in
assi"n 40,[2e%tori.t+t[5=
ReFrite405=
\rite!n40,[Su'#u!ti#i!e #u!ti#ii
L1,$,..,.,nM[5=
\rite!n40,[#u!ti#ea 2ia[5=
0or i:@1 to n o 2TiU:@>=
e<posi'i!:@true=
\Ai!e e<posi'i! o 'e"in
):@n=
\Ai!e 4)E>5 an 42T)U@15 o 'e"in
2T)U:@>=
):@)91=
en=
i0 )@> tAen e<posi'i!:@0a!se
e!se 'e"in
2T)U:@1=
Frite40,[L[5=
0or ):@1 to n o
i0 2T)U@1 tAen Frite40,),[ [5=
Frite!n40,[M[5=
en=
en=
%!ose405=
en=
'e"in
\rite4[n@[5=
rea!n4n5=
"enerare4n5=
en.
Re(u!tate!e e+e%utiei, su' 0or#a unor #u!ti#i, in%arate e a%o!ae, 2or 0i tre%ute
intr9un 0isier e
tip te+t. Restu! este ana!o" %u pre(entarea e !a para"ra0u! f1, a%est %apito!.
In 2arianta re(o!2arii %u Bo'ie%teC, pro%euri!e sunt %a#puri a!e unor inre"istrari %are
sunt %Aiar o9
'ie%te!e uti!i(ator :
C5 Se %onsiera o #u!ti#e e n %opii, in %are n' sunt 'aieti si restu! sunt 0ete. Sa se
0or#e(e "rupuri %opii, in %are i0erenta intre nu#aru! e 'aieti si %e! e 0ete sa nu
0ie #ai #i%a e%at o i0erenta ata i0.
pro"ra# "rupuri=
uses %rt=
%onst n#a+@$.=
tHpe 2e%t@arraHT>..n#a+U o0
inte"er=
su'#u!@o')e%t
2:2e%t=
e<posi'i! :>..1=
n:1 ..n#a+=
pro%eure init=
pro%eure "enerare=
en=
2ar s:su'#u!=
n',n0,n,i,i0 :inte"er=
pro%eure su'#u!.init=
2ar i:inte"er=
'e"in 0or i:@> to n o 2TiU:@>=
e<posi'i!:@1
en=
pro%eure su'#u!."enerare=
2ar i:inte"er=
'e"in i:@n=
FAi!e 2TiU@1 o 'e"in 2TiU:@>=
i:@i91=
en=
i0 i@> tAen e<posi'i!:@>
e!se 2TiU:@1=
en=
pro%eure pre!u%rare4n,n',n0,i0:inte"er=
2:2e%t5=
2ar n1,n$,i:inte"er=
'e"in
1.
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
n1:@>=
n$:@>=
0or i:@1 to n' o i0 2TiU@1 tAen n1:@n1I1=
0or i:@n'I1 to n o i0 2TiU@1 tAen n$:@n$I1=
0or i:@1 to n o i0 2TiU@1 tAen Frite 4i, [ [5=
i0 4n19n$E@>5 an 4n1E@n$Ii05 tAen
Frite!n 4[ este so!utie[5
e!se Frite!n 4[ nu este so!utie [5=
rea!n=
en=
Lpro"ra# prin%ipa!M
'e"in %!rs%r=
Frite 4[introu%eti nu#aru! e %opii: [5=rea!n
4s.n5=
Frite 4[introu%eti nu#aru! e 'aieti: [5=rea!n
4n'5=
Frite 4[introu%eti i0erenta: [5= rea!n 4i05=
FitA s o 'e"in init=
FAi!e e<posi'i!RE> o 'e"in
pre!u%rare4n,n',n0,i0,25=
"enerare=
en
en
en.
*e0inirea o'ie%te!or se rea!i(ea(a uti!i(an %u2antu! %Aeie OBGECT in #ou!
ur#ator:
Type su'#u!@o')e%t
2:2e%t=
e<posi'i! :>..1=
n:1 ..n#a+=
pro%eure init=
pro%eure "enerare=
en=
2ar s:su'#u!=
Ca#puri!e o'ie%tu!ui Bsu'#u!C 4su'#u!ti#i5 sunt : 29e tip 2e%tor, e<posi'i!, %u ro! e
se#a0or
nu#eri%, n9e tip nu#eri%, pre%u# si pro%euri!e init/ !#n#rar#%
*e%!ararea o'ie%tu!ui Bsu'#u!C, se rea!i(ea(a in se%tiunea ,AR, upa %e a 0ost e0init
%a tip in
Se%tiunea TVPE. ,aria'i!e e tip o'ie%t %u %are se !u%rea(a este s 4:su'#u!5
Ape!u! !a %a#puri se rea!i(ea(a %a in ori%e inre"istrare, iar operatoru! \IT: are
a%e!asi ro!.

CAPITOLUL ,I
STRUCTURI DINAMICE DE DATE
Pentru in%eput 2o# 0a%e o %!asi0i%are a stru%turi!or in!antuite %are se stuia(a %u operatii!e
spe%i0i%e:
1. Stru%turi!e e ate in!antuite: sti2a, %oaa, !ista u'!a, !ista %ir%u!ara
$. Operatii spe%i0i%e %u a%este stru%turi: %reare, inserare, ster"ere, %autare.
&. Ar'ori 'inari 4un %a( aparte e stru%turi ina#i%e5
Operatii %u ar'ori 'inari: %reare, tra2ersare, inserare, ster"ere, %autare
-. Ar'orii e %autare 4un %a( parti%u!ar e ar'ori5
Operatii spe%i0i%e: %reare, %autare.
Pe par%ursu! a%estui %apito! nu 2o# insista asupra pseuo%ou!ui, at 0iin %a nu se
0o!oses% a!"orit#i noi %i se %rea(a pro%euri spe%i0i%e, 2eri0i%ate, in %o, %e per#it stuiu!
a%estor tipuri e ate aparte. Pro%euri!e stanar e a!o%are 4 n#H455 si e ea!o%are
4$is2os#45 5 a #e#oriei sunt spe%i0i%e !i#'a)u!ui Pas%a!.
Me#oria unui %a!%u!ator se pre(inta su' 0or#a unei su%%esiuni e o%teti, 0ie%are
o%tet a2an o aresa 'inara. Prin %on2entie, aresa este nu#aru! e orine a! unui o%tet. Un
1/
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
o%tet este 0or#at in 3 'iti, 0ie%are 'it putan #e#ora > sau 1. *i2erse!e tipuri e ate
o%upa oi sau #ai #u!ti o%teti si au un nu#e, o aresa si o 2a!oare. *a%a o 2aria'i!a este
retinuta pe o !un"i#e e p o%teti, atun%i aresa ei este #e#orata pe pri#u! o%tet in %ei p
%onse%uti2i. Cu2antu! nil repre(inta aresa nu!a.
A!o%area in Pas%a! se poate 0a%e in oua #ouri : stati% si na#i%.
A5 In pri#u! %a(, a!o%area se 0a%e o sin"ura ata !a in%eputu! pro"ra#u!ui, in
se%tiunea ,AR.
B5 In a! oi!ea %a(, a!o%area se 0a%e pe par%ursu! pro"ra#u!ui si nu#ai a%a este
ne2oie, renuntanu9se in %a( %ontrar, strate"ie %are %onu%e !a e%ono#ie e
#e#orie.
Alocar#a inlant"ita
Sa a!%atui# ur#atoarea s%Ae#a :
L>IC ARTI 1 Sa presupune# %a 0ie%are #o retine in
e! si aresa nou!ui ur#ator. Se 2a
o'tine :
L>I$C ARTI$ a!o%area Bina#i%aC
L>I&C ARTI&

L>I-C ARTI-
4ALOCARE SEC,ENTIALA5
Aresa Continut
A arti%o! 1 B

B arti%o! $ C

C arti%o! & *
Aresa nu!a
* arti%o! - ?
O a!ta repre(entare 2a 0o!osi pentru arese sa"eti!e :

PRIMUL Arti%o! 1 Arti%o! $

Un no o%upa un %u2ant %are este 0or#at in oua %a#puri : IN6O, LEG
A!o%area ina#i%a are !o% intr9o se%2enta e tipu!:
tHpe re0@?re"i=
re"i@re%or
in0o:inte"er= !e": re0=
en=
2ar p:re0=
Ai%i, 2aria'i!a p e tip re0erinta retine arese e inre"istrari, 0ie%are inre"istrare a2an
oua %a#puri: in0or#atia uti!a si aresa unei a!te inre"istrari. Pro%eura neF4p5 retine
11
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
spatiu pentru o inre"istrare, in nu#ar e o%teti %onse%uti2i, pri#u! o%tet a2an aresa
epusa in p= a%a p a retinut aresa unei inre"strari, atun%i pro%eura ispose4p5 e!i'erea(a
a%est spatiu. A%%esu! !a %a#p :

a5 a%%es !a %a#pu! in0or#ationa!: p?. in0o=
'5 a%%es !a %a#pu! aresa: p?. in0o=
%5 a%%es !a %a#pu! in0or#ationa! a! %arui pri# o%tet este retinut in p?.!e":
p?.!e"?.in0o=
,o# in%epe prin pre(entarea pe s%urt a !istei !iniare si#p!u in!antuite 4!.!.s.i.5 4,e(i
Ane+a<$5
Ce!e #ai uti!i(ate stru%turi sunt !iste!e si#p!e, 0ie e tip sti2a, 0ie e tip %oaa. Lista si#p!a
e tip "enera!, este pre(entata #ai )os, prin pro%eura e %reare iterati2a:
tHpe !ista@? no=
no@re%or
in0o:inte"er= !e":!ista=
4Ca e+er%itiu, propune# %rearea !.!.s.i. en=
e tip re%ursi25


2ar p,':!ista=
L2aria'i!a BpC retine aresa pri#ei inre"istrari , iar a!ta 2aria'i!a B'C 2a retine aresa u!ti#ei
inre"istrari, %reate M
L in siru! e n91 e!e#ente M
pro%eure %reare=
2ar nou:sti2a= ),n:'Hte=
'e"in L%reare no e in%eputM
neF4nou5= rea!n4nou?.in0o5= p:@nou=':@nou=
L%reare %e!e!a!te nouriM
rea!n4n5=
0or ):@$ to n o 'e"in
neF4nou5= rea!n4nou?.in0o5=
'?.!e":@nou= ':@nou=
en= en=
Listarea este a%eeasi %u %ea a %o(ii42e(i II5.
I. STI,A
!i0o !ast in, 0irst out
I.1 Creare sti2a ina#i%a
tHpe sti2a@? no=
no@re%or
in0o:inte"er= !e":sti2a=
en=
,
2ar 2:sti2a=
pro%eure %reare=
2ar nou, p:sti2a= ),n:'Hte=
'e"in L%reare no e in%eputM
p , neF4p5= rea!n4p?.in0o5=
p?.!e":@ni!=
13
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
p?.in0o L%reare %e!e!a!te nouriM
2:@p=
p?.!e"@NIL rea!n4n5=
0or ):@$ to n o 'e"in
neF4nou5=
rea!n4nou?.in0o5=
nou?.!e":@2= 2:@nou=
nou en= en=
p?.in0o
nou?.in0o p ,
p?.in0o
I.$.1 Ster"erea unui no
2ar au+:sti2a=
'e"in i0 2@ni! tAen Frite4Nsti2a 2iaO5
e!se
'e"in
au+:@2=
2 @2?.!e"=
ispose 4au+5=
en=
en= Lsin"uru! no %are se poate ster"e este 2@2ar0u!M
I.$.$ Inserarea unui no

2ar nou:sti2a=
'e"in neF4nou5= rea!n 4nou?.in0o5=
nou?. !e":@2= 2:@nou=
en= Linserarea se poate 0a%e oar !a 2ar0, e%i peste 2M
I.$.& Cautarea unei 2a!ori ate + 4se%2enta no %u no5
2ar p:sti2a=
'e"in p:@2= FAi!e4pREni!5 o 'e"in
i0 +@p?.in0o tAen Frite4N"asitO5=
p:@p?.!e"=
en=
en=
La%%esu! este nu#ai se%2enta!, e%i %autarea se 2a 0a%e no %u noM
II COA*A
P U
1S
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
0i0o 0irst in, 0irst out
Intrari!e 4iesiri!e5 se 2or e0e%tua nu#ai !a s0arsit iar iesiri!e nu#ai !a in%eput
4ster"eri!e5. Spre eose'ire e sti2a %are a2ea nu#ai pointeru! e 2ar0 2, %oaa are oi
pointeri: unu! e in%eput 4p9pri#u!5 si unu! e s0arsit 4u9u!ti#u!5
II.1 Crearea %o(ii
2ar p:%oaa= L2aria'i!a "!o'a!aM
pro%eure %reare=
2ar nou:%oaa= i,n: 'Hte= L2aria'i!e !o%a!eM
'e"in
neF4p5= rea!n4p?.in0o5= p?.!e":@ni!= u:@p=
Lpri#u! no inserat e2ine u!ti#u!, a%a e!e se 2or e0e%tuaM
Lur#atoare!e inserariM
Frite4N ati nu#aru! tota! e nouri:O5= rea!n4n5=
0or i:@$ to n o 'e"in
neF4nou5= rea!n4nou?.in0o5=
nou?.!e":@nou=
u:@nou=
en=
en=
II.$ Operatii in %oaa
II.$.1 Aau"are 4upa u!ti#u! e!e#ent5
2ar nou: %oaa=
'e"in neF4nou5= rea!n4nou?.in0o5=
nou?.!e":@ni!=
u?.!e":@nou=
u:@nou=
en=

II.$.$ Ster"ere 4pri#u!5
2ar p, au+: %oaa=
au+:@p= p:@p?.!e"=L inaintea(a pointeru!M ispose4au+5=
en=
II.$.& Listare 4a0isare se%2entia!a5

pro%eure !istare=
2ar +:%oaa=
L+ este o 2aria'i!a e !u%ru e tip %oaa 0o!osita pentru po(itionare pe
pointeru!M
Le in%eput si apoi par%ur"ere se%2entia!a9 no %u noM
'e"in
+:@p=
FAi!e +REni! o 'e"in
Frite4+?.in0o,[ [5=
3>
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
+:@+?.!e"=
en=
en=
III Lista u'!u in!antuita4!ista u'!a5
A%est tip e stru%tura este tot un 0e! e %oaa in sensu! %a pre(inta oi pointeri ar
nu#ai unu! este 0i+, %e! e in%eput, %e!a!a!t putan sa se ase(e 0ie !a stan"a, 0ie !a reapta
eoare%e a%est tip e %oaa este 'iire%tiona!.
Se s%Ai#'a si tipu! %are e0ineste nou!, upa %u# ur#ea(a:
tHpe !ista@?no=
no@re%or
in0o:inte"er=
pre%, ur#: !ista= en=

III.1 Crearea !istei u'!e

2ar 0,!: !ista=
pro%eure %reare=
2ar i, n:'Hte= nou : !ista=
'e"in Frite4[n@[5=rea!n4n5=
Lse %rea(a pri#u! noM
Frite!n4[In0or#atia pri#u!ui no:[5=
neF405=rea!n40?.in0o5=
0?.pre%:@ni!= 0?.ur#:@ni!=
!:@0=
Frite!n4[Se %ites% in0or#atii!e %e!or!a!ate nouri:[5=
0or i:@$ to n o 'e"in
neF4nou5=rea!n4nou?.in0o5=
nou?.ur#:@ni!=nou?.pre%:@!=
!?.ur#:@nou=
!:@nou=
en= en=

III.$ Aau"area
Se poate 0a%e !a in%eput4 !a stan"a pri#u!ui no 5 sau !a s0arsit 4upa u!ti#u! no 5 a%a
!ista a 0ost %reata spre reapta= a%a !ista a 0ost %reata spre stan"a atun%i
aau"area !a in%eput 2a 0i e0e%tuata !a reapta pri#u!ui no, iar aau"area !a
s0arsit se 2a 0a%e upa u!ti#u! in stan"a.
Sa presupune# 0ara a parti%u!ari(a %a !ista se %rea(a spre reapta:
31
00000%
0 ! !
000%% 0000%%
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI

pro%eure aau"<!a<in%eput4+:inte"er5=
2ar nou:!ista=
'e"in
neF4nou5=nou?.in0o:@+=
nou?.ur#:@0=
0?.pre%:@ni!=
0:@nou=
en=

pro%eure aau"<!a<s0arsit4+:inte"er5=
2ar nou:!ista=
'e"in
neF4nou5=nou?.in0o:@+=
nou?.pre%:@!=
nou?.ur#:@ni!=
!?.ur#:@nou=
!:@nou=
en=
Aau"area se poate 0a%e si upa un anu#e no, sa spune# a2an in0or#atia +
iar nou! %are
se 2a aau"a 2a a2ea in0or#atia H :
pro%eure aau"<upa<un<no4+,H:inte"er5=
2ar nou, no : !ista=
'e"in
no :@0=
FAi!e 4no?.in0oRE+5 o no :@no?.ur#=
neF4nou5= nou?.in0o:@H=
nou?.pre%:@no= nou?.ur#:@no?.ur#=
no?.ur#:@nou=
en=
neF4nou5=nou?.in0o:@+=
nou?.ur#:@0=
0?.pre%:@ni!= 0:@nou= en= ispose4Y5= en=

pro%eure aau"<!a<s0arsit4+:inte"er5=
2ar nou:!ista=
'e"in
neF4nou5=nou?.in0o:@+=
nou?.pre%:@!=
nou?.ur#:@ni!=
!?.ur#:@nou=
!:@nou=
en=
Aau"area se poate 0a%e si upa un anu#e no, sa spune# a2an in0or#atia + iar
nou! %are se
3$
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
2a aau"a 2a a2ea in0or#atia H :
pro%eure aau"<upa<un<no4+,H:inte"er5=
2ar nou, no : !ista=
'e"in
no :@0=
FAi!e 4no?.in0oRE+5 o no :@no?.ur#=
neF4nou5= nou?.in0o:@H=
nou?.pre%:@no= nou?.ur#:@no?.ur#=
no?.ur#:@nou= en=

inserarea unui nod nou in lista creata spre dreapta
X
no$
no$I%"rm
' no"I%2r#c no" no"I%"rm l
;
III.& Ster"erea unui no
A%easta operatie epine e #ou! %u# a 0ost %reata !ista, in sensu! %a par%ur"erea
pentru %autarea in0or#atiei nou!ui e sters 2a ur#a o anu#ita ire%tie4 reapta sau stan"a5
A%e!asi !u%ru inter2ine si in !istare, a%easta putan 0i insa e0e%tuata atat intr9o ire%tie %at si
in %ea!a!ta, eoare%e se uti!i(ea(a oi pointeri :
1. 0 @ pointer 0i+ !a stan"a, ! @ pointer #o'i! !a reapta
4a%a !ista a 0ost %reata e !a stan"a !a reapta5
$. 0 @ pointer 0i+ !a reapta, ! @ pointer #o'i! !a stan"a
4a%a !ista a 0ost %reata e !a reapta !a stan"a5
pro%eure ster"ere<no<in0o4+:inte"er5=
2ar Y:!ista=
'e"in
Y:@0=
FAi!e Y?.in0oRE+ o Y:@Y?.ur#=
Y?.ur#?.pre%:@Y?.pre%=
Y?.pre%?.ur#:@Y?.ur#=

' $is2os#(J) l
J
JI%2r#c JI%"rm

JI%"rmI%2r#c JI%2r#cI%"rm
III.- Par%ur"erea
Se 2a %onsiera %a 0 si ! sunt %a si pana a%u# 2aria'i!e "!o'a!e.*e ase#enea se
presupune %a !ista a 0ost %reata spre reapta.
3&
H
+
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
pro%eure par%ur"ere<st<r=
2ar +:!ista=
'e"in
+:@0=
FAi!e 4+REni!5 o
'e"in
Frite4+?.in0o,[ [5=+:@+?.ur#= en=
Frite!n=en=

Ana!o" : pro%eure par%ur"ere<r<st=
2ar +:!ista=
'e"in
+:@!=
FAi!e 4+REni!5 o 'e"in
Frite4+?.in0o,[ [5=
+:@+?.pre%=
en=Frite!n= en.
I, Lista %ir%u!ara
Lista %ir%u!ara este o !.!.s.i 4!ista si#p!a5 e tip %oaa in %are u!ti#u! e!e!#ent se
%on0una %u pri#u!. Crearea este ienti%a %u %ea a %o(ii pentru toate e!e#ente!e
inter#eiare, %u e+%eptia u!ti#u!ui, a! n9!ea, %are se !ea"a e pri#u!, ast0e! per#itan
in%Aierea !istei %ir%u!are.4!e"atura u!ti#u!ui no 0iin pri#u!5
2ar 0,! :!ista= n:'Hte=
pro%eure %reare= une : !ista@?no=
2ar i:'Hte= nou:!ista= no@re%or
'e"in in0o:inte"er=
Frite4[n@[5= rea!n4n5= !e": !ista= en=
neF405= rea!n40?.in0o5=
0?.!e":@ni!=
!:@0=
0or i:@$ to n91 o 'e"in
neF4nou5= rea!n4nou?.in0o5=
nou?.!e":@ni!=
!?.!e":@nou=
!:@nou=
en= L aau"area u!ti#u!ui si !e"area e pri#u!M
neF4nou5= rea!n4nou?.in0o5= nou?.!e":@0= !?.!e":@nou= en=
,. Ar'ori 'inari
Crearea, in %on%oranta %u natura stru%turii e ar'ore 'inar 2a 0i e pre0erinta
re%ursi2a, a2an o %onitie e oprire, e e+e#p!u !e"ata e in0or#atia %are se %iteste. Tipu!
unui e!e#ent este a%e!asi %u %e! pre(entat !a !ista u'!a, %u eose'irea %a %e!e oua %a#puri
aresa se 2or nu#i Bes%enentiC 4stan" si rept5 sau %Aiar B0iiiC tata!ui 4nou!ui %urent5
Pri#u! tata se #ai nu#este si raa%ina 4ra5.
*eose'irea esentia!a este %a, in ti#p %e !ista u'!a B%resteaC 0ie intr9o ire%tie 0ie in
a!ta, a%est tip e stru%tura %reste %on%o#itent in a#'e!e ire%tii, ase(anu9se in )os, pe
ni2e!e e es%enenta.
RA*
tipu! nou!ui:
tHpe !ista@?no
3-
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
no@ re%or
in0o:inte"er=
st,r : !ista= st r
en=
ni! ni! ni! ni!
Se o'ser2a %a nu#aru! e nouri p!ine este e"a! %u nu#aru! e nouri nu!e4ni!5.
*e%i, !a %itirea ate!or 2a tre'ui sa introu%e# in0or#atii se#ni0i%ati2e, apoi in0or#atii
nese#ni0i%ati2e 4nu!e5 in nu#ar e"a! %u %e!e pre%eente, pentru 0iii nu!i 4ter#ina!e, sau
0run(e5, p!us in%a una pentru un pri# tata nu!.
*e%i : in0or#atii uti!e nr in0or#atii nu!e nrI1 4(erouri5
,.1 Crearea ar'ore!ui 'inar
2ar 0:!ista=n:inte"er=
pro%eure %reare42ar 0:!ista5=
L0@ para#etru trans#is prin aresaM
'e"in Lpentru a initia!i(a %u 2a!oareaM
rea!n4n5= Lpe %are o pri#este 0M
i0 nRE> tAen 'e"in
neF405=
0?.in0o:@n=
%reare40?.st5=
%reare40?.r5=
en
e!se 0:@ni!= en=
,.$ Tra2ersarea 4par%ur"erea 5 ar'ore!ui 'inar
1 ra 1 ra 1
ra
st r st r st
r
b c
inorine4ST, RA*, *R5 preorine4RA*, ST, *R5
postorine4ST,*R,RA*5
RA* se#ni0i%a NO*UL RA*ACINA, sau TATA, iar ST, *R sunt 0iii !ui, e%i su'ar'orii
stan" si rept
Ce!e trei pro%euri sunt si#i!are, e a%eea 2o# pre(enta nu#ai pe pri#a:
PROCE*URE INOR*INE40:!ista5
3.
1 B B 1
a
1
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
LPARAMETRU TRANSMIS PRIN ,ALOAREM
'e"in
i0 0REni! tAen 'e"in
inorine40?.st5=
Frite40?.in0o:.,[ [5=
inorine40?.r5=
en= en=

O'ser2atie :Este a0isata e 0ie%are ata in0or#atia tata!ui
,. & Operatii %u ar'orii 'inari
,.&.1 Cautarea

pro%eure %auta40:!ista= +:inte"er5=
'e"in
i0 0REni! tAen i0 0?.in0o@+ tAen Frite4N"asit5
e!se 'e"in
%auta40?.st,+5=
%auta40?.r,+5= en= en=

,.&.$ Ster"erea
Nu 2o# pre(enta un pro%eeu e ster"ere e0e%ti2a %i oar un #oe! e Bster"ere in
a0isareC , prin %autare, asaar 2or 0i a0isate e!e#ente!e partia! 4#ai putin %e! pe %are ori#
sa9! e+%!ue#5. A%est !u%ru poate %onu%e u!terior !a re%onstituirea !istei e e!e#ente,
nu#ai pe 'a(a a0isarii, e%i !a %rearea unei !iste #oi0i%ate.
pro%eure ster"e 40:!ista=n:inte"er5=
'e"in
i0 0REni! tAen i0 0?.in0oREn tAen 'e"in
Frite40?.in0o:.5=
ster"e40?.st,n5=
ster"e40?.r,n5=
en
e!se 'e"in
ster"e40?.st,n5=ster"e40?.r,n5=
en= en=
O's: Pro%eura e aau"are este in%!usa in %rearea re%ursi2a %are rea!i(ea(a in a0ara
e raa%ina, atatea nouri %ate se %er. O pro%eura e aau"are si9ar 0i a2ut sensu! nu#ai in
%a(u! %an raa%ina ar 0i 0ost %reata separat, intr9un a!"orit# e tip iterati2.
,I Ar'ore!e 'inar e %autare
Se nu#este ast0e! eoare%e este %onstruit in raport %u o re"u!a e ase(are a
%ontinuturi!or : a%a 2a!oarea 8, %e ur#ea(a sa 0ie in0or#atia nou!ui no este #ai #i%a
e%at %ea a tata!ui e+istent, nou! 2a 0i
un 0iu stan", a%a este #ai #are, nou! 2a 0i un 0iu rept. *a%a nu e+ista tata, e%i nou! %e
ur#ea(a a 0i
%reat este %Aiar raa%ina, atun%i es%enentii !ui sunt oua nouri e tip NIL.
Citirea %onse%uti2a a 2a!orii 8 %onu%e !a o 2arianta iterati2a, in pri#a etapa, %are
este pre(entata
pentru in%eput. Po(itionarea noii 2a!ori se rea!i(ea(a in 0un%tie e in0or#atia tata!ui
i#eiat.
3/
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
In 2arianta re%ursi2a, trans#iterea 2aria'i!ei 0 ina#i%e prin aresa e%i
pastrarea %apu!ui e %o#parare pre%u# si po(itionarea u!terioara in raport %u
in0or#atia a%estuia. Pro"ra#u! prin%ipa! nu se eose'este esentia!.
2ar 0,p,au+ : ar'ore= ),8,n:inte"er= 42aria'i!e "!o'a!e5
pro%eure %reare48:inte"er5=
'e"in
i0 0@ni! tAen 'e"in
neF405= 0?.i:@8= 0?.s:@ni!=0?.:@ni!=
au+:@0=
en
e!se 'e"in
neF4p5= i0 4au+?.iE85 tAen 'e"in
au+?.s:@p=
p?.i:@8=
p?.:@ni!=
p?.s:@ni!=
en=
VARIANTA ITERATIVA e!se 'e"in
au+?.:@p=
p?.i:@8=
p?.:@ni!=
p?.s:@ni!=
en=
'e"in 0:@ni!= Frite!n4NCititi in0or#atii!e :O5= rea!n485=
FAi!e 48RE>5 o 'e"in %reare485= rea!n485= en= rea!n= en.


Pro%eura e %reare a unui ar'ore 'inar, in 2arianta re%ursi2a :
pro%eure %reare42ar 0: ar'ore= nr:inte"er5=
'e"in
i0 0@ni! tAen 'e"in
neF405= 0?.i:@nr= 0?.s:@ni!= 0?.:@ni!=
en
e!se 'e"in
i0 40?.iEnr5 tAen %reare40?.,nr5= en= en=
APLICATII LA CAPITOLUL FI
*intre stru%turi!e ina#i%e e tip L.L.S.I., ai%a !ista si#p!u in!antuite,%e!e #ai 0re%2ent
uti!i(ate sunt sti2a si %oaa, atorita ap!i%atii!or !or #u!tip!e.
1. OPERATII CU LISTA SIMPLA9 COA*A
Pro"ra# %oaa=
uses %rt=
tHpe %oaa@?no=
no@re%or
in0o:inte"er=
!e":%oaa=en=
2ar p,u:%oaa=
31
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
In %rearea %o(ii se tine %ont e 0aptu! %a ea are oi pointeri9 unu! e in%eput si a!tu! e
s0arsit. Aau"area se 2a 0a%e nu#ai !a s0arsit e a%eea in !o% e !9pointer e !o% sau po(itie,
sa 2a 0o!osi u9pointeru! e s0arsit.
pro%eure %reare=
2ar u,nou:%oaa= i,n:inte"er=
'e"in
Frite!n4[ati pri#u! nu#ar:[5=
neF4p5= rea!n4p?.in0o5=p?.!e":@ni!=
Frite4[*ati nu#aru! tota! e nouri:
[5=rea!n4n5=
u:@p=
0or i:@$ to n o 'e"in
neF4nou5=rea!n4nou?.in0o5=

nou?.!e":@ni!=
u?.!e":@nou=
u:@nou=
en=
en=

pro%eure !istare=
2ar +:%oaa=
'e"in
+:@p=
FAi!e +REni! o 'e"in
Frite4+?.in0o,[ [5=
+:@+?.!e"=
en=
en=
pro%eure aau"are=
2ar +,nou:%oaa=
8:inte"er=
'e"in
Frite!n4[ati nou!
e aau"at[5=
rea!n485=
+:@p=
FAi!e4+?.!e"REni!5
o +:@+?.!e"=
neF4nou5=
'e"in
+:@0=
FAi!e 4+REni!5 o +:@+?.ur#=
!:@+=
FAi!e 4!REni!5 o 'e"in
Frite4+?.in0o,[ [5=
!:@!?.pre%=
en=
Frite!n=
en=
pro%eure ster"ere<no<in0o42:'Hte5=
2ar +,Y:!ista=
'e"in
+:@0=
FAi!e +?.in0oRE2 o +:@+?.ur#=
+?.ur#?.pre%:@+?.pre%=
+?.pre%?.ur#:@+?.ur#=
ispose4+5=
33
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
en=
L<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<M
'e"in
Frite!n4[Creare:[5=
%reare=
par%ur"ere<st<r=
Frite!n4[Aau"are !a in%eputD se %iteste nr. e aau"at:[5=
rea!n425=
aau"<!a<in%eput425=
par%ur"ere<st<r=
Frite!n4[Aau"are !a s0arsitD se %iteste nr. e aau"at:[5=
rea!n425=
aau"<!a<s0arsit425=
par%ur"ere<st<r=
Frite!n4[Aau"are upa un noD se %iteste in0or#atia nou!ui[5=
Frite!n4[upa %are se aau"a si nu#aru! e aau"at:[5=
rea!n4H,25=
aau"<upa<un<no4H,25=
par%ur"ere<st<r=
Frite!n4[Ster"ere D se %iteste nr. e sters:[5=
rea!n4H5=
ster"ere<no<in0o4H5=
par%ur"ere<st<r=
rea!n=
en.
-.
LISTA CIRCULARA SE *EOSEBESTE *E O LISTA SIMPLA *OAR PENTRU CA
ULTIMUL NO* ESTE LEGAT *E PRIMUL=

Pro"ra# L.CIRCULARA=
uses %rt=
tHpe !ista@?no=
no@re%or
in0o:inte"er=
!e":!ista=
en=
2ar 0:!ista=n:'Hte=
pro%eure %reare=
2ar
i:'Hte=!,nou:!ista=
'e"in

Frite4[n@[5=rea!n4n5=
neF405=
rea!n40?.in0o5=
0?.!e":@ni!=
!:@0=
0or i:@$ to n91 o
'e"in
neF4nou5=
rea!n4nou?.in0o5=
nou?.!e":@ni!=
!?.!e":@nou=
!:@nou=
en=
Ai%i se 0a%e !e"atura u!ti#u!ui
no, a! n9!ea, %u pri#u!, in rest,
pro%euri!e sunt ase#anatoare %u
%e!e e !a !ista si#p!a.
neF4nou5=
rea!n4nou?.in0o5=
nou?.!e":@0=
!?.!e":@nou=
en=
pro%eure a0isare=
2ar +:!ista=i:'Hte=
'e"in
+:@0= i:@1=
FAi!e iR@n o 'e"in
Frite4+?.in0o,[ [5=
+:@+?.!e"=in%4i5=
en=
Frite4+?.in0o,[ [5=
en=

L<<<<<<<<<<<<<<<<<<<<<<M
'e"in
%!rs%r=
%reare=
Frite!n=
a0isare=
rea!n= en.
..
3S
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
*I,ERSE OPERATII CU LISTELE: OR*ONARE,CONCATENARE4LIPIRE5,
CALCUL 6REC,ENTA ELEMENTE, ETC.
..1
OR*ONARE LISTA SIMPLA
uses %rt=
tHpe !ista@?no=
no@re%or
in0o:inte"er=
!e":!ista=
en=
2ar 0,!,+:!ista=
pro%eure %reare=
2ar n,i:inte"er=!,nou,+:!ista=
'e"in
neF405=
rea!n4n5=
rea!n40?.in0o5=
0?.!e":@ni!=
!:@0=
0or i:@$ to n o 'e"in
neF4nou5=
rea!n4nou?.in0o5=
nou?.!e":@ni!=
!?.!e":@nou=
!:@nou=en=
en=
pro%eure oronare=
2ar +:!ista=
2':'oo!ean=au+:inte"er=
'e"in
repeat
2':@true=
+:@0=
FAi!e +REni! o
'e"in
i0
+?.in0oE+?.!e"?.in0o
tAen 'e"in
au+:@+?.in0o=

+?.in0o:@+?.!e"?.in0o=
+?.!e"?.in0o:@au+=
2':@0a!se=
en=
+:@+?.!e"=
en=
unti! 2'=
en=
pro%eure !istare=
2ar +:!ista=
'e"in
+:@0=
FAi!e +REni! o
'e"in
Frite4+?.in0o:/,[ [5=
+:@+?.!e"=en=
en=


L<<<<<<<<<<<<<<<<<<<<<<<<<<
<M
'e"in
%reare=
oronare=
!istare=
rea!n=
en.
..$ CONCATENAREA A
*OUA LISTE SIMPLE
Pro"ra#
%on%atenare=
uses %rt=
tHpe %oaa@?no=
no@re%or
in0o:inte"er=
!e":%oaa=en=
2ar p,u,p1,u1:%oaa=
pro%eure %reare=
2ar u,nou:%oaa=
i,n:inte"er=
'e"in
Frite!n4[ati pri#u!
nu#ar:[5=
neF4p5=

rea!n4p?.in0o5=p?.!e":@ni!=
Frite4[*ati nu#aru!
tota! e
nouri: [5=rea!n4n5=
u:@p=
0or i:@$ to n o 'e"in
neF4nou5=
rea!n4nou?.in0o5=
nou?.!e":@ni!=
u?.!e":@nou=
u:@nou=
en=
en=
pro%eure %reare1=
2ar u1,nou:%oaa= i,n:inte"er=
'e"in
Frite!n4[ati pri#u! nu#jr:[5=
neF4p15=
rea!n4p1?.in0o5=p1?.!e":@ni!=
Frite4[*ati nu#aru! tota! e
nouri:[5=rea!n4n5=
u1:@p1=
0or i:@$ to n o 'e"in
neF4nou5=rea!n4nou?.in0o5=
nou?.!e":@ni!=
u1?.!e":@nou=
S>
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
u1:@nou=
en=
en=
pro%eure aau"are=
2ar H,+,nou:%oaa=
8:inte"er=
'e"in
+:@p=
FAi!e4+?.!e"REni!5 o +:@+?.!e"=
H:@p1=
FAi!e HREni! o 'e"in
neF4nou5=
nou?.in0o:@H?.in0o=
nou?.!e":@ni!=
+?.!e":@nou=
+:@nou=
V:@H?.!e"=
en=
en=
pro%eure !istare=
2ar +:%oaa=
'e"in
+:@p=
FAi!e +REni! o 'e"in
Frite4+?.in0o,[ [5=
+:@+?.!e"=
en=
en=

L<<<<<<<<<<<<<<<<<<<<<<<<<M
'e"in
%reare=
!istare=
%reare1=
aau"are=
!istare=
rea!n=en.
..& 6REC,ENTA UNUI NUMAR INTR9> LISTA *E TIP NUMERIC
Pro"ra# 0re%2enta=
2ar +,0:!ista=
#:set o0 >..$..=
2:arraHT1..$..U o0 'Hte=
nr:inte"er=

pro%eure %reare=
2ar
n,i:inte"er=!,nou:!ista=
'e"in
neF405=

rea!n4n5=

rea!n40?.in0o5=

0?.!e":@ni!=
!:@0=
0or i:@$ to n o
'e"in
neF4nou5=

rea!n4nou?.in0o5=
nou?.!e":@ni!=
!?.!e":@nou=
!:@nou=en=
en=
uses %rt=
tHpe
!ista@?no=

no@re%or

in0o:'Hte=

!e":!ista=
en=
pro%eure
nu#ar48:inte"er5=
2ar
+:!ista=
'e"in +:@0=nr:@>=
FAi!e +REni! o

'e"in
i0 +?.in0o@8
tAen

'e"in
nr:@nrI1=2TnrU:@8=e
n=

+:@+?.!e"=

en=

en=

L@@@@@@@@@@@@@@@@@@@@@@M
'e"in
%!rs%r=
te+t'a%8"roun415=
te+t%o!or41-5=
%!rs%r=
%reare=#:@TU=
+:@0=
FinoF4&>,1>,1>,1.5=
te+t'a%8"roun41.5=
te+t%o!or4-5=
%!rs%r=
FAi!e +REni! o
'e"in
S1
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
i0 not4+?.in0o in #5
tAen
'e"in
Frite!n4[0re%2enta
!ui[,+?.in0o,0re%2enta4+?.in0o5:/,[ [5=
#:@#IT+?.in0oU=
rea!n=
en=
+:@+?.!e"=
en=
rea!n=
en.

.. ARBORELE BINAR POATE 6I CONSI*ERAT UN TIP APARTE *E LISTA ,
*EOSEBIREA CONSTAN* IN ACEEA CA 6IECARE NO* ARE *OI
*ESCEN*ENTI, UNUL SPRE STANGA SI ALTUL SPRE *REAPTA .

GENERAREA UNUI ARBORE BINAR SI TRA,ERSAREA LUI
uses %rt=
tHpe !ista@?no=
no@re%or
in0o:inte"er=
stan"a,reapta:!ista=
en=
2ar 0:!ista=n:inte"er=
CREARE RECURSI,A
pro%eure %reare42ar 0:!ista5=Lpara#etru trans#is prin
aresaM
'e"in Lpentru a initia!i(a %u 2a!oareaM
rea!n4n5= Lpe %are o pri#este 0M
i0 nRE> tAen 'e"in
neF405=
0?.in0o:@n=
%reare40?.stan"a5=
%reare40?.reapta5=
en
e!se
0:@ni!=
en=
CREAREA UNUI ARBORE BINAR. 4 ,ARIANTA ITERATI,A5
pro"ra# %reare<ar'ore<'inar =
tHpe re0@?no=
no@re%or
in0o:inte"er=
st, r:re0= en=
2ar p:re0= +, i, n: inte"er=
pro%eure aau"a42ar p:re0= +:inte"er5=
'e"in
i0 p@ni! tAen 'e"in
neF4p5= p?in0o:@+= p?.st:@ni!= p?.r:@ni!=
en=
e!se i0 +R@p?.in0o tAen 'e"in !istare4p?.st5=
Frite4p?.in0o, N N5=
!istare4p?.r5= en=en=
'e"in neF4p5= Frite4Nn@O5= rea!n4n5=
Frite4Nati siru! in0or#atii!or:O5=
rea!n4p?.in0o5= p?.st:@ni!= p?.r:@ni!=
0or i:@ 1 to n o 'e"in rea!n4+5= aau"T4p,+5=
en=
S$
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
Frite!n4N!istare:O5= !istare4p5=
en
PARCURGERI *E TOATE TIPURILE: SE ,A LISTA IN TREI MO*URI
LISTARI RECURSI,E ALE UNUI ARBORE BINAR:
pro%eure inorine40:!ista5=
Lpara#etru trans#is prin 2a!oareM
'e"in
i0 0REni! tAen 'e"in
inorine40?.stan"a5=
Frite40?.in0o:.,[ [5=
inorine40?.reapta5=
en=
en=
pro%eure preorine40:!ista5=
'e"in
i0 0REni! tAen 'e"in
Frite40?.in0o:.,[ [5=
preorine40?.stan"a5=
inorine40?.reapta5=
en=
en=
pro%eure postorine40:!ista5=
'e"in
i0 0REni! tAen 'e"in
postorine40?.stan"a5=
postorine40?.reapta5=
Frite40?.in0o:.,[ [5=
en=
en=
'e"in
%!rs%r=
0:@ni!=
%reare405=
Frite!n=
Frite!n4[!istare inorine[5=inorine405=
Frite!n=
Frite!n4[!istare preorine[5=preorine405=
Frite!n=
Frite!n4[!istare postorine[5=postorine405=
rea!n=
en.
1.
INTERCLASAREA A *OUA LISTE NUMERICE
uses %rt=
tHpe !ista@?no=
no@re%or
in0o:inte"er=
!e":!ista=
en=
2ar !,0,n,01,0$:!ista=
pro%eure %reare1=
2ar n,i:inte"er=!,nou:!ista=
'e"in
neF4015=
rea!n4n5=
rea!n401?.in0o5=
01?.!e":@ni!=
!:@01=
0or i:@$ to n o 'e"in
neF4nou5=
rea!n4nou?.in0o5=
nou?.!e":@ni!=
!?.!e":@nou=
!:@nou=en=
en=
pro%eure %reare$=
2ar n,i:inte"er=!,nou:!ista=
'e"in
neF40$5=
rea!n4n5=
rea!n40$?.in0o5=
0$?.!e":@ni!=
!:@0$=
S&
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
0or i:@$ to n o 'e"in
neF4nou5=
rea!n4nou?.in0o5=
nou?.!e":@ni!=
!?.!e":@nou=
!:@nou=en=
en=
pro%eure oronare1=
2ar +:!ista=2:'oo!ean=
au+:inte"er=
'e"in
repeat
2:@true=+:@01=
FAi!e +?.!e"REni! o 'e"in
i0 +?.in0oE+?.!e"?.in0o tAen
'e"in au+:@+?.in0o=
+?.in0o:@+?.!e"?.in0o=
+?.!e"?.in0o:@au+=
2:@0a!se=en=
+:@+?.!e"=
en=
unti! 2=
en=
pro%eure oronare$=
2ar +:!ista=2:'oo!ean=
au+:inte"er=
'e"in
repeat
2:@true=+:@0$=
FAi!e +?.!e"REni! o 'e"in
i0 +?.in0oE+?.!e"?.in0o tAen
'e"in au+:@+?.in0o=
+?.in0o:@+?.!e"?.in0o=
+?.!e"?.in0o:@au+=
2:@0a!se=en=
+:@+?.!e"=
en=
unti! 2=
en=
pro%eure inter%!asare=
2ar a,':!ista=
'e"in
a:@01=':@0$=
neF405=0?.!e":@ni!=
i0 01?.in0oR0$?.in0o tAen
0?.in0o:@01?.in0o
e!se
0?.in0o:@0$?.in0o=
Frite40?.in0o:-,[ [5=
a:@a?.!e"=':@'?.!e"=
!:@0=
FAi!e 4aREni!5 an 4'REni!5 o
'e"in
neF4n5=
i0 a?.in0oR'?.in0o tAen
'e"in
n?.in0o:@a?.in0o=
a:@a?.!e"=en
e!se
i0 a?.in0oE'?.in0o tAen
'e"in
n?.in0o:@'?.in0o=
':@'?.!e"=en
e!se
'e"in
n?.in0o:@a?.in0o=
a:@a?.!e"=':@'?.!e"=
en=
Frite4n?.in0o:-,[ [5=
n?.!e":@ni!=
!?.!e":@n=
!:@n=
en=
i0 a@ni! tAen FAi!e 'REni! o
'e"in
neF4n5=
n?.in0o:@'?.in0o=
Frite4n?.in0o:-,[ [5=
n?.!e":@ni!=
!?.!e":@n=
!:@n=
':@'?.!e"=
en
e!se i0 '@ni! tAen FAi!e aREni! o
'e"in
neF4n5=
n?.in0o:@a?.in0o=
Frite4n?.in0o:-,[ [5=
n?.!e":@ni!=
!?.!e":@n=
!:@n=
a:@a?.!e"=
en= en=
pro%eure a0isare=
2ar +:!ista=
'e"in
+:@0=
FAi!e +REni! o 'e"in
Frite4+?.in0o5=
+:@+?.!e"=en=
en=
pro%eure a0isare1=
2ar +:!ista=
'e"in
+:@01=
FAi!e +REni! o 'e"in
Frite4+?.in0o5=
+:@+?.!e"=en=
en=
pro%eure a0isare$=
2ar +:!ista=
'e"in
+:@0$=
FAi!e +REni! o 'e"in
Frite4+?.in0o5=
+:@+?.!e"=en=
en=
S-
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
'e"in
%!rs%r=
%reare1=%reare$=
Frite!n4[Liste oronate[5=
oronare1=oronare$=
a0isare1=
Frite!n=
a0isare$=
Frite!n=
Frite!n4[Lista inter%!asata[5=
inter%!asare=
rea!n=
en.
3.
ALTERNATI,A *INAMICA A SCRIERII SUB 6ORMA POLONEZA A UNEI EKPRESII
ARITMETICE, INTRO*USE *E UN SIR *E CARACTERE
Pro"ra# 0or#a<po!one(a=
L METO*A ESTE *I,I*E ET IMPERA9IN
6UNCTIA 6<POLONEZAM
uses %rt=
tHpe !ista@?no=
no@re%or
op:%Aar=
stan"a,reapta:!ista=
en=
e+presie@arraHT1..&>U o0 %Aar=
2e%tor@arraHT1..&>U o0 inte"er=
2ar e,e<0<p:e+presie=p,p<0<p:2e%tor=
0:!ista=a:%Aar=8,i,),n:'Hte=
0un%tion 0<po!one(a4!s,!:'Hte=2ar
e<0<p:e+presie=2ar p<0<p:2e%tor5:!ista=
2ar +:!ista=i,),#in:inte"er=
'e"in
#in:@p<0<pT!U=i:@!=
0or ):@! oFnto !s o i0 p<0<pT)UR#in tAen
'e"in
#in:@p<0<pT)U=
i:@)=
en=
neF4+5=0<po!one(a:@+=
0<po!one(a?.op:@E<0<pTiU=
i0 !s@! tAen
'e"in

0<po!one(a?.stan"a:@ni!=0<po!one(a?.reapta:@n
i!=
en
e!se
'e"in
po!one(a?.stan"a:@0<po!one(a4!s,
i,
,e<0<p,p<0<p5=
0<po!one(a?.reapta:@0<po!one(a
4iI1,!,e<0<p,p<0<p5=
en=
en=
pro%eure postorine4!:!ista=2ar
8:'Hte5=
L0or#a post0i+ata sau po!one(a
se o'tine prin par%ur"ere in
postorineM
'e"in
i0 LREni! tAen 'e"in
postorine4!?.stan"a,85=
postorine4!?.reapta,85=
i0 4or4up%ase4!?.op55E@/.5 an
4or4up%ase4!?.op55R@S>5 tAen
Frite4[ [,!?.op:-5
e!se
'e"in
Frite4[ni2e![,8:$,[:[,!?.op:$,9999E[5=
8:@8I1=
en=
Frite!n=rea!n=
en=
en=
'e"in
%!rs%r=
):@>=
n:@1=
L%itirea e+presieiM
rea4a5=FAi!e aRE[.[ o 'e"in
eTnU:@a=n:@nI1=rea4a5=en=
n:@n91=
L0or#area 2e%toru!ui prioritati!orM
0or i:@1 to n o
%ase eTiU o0
[5[:):@)91>=
[4[:):@)I1>=
[I[,[9[:pTiU:@)I1=
[P[,[D[:pTiU:@)I1>
e!se pTiU:@1>>>=
en=
L0or#area 2e%toru!ui prioritati!or 0ara parante(e
si a e+presiei 0ara parante(eM
):@1=
0or i:@1 to n o i0 4eTiURE[4[5 an 4eTiURE[5[5 tAen
'e"in
e<0<pT)U:@eTiU=
p<0<pT)U:@pTiU=
):@)I1=
en=
0:@0<po!one(a41,)91,e<0<p,p<0<p5=
Frite!n=te+t%o!or4He!!oF5=
8:@1=
postorine40,85=
Frite!n4[en;[5=
rea!n=
en.
S.
S.
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
IN,ERSAREA LEGATURILOR INTR9O LISTA SIMPLA SI A6ISAREA EI
Pro"ra# in2ersare=
uses %rt=
tHpe !ista@?no=
no@re%or
in0o:inte"er=
!e":!ista=
en=
2ar 0,!,+:!ista=
pro%eure %reare=
2ar n,i:inte"er=!,nou,+:!ista=
'e"in
neF405=
rea!n4n5=
rea!n40?.in0o5=
0?.!e":@ni!=
!:@0=
0or i:@$ to n o 'e"in
neF4nou5=
rea!n4nou?.in0o5=
nou?.!e":@ni!=
!?.!e":@nou=
!:@nou=en=
en=
pro%eure in2ersare=
2ar au+1,au+$,+:!ista=
'e"in
+:@0=au+$:@ni!=
FAi!e 4+REni!5 o
'e"in
au+1:@au+$=au+$:@+=
+:@+?.!e"=
au+$?.!e":@au+1=
0:@au+$=
en=
pro%eure a0isare=
2ar +:!ista=
'e"in
+:@0=
FAi!e +REni! o
'e"in
Frite4+?.in0o,[ [5=
+:@+?.!e"=
en=
en=
L<<<<<<<<<<<<<<<<<<<M
'e"in
%!rs%r=
%reare=
Frite!n=
a0isare=
in2ersare=
Frite!n=
a0isare=
en.
1>.
PARCURGEREA RECURSI,A A UNEI
LISTE SIMPLE
Pro"ra# re%=
uses %rt=
tHpe !ista@?no=
no@re%or
in0o:inte"er=
!e":!ista=en=
2ar 0,!:!ista=
pro%eure %reare=
2ar !,nou:!ista= i,n:inte"er=
'e"in
neF405=
rea!n40?.in0o5=0?.!e":@ni!=
Frite4[ati nu#aru! tota! e nouri:
[5=rea!n4n5=
!:@0=
0or i:@$ to n o 'e"in
neF4nou5=rea!n4nou?.in0o5=
nou?.!e":@ni!=
!?.!e":@nou=
!:@nou=
en= en=
pro%eure par%ur"ere<re%4+:!ista5=
'e"in
Frite4+?.in0o,[ [5= La0isare in0or#atie uti!a
%urentaM
+:@+?.!e" = Lpar%ur"ere: sa!t !a nou!
ur#atorM
i0 +REni! tAen L atat ti#p %at !ista nu e
2iaM
par%ur"ere<re%4+5= L%Ae#are re%ursi2a M
L e ar"u#ent nou! %urentM
en=

L<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<M
'e"in
%!rs%r=
%reare=
par%ur"ere<re%405=
rea!n=
en.


S/
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI

11.
PROBLEMA STERGERII NUMERELOR
IMPARE *INTR9O LISTA NUMERICA
uses %rt=
tHpe !ista@?no=
no@re%or
in0o:inte"er=
!e":!ista=
en=
2ar p,0,!,+:!ista=%A:%Aar=
pro%eure %reare=
2ar !,nou,+:!ista=i,n:inte"er=
'e"in
neF405=
rea!n40?.in0o5=
0?.!e":@ni!=!:@0=
rea!n4n5=
0or i:@$ to n o 'e"in
neF4nou5=
rea!n4nou?.in0o5=
nou?.!e":@ni!=
!?.!e":@nou=
!:@nou=
en=
en=
pro%eure oronare1=
2ar +:!ista=2:'oo!ean=
au+:inte"er=
'e"in
repeat
2:@true=+:@0=
FAi!e +?.!e"REni! o 'e"in
i0 +?.in0oE+?.!e"?.in0o tAen
'e"in au+:@+?.in0o=
+?.in0o:@+?.!e"?.in0o=

+?.!e"?.in0o:@au+=
2:@0a!se=en=
+:@+?.!e"=
en=
unti! 2=
en=
pro%eure ster"=
2ar +,!,nou:!ista=
'e"in
+:@0=neF4p5=
i0 440?.in0o5 #o $@>5 tAen 'e"in
p?.in0o:@+?.in0o=p?.!e":@ni!=+:@+?.!e"=!:@p=
en
e!se 'e"in
p?.in0o:@>=p?.!e":@ni!=+:@+?.!e"=!:@p=en=
FAi!e 4+REni!5 o 'e"in
i0 44+?.in0o5 #o $@>5 tAen
'e"in
neF4nou5=
nou?.in0o:@+?.in0o=
nou?.!e":@ni!=
!?.!e":@nou=
!:@nou=
en=
+:@+?.!e"=
en=
en=
pro%eure a0isare=
2ar !:!ista=
'e"in
!:@p=
FAi!e !REni! o 'e"in
i0 !?.in0oRE> tAen
Frite!n4[ [,!?.in0o5
e!se Frite!n4!?.in0o5=
!:@!?.!e"=en=
en=
pro%eure a0isare1=
2ar +:!ista=
'e"in
+:@0=
FAi!e +REni! o 'e"in
Frite4+?.in0o,[ [5=
+:@+?.!e"=en=
en=
'e"in
%!rs%r=
te+t'a%8"roun415=
te+t%o!or41-5=
CLRSCR=
%reare=
oronare1=
\IN*O\4.>,3,1>,1.5=
te+t'a%8"roun41.5=
te+t%o!or4-5=
CLRSCR=
Frite!n4[LISTA NUMERELOR *ATE:[5=
a0isare1=
Frite!n=
Frite!n4[Apasati tasta ENTER: [5=
ster"=
rea!n4%A5=
i0 %A@W1& tAen 'e"in
%!rs%r=
te+t'a%8"roun415=
te+t%o!or41-5=
CLRSCR=
\IN*O\4.>,3,1>,1.5=
te+t'a%8"roun41.5=
te+t%o!or4-5=
CLRSCR=
Frite!n4[LISTA NUMERELOR PARE:[5=
a0isare=
en=
rea!n=
en.
S1
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
1$ : SA SE INSEREZE INTR9O LISTA *E NUMERE, LA LOCUL *E OR*INE
CORESPUNZATOR, NUMERELE PRIME MAI MARI *ECAT ELEMENTELE *ATE. SA SE
A6ISEZE.
uses %rt=
tHpe !ista@?no=
no@re%or
a:For=
!e":!ista=
en=
2ar 0:!ista=#a+:For=
pro%eure %reare=
2ar n,i:inte"er=nou,+:!ista=
'e"in L !ista tre'uie oronata in prea!a'i!M
neF405=
rea!n4n5=
rea!n40?.a5=
0?.!e":@ni!=
+:@0=
0or i:@$ to n o 'e"in
neF4nou5=
rea!n4nou?.a5=
nou?.!e":@ni!=
+?.!e":@nou=
+:@nou=
en=
en=
pro%eure oronare1=
2ar +:!ista=
2':'oo!ean=au+:For=
'e"in
repeat
2':@true=
+:@0=
FAi!e +?.!e"REni! o 'e"in
i0 +?.aE+?.!e"?.a tAen 'e"in
au+:@+?.a=
+?.a:@+?.!e"?.a=
+?.!e"?.a:@au+=
2':@0a!se=
en= +:@+?.!e"=en=
unti! 2'=
en=
0un%tion pri#4#:For5:'oo!ean=
2ar i:inte"er=
'e"in
pri#:@true=
0or i:@$ to #91 o i0 4# #o i@>5 tAen pri#:@0a!se =
en=
pro%eure pri#e4#:For5=
2ar i:inte"er=
'e"in
#a+:@>=
0or i:@1 to #91 o i0 pri#4i5 an 4iE#a+5 tAen #a+:@i=
en=
pro%eure inserare= Lpro%eura a reusit sa insere(e M
2ar +,p:!ista=au+:For= Lnu#aru! pri# #ai #are e%at +?.aM
S3
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
'e"in Lnu#ai upa a%esta...............M
+:@0=
FAi!e +REni! o
'e"in
i0 not4 pri#4+?.a55 tAen 'e"in
pri#e4+?.a5=
neF4p5=
p?.a:@#a+=
p?.!e":@+?.!e"=
+?.!e":@p=
en=
+:@+?.!e"=
en=
en=
pro%eure !istare=
2ar +:!ista=
'e"in
+:@0=
FAi!e +REni! o 'e"in
Frite4+?.a:.,[ [5=
+:@+?.!e"=en=
en=
LEEEEEEEEEEEEEEEEEEEM
'e"in
%!rs%r=
%reare=
oronare1=
!istare=
Frite!n=
inserare=
!istare=
en.
1&.
A*UNAREA A *OUA POLINOAME, UTILIZAN* LISTELE SIMPLE :C@COE6ICIENT, GK, GV@
GRA*ELE ,ARIABILELELOR K, RESPECTI, V= POLINOAMELE SE CONSI*ERA *E *OUA
,ARIABILE ZK, V
tHpe !ista@?no=
no@re%or
%,"+,"H:inte"er=
nou:!ista=
en=
2ar 0:!ista=a,':inte"er=
pro%eure %reare=
2ar !,u:!ista=n,i:inte"er=
'e"in
rea!n4n5=
neF405=
rea!n40?.%,0?."+,0?."H5=
0?.nou:@ni!=
u:@0=
0or i:@$ to n o 'e"in
neF4!5=
rea4!?.%,!?."+,!?."H5=
!?.nou:@ni!=
u?.nou:@!=
u:@!=
en=
SS
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
en=
pro%eure a0isare=
2ar +:!ista=
'e"in
+:@0=Frite4+?.%,[+?[,+?."+,[H?[,+?."H5=
+:@+?.nou=
FAi!e +REni! o 'e"in
i0 +?.%R> tAen
Frite4+?.%,[+?[,+?."+,[H?[,+?."H5
e!se
Frite4[I[,+?.%,[+?[,+?."+,[H?[,+?."H5=
+:@+?.nou=en=
en=
'e"in
%reare=
a0isare=
en.
14.PROBLEME SPECIFICE ARBORILOR
1-.1
6IIN* *AT UN ARBORE OARECARE, SA SE *ETERMINE ARBORELE BINAR ASOCIAT LUI
tHpe re0@?no =
2e%t@arraHT1..$>U o0 re0=
no@re%or
in0o:inte"er=
nr<0ii:inte"er=
0iu:2e%t=
en=
re0'@?no'=
no'@re%or
in0o:inte"er=
0iu<st, 0iu<r:re0'=
en=
2ar p: re0= p ! :re0'=
pro%eure %reare 42ar p:re05=
2ar n, i: inte"er=
'e"in
rea!n4n5=
neF4p5= p?.in0o:@ n=
Frite4Nnr. 0ii ai nou!uiO,n5= rea!n4p?. nr<0ii5=
0or i:@1 to nr<0ii o %reare4p?.0iuTiU5=
en=
en=
pro%eure trans0or#4p:re0, 2arp:in0o5=
2ar i:inte"er= a:re0'=
'e"in
neF4p5=
p!?.in0o:@p?.in0o=
p!?.0iu<st:@ni!=p!?.0iu<r:@ni!=
0or i:@ 1 to nr<0ii o
i0 p!?.0iu<st@ni! tAen trans0or#4p?.0iu TiU, p!?.0iu<st5
e!se 'e"in
a:@p!?.0iu<st=
FAi!e a?.0iu<rRE ni! o a :@ a?.0iu<r=
trans0or#4p?.0iuTiU, a?.0iu<r5=
en=
en=
pro%eure !istare<ar'<'in 4p!:re0'5=
1>>
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
'e"in
i0 p! RE ni! tAen 'e"in
Frite4p!?.in0o,OO5=
!istare<ar'<'in4p!?.0iu<st5=
!istare<ar'<'in4p!?.0iu<r5=
en=
en=
'e"in
%reare4p5= trans0or#4p, p!5=
Frite!n4Nar'ore!e 'inar !iatat in preornine:O5=
!istare<ar'<'in4p!5=
en.
1-.$. REPREZENTAREA PARANTEZATA A UNUI ARBORE
SA SE A6ISEZE IN6ORMATIILE ATASATE NO*URILOR UNUI ARBORE BINAR, UTILIZAN*
PARANTEZELE ROTUN*E PENTRU A MARCA NO*URILE SITUATE PE ACELASI NI,EL IN
ARBORE.
tHpe re0@?no = 'e"inLpro"ra# prin%ipa!M
no@re%or %reare4p5=
in0o:inte"er= !istare4p5=
st,r:re0= en.
en=
2ar p:re0=
pro%eure %reare 42ar p:re05=
2ar +:inte"er=
'e"in
rea!n4+5= i0 + RE > tAen 'e"in
neF4p5= p?.in0o:@+=
%reare4p?.st5= %reare4p?.r5=
en
e!se p:@ni!=
en=
pro%eure !istare4p:re05=
'e"in 14$4.4. ,/5, .5, &4. , -41, .555
i0 p@ni! tAen Frite 4N N5=
e!se 'e"in Frite 4p?.in0o,O N5=
i0 4p?.stREni!5 or 4p?.rREni!5tAen 'e"in
Frite4N N5= !istare4p?.st5=
Frite4N N5= !istare4p?.r5= Frite4N N5= en=
en=en.
1-. &
STERGEREA UNUI NO* INTR9UN ARBORE *E CAUTARE, AST6EL INCAT SA SE OBTINA
TOT UN ARBORE *E CAUTARE.
tHpe re0@?no=
no@re%or
in0o:inte"er=
st, r:re0= en=
2ar p,Y:re0= +, i, n: inte"er=
pro%eure %auta<ster"e42arp :re05 =
'e"in i0 p?.rRE ni! tAen %auta<ster"e4p?.r5
e!se 'e"in Y?.in0o:@p?.in0o= Y:@p= p:@p?.st= ispose4Y5= en=
en=
pro%eure ster"e42ar r:re0, +:inte"er5=
'e"i' i0 r@ni! tAen Frite!n4Nnu#aru! nu este in ar'oreO5
e!se i0 +Rr?.in0o tAen ster"e4r?.st, +5
e!se i0 +Er?.in0o tAen ster"e4r?.r, +5
e!se 'e"in Y:@r=
1>1
$
&
.
/ 1
-
1
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
i0 r?.st@ni! tAen 'e"in r:@r?.r= ispose4Y5=
en
e!se i0 r?.r@ni! tAen 'e"in r:@r?.st=ispose4Y5=
en
e!se %auta<ster"e4r?.st5=
en=en=
en.
1-.-.ARBORE EC:ILIBRAT 4A,L5
D#'initia arbor#l"i #c>ilibrat: +ricare ar fi un arbore ,-* arbore binar de cautare( atunci el se
numeste ,./ daca si numai daca" is-id apartine 01,-1,12; is$inaltime subarbore stang, id$ inaltime
subarbore drept, 3nformatiile Nodurilor$inaltime
SA SE CONSTRUIASCA UN ARBORE EC:ILIBRAT A,AN* IN6ORMATIILE 1,$,&,J,N.
tHpe re0@?no=
no@re%or
in0o:inte"er=
st, r:re0= en=
2ar p :re0 =n : inte"er =
pro%eure %reare42ar + :re0 = s, :inte"er5 =
2ar #:inte"er=
'e"in neF4+5=
#:@4sII15i2 $=
+?.in0o:@#=
si0 sR@#91 tAen %reare4+?.st, s, #915
e!se +?.r:@ni!=
en=
pro%eure !istare4+:re05=
'e"in i0 +RE ni! tAen 'e"in !istare4+?.st5= Frite4+?.in0o, NO5= !istare4+?.r5=en=
en=
'e"in
Frite 4Nn@O5= rea!n4n5=
%reare4p,!,n5=
Frite!n4N!istare:O5=
!istare4p5= en.
Anexa_1
CODUL ASCII

31 41 ) 51 3 61 = 71 G 81 Q
91 [
32 (spatiu) 42 * 52 4 62 > 72 H 82 R 92 \
33 ! 43 + 53 5 63 ? 73 I 83 S
93 ]
34 " 44 , 54 6 64 @ 74 J 84 T
94 ^
35 # 45 - 55 7 65 A 75 K 85 U 95 _
36 $ 46 . 56 8 66 B 76 L 86 V
96 `
37 % 47 / 57 9 67 C 77 M 87 W
97 a
38 & 48 0 58 : 68 D 78 N 88 X
98 b
39 ' 49 1 59 ; 69 E 79 O 89 Y
99 c
40 ( 50 2 60 < 70 F 80 P 90 Z
100 d
101 e 111 o 121 y 131 | 141 151 161 171
181 191
102 f 112 p 122 z 132 , 142 Z 152 162 172
- 182 192
1>$
Autor: CAZACU N. NINA LICEUL C. A. ROSETTI,, BUCURESTI
103 g 113 q 123 { 133 . 143 153 163 173
183 193
104 h 114 r 124 | 134 | 144 154 s 164 174
184 194
105 i 115 s 125 } 135 | 145 ` 155 165 175
185 195
106 j 116 t 126 ~ 136 ` 146 ' 156 166 176
186 196
107 117 u 127 137 147 157 167 177
187 197
108 l 118 128 138 148 158 168 178
188 198
109 m 119 129 139 149 159 169 179
189 199
110 n 120 x 130 140 150 160 170 180
190 200 E
201 211 221 1 231 241 251
202 2 212 222 232 242 252 u
203 213 223 3 233 243 253
204 214 224 234 244 254
205 I 215 225 235 245 255 (blanc)y
206 216 226 236 246
207 217 227 237 247 -
208 218 228 a 238 248
209 219 229 239 249 u
210 O 220 230 240 250
Combinatii de taste (cele mai des utilizate)
Alt+18: sare la inceputul paginii CTRL+ALT+DEL : oprire sistem
Alt+24: caracterul de dedesubt CTRL+BREAK : intrerupere
executie
Alt+25: sterge tot randul (similar Ctrl+Y)
Alt+27: Sae
Alt+127: sterge tot cuantul din fata (la fel Alt+23)
Alt+257: sare la inceputul cuantului
Alt+259: sare la sfarsitul paginii
Alt+260: sare la caracterul urmator
Alt+261: un rand mai sus
Alt+262: sare la cuantul urmator
Alt+263: Delete
Alt+264: Bacspace
Alt+265: Tab
Alt+267: sterge tot ce este pe rand, dupa prompter (la fel: ALT+11)
Alt+269: Enter (la fel ALT+13)
Bibliografie
1. Cornelia Iasc, ,Bazele informaticii, ed. Libris, 1994
2. Doina Rancea, ,Limbajul Turbo Pascal, ed. Petrion, 1995
3. Manualele de informatica, aprobate de catre MEC, 2000-2009
1>&