Functii Recursive - Turbo Pascal

Proiect
9/10 (4 voturi)
Domeniu: Calculatoare
Conține 3 fișiere: doc, pas, bak
Pagini : 32 în total
Cuvinte : 7310
Mărime: 61.36KB (arhivat)
Cost: 5 puncte

Cuprins

Cuprins pag. 2

Cuvânt înainte pag. 3

Cap. I Recursivitate pag. 4

- Notiunea de algoritm recursiv

- Exemple de algoritmi recursivi. Relatii de recurenta

- Rolul stivei în executia subprogramelor recursive

Cap. II Subprograme recursive - Functii recursive pag. 9

- Exemplu n factorial ( n! )

- Aplicatie

- Aplicatie - Sirul lui Fibonacci

- Aplicatie - Cel mai mare divizor comun

- Aplicatie - Numarul elementelor negative într-un sir

- Aplicatie - Suma cifrelor unui numar natural

- Aplicatie - Combinari de n elemente luate câte k

- Functii recursive

Cap. III Program Calcul matematic – codul sursa pag. 26

Extras din document

CUVÂNT ÎNAINTE

Acest proiect la informatica consta în prezentarea în limbajul de programare

Turbo Pascal a unei probleme ce îsi propune sa expuna cât mai multe dintre

cunostintele acumulate în timpul celor 4 ani de liceu.

Pe lânga notiunile de teorie ce vor face obiectul acestuia ( Recursivitate,

functii recursive si Backtracking ), explicarea aprofundata a tuturor pasilor

algoritmului, atasarea fisierului ce demonstreaza corectitudinea problemei, vor

încerca sa dovedeasca pregatirea cât mai temeinica a autoarei.

Capitolul I. RECURSIVITATE

a) Notiunea de algoritm recursiv.

Recursivitatea este una din notiunile fundamentale ale informaticii. Utilizarea frecventa a recursivitatii s-a facut dupa anii '80. Multe din limbajele de programare evoluate si mult utilizate (Fortran, Cobol ) nu permiteau scrierea programelor recursive.

In linii mari, recursivitatea este un mecanism general de elaborare a programelor. Ea a aparut din necesitati practice ( transcrierea directa a formulelor matematice recursive) si reprezinta acel mecanism prin care un subprogram ( procedura, functie ) se autoapeleaza.

Daca lucrurile par usor de înteles în cazul functiilor, nu tot atât de simplu este sa aplicam recursivitatea utilizând proceduri. Astfel vom vedea ca putem genera recursiv probleme de genul permutarilor.

Un algoritm recursiv se caracterizeaza prin proprietatea ca se auto-apeleaza, adica din interiorul lui se apeleaza pe el însusi. Din afara algoritmului facem un

prim apel al acestuia, dupa care algoritmul se auto-apeleaza de un anumit numar de ori; la fiecare noua auto-apelare a algoritmului, se executa din nou secventa de instructiuni ce

reprezinta corpul sau, eventual cu alte date, creându-se un asa-numit "lant de auto-apeluri recurstive".

Intuitiv, putem spune ca un algoritm recursiv are acelasi efect ca si un ciclu: repeta executia unei anumite secvente de instructiuni. Dar la fel ca în cazul unui ciclu, este necesar ca repetarea sa nu aiba loc la infinit. De aceea, în corpul algoritmului trebuie sa existe cel putin o testare a unei conditii de oprire, la îndeplinirea careia se întrerupe lantul de auto-apeluri. Majoritatea algoritmilor repetitivi se pot implementa atât în varianta nerecursivâ (care se mai numeste si iterativa ), folosind cicluri, cât si în varianta recursiva.

Ramâne în sarcina programatorului sa aleaga între implementarea iterativa si cea recursiva, cântarind avantajele si dezavantajele fiecareia, de la caz la caz.

Varianta recursiva este recomandata în special pentru

problemele definite prin relatii de recurenta, care permit o formulare a rezultatelor mult mai clara si mai concisa. Pe de alta parte, functionarea algoritmilor recursivi este în

general mai greu de urmarit, si, în plus, acestia necesita un timp de executie mai lung si un spatiu de memorie mai mare.

Extinzând definitia, vom numi subprogram recursiv (functie recursiva sau procedura recursiva ), un subprogram care din corpul lui se apeleaza pe el însusi. Dar orice subprogram recursiv trebuie sa îndeplineasca doua cerinte:

1. Sa se poata executa cel putin o data fara a se auto-apela:

2. Toate auto-apelurile sa se produca astfel încât sa se tinda spre îndeplinirea

conditiei de executie fara auto-apelare.

Preview document

Functii Recursive - Turbo Pascal - Pagina 1
Functii Recursive - Turbo Pascal - Pagina 2
Functii Recursive - Turbo Pascal - Pagina 3
Functii Recursive - Turbo Pascal - Pagina 4
Functii Recursive - Turbo Pascal - Pagina 5
Functii Recursive - Turbo Pascal - Pagina 6
Functii Recursive - Turbo Pascal - Pagina 7
Functii Recursive - Turbo Pascal - Pagina 8
Functii Recursive - Turbo Pascal - Pagina 9
Functii Recursive - Turbo Pascal - Pagina 10
Functii Recursive - Turbo Pascal - Pagina 11
Functii Recursive - Turbo Pascal - Pagina 12
Functii Recursive - Turbo Pascal - Pagina 13
Functii Recursive - Turbo Pascal - Pagina 14
Functii Recursive - Turbo Pascal - Pagina 15
Functii Recursive - Turbo Pascal - Pagina 16
Functii Recursive - Turbo Pascal - Pagina 17
Functii Recursive - Turbo Pascal - Pagina 18
Functii Recursive - Turbo Pascal - Pagina 19
Functii Recursive - Turbo Pascal - Pagina 20
Functii Recursive - Turbo Pascal - Pagina 21
Functii Recursive - Turbo Pascal - Pagina 22
Functii Recursive - Turbo Pascal - Pagina 23
Functii Recursive - Turbo Pascal - Pagina 24
Functii Recursive - Turbo Pascal - Pagina 25
Functii Recursive - Turbo Pascal - Pagina 26
Functii Recursive - Turbo Pascal - Pagina 27
Functii Recursive - Turbo Pascal - Pagina 28
Functii Recursive - Turbo Pascal - Pagina 29
Functii Recursive - Turbo Pascal - Pagina 30
Functii Recursive - Turbo Pascal - Pagina 31
Functii Recursive - Turbo Pascal - Pagina 32

Conținut arhivă zip

  • Functii Recursive - Turbo Pascal
    • Functii Recursive - Turbo Pascal.doc
    • MATE.BAK
    • MATE.PAS

Alții au mai descărcat și

Proiectarea Aplicatiilor de Comert Electronic - Aplicatie de Food-Ordering

Progresele realizate recent în domeniile tehnologie-calculatoare, telecomunicatii si software, precum si în alte domenii ale informatiei, au...

Folosirea MySQL și PHP în Gestionarea unei Baze de Date pe Web

Introducere Conţinutul lucrării este dat de construcţia de legături dintre World Wide Web şi baze de date, dintre tehnologia veche şi cea nouă,...

Arhitectura Calculatoarelor

I. Arhitectura calculatoarelor 1. Scurt istoric Momentul iniţial al istoriei calculatoarelor este, de obicei legat de numele matematicianului...

Proiect - Turbo Pascal

Capitolul 1 PREZENTAREA TEHNICII BACKTRAKING Aceasta tehnica se foloseste in rezolvarea problemelor care indeplinesc simultan urmatoarele...

Metoda Backtracking - Plata Unei Sume de Bani

I.1.Notiuni introductive Limbajul Turbo Pascal a aparut la inceputul anilor ’70 si a fost elaborat de matematicianul N. Wirth. Initial limbajul a...

Sisteme de Intrari Prelucrari si Iesiri a Datelor prin Intermediul a PHP si MYSQL

Introducere Proiectul de specialitate constituie un element obligatoriu al planului de învatamânt astfel, proiectul de specialitate reprezinta...

Afișarea Sumei Numerelor Pare Dintr-un Șir de N Numere Întregi

1. Definirea problemei Se citeste un numar natural n si un sir de n numere întregi. Sa se afiseze suma numerelor pare din sir. 2. Limbajul...

Structuri de Date de Tip Lista

Notiuni de date Principalele tipuri de date ale limbajului PASCAL sunt: - integer {construit din numere intregi} ; - boolean {valorile...

Ai nevoie de altceva?