Documente Academic
Documente Profesional
Documente Cultură
RECURSIA DIRECT
CONTINUAI ENUNURILE:
Un subprogram este.
Subprogramele sunt de 2 tipuri ..
Funcia este .
Procedura este .
Apelul unei subprogram se face prin intermediul ...
Tipul rezultatului unei funcii poate fi ...
Funcia returneaz rezultatul prin.
Procedura returneaz rezultatul prin
Parametri actuali sunt ..
Corespondena ntre un parametru actual i un
parametru formal se face.
CARACTERISTICILE
Se
Rezultatul
definete
se
n
ntoarce
partea
Returneaz
Extinde
Estinde
Variabile
Rezultatul
Poate
finoiunea
noiune
apelat
locale
se
0,1sau
intoarce
Lista
Returneaz
parametrilor
un
Nume
declarativ
prin
nume
a programului
mai
de
prin
deinstruciune
expresie
multe
elparametru
nsui
rezultate
formali
singur
rezultat
variabil
FUNCII
comune
PROCEDURE
Tema: RECURSIA
Subcompetene:
Prelucrarea datelor cu ajutorul subprogramelor predefinite i a
subprogramelor elaborate de ctre utilizator.
Organizarea comunicrii ntre programul / subprogramul apelant i
subprogramul apelat
Proiectarea structural a algoritmului i a programului.
Utilizarea recursiei pentru rezolvarea problemelor
Obiective operaionale:
O1 s defineasc termenii: program, subprogram, funcie
procedur, apel, parametri valoare, parametri variabil, parametri
formali, parametri actuali, variabile globale, variabile locale,
O2 s determine corectitudinea antetelor i apelurilor de
subprograme;
O3 s poat evalua programe ce utilizeaz subprograme
recursive, s determine valoarea funciei pentru anumite date de
intrare;
O4 s explice algoritmul subprogramului recursiv, modul de
execuie al subprogramului recursiv;
O5 s elaboreze programe n care se utilizeaz subprograme
recursive
P:=P*i
P:=P*i
P:=P*i
P:=P*i
P=1*1=1
P=1*2=2
P=2*3=6
P=6*4=24
i=5
P:=P*i
P=24*5=120
5!= 5*4!
Function fact(N:integer):integer;
Begin
If N=0 then fact:=1
else fact:=N* fact(N-1);
End;
5!
=5*24=120
4!
=4*6=24
4!=4*3!
3!=3*2!
3!=3*2=6
2!=2*1!
2!=2*1=2
1!=1*0!
0!=1
1!=1*1=1
0!=1
Program suma_iterativ;
Var n: integer;
Function S(k:
integer):integer;
Var i:integer;
Begin
S:=0;
For i:= 1 to k do S:=S+i
End;
Begin
Write( n=); readln(n);
Writeln(suma este , S(n));
End.
10
Concluzii:
Un algoritm recursiv are acelai efect ca i un ciclu: repet execuia unei anumite
secvene de instruciuni
E necesar ca repetarea s nu fie la infinit, adic trebuie s existe o condiie de
oprire, cazul elementar ce poate fi calcul direct
n majoritatea cazurilor algoritmii recursivi pot fi nlocuii cu algoritmi nerecursivi
(iterativi), la dorina programatorului.
Varianta recursiv este recomandat n special pentru problemele definite prin
relaii de recuren, care permite o formulare a rezultatelor mult mai clar i mai
concis:
Avantajele recursiei:
1.Structura programului simpl
2.Volumul de scriere a programului - mic
Dezavantajele recursiei:
1.Necesarul de memorie mare
2.Testarea i depnarea programelor - complicat
11