You are on page 1of 4

1.

RECURSIVITATE 5
Recursivitate indirect
Recursivitatea se poate realiza i n mod indirect, atunci cnd n cadrul blocului
unei funcii apare apelul unei alte funcii care la rndul su apeleaz direct sau
indirect funcia respectiv.
De exemplu, s presupunem c n funcia A() intervine un apel al funciei
B(). n funcia B() intervine un apel al funciei C(), iar n funcia C() un apel
al funciei A().
bservai c funcia A() se autoapeleaz, prin intermediul funciilor B() i
C(). !rin urmare funcia A() este indirect recursiv.
Aplicaii
irul mediilor aritmetico-geometrice al lui Gauss
"ie dou iruri (a
n
)
n N
, (b
n
)
n N
definite recurent astfel#
a
0
=a; b
0
=b; (a,b>0)
a
n
=(a
n-1
+b
n-1
)/2
b
n
=sqrt(a
n-1
b
n-1
)
$criei un pro%ram care s calculeze a
n
i b
n
, pentru n N, citit de la tastatur.
"uncia A()
"uncia A()
"uncia B()
"uncia B()
"uncia C()
"uncia C()
1. RECURSIVITATE &
Expresii artimetice
'umim expresie aritmetic o construcie definit prin urmtoarele dia%rame de
sintax#
Observaie
(m ales pentru simplitate expresii aritmetice pentru care operanzii sunt formai
dintr)un sin%ur caracter, iar operatorii pot fi doar * i +. De asemenea, nu se
accept spaii. (ceste restricii nu sunt semnificative.
Transformarea unei expresii aritmetice n form polonez
"iind dat o expresie aritmetic sintactic corect n conformitate cu definiia de
la problema precedent, scriei un pro%ram care s afieze notaia polonez a
expresiei ,n form postfixat-.
(ceast notaie a fost introdus de matematicianul polonez J !ucasie"icz i
permite scrierea fr paranteze a unei expresii aritmetice.
"ie E o expresie aritmetic. 'otaia expresiei n form polonez postfixat este#
dac E este format dintr)un sin%ur operand, atunci E
p
= E.
dac E = E
1
E
2
, unde este un operator, iar E
1
i E
2
sunt expresii
aritmetice, atunci E
p
= E
1
p
E
2
p
.
dac E = (E
1
), atunci E
p
= E
1
p
.
De exemplu, pentru expresia aritmetic E=(a+b)*(a*c+b*d), notaia
polonez este ab+ac*bd*+*.
Observaii
/. 'otaia polonez a unei expresii aritmetice nu este unic. De exemplu, pentru
E=a+b+c, aplicnd asociativitatea adunrii obinem E
1
=a, E
2
=b+c, caz n care
E
p
=abc++ sau E
1
=a+b, E
2
=c, caz n care E
p
= ab+c+.
expresie
termen
termen
factor
constant
cifr
variabil
liter
factor
constant
variabil
expresie
,
-
1. RECURSIVITATE 0
1. ntr)un mod analo% se poate defini notaia polonez a unei expresii aritmetice n
form prefixat ,operatorul este plasat n faa operanzilor-.
Evaluarea unei expresii aritmetice
"iind dat o expresie aritmetic sintactic corect, scriei un pro%ram care s
evalueze expresia pentru valori date ale variabilelor care intervin n expresie.
2. METOA IVIE ET IM!ERA
escrierea "eneral a #et$dei
2#ivide et $mpera3 este o metod %eneral de elaborare a al%oritmilor care
const n dou etape#
2#ivide3. !roblema dat este mprit n dou sau mai multe subprobleme de
acela%i tip, dar de dimensiuni mai mici. $ubproblemele se rezolv direct, dac
dimensiunea lor permite aceasta ,cazuri elementare-, sau, fiind de acelai tip, se
rezolv n mod recursiv, prin acelai procedeu.
2$mpera3. $e combin soluiile subproblemelor pentru a obine soluia
problemei iniiale.
Aplicaii
%el mai mare divizor comun
"ie n valori naturale a
0
, a
1
, 4, a
n-1
. Determinai cel mai mare divizor comun
al lor ,cmmdc(a
0
, a
1
, 4, a
n-1
)- prin metoda #ivide et $mpera.
&roblema Turnurilor din 'anoi
(vem la dispoziie trei ti5e numerotate 1, 2, 3 i n discuri de diametre diferite.
6niial, toate discurile sunt plasate pe ti5a 1 n ordinea descresctoare a diametrelor,
considernd sensul de la baz la vrf. !roblema const n a muta discurile de pe ti5a
1 pe ti5a 2, folosind ca ti5 de manevr ti5a 3, respectnd urmtoarele re%uli#
7 la fiecare pas se mut un sin%ur disc.
7 orice un disc poate fi aezat doar peste un disc cu diametru mai mare.
1. RECURSIVITATE 8
&roblema tieturilor
plac de tabl dreptun%9iular, de dimensiuni Lp !p, are n %uri, n
puncte de coordonate ntre%i. $ se decupeze din plac o bucat de arie maxim,
dreptun%9iular i fr %uri, tiind c sunt permise doar tieturi pe direcii paralele
cu laturile plcii.
(lgoritmi de cutare %utarea binar
"ie a
0
, a
1
, 4, a
n-1
,nN+- elemente ntre%i ordonate cresctor i un numr
ntre%. :erificai dac apare n irul a
0
, a
1
, 4, a
n-1
i dac da, pe ce poziie.
(lgoritmi de sortare
"ie n ,nN+- elemente a
0
, a
1
, 4, a
n-1
. rdonai cresctor elementele a
0
, a
1
,
4, a
n-1
.
)ortarea prin interclasare *+erge)ort,
)ortarea rapid *-uic.)ort,

You might also like