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

Arhitectura calculatoarelor - configurația hardware a unui PC compatibil IBM

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

Curs Excel pentru începători

1.1 Scopul cursului Cursul se adreseaza angajatilor care au un nivel elementar de cunostinte Excel, pentru a ajunge la nivelul mediu pentru ca mai...

Programare în Limbaj de Asamblare

Bitii din registrul Flag sunt indicatori de stare care se pozitioneaza functie de rezultatul ultimei operatii aritmetice sau logice si se testeaza...

Curs HTML

Curs – Programare WEB Curs – 1 Elemente de baza Pentru inceput sa descoperim originea abrevierii HTML - Hypertext Markup Language . Acest limbaj...

Meniuri în Java

Metode add (MenuItem) Adds the specified item to this menu. add(String) Adds an item with with the specified label to this menu....

Serializarea Obiectelor în Java

Clasa ObjectInputStream Constructor public ObjectInputStream( java.io.InputStream in ) throws java.io.IOException,...

Șiruri de caractere în C și C++

Functii de intrare / iesire relative la siruri de caractere. Pentru a citi un sir de caractere de la intrarea standard se foloseste functia gets()...

Curs Word

Primul obiectiv specific Participantii trebuie sa aiba o vedere de ansamblu asupra functionarii, caracteristicilor de performanta ale sistemului...

Te-ar putea interesa și

Modelarea aplicațiilor financiar contabile

SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE Modelarea aplicaţiilor financiar-contabile utilizând tehnici moderne de programare 1.1. Structura...

Metode de Programare cu Matrice Rare

Introducere Lucrarea cuprinde metode tradiţionale de calcul matriceal care sunt utilizate frecvent în practică, metode reanalizate şi revăzute...

Strategii de Negociere pentru Soluționarea Conflictelor în Organizația Militară

Introducere Evoluţiile actuale ale organizării organizaţiilor în conexiune cu problematica funcţionalităţii lor au scos în evidenţă necesitatea...

Tehnici de Programare

PREZENTARE GENERALE In proiectul urmator am creat o baza de date cu referire la un hotel (ANGELA). Baza de date este impartita in doua fisiere:...

Algoritmi de Calcul

Capitolul I Sistem Informaţional – Sistem Informatic I.1. Sistemul Informaţional. Un sistem poate fi privit ca un ansamblu de elemente...

Algoritmi și Structuri de Date

Introducere: Semiotica se ocupã cu studiul semnelor în natura si în societate. Semnul nu este o calitate în sine a unui obiect, ci o functie pe...

Pachete Software SAS-IML

CAPITOLUL I: INTRODUCERE ÎN LIMBAJUL SAS/IML 1.1Scurtă descriere a limbajului SAS/IML Acronimul IML este abrevierea expresiei “limbajul...

Tehnici de Programare

LIMBAJUL DE PROGRAMARE JAVA Java este un limbaj de programare de nivel înalt, dezvoltat de JavaSoft, companie în cadrul firmei Sun Microsystems....

Ai nevoie de altceva?