# data[].attributes.body
Un subprogram este o bucată de cod separată, creată special ca să rezolve o sarcină clară, și care poate fi folosită de mai multe ori în program, fără să fie nevoie să rescrii acea bucată de cod.

Gândește-te la un subprogram ca la o mini-mașinărie dintr-o fabrică:

Primește niște piese (date/parametri),

Le procesează în interior (face niște calcule sau acțiuni),

Dă înapoi un rezultat (sau doar face ceva, fără să returneze nimic),

Poți folosi acea mașinărie ori de câte ori ai nevoie, fără să o construiești din nou.

Gândește-te la un subprogram ca la o mini-mașinărie dintr-o fabrică:

Primește niște piese (date/parametri),

Le procesează în interior (face niște calcule sau acțiuni),

Dă înapoi un rezultat (sau doar face ceva, fără să returneze nimic),

Poți folosi acea mașinărie ori de câte ori ai nevoie, fără să o construiești din nou.

# data[].attributes.body
În majoritatea limbajelor de programare, subprogramele sunt cunoscute sub forma funcțiilor.

O funcție este un subprogram care:

primește date (parametri sau argumente),

execută o serie de instrucțiuni,

returnează (de obicei) un rezultat.

Avantajele folosirii funcțiilor:

Reutilizare: poți apela funcția ori de câte ori ai nevoie.

Organizare: codul devine mai clar și mai structurat.

Întreținere ușoară: dacă ai nevoie să schimbi o logică, o faci într-un singur loc.

Rolul funcțiilor într-un program.

Modularizarea programului

Împarte un program mare în bucăți mai mici, mai ușor de înțeles.

Reutilizarea codului

Scrii o dată, folosești de oricâte ori ai nevoie.

Încurajează lucrul în echipă

Mai mulți programatori pot lucra la subprograme diferite în același timp.

# data[].attributes.body
Program C++

# data[].attributes.attachment_link.title
GDB online Debugger | Code, Compile, Run, Debug online C, C++

# data[].attributes.attachment_link.description
Online GDB is online ide with compiler and debugger for C/C++. Code, Compiler, Run, Debug Share code nippets.

# data[].attributes.body
din carte exemplu

# data[].attributes.attachment_link.title
GDB online Debugger | Code, Compile, Run, Debug online C, C++

# data[].attributes.attachment_link.description
Online GDB is online ide with compiler and debugger for C/C++. Code, Compiler, Run, Debug Share code nippets.

# data[].attributes.body
O procedură este un tip de subprogram care:

execută o serie de instrucțiuni,

nu returnează un rezultat direct (nu întoarce o valoare),

poate primi informații din program prin parametri.

Imaginează-ți că un program este ca o fabrică.

1.Procedura este o mașină din fabrică care are o anumită sarcină.

2. Tu îi poți da materie primă (parametri), ea lucrează, face treaba, dar nu îți dă un produs final înapoi, ci doar face acțiunea.

Exemplu:

Procedura poate aprinde o lumină, afișa un mesaj, salva date într-un fișier, dar nu îți spune „valoarea rezultatului”.

# data[].attributes.attachment_link.title
GDB online Debugger | Code, Compile, Run, Debug online C, C++

# data[].attributes.attachment_link.description
Online GDB is online ide with compiler and debugger for C/C++. Code, Compiler, Run, Debug Share code nippets.

# data[].attributes.body
Din carte ex 6 (a)

# data[].attributes.attachment_link.title
GDB online Debugger | Code, Compile, Run, Debug online C, C++

# data[].attributes.attachment_link.description
Online GDB is online ide with compiler and debugger for C/C++. Code, Compiler, Run, Debug Share code nippets.

# data[].attributes.body
Domeniul de vizibilitate reprezintă zona din program unde o variabilă poate fi „văzută” sau folosită.

Vizibilitate globală

Variabila este declarată în afara oricărei funcții.

Poate fi folosită oriunde în program.

Vizibilitate locală (funcțională)

Variabila este declarată într-o funcție (ex: main() sau alta).

Poate fi folosită doar în acea funcție.

Vizibilitate de bloc

Variabila este declarată între acolade { }, de exemplu într-un if, for, while.

Este vizibilă doar în acel bloc de cod.

Vizibilitate locală statică

Variabilă declarată într-o funcție cu static.

Vizibilă doar în acea funcție, dar își păstrează valoarea de la un apel la altul.

------------------------------------------------------------

Vizibilitatea variabilelor și funcțiilor arată unde pot fi folosite în program. În C++ există mai multe tipuri:

1. Globală – variabila poate fi folosită oriunde în program.

2. Locală (funcțională) – variabila este vizibilă doar în funcția unde a fost declarată.

3. De bloc – variabila există doar între acolade { } (ex. în if, for).

4. Locală statică – variabila este vizibilă doar în funcție, dar păstrează valoarea între apeluri.

# data[].attributes.body
Subprogramele sunt părți de cod organizate separat (funcții sau proceduri) și au rolul de a face programele mai clare, mai ordonate și ușor de înțeles. Ele ajută la:

Împărțirea unui program mare în bucăți mici și logice;

Reutilizarea codului, fără să scriem aceleași instrucțiuni de mai multe ori;

Reducerea erorilor, pentru că fiecare subprogram poate fi verificat separat;

Creșterea clarității și a logicii programului, fiind mai ușor de citit și modificat.

În concluzie, subprogramele sunt esențiale în programare, deoarece transformă un cod complicat într-unul structurat, eficient și ușor de întreținut.