MeditatiiDirect.ro Logo
MeditatiiDirect.ro
Educație la un click distanță
MeditatiiMateriiAdmitereTutorialePregatire BACSubiecte BACVariante BACBlog
InformaticăliceuClasa 9usor

Subprograme în C++ - Funcții și Proceduri

Declarare funcții, parametri, transmitere prin valoare/referință, recursivitate și funcții inline.

3 luni în urmă
0 vizualizări
25 minute

Subprograme în C++

Structura unei Funcții

1tip_returnat nume_functie(parametri) {
2    // Corpul funcției
3    return valoare; // Dacă tip_returnat != void
4}

Exemple

1#include <iostream>
2using namespace std;
3
4// Funcție care returnează o valoare
5int suma(int a, int b) {
6    return a + b;
7}
8
9// Funcție void (procedură)
10void afiseaza(int x) {
11    cout << "Valoarea este: " << x << endl;
12}
13
14// Funcție cu valoare implicită
15int putere(int baza, int exp = 2) {
16    int rez = 1;
17    for (int i = 0; i < exp; i++)
18        rez *= baza;
19    return rez;
20}
21
22int main() {
23    cout << suma(3, 4) << endl;  // 7
24    afiseaza(10);                 // Valoarea este: 10
25    cout << putere(3) << endl;    // 9 (3^2)
26    cout << putere(3, 3) << endl; // 27 (3^3)
27    return 0;
28}

Transmitere Parametri

Prin Valoare (Copie)

1void incrementeaza(int x) {
2    x++;  // Modifică doar copia locală
3}
4
5int main() {
6    int a = 5;
7    incrementeaza(a);
8    cout << a << endl;  // 5 (neschimbat)
9}

Prin Referință

1void incrementeaza(int& x) {
2    x++;  // Modifică variabila originală
3}
4
5int main() {
6    int a = 5;
7    incrementeaza(a);
8    cout << a << endl;  // 6 (modificat)
9}

Prin Pointer

1void incrementeaza(int* x) {
2    (*x)++;  // Modifică valoarea de la adresă
3}
4
5int main() {
6    int a = 5;
7    incrementeaza(&a);
8    cout << a << endl;  // 6
9}

Vectori ca Parametri

1// Vectori statici - transmise prin referință automat
2void afisare(int arr[], int n) {
3    for (int i = 0; i < n; i++)
4        cout << arr[i] << " ";
5}
6
7// Cu std::vector - prin referință pentru eficiență
8void sorteaza(vector<int>& v) {
9    sort(v.begin(), v.end());
10}
11
12// Doar citire - const referință
13int suma(const vector<int>& v) {
14    int s = 0;
15    for (int x : v) s += x;
16    return s;
17}

Funcții Inline

1inline int max(int a, int b) {
2    return (a > b) ? a : b;
3}
4// Compilatorul înlocuiește apelul cu codul funcției

Supraîncărcare (Overloading)

1int suma(int a, int b) {
2    return a + b;
3}
4
5double suma(double a, double b) {
6    return a + b;
7}
8
9int suma(int a, int b, int c) {
10    return a + b + c;
11}
12
13int main() {
14    cout << suma(2, 3) << endl;       // 5 (int)
15    cout << suma(2.5, 3.5) << endl;   // 6.0 (double)
16    cout << suma(1, 2, 3) << endl;    // 6 (3 parametri)
17}

Funcții Recursive

1int factorial(int n) {
2    if (n <= 1) return 1;
3    return n * factorial(n - 1);
4}

Tutorialul te-a ajutat?

Dacă ai nevoie de ajutor personalizat, găsește un profesor calificat pentru meditații

MeditatiiDirect.ro Logo
MeditatiiDirect.ro

Platforma educationala din Romania pentru meditatii particulare. Profesori verificati, recenzii reale, inscriere gratuita.

Cauta sau publica anunturi gratuit pentru toate materiile scolare.

Meditatii

  • Meditatii
  • Meditatii Matematica
  • Meditatii Informatica
  • Meditatii Romana
  • Meditatii Engleza
  • Anunturi Meditatii
  • Meditatii Online
  • Ore Online
  • Meditatii BAC
  • Meditatii Bucuresti
  • Meditatii Cluj-Napoca
  • Meditatii Timisoara
  • Meditatii Iasi
  • Meditatii Fizica
  • Meditatii Chimie
  • Meditatii Biologie

Materii Populare

  • Matematică
  • Limba Română
  • Limba Engleză
  • Informatică
  • Fizică
  • Toate Materiile →

Platforma

  • Cum functioneaza
  • Pentru elevi si parinti
  • Pentru profesori
  • Intrebari frecvente
  • Despre noi
  • Publica anunt gratuit

Resurse

  • Profesor Particular
  • Pregatire BAC
  • Admitere Facultate
  • Universitati Romania
  • Facultati Medicina
  • Facultati Informatica
  • Facultati Politehnica
  • Facultati Drept
  • Facultati Economice
  • Facultati Psihologie
  • Grile UPB
  • Grile Medicina
  • Grile Auto 2026
  • Variante BAC 2026
  • Simulare BAC 2026
  • Subiecte BAC
  • Subiecte Admitere
  • Titularizare 2025
  • Tutoriale
  • Blog educational
  • Ore Online
  • Profesori Online
  • Contact

MeditatiiDirect.ro este o platforma educationala din Romania unde gasesti meditatii si profesori particulari verificati pentru matematica, limba romana, engleza, informatica, fizica, chimie si alte materii. Disponibil in Bucuresti, Cluj-Napoca, Timisoara, Iasi si toata Romania, inclusiv meditatii online. Publica sau gaseste anunturi meditatii gratuit, programeaza ore online cu profesori verificati, cauta un profesor particular sau incepe meditatii BAC si admiterea la facultate.

© 2026 MeditatiiDirect. Toate drepturile rezervate.