# data[].attributes.body
Un apel de funcție în C++ se face prin scrierea numelui funcției urmat de paranteze, care pot consține argumentele (parametrii actuali) separați prin virgulă. La apel, funcția poate fi înlocuită cu valoarea returnată, în cazul funcțiilor care returnează o valoare, sau poate executa un set de instrucțiuni, în cazul funcțiilor de tip void.

# data[].attributes.body
În C++, o funcție este un grup de instrucțiuni căruia i se dă un nume și care poate fi apelat dintr-un alt punct al programului.

<Tipul rezultat> <Nume funcție> (x1,x2,...,xn) D;

Prima linie este antetul funcției, format din: — tipul rezultatului ce va fi returnat. Acesta trebuie să fie numele unui tip simplu sau tip referință. — numele funcției. (x1, x2, ...,xn) — lista opțională de parametri formali reprezentând argumentele funcției. Antetul este urmat de corpul funcției format din declarațiile locale opționale D și instrucțiunea compusă {...}. Declarațiile locale sunt preponderent declarații de variabile. Variabilele, declarate în corpul funcției sunt numite variabile locale.Declarațiile locale sunt preponderent declarații de variabile. Variabilele, declarate în corpul funcției sunt numite variabile locale. Numele funcției este folosit pentru apelul acesteia. Fiind apelată, funcția va returna în programul apelant valoarea , indicată după cuvântul-cheie return.

# data[].attributes.body
E cunoscut faptul că o problemă complexă poate fi rezolvată prin divizarea ei într-un set de

părți mai mici (subprobleme). Pentru fiecare parte se scrie o anumită secvență de instrucțiuni,

denumită subprogram. Problema în ansamblu se rezolvă cu ajutorul programului principal,

în care pentru rezolvarea subproblemelor se folosesc apelurile subprogramelor respective.

Când în programul principal se întâlnește un apel, execuția continuă cu prima instrucțiune

din programul apelat. Când se termină executarea instrucțiunilor din subprogram, se

revine la instrucțiunea imediat următoare apelului din programul principal.

# data[].attributes.body
Corpul unui program sau subprogram se numește bloc.

În C/C++ corpul programului este compus din funcții.

Variabilele declarate în cadrul funcțiilor sau instrucțiunilor sunt numite variabile locale. Variabilele declarate în afara funcțiilor sunt numite variabile globale.

Tipartablou-funcție fără tip, care afișează la ecran primele n elemente ale tabloului x.
Esteprim-funcție care returnează valoarea true dacă numărul este q este un număr prim și false în caz contrar.

Numereprime-funcție fără tip, care afișează la ecran doar numerele prime din tabloul x.

# data[].attributes.body
În antetul funcției apar:

<Nume funcție>-numele funcției;

x1,x2,x3,...,xn-lista opțională de parametri formali.

În corpul funcției fără tip sunt incluse:

D - declarațiile locale (opționale) grupate după ce se accelerează regulile ca în cazul funcțiilor cu tip;

(...) instrucțiunea compusă; ea nu conține vreo atribuire asupra numărului funcției.

Funcția face tip poate introduce mai multe rezultate prin variabile denumite special (prin variabile de tip pointer) în lista de parametri formali.

Parametrii x1,x2,...,xn din listă sunt introduși prin declarații de format, t1v1,t2v2,...,tnvn unde perechile t1v1,t2v2,...,tnvn sunt formate din <Număr tip> și <Identificator>.

Parametrii t1v1,t2v2,...,tnvn se numesc parametri-valoare. Această servește pentru transmiterea valorilor din programul principal din funcție.

Parametrii formali sunt introduși în lista prin declarații de forma:

t1* v1, t2* v2..., tk* vk

se numesc parametri-variabilă și servesc pentru întoarcerea rezultatelor din funcția curentă în funcția apelantă. Apelarea unei funcții fără tip se face printr-un apel de forma:

P=(a1,a2,...,an)

P este numele funcției, iar a1,a2,...,an este lista de parametri actuali. Acestea se inserează în funcția apelantă în locul în care sunt dorite efectele produse de execuția funcției.

# data[].attributes.headline
De ce șirul lui Fibonacci este o recursie?

# data[].attributes.subject
De ce șirul lui Fibonacci este o recursie?

# data[].attributes.body
Recursia se definește ca o situație în care un subprogram se autoapelează fie direct, fie prin intermediul altei funcții sau proceduri. Subprogramul care se autoapelează se numește recursiv.

# data[].attributes.body
Subprogramarea în c++ ne ajută să împărțim un program mare în programe (funcții) mai mici pe care le putem apela în orice parte a programului, fără a scrie funcția din nou. De asemenea aranjarea ne oferă o claritate și ușurință de a înțelege programul, iar dacă apare o problemă, e mai ușor de găsit.