Tehnici de Programare

Curs
9.7/10 (3 voturi)
Domeniu: Calculatoare
Conține 11 fișiere: ppt
Pagini : 500 în total
Mărime: 691.13KB (arhivat)
Cost: Gratis
Profesor îndrumător / Prezentat Profesorului: Marian Gheorghe

Extras din document

Defintii

Notiunea de recursivitate din programare este derivata in mod natural din notiunea de recusivitate din matematica, unde o notiune este definita recursiv daca in cadrul definitiei sale apare insasi notiunea ce se defineste.

Exemple:

-factorial

1 daca n=0

n!=

n *(n-1)! daca n>0

In programare, instrumentul necesar si suficient pentru a exprima programe recursive este subprogramul pentru ca subprogramul da un nume unei actiuni care poate fi invocata prin numele respectiv.

Recursivitatea poate fi directa atunci cand in corpul subprogramului apare apelul acelui subprogram, sau indirecta daca apelul apare in corpul altui subprogram care se apleleaza din primul subprogram.

Autoapelul provoaca o noua activare a aceluiasi subprogram, ceea ce presupune executia instructiunilor subprogramului, incepand cu prima instructiune a acestuia si pana la autoapel, cand se activeaza din nou subprogramul s.a.m.d. Ca atare, partea de inceput a subprogramului se poate executa de o infinitate de ori. Pentru a se evita o asemenea situatie trebuie ca autoapelul subprogramului sa fie conditionat de indeplinirea unei anumite conditii. Daca conditia de autoapel (C) este indeplinita, atunci subprogramul este reactivat (reapelat), in caz contrar sirul de activari (apeluluri) ale subprogramului se intrerupe si se executa secventele ramase de executat din subprogram, activate in ordine inversa activarii.

Apelul unui subprogram recursiv, ca si al unuia nerecursiv presupune alocarea de memorie pe stiva a variabilelor locale, a parametrilor si a adresei de revenire. Ca atare pentru a nu se ajunge in situatia depasirii stivei se recomanda utilizarea unei solutii recursive numai daca numarul autoapelului (adancimea recursivitatii) nu este mare.

In cazul utilizarii recursivitatii se mai recomanda utilizarea variabilelor globale pentru a se evita crearea unor dubluri de variabile pe stiva.

Avantajul recursivitatii este acela ca:

- reduce lungimea textului sursa;

- conduce la solutii clare in comparatie cu solutiile iterative.

Recursivitatea se recomanda:

- in problemele ale caror solutii pot fi definite in termeni recursivi;

- in cazul problemelor complexe rezolvate prin backtracking.

Intotdeauna o problema recursiva are si o rezolvare iterativa si invers.

Utilizarea tehnicilor recursive nu conduce intotdeauna la solutii optime. Ca atare, se recomanda o analiza a eficientei solutiei recursive si a celei nerecursive si alegerea solutiei celei mai avantajoase

Conținut arhivă zip

  • Tehnici de Programare
    • 1.recursivitate.ppt
    • 2.TP-liste.ppt
    • 3. Cursul - arbori.ppt
    • 4. Grafuri.ppt
    • 5 -Combinatorica.ppt
    • 6.Cautari_Sortari.ppt
    • 7.1.Metoda greedy.ppt
    • 7.2.METODA BACKTRACKING.ppt
    • 7.3.METODA DIVIDE-ET-IMPERA.ppt
    • 7.4,METODA BRANCH AND BOUND.ppt
    • 7.5.PROGRAMARE DINAMICA.ppt

Alții au mai descărcat și

Tehnologii Web - Cascading Style Sheets

Capitolul 1. Introducere in CSS CSS este un acronim provenind din Cascading Style Sheets, care înseamnã "foi de stil în cascadã". In documentele...

Functii Recursive - Turbo Pascal

CUVÂNT ÎNAINTE Acest proiect la informatica consta în prezentarea în limbajul de programare Turbo Pascal a unei probleme ce îsi propune sa...

Arhitectura Calculatoarelor - Configuratia Hardware a unui P.C. Compatibil I.B.M.

CAPITOLUL I CONFIGURATIA HARDWARE A UNUI P.C. COMPATIBIL I.B.M. Configuratia unui PC compatibil IBM Introducere Au trecut mai bine de doua...

Colectii de Obiecte

C8 Colecţii ArrayList de obiecte definite de utilizator 1) Ce este o colecţie de obiecte? -o variabilă de memorie ce conţine o mulţime (o listă)...

Structuri de Date

CURS 1. - STRUCTURI DE DATE Scop : prezentarea celor mai importante structuri de date ce pot fi utilizate pentru modelarea datelor din aplicatii....

Proiectare Asistata de Calculator

CURS 1 1.1. DEFINIREA CAD/CAM Apariţia şi dezvoltarea controlului numeric în anii 50, marchează începutul procesului de automatizare a...

Structura și Arhitectura Calculatoarelor

Cap.1. BAZELE ARITMETICE ALE CALCULATOARELOR Spre deosebire de calculatoarele analogice care operează cu mărimi continue calculatoarele numerice...

Prezentare Access Sql

Domeniu: determina stabilirea modalitatii de manipulare a inregistrarilor din baza de date asupra careia opereaza selectia ALL - permite...

Ai nevoie de altceva?