Lectia 11 C++ | Functii

Cand un program devine foarte complex, acesta trebuie divizat in mai multe parti. In acest mod programul devine mult mai usor de gestionat.
Pentru a putea diviza un program, se vor folosi functiile. O functie contine instructiuni clare despre o anumita sectiune dintr-un program.

Aceasta este sintaxa unei functii:
tipul_de_data numele_functiei(tipul_de_parametrii) {corpul_functiei}

Exemplu:
int functie(int x)("tip1 parametru1, tip2 parametru2, ..., tipN parametruN") {corpul_functiei}

Functiile mai sunt numite si subprograme

Exista doua tipuri de functii/programe:
-program apelant;
-program apelat;

Programul apelant poate fi un subprogram sau programul principal.
Programul principal este definit prin functia main().
Programul apelat poate fi doar un subprogram.

In urmatoarele randuri o sa iti dau un exemplu care sa te va ajuta sa intelegi mai bine cum sta treaba cu programul apelant si cel apelat:

Gandeste-te la o firma.
O firma este formata dintr-un sef care are in subordine mai multi angajati.
Seful intotdeauna ii va trage la raspundere pe angajatii acestuia. Angajatii niciodata nu vor putea sa il traga la raspundere pe sef.
In acest caz, il putem numi pe sef "Programul principal" care poate doar sa apeleze.

Seful poate sa angajeze si un subsef. Acest subsef poate la randul lui sa fie apelat de catre sef, dar si sa apeleze angajatii pe care acesta ii are in subordine.
In acest caz il putem numi pe subsef "program sau subprogram" deoarece poate atat sa apeleze cat si sa fie apelat.

 O functie nu poate fi definita in interiorul unei alte functii. De regula, functiile se definesc inaintea functiei main().
Toate functiile pot fi apelate sau apelante, dar functia main() va detine intotdeauna controlul.

EXEMPLU:

 

#include <iostream>
using namespace std;

int functie(int x){
cout<<x;
}


int main(){
int a=6;

functie(a);

return 0;}

 
Acum, sa explicam fiecare rand:

-"int functie(int x)" | acesta este antetul functiei

-"int" inseamna ca functia lucreaza cu numere intregi.
-"functie" este numele functiei (puteti pune orice nume doriti).
-"(int x)" reprezinta tipul de parametrii formali pe care o sa ii introduceti. Este o variabila care nu trebuie initializata.
Puteti introduce cati parametrii formali doriti separandu-i prin virgula.

{}
-intre aceste paranteze se afla corpul functiei.

printf("%d",x);
-"x" va fi inlocuit cu "x" din "int functie(int x)".

int a=6;
-am declarat o variabila

functie(a);
-am apelat functia "functie".
-"a" este un parametru actual si va inlocui "x" din "int functie(int x)" care la randul lui va inlocui "x" din "printf("%d",x);".

In concluzie, se va afisa 6.


Acum sa dam exemplu de o functie care are mai multi parametrii.

 

#include <iostream>
#include <stdio.h>
using namespace std;

void functie(int x,float y,char abc){
printf("%d\n",x);
printf("%f\n",y);
printf("%c",abc);
}

int main(){
int a=6;
float b=5.6;
char c='Z';

functie(a,b,c);

return 0;}

6
5.600000


Trebuie sa introduceti variabilele a, b, c, in ordinea tipului de date fata de functie.

void functie(int x,float y,char abc)
Primul parametru formal este "int".
In concluzie, unde am apelat functia trebuie sa punem variabila de tip "int" prima.
functie(a,b,c);