Subprograme II
-descompunerea problemei de rezolvat in subprobleme si rezolvarea fiecarei subprobleme printr-un subprogram separat;
-existenta unor subprograme predefinite;
-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;
In Pascal subprogramele sunt de 2 tipuri:-proceduri si functii.
Procedurile
Procedurile sunt subprograme care pot calcula si returna mai multe valori sau niciuna.
Sintaxa:-intre var si begin principal.
procedure nume_procedura(lista_paramatrii_formali_optional);
{sectiune de declaratii locale:tipuri de variabile,constante,subprograme;}
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!