# data[].attributes.body
În limbajele C/C++ subprogramele poartă denumiri de funcții.

# data[].attributes.body
Domeniul de vizibilitate (engleză - scope) reprezintă zona din cod în care o variabilă este recunoscută și poate fi folosită (citită sau modificată).
În afara acestui domeniu, variabila nu există pentru compilator.

# data[].attributes.body
Recursia este un mecanism prin care o funcție se apelează pe ea însăși, direct sau indirect, pentru a rezolva o problemă mai complexă împărțind-o în subprobleme mai simple.

# data[].attributes.body
Aceste funcții returnează o valoare către apelant. Tipul funcției poate fi int, float, double, char, bool.

https://onlinegdb.com/3sZp1KYUm

# data[].attributes.body
Program care utilizează recursia - Fibonacci

https://onlinegdb.com/rPRMWqilhP

# data[].attributes.body
Program care utilizează recursia - Factorial

https://onlinegdb.com/Pw3z9KLql

# data[].attributes.body
Variabilele declarate în cadrul funcțiilor sau instrucțiunilor sunt numite variabile locale. Ele sunt vizibile și pot fi referite doar în cadrul funcțiilor sau instrucțiunilor în care sunt definite.

Variabilele declarate în afara funcțiilor sunt numite variabile globale. Ele sunt vizibile și pot fi referite în oricare dintre funcțiile ce urmează după declarația variabilelor respective.

https://onlinegdb.com/bgPkRXfrL

# data[].attributes.headline
Un subprogram în C/C++ are următoarea structură:

# data[].attributes.subject
Un subprogram în C/C++ are următoarea structură:

# data[].attributes.headline
Subprogramele sunt un instrument fundamental în dezvoltarea aplicațiilor eficiente și bine structurate în C și C++.

# data[].attributes.subject
Subprogramele sunt un instrument fundamental în dezvoltarea aplicațiilor eficiente și bine structurate în C și C++.

# data[].attributes.body
Subprogramele, numite funcții în C/C++, sunt componente esențiale ale programării, folosite pentru a structura codul în blocuri logice, ușor de înțeles și reutilizat. Ele pot avea tip de retur (precum int, float, etc.) sau pot fi de tip void, când nu returnează nimic. Folosirea funcțiilor contribuie la o mai bună organizare a codului, reduce repetiția și face programele mai ușor de întreținut și extins. Funcțiile pot fi simple, cu sau fără parametri, sau pot fi recursive, adică se pot apela pe ele însele pentru a rezolva probleme complexe în mod elegant.

# data[].attributes.body
Funcțiile void nu returnează nicio valoare. Ele sunt folosite pentru a executa o acțiune (ex. afișare), nu pentru a calcula și întoarce un rezultat.

https://onlinegdb.com/scGyMFjZf

# data[].attributes.headline
Folosirea subprogramelor vine la pachet cu un șir de avantaje:

# data[].attributes.subject
Folosirea subprogramelor vine la pachet cu un șir de avantaje:

# data[].attributes.body
Reutilizarea codului – o dată scris, un subprogram poate fi apelat de mai multe ori, evitând rescrierea acelorași instrucțiuni;

Structurarea clară a programului – programul devine împărțit în probleme mai mici și mai ușor de înțeles, deci, vom rezolva probleme mai simple;

Reducerea erorilor – codul este mai simplu de testat și verificat pe bucăți;

Dacă apare o modificare, aceasta se face doar într-un singur loc (în subprogram), nu peste tot;

Denumirile subprogramelor reflectă acțiunile pe care le fac, ceea ce face programul mai ușor de citit.

# data[].attributes.body
Un subprogram este un ansamblu de tipuri de date, variabile, instrucțiuni, care îndeplinesc o anumită sarcină (calcule, citiri, afișări), atunci când este apelat/folosit de un program sau de un alt subprogram.

Cu alte cuvinte, un subprogram este o parte de program care îndeplinește o anumită sarcină când este apelată.