Subprograme

Extras din referat Cum descarc?

-descompunerea problemei de rezolvat in subprobleme si rezolvarea fiecarei subprobleme printr-un subprogram separat; -daca un program are anumite secvente care se repeta, atunci se poate asocia secventei un subprogram si in loc sa scriem secventa de mai multe ori vom folosi subprogramul; begin {instructiuni (corpul procedurii) } end; Apelul unei proceduri se realizeaza intr-o instructiune procedurala astfel: nume procedura (lista parametrii efectivi sau actuali); Obs! Listele de parametrii formali si efectivi trebuie sa corespunda ca numar, pozitie, tip. Functii O functie calculeaza si returneaza o valoare.
Sintaxa: function nume functie (lista, parametrii, formali): tip rezultat valoare returnata; declaratii locale (variabile, tipuri locale) begin {instructiuni} end; Obs! O functie returneaza o valoare.
Tipul rezultatului poate fi unul dintre tipurile simple (toate tipurile numerice: real, char, boolean), iar dintre tipurile structurate doar tipul string.
Obs! Functia returneaza o valoare prin intermediul numelui ei. Din acest motiv una dintre instructiunile functiei trebuie sa fie o instructiune de atribuire cu numele functiei in partea stanga.
Numele functiei nu poate apare deocamdata in partea dreapta a instructiunii (apel recursiv). Obs! O functie se apeleaza intr-o expresie prin: nume functie (lista, parametrii, actuali, sau, efectivi); Recursivitate O definitie este recursiva daca in cadrul definitiei apare chiar notiunea care se defineste.
Ex~! Un descendent al unei persoane este un copil al acesteia sau un descendent al unui copil al acesteia.
Ex~1! S (n) =1, daca x=0 S (n-1) +S (n-2), daca x0 O definitie recursiva trebuie sa indeplineasca urmatoarele doua conditii: -trebuie sa existe cazuri elementare in care valoarea sa se calculeze direct -si ca fiecare dintre cazuruile ne-elementare sa se reduca in cele din urma la un caz elementar In informatica recursivitatea se realizeaza cu ajutorul subprogramelor; vom avea functii si proceduri recursive.
Un subprogram este recursiv daca se realizeaza un autoapel al lui direct sau indirect prin intermediul altor subprograme.
Ex! n! =1*2*3*... *n; function factorial (n: byte): longint; begin if n=0 then factorial: =1 else factorial: =n*factorial (n-1); end; -este mai neeficienta datorita apelului functiei; OBS! Aceasta functie recursiva este putin mai eficienta decat o functie iterativa care ar calcula factorialul, aceasta datorita apelului din functie, transferului de parametrii si a revenirilor din apel.
OBS! Daca o functie se apeleaza la infinit, are loc recursivitatea infinita, si practic se ocupa stiva (zona de memorie alocata programului). Proceduri recursive Secventa din subprogramele recursive aflate dupa instructiunea de autoapel se va executa in ordinea inversa a apelurilor.
Conversia unui numar intr-o baza b procedure conb (n: word); begin if n div b0 then conv (n div b); write (n mod b); end; ...


Fisiere in arhiva (1):

  • Subprograme - Varianta 2
    • Referat.doc

Imagini din acest proiect Cum descarc?

Descarca gratuit aceast referat (0 €)

Completezi numele, prenumele și adresa de email. După aceea primesti prin email link-ul pentru descărcare. Completeaza o adresă de email validă.

1. Numele, Prenumele si adresa de email:

Daca nu gasesti email-ul, verifica si directoarele spam, junk sau toate mesajele.

* Prin apăsarea pe butonul “Descarcă gratuit acum” declar că am citit, înțeles și agreat termenii și condițiile.


Hopa sus!