return

Vreau sa returnez rezultate!

Dupa aceasta lectie, vei intelege diferenta dintre functii void si functii care returneaza valori.

INCEARCA

Compara aceste functii!

Provocarea ta (2 minute):
Functia A:
void afiseaza(int x) {
cout << x;
}
Functia B:
int dubleaza(int x) {
return x * 2;
}
Intrebari:
1. Ce diferenta vezi intre void si int?
2. De ce functia A nu are return?
3. Poti folosi rezultatul functiei A intr-un calcul? Dar pe al functiei B?
Ai nevoie de ajutor? Click aici pentru indiciu

void = functia NU returneaza nimic (doar face ceva)

int = functia RETURNEAZA un numar pe care il poti folosi

Functia A doar afiseaza, functia B iti da un rezultat!

INVATA

Valori returnate si void

Ce face return?
Instructiunea return face doua lucruri:

1. Trimite o valoare inapoi la locul unde a fost apelata functia
2. Opreste executia functiei (codul dupa return nu se mai executa!)
int aduna(int a, int b) {
return a + b; // trimite suma inapoi
}
int x = aduna(5, 3); // x devine 8

Doua tipuri de functii:

Functii VOID

NU returneaza nimic.
Fac o actiune (afiseaza, modifica).

void saluta() {
cout << "Salut!";
}
saluta(); // doar apelezi

Functii cu RETURN

RETURNEAZA o valoare.
Poti folosi rezultatul.

int patrat(int n) {
return n * n;
}
int x = patrat(5); // x = 25
Cand folosesc void?
Foloseste void cand functia doar executa o actiune:
  • Afiseaza ceva pe ecran
  • Modifica o variabila globala
  • Face o operatie fara sa calculeze un rezultat
Exemple de functii void:
void afiseazaLinie() {
cout << "----------";
}
void afiseazaNota(int nota) {
cout << "Nota ta: " << nota;
}
Cand folosesc return?
Foloseste functii cu return cand ai nevoie de un rezultat:
  • Calculezi ceva (suma, produs, arie)
  • Verifici o conditie (este par? este pozitiv?)
  • Transformi date (convertesti grade, calculezi media)
Exemple de functii cu return:
int maxim(int a, int b) {
if (a > b) return a;
return b;
}
bool estePar(int n) {
return (n % 2 == 0);
}
float medie(int a, int b) {
return (a + b) / 2.0;
}
Avantajul functiilor cu return
Poti folosi rezultatul in expresii, il poti stoca in variabile sau il poti trimite altor functii!
int a = patrat(3); // stochez: a = 9
cout << patrat(4); // afisez direct: 16
int b = patrat(2) + patrat(3); // expresie: 4 + 9 = 13
int c = patrat(patrat(2)); // functie in functie: 16
Regula importanta
Tipul valorii returnate trebuie sa fie acelasi cu tipul declarat al functiei!

int functie() - trebuie sa returneze un int
float functie() - trebuie sa returneze un float
bool functie() - trebuie sa returneze true sau false
VERIFICA

Hai sa vedem ce ai retinut!

1. Ce inseamna void la o functie?
Functia nu returneaza nimic
Functia returneaza un numar gol
Functia nu are parametri
2. Ce valoare are x dupa executie?
int f(int n) { return n * 3; }
int x = f(4) + 2;
12
14
18
3. Care linie de cod este GRESITA?
int x = patrat(5); unde patrat returneaza int
int x = afiseaza(5); unde afiseaza este void
cout << suma(3, 4); unde suma returneaza int
return

Felicitari!

Ai terminat Lectia 4: Valori returnate

+50 XP

Acum stii diferenta dintre void si functii cu return!