280 likes | 1.08k Views
- Proiect interdisciplinar -. RECURSIVITATEA. Numele echipei: The Magic Group. Numele membrilor echipei : Cioanca Marcel- biolog Cisteain Ioana- matematician Komives Mihai- informatician Jidveian Raluca- analist Sarb Daniel- designer. Prezentare generala.
E N D
- Proiectinterdisciplinar - RECURSIVITATEA
Numeleechipei:The Magic Group Numelemembrilorechipei: • Cioanca Marcel-biolog • Cisteain Ioana-matematician • Komives Mihai-informatician • Jidveian Raluca-analist • Sarb Daniel-designer
Prezentaregenerala -notiunea de recursivitate din programare deriva in mod natural din notiunea de matematica cunoscuta sub numele de recurenta -inviata de zi cu zi ne ofera de asemenea nenumerate exemple
Aplicaţii • Recursivitateaestefolositapentru: -creearea de sistemebiologice -aflarea a orice de la crestereapopulatiei la bataileneregulate ale inimii
Recursivitatea in matematica • Enuntul problemei Plecând de la o singură pereche de iepuri şi ştiind că fiecare pereche de iepuri produce în fiecare lună o nouă pereche de iepuri, care devine "productivă" la vârsta de o lună, calculaţi câte perechi de iepuri vor fi după n luni. • Formula de calcul fn+1 = fn + fn-1, f1 = 1; (1) f0 = 0.
Recursivitateaîn natură PLANTELE: - au aranjamentulfrunzelordispusintr-o secventaFibonacii in jurultulpinei COCHILIA : - s-a ajuns la concluzia ca aceasta spirala a cochiliei urmareste dimensiunile date de secventa lui Fibonacci. CORPUL: - manaumana are 5 degete, fiecaredegatavand 3 falange separate prin 2 incheieturi care respectasirullu Fibonacci
Recursivitatea in informatica Este un mecanism general de elaborare a programelor. Ea consta in posibilitatea ca un subprogram sa se autoapeleze.
Realizareaautoapelului • In cazulfunctiilor -autoapelul se realizeaza printr-o operatie de atribuire, operatia prin care numele functiei trebuie sa figureze in partea dreapta a operatorului de atribuire Ex:function suma(n:integer):integer; begin suma:=0; if n<>0 then suma:=n+suma(n-1); end; begin writeln(suma(7)); end.
Realizareautoapelului • In cazulprocedurilor: -autoapelul se realizeazaprinapelulprocedurii respective, din interiorulei. Apelul se face la fel ca in cazul in care proceduraesteapelata din exterior. Ex: procedure exemplu(n:integer); begin if n<>0 then begin writeln(n); exemplu (n-1); end; end; begin exemplu(7); end.
Execuţiaapelurilor recursive • Orice apel de subprogram are ca efect salvarea pe stiva calculatorului a adresei de revenire, a valorilor parametrilor transmisi prin valoare si a adresei parametrilor transmisi prin referinta precum si alocarea de spatiu pe stiva pentru variabilele locale ale subprogramului.
Aplicatiirecursive • Enuntulproblemei Studiazarecursivitateaindirectasirealizeazaprogramul care desenazacovorul cu unuldintremodelele:
Implementare • Dati click pe imagine pentru a vedeafisierul Pascal cu rezolvarea: Daticlick pe imagine pentru a rulaprogramul:
CMMDC • Studiul modului de executie a apelurilor recursive cu exemplificare pentru problema CMMDC(a,b). Dati click pe imagine pt. a viziona rezolvarea problemei.
CONCLUZII • Candutilizam un algoritmrecursiv? -atuncicand algoritmul care urmeaza sa fie implementat descrie o notiune recurenta sau algoritmul in sine este recursiv -principalul avantaj al utilizarii tehnicii recursive este ca permite o descriere concisa a algoritmului
Avantaje -se realizeazaprogramemairapide -se evitaoperatiilemultpreadese de salvarepestivacalculatorului -se evitaincarcareacalculatorului in cazulapelurilorrepetate Dezavantaje -in cazulunui nr. mare de autoapelari, existaposibilitatea casegmentul de stivasadepaseascaspatiulalocat, caz in care programul se vatermina cu eroare. -recursivitateapresupunemaimultamemorie in comparatie cu iterativitatea
Bibliografie • Internet • Manual de informaticaclasaaX-a (tehnicisiprogramare PASCAL si C++): TUDOR SORIN