# data[].attributes.body
- Un subprogram este o unitate de cod care poate fi apelată pentru a executa o anumită sarcină, facilitând reutilizarea și organizarea codului.

# data[].attributes.attachment_link.description
Limbajul C++ a fost inventat de către Bjarne Stroustrup în 1979, ca o extindere a limbajului C. Limbajul C a fost inventat în 1969-1973 de către Dennis Ritchie pentru a realiza sistemul de operare Uni

# 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
https://onlinegdb.com/AoupPXdwqO

- Programul citește un număr și afișează 1 dacă cifra cea mai mare din el este pară, sau 0 dacă este impară.

# data[].attributes.body
- Subprogramele prezintă mai multe avantaje, printre care se numără:

- Permit reutilizarea ușoară a codului scris.

- Facilitează descompunerea problemelor complexe în probleme mai mici

- Reduc numărul de erori ce pot apărea atunci când scriem un program

- Ne ajută să găsim și să rezolvăm erori mai ușoare

Programele scrise cu subprograme sunt mai ușor de citit

https://create.kahoot.it/share/rolul-subprogramelor/197c9a5e-21dd-4f11-8f17-730bfcd26e12

# data[].attributes.attachment_link.title
Rolul subprogramelor - Details - Kahoot!

# data[].attributes.attachment_link.description
Create interactive quizzes, polls, presentations, and more to engage your audience.

# data[].attributes.body
https://onlinegdb.com/vej-7leEEP

# data[].attributes.body
🔹 Antetul funcției

Ce conține: tipul rezultatului (double), numele funcției (putere), parametrii formali (double x, int n).
Rol: definește semnătura funcției — cum se numește, ce primește și ce returnează.
Exemplu:

double putere(double x, int n);

🔹 Declarațiile locale

Ce conțin: variabile proprii funcției, vizibile doar în interiorul ei.
Rol: rețin valori temporare folosite la calcule.
Exemplu:

double p = 1.0;

🔹 Instrucțiunile (corpul funcției)

Ce conțin: bloc de instrucțiuni cuprins între acolade { }.
Rol: execută operațiile cerute de funcție.
Exemplu:

for (int i = 1; i <= n; i++)
    p = p * x;

🔹 Instrucțiunea return

Ce conține: valoarea returnată către programul principal.
Rol: încheie funcția și trimite rezultatul calculat.
Exemplu:

return p;

🔹 Apelul funcției

Ce conține: numele funcției urmat de parametrii actuali.
Rol: solicită executarea funcției.
Exemplu:

c = putere(a, b);

🧩 Asamblează funcția corect!

https://wordwall.net/resource/101325937

# data[].attributes.attachment_link.provider_name
Wordwall - Create better lessons quicker

# data[].attributes.attachment_link.description
Match up - Drag and drop each keyword next to its definition.

# data[].attributes.body
🔹 Ce înseamnă?

„Domeniul de vizibilitate” arată unde o variabilă poate fi folosită într-un program.

Cu alte cuvinte, unde „vede” programul” o variabilă — doar într-o funcție, doar într-un bloc, sau în tot programul.

# data[].attributes.attachment_caption
Fiecare funcție are propriul sertar (bloc) cu documente (variabile). Doar cine deschide acel sertar poate folosi documentele.    🔹 Asociere: variabilele locale = documente vizibile doar în sertarul funcției.

# data[].attributes.body
https://onlinegdb.com/uebhWGvpqA

a = 10 → vizibilă în tot programul (globală)

a = 3 → vizibilă doar în main() (locală, ascunde variabila globală)

b = 5 → vizibilă doar în f()

# data[].attributes.body
Recursia este apelul unei funcții din interiorul aceleiași funcții.
Se folosește atunci când o problemă poate fi împărțită în probleme mai mici de același tip.

O funcție recursivă trebuie să conțină:

1. Cazul de bază – când funcția se oprește.

2. Apelul recursiv – când funcția se apelează din nou cu date mai simple

# data[].attributes.body
💻 Exemplul 1: Factorialul unui număr

(n! = 1 × 2 × 3 × … × n)

https://onlinegdb.com/9Y2svCVoJJ

Pentru informații suplimentare!

# data[].attributes.body
💻 Exemplul 2: Șirul Fibonacci

(0, 1, 1, 2, 3, 5, 8, 13, …)

Fiecare termen este suma celor două anterioare:
F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2)

https://onlinegdb.com/JU6r9WmWz

Pentru informații suplimentare!

# data[].attributes.body
În C++ există două tipuri de subprograme:

1. Funcții

2. Proceduri (în C++ sunt echivalente cu funcțiile care nu returnează valori)

🔸 Funcția

Este un subprogram care primește date, execută o acțiune și returnează o valoare.

Poate fi apelată de mai multe ori în program.

Are un tip de retur (ex: int, double, char, etc.).

Exemplu:

int adunare(int a, int b) {
    return a + b;
}

🔸 Procedura (funcție fără rezultat)

Este un subprogram care execută acțiuni, dar nu returnează o valoare.

În C/C++, se scrie cu tipul void.

Exemplu:

void salut() {
    cout << "Bună ziua!";
}

- Procedura „salut” doar afișează un mesaj, fără să returneze nimic.

# data[].attributes.wish_content.attachment_props.question
Privește următorul exemplu de cod și alege răspunsul potrivit:                                                                                        for (int i = 0; i < 5; i++) {     cout << i; }                                                                                                  Variabila i are domeniul de vizibilitate: