Transcript Cuprinsul proiectului
Slide 1
urmează …
Slide 2
- Proiect interdisciplinar -
Slide 3
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
3
Slide 4
Carpet4all
Aron Dan
Carnat Roxana
Popa Mihai Adrian
Mosneag Silviu
Nicoara Vlad
Hampu Petrica
Slide 5
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
5
Slide 6
Prezentare generala
Notiunea de recursivitate din programare deriva
in mod natural din notiunea matematica cunoscuta
sub numele de recurenta.Dar si viata de zi cu zi ofera
nenumarate exemple.Atunci cand ne apucam de facut
temele, deschidem o carte, citim din ea,dar la un
momentdat ne trebuie o alta carte.Intrerupem studiul
din prima carte si citim din cealalta .Este posibil sa
avem nevoie in continuare de alte carti.Va sosi insa si
momentul cand ne intoarcem la ultima carte
intrerupta,continuam (sau nu) sa citim din ea, apoi ne
intoarcem la precedenta si in final la prima.Atunci
cand am terminat tema,o inchidem si pe aceasta.
Slide 7
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
7
Slide 8
Aplicaţii
Corpul uman
-mana umana are 5 degete, fiecare deget avand 3 falange
separate prin 2 incheieturi (numere in secventa). In medie,
dimensiunile falangelor sunt: 2cm, 3cm, 5cm. In
continuarea lor este un os al palmei care are in medie 8 cm.
-Structura plamanilor prezinta un model recursiv
Slide 9
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
9
Slide 10
Recursivitatea in matematica
Enuntul problemei
Problema iepurilor
Se pare că şi pe vremea lui Fibonacci se organizau concursuri de matematică.În Pisa, a
participat şi Fibonacci la un astfel de concurs care a fost condus de însuşi împăratul
Frederik II. Problema propusă concurenţilor suna astfel:
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
f1=1,f2=1
fn+1 = fn + fn-1
Slide 11
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
11
Slide 12
Recursivitatea în natură
Recursivitatea in natura o intalnim la:
- fulgii de zapada
- frunza de feriga
- cochilia melcului
- Petalele florilor
Slide 13
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
13
Slide 14
Fractali
un fractal este "o figură geometrică fragmentată sau
frântă care poate fi divizată în părţi, astfel încât fiecare
dintre acestea să fie (cel puţin aproximativ) o copie
miniaturală a întregului".
Slide 15
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
15
Slide 16
Recursivitatea in informatica
Recursivitatea este una din notiunile fundamentale ale
informaticii
Definitie:
Recursivitatea = un mecanism general de
elaborare a programelor. Ea consta in posibilitatea ca
un subprogram sa se autoapeleze.
Slide 17
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
17
Slide 18
Realizarea autoapelului
In cazul functiilor autoapelul se realizeaza printr-o
operatie de atribuire, operatie prin care numele
funcitiei trebuie sa figureze in partea dreapta a
operatorului de atribuire
autoapelul se realizeaza
prin apelul procedurii respective din
interiorul ei.Apelul se face la fel ca in cazul
in care procedura este apelata din exterior.
In cazul procedurilor
Slide 19
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
19
Slide 20
Execuţia apelurilor recursive
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 suboprogramului.
Slide 21
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
21
Slide 22
Aplicatii recursive
Realizati 2 probleme in Pascal.1 care sa calculeze n! si a
2 a sa calculeze al n-lea termen al sirului lui Fibonacci.
Slide 23
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
23
Slide 24
Implementare
Dati click pe imagine pentru a vedea fisierul Pascal cu
rezolvarea:
Prima problema
A 2-a problema
Slide 25
O alta implementare
Sa se realizeze un program Pascal desenează covorul
cu unul dintre modelele
Dati click pe imagine pentru a vedea fisierul Pascal cu
rezolvarea:
Slide 26
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
26
Slide 27
CONCLUZII
Cand utilizam un algoritm recursiv?
Folosim un algoritm recursiv pentru a transcrie formulele matematice
recursive
Avantaje
Merita sa utilizam tehnica recursivitatii atunci cand algoritmul care
urmeaza sa fie implementat descrie o notiune recurenta sau algoritmul in
sine este recursiv.Se evita astfel operatiile mult prea dese de salvare pe
stiva calculatorului, precum si incarcarea acesteia in cazul apelurilor
repetate.
Dezavantaje
O conditie de iesire incorecta din recursivitate va duce cel mai adesea la
depasirea capacitatii de memorare a stivei, caz in care programul se
opreste afisand mesajul:Stack Overflow.
Un autoapel incorect duce la un rezultat incorect sau la umplerea stivei.
Slide 28
Bibliografie
Manual de informatica clasa a X-a, autor Tudor Sorin
Internet
http://ro.wikipedia.org
Materiale informative furnizate de catre profesor
Slide 29
Asta-i tot…
urmează …
Slide 2
- Proiect interdisciplinar -
Slide 3
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
3
Slide 4
Carpet4all
Aron Dan
Carnat Roxana
Popa Mihai Adrian
Mosneag Silviu
Nicoara Vlad
Hampu Petrica
Slide 5
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
5
Slide 6
Prezentare generala
Notiunea de recursivitate din programare deriva
in mod natural din notiunea matematica cunoscuta
sub numele de recurenta.Dar si viata de zi cu zi ofera
nenumarate exemple.Atunci cand ne apucam de facut
temele, deschidem o carte, citim din ea,dar la un
momentdat ne trebuie o alta carte.Intrerupem studiul
din prima carte si citim din cealalta .Este posibil sa
avem nevoie in continuare de alte carti.Va sosi insa si
momentul cand ne intoarcem la ultima carte
intrerupta,continuam (sau nu) sa citim din ea, apoi ne
intoarcem la precedenta si in final la prima.Atunci
cand am terminat tema,o inchidem si pe aceasta.
Slide 7
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
7
Slide 8
Aplicaţii
Corpul uman
-mana umana are 5 degete, fiecare deget avand 3 falange
separate prin 2 incheieturi (numere in secventa). In medie,
dimensiunile falangelor sunt: 2cm, 3cm, 5cm. In
continuarea lor este un os al palmei care are in medie 8 cm.
-Structura plamanilor prezinta un model recursiv
Slide 9
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
9
Slide 10
Recursivitatea in matematica
Enuntul problemei
Problema iepurilor
Se pare că şi pe vremea lui Fibonacci se organizau concursuri de matematică.În Pisa, a
participat şi Fibonacci la un astfel de concurs care a fost condus de însuşi împăratul
Frederik II. Problema propusă concurenţilor suna astfel:
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
f1=1,f2=1
fn+1 = fn + fn-1
Slide 11
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
11
Slide 12
Recursivitatea în natură
Recursivitatea in natura o intalnim la:
- fulgii de zapada
- frunza de feriga
- cochilia melcului
- Petalele florilor
Slide 13
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
13
Slide 14
Fractali
un fractal este "o figură geometrică fragmentată sau
frântă care poate fi divizată în părţi, astfel încât fiecare
dintre acestea să fie (cel puţin aproximativ) o copie
miniaturală a întregului".
Slide 15
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
15
Slide 16
Recursivitatea in informatica
Recursivitatea este una din notiunile fundamentale ale
informaticii
Definitie:
Recursivitatea = un mecanism general de
elaborare a programelor. Ea consta in posibilitatea ca
un subprogram sa se autoapeleze.
Slide 17
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
17
Slide 18
Realizarea autoapelului
In cazul functiilor autoapelul se realizeaza printr-o
operatie de atribuire, operatie prin care numele
funcitiei trebuie sa figureze in partea dreapta a
operatorului de atribuire
autoapelul se realizeaza
prin apelul procedurii respective din
interiorul ei.Apelul se face la fel ca in cazul
in care procedura este apelata din exterior.
In cazul procedurilor
Slide 19
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
19
Slide 20
Execuţia apelurilor recursive
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 suboprogramului.
Slide 21
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
21
Slide 22
Aplicatii recursive
Realizati 2 probleme in Pascal.1 care sa calculeze n! si a
2 a sa calculeze al n-lea termen al sirului lui Fibonacci.
Slide 23
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
23
Slide 24
Implementare
Dati click pe imagine pentru a vedea fisierul Pascal cu
rezolvarea:
Prima problema
A 2-a problema
Slide 25
O alta implementare
Sa se realizeze un program Pascal desenează covorul
cu unul dintre modelele
Dati click pe imagine pentru a vedea fisierul Pascal cu
rezolvarea:
Slide 26
Cuprinsul proiectului:
1.- Prezentarea echipei de lucru
2.Prezentare generala
3. Aplicatii
4. Recursivitatea in matematica
5. Recursivitatea in natura
6. Fractali
7. Recursivitatea in informatica
8. Realizarea autoapelului
9. Executia apelurilor recursive
10. Aplicatii recursive
11. Implementare
12. Concluzii
26
Slide 27
CONCLUZII
Cand utilizam un algoritm recursiv?
Folosim un algoritm recursiv pentru a transcrie formulele matematice
recursive
Avantaje
Merita sa utilizam tehnica recursivitatii atunci cand algoritmul care
urmeaza sa fie implementat descrie o notiune recurenta sau algoritmul in
sine este recursiv.Se evita astfel operatiile mult prea dese de salvare pe
stiva calculatorului, precum si incarcarea acesteia in cazul apelurilor
repetate.
Dezavantaje
O conditie de iesire incorecta din recursivitate va duce cel mai adesea la
depasirea capacitatii de memorare a stivei, caz in care programul se
opreste afisand mesajul:Stack Overflow.
Un autoapel incorect duce la un rezultat incorect sau la umplerea stivei.
Slide 28
Bibliografie
Manual de informatica clasa a X-a, autor Tudor Sorin
Internet
http://ro.wikipedia.org
Materiale informative furnizate de catre profesor
Slide 29
Asta-i tot…