Recursivitatea

Curs
6.5/10 (2 voturi)
Conține 1 fișier: doc
Pagini : 12 în total
Cuvinte : 1674
Mărime: 16.72KB (arhivat)
Publicat de: Celia Manea
Puncte necesare: 0

Extras din curs

Recursivitate

Obiective:

Studiind această temă veţi deveni capabili:

- să definiţi noţiuni recursive;

- să explicaţi realizarea recursivităţii în programare;

- să explicaţi mecanismul recursivitţii;

- să definiţi proceduri recursive;

- să definiţi funcţii recursive;

- să realizaţi algoritmi recursive;

- să explicaţi avantajele recursivităţii;

- să explicaţi dezavantajele recursivităţii;

- să explicaţi relaţia ‘ciclu - recursie’;

Recursivitatea reprezintă o tehnică de programare de o importanţă deosebită. Ea permite o exprimare extrem de concisă şi clară a algoritmilor de rezolvare a unor probleme complexe. În matematică, o noţiune este definită recursiv dacă în cadrul definiţiei apare noţiunea care se defineşte. De exemplu, definiţia recursivă a factorialului unui număr natural n este:

1, dacă n=0

n! =

n*(n-1)!, dacă n>0

5! = 5*4! = 5*4*3! = 5*4*3*2! = 5*4*3*2*1! = 5*4*3*2*1*0! = 120

Se observă tendinţa de identificare a unor valori direct calculabile, urmată de utilizarea lor în vederea obţinerii valorii căutate.

Astfel, o definiţie recursivă trebuie să satisfacă următoarea condiţie: valoarea funcţiei trebuie să fie ori direct calculabilă, ori calculabilă cu ajutorul unei valori direct calculabile. Această condiţie se numeşte condiţie de consistenţă. Un exemplu de condiţie inconsistentă este următoarea:

1, dacă n=0

n! =

n*(n+1)!, dacă n>0

În programare, recursivitatea se exprimă cu ajutorul subprogramelor deoarece ele se identificş printr-un nume care este apoi specificat apoi în apeluri.

Un subprogram este recursiv dacă se autoapelează. Dacă apelul subprogramului apare chiar în corpul său, recursivitatea se numeşte directă. Iar dacă apelul subprogramului recursiv apare în corpul unui alt subprogram care se apelează direct sau indirect din subprogramul recursiv, recursivitatea se numeşte indirectă.

Fiecare apel de subprogram crează un cadru activ. În acest cadru se salvează adresa de revenire din subprogram, sunt alocate variabilele locale, parametrii formali transmişi prin valoare şi sunt instalate corespondenţele respective dintre parametrii formali transmişi prin valoare şi parametrii actuali.

Un subprogram este activ de la apelul său până la revinirea în subprogramul apelant. Subprogramul rămîne activ, chiar dacă din cadrul său se activează alte subprograme. Astfel, se poate spune, că un subprogram este recursiv dacă apelul său apare când subprogramul este activ.

Executarea unei proceduri nerecursive P1 care apelează o altă procedură nerecursivă P2 constă în:

- executarea secvenţei de început a procedurii P1 care precede apelul procedurii P2;

- executarea procedurii P2:

- executarea secvenţei de sfârşit a procedurii P1.

Dacă procedura P1 este recursivă direct, în locul apelului P2 va apărea autoapelul P1. Apelul procedurii P1 determină o primă activare a procedurii, care cuprinde executarea secvenţei de început, după care autoapelul P1 determină o nouă activare a procedurii P1 în cadrul căreia se execută secvenţa de început şi autoapelul P1 care determină a treia activare ş.a.m.d.

Executarea procedurii recursive P1 va determina activări repetate ale procedurii P1 în cadrul căreia se execută secvenţa de început a procedurii şi autoapelul. Fiecare activare presupune crearea cadrului activ. Pentru a respecta proprietatea de finititudine a algoritmului este obligatoriu ca autoapelul procedurii P1 să fie legat de îndeplinirea unei anumite condiţii.

Preview document

Recursivitatea - Pagina 1
Recursivitatea - Pagina 2
Recursivitatea - Pagina 3
Recursivitatea - Pagina 4
Recursivitatea - Pagina 5
Recursivitatea - Pagina 6
Recursivitatea - Pagina 7
Recursivitatea - Pagina 8
Recursivitatea - Pagina 9
Recursivitatea - Pagina 10
Recursivitatea - Pagina 11
Recursivitatea - Pagina 12

Conținut arhivă zip

  • Recursivitatea.doc

Alții au mai descărcat și

Abstract Factory - Factory Method

Definitie Ofera o interfata pentru crearea unor familii de obiecte inrudite sau dependente intre ele, fara a specifica clasa lor concreta. Se mai...

Sistemele expert - inteligență artificială

Sistemele expert sunt produse ale inteligentei artificiale, ramura a stiintei calculatoarelor ce urmareste dezvoltarea de programe inteligente....

Roboți Industriali

1. NOTIUNI GENERALE PRIVIND ROBOTII INDUSTRIALI 1.1. Definitii si notiuni uzuale utilizate Cuvântul `robot` a fost folosit pentru prima datã în...

Inteligență artificială - capitolul 1-strategii de căutare

Strategia de cautare pe nivel în spatiul starilor Strategia de cautare pe nivel (în latime, breadth-first search) este o strategie de cautare...

Inteligență artificială

Inteligenta artificiala 1 Concepte de baza Când s-a vorbit prima data de Inteligenta Artificiala (AI  Artificial Intelligence) în 1956, totul...

Sisteme Expert - Curs 2

Definitie: Un sistem expert este un program ce utilizeaza cunoasterea si procedurile de inferenta (deductie logica) pentru rezolvarea problemelor...

Învățarea automată

Invatare automata. Agenti care invata. Clasificarea metodelor şi tehnicilor Dupa modul de fundamentare empirică: -metode şi tehnici de calcul...

Sisteme Multimedia Distribuite

5.1 Arhitecturi ale sistemelor multimedia distribuite Cele mai folosite arhitecturi pentru sistemele multimedia distribuite sunt: arhitectura...

Te-ar putea interesa și

Studiu comparativ privind căile de atac ordinare în procesul penal - apelul și recursul

CUVÂNT ÎNAINTE Statul de drept presupune asigurarea drepturilor şi libertăţilor fundamentale ale omului de către autorităţile publice, fără...

Recursul în Procesul Civil

1. Evolutia si involutia recursului în procesul civil Recursul este calea de atac prin intermediul careia partile sau Ministerul Public solicita...

Recursul administrativ - forme, caractere și eficiență în legislația din țara noastră și alte state ale UE

CAPITOLUL I Teoria generală a recursului administrativ 1.1. Noţiune, fundamentul juridic, originea şi evoluţia recursului administrativ În ceea...

Recursul - Cale Ordinară de Atac

CAPITOLUL I CONSIDERAŢII INTRODUCTIVE PRIVIND CĂILE DE ATAC ÎN GENERAL 1.1) Aprecieri privind căile de atac 1.1.1) Noţiunea şi funcţionarea...

Recursul în Anulare în Fața Curții Europene de Justiție

1. Modificări aduse acestei căi de atac de Constituţia Europeană 37 2. Recursul în anulare, garant al protecţiei juridice individuale faţă de...

Backtracking Recursiv

1. METODA BACKTRACKING 1. 1. Stiva Stiva este acea formã de organizare a datelor ( structurã de date ) cu proprietatea cã operatiile de...

Considerații Teoretice Privind Apelul și Recursul

APELUL ŞI RECURSUL 1.1. Noţiuni introductive Căile de atac sunt mijloace sau remedii procesuale prin intermediul cărora se poate solicita...

Recursul în Interesul Legii

INTRODUCERE Aşadar cum arată chiar denumirea acestuia şi astfel cum rezultă şi din dispoziţiile legale în materie (art. 329 C. pr. civ.), recursul...

Ai nevoie de altceva?