Funcții 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)
Publicat de: Dimitrina Dascalu
Puncte necesare: 7

Cuprins

  1. Cuprins pag. 2
  2. Cuvânt înainte pag. 3
  3. Cap. I Recursivitate pag. 4
  4. - Notiunea de algoritm recursiv
  5. - Exemple de algoritmi recursivi. Relatii de recurenta
  6. - Rolul stivei în executia subprogramelor recursive
  7. Cap. II Subprograme recursive - Functii recursive pag. 9
  8. - Exemplu n factorial ( n! )
  9. - Aplicatie
  10. - Aplicatie - Sirul lui Fibonacci
  11. - Aplicatie - Cel mai mare divizor comun
  12. - Aplicatie - Numarul elementelor negative într-un sir
  13. - Aplicatie - Suma cifrelor unui numar natural
  14. - Aplicatie - Combinari de n elemente luate câte k
  15. - Functii recursive
  16. Cap. III Program Calcul matematic – codul sursa pag. 26

Extras din proiect

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

Funcții recursive - Turbo Pascal - Pagina 1
Funcții recursive - Turbo Pascal - Pagina 2
Funcții recursive - Turbo Pascal - Pagina 3
Funcții recursive - Turbo Pascal - Pagina 4
Funcții recursive - Turbo Pascal - Pagina 5
Funcții recursive - Turbo Pascal - Pagina 6
Funcții recursive - Turbo Pascal - Pagina 7
Funcții recursive - Turbo Pascal - Pagina 8
Funcții recursive - Turbo Pascal - Pagina 9
Funcții recursive - Turbo Pascal - Pagina 10
Funcții recursive - Turbo Pascal - Pagina 11
Funcții recursive - Turbo Pascal - Pagina 12
Funcții recursive - Turbo Pascal - Pagina 13
Funcții recursive - Turbo Pascal - Pagina 14
Funcții recursive - Turbo Pascal - Pagina 15
Funcții recursive - Turbo Pascal - Pagina 16
Funcții recursive - Turbo Pascal - Pagina 17
Funcții recursive - Turbo Pascal - Pagina 18
Funcții recursive - Turbo Pascal - Pagina 19
Funcții recursive - Turbo Pascal - Pagina 20
Funcții recursive - Turbo Pascal - Pagina 21
Funcții recursive - Turbo Pascal - Pagina 22
Funcții recursive - Turbo Pascal - Pagina 23
Funcții recursive - Turbo Pascal - Pagina 24
Funcții recursive - Turbo Pascal - Pagina 25
Funcții recursive - Turbo Pascal - Pagina 26
Funcții recursive - Turbo Pascal - Pagina 27
Funcții recursive - Turbo Pascal - Pagina 28
Funcții recursive - Turbo Pascal - Pagina 29
Funcții recursive - Turbo Pascal - Pagina 30
Funcții recursive - Turbo Pascal - Pagina 31
Funcții 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

Arhitectura calculatoarelor

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

Metoda backtracking - plată 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...

Structuri de date de tip listă

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

Aplicații algebrice - Turbo Pascal

APLICATIA APLICATII ALGEBRICE – ALGORITMI COMBINATORIALI I. INSTRUCTIUNI TURBO PASCAL Sunt urmatoarele: - Instructiunea de atribuire -...

Arhitectura calculatoarelor - Intel vs AMD

Rezultatele din testul 3DS Max 7 SPECapc Test Testul alaturat consta in crearea modelelor 3D, modificarea si randarea scripturilor. Conform...

Curs IT

1. HARDWARE (HARD): Reprezinta totalitatea componentelor materiale ale unui sistem informatic. 2. SOFTWARE (SOFT): Reprezinta totalitatea...

Asamblorul inline Borland Pascal

Acest paragraf trateaza scrierea de cod asamblare in interiorul unui program pascal. In cele ce urmeaza, cunostintele teoretice vor fi introduse...

Sistem de Prognosticare a Unei Avarii

Acest sistem calculeaza gradul de avariere a unei cladiri în cazul unui cutremur, precum si posibila necesitate a reconstructiei cladirii (partiala...

Te-ar putea interesa și

Aplicație grafică - conquest

I. 1. Descrierea Programului Programul reprezinta o aplicatie a unit-ului graph, un joc simplu de strategie (gen TBS, daca ar fi sa-l incadram in...

Tipuri de limbaje de programare

Un limbaj de programare este un sistem de conventii adoptate pentru realizarea unei comunicari – între programator si calculator. Limbajele...

Limbaje de Programare Inginerești

Obiectivele disciplinei Studiul acestei discipline face ca studentii sa se familarizeze cu notiunile, metodele si tehnicile specifice programarii...

Arhitectura microcalculatoarelor tip IBM-PC. configurații, caracteristici. reguli de instalare și exploatare

. Notiuni introductive Un sistem de calcul poate contine sute sau mii de componente individuale (circuite integrate, diode, rezistoare,...

Proceduri și funcții - proceduri Pascal

O procedura Pascal poate avea uan din urmatoarele sintaxe. Forma a) fara parametrii formli cu sintaxa Forma b) cu parametrii formali, cu sintaxa...

Ai nevoie de altceva?