Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




FUNCTII IN C++

c


FUNCTII IN C++

Un program in C este un ansamblu de functii care efectueaza o activitate bine definita. Dintre aceste functii, intotdeuna o functie este numita main si este functia care este apelata la lansarea in executie a programului.

1. Forma generala a unei functii

Sintaxa unei functii este urmatoarea:

tip_rezultat nume_functie (lista_de_parametrii)

tip_rezultat - specifica tipul de date pe care il returneaza functia . o functie poate returna orice tip de data cu exceptia unei matrice. Daca nu este specificat nici un tip, compilatorul presupune ca acea functie returneaza un rezultat de tip intreg.

lista_de_parametrii este o lista separata prin virgule de nume de variabile si tipu 121d38b rile lor associate care primesc valorile argumentelor atunci cand este apelata functia. O functie poate sa nu aiba parametrii, caz in care lista lor este vida. Totusi parantezele sunt necesare, chiar daca nu exista parametri.

In declaratiile de variabile globale ne putem referi la mai multe variabile de acelasi tip folosind o lista cu numele lor separate prin virgula. Spre deosebire de acestea variabilele locale (parametrii unei functii) trebuie declarati individual, fiecare continand atat tipul cat si numele.

Ex

f(int i, int k, float j) /*corect*/

f (int i, k, float j) /*gresit*/

Fiecare functie este un bloc de cod discret. O functie nu poate avea acces la codul unei alte functii decat printr-un apel de functie. Variabilele declarate intr-o functie sunt variabile locale, adica snt create la intrarea in functia respectiva si distruse la iesirea din aceasta. Nu se poate defini o functie intr-o alta functie, deci toate functiile au aceeasi sfera de influenta.

2. Argumentele functiei

Daca o functie urmeaza sa foloseasca argumente, ea trebuie sa declare variabile care accepta valori ale argumentelor. Aceste variabile sunt denumite parametri formali ai functiei. Ei se comporta ca si celelalte variabile locale din functie si sunt create la intrarea intr-o functie si distruse la iesirea din ea. Declararea parametrilor se face dupa numele functiei.

Apelul unei functii

Apelul unei functii se face specificand numele functiei urmat de lista parametrilor actuali. Aceasta este formata din variabile, constante sau expresii compatibile ca tip cu parametrii formali, adica fiecarui parametru formal i se asociaza o variabila, o constanta sau o expresie compatibila ca tip.

Daca lista de parametrii este vida, apelul se face specificand numele functiei urmat de paranteze rotunde.

Ex

int f(int k, int i, float a);

int g (void);

apelul functiilor f si g se poate face astfel:

int m, j;

float b;

j=g();

f (m, j+1, 12.5);

4. Prototipul unei functii.

Definitia unei functii apare in cadrul fisierului sursa, inaintea fiecarui apel, numai in cazuri particulare. Definitia lipseste in cazul functiilor din biblioteci sau atunci cand functia se afla in alt fisier sursa sau proiect (in cadrul unui proiect nu se admite ca o functie sa fie definita de doua ori).

Pentru ca la compilare sa se poata efectua si validarea apelurilor unei functii, limbajul C prevede declaratii fara definirea functiilor, numite prototipuri. Aceste sunt recomandate in C si impuse in C++.

Forma generala de definire a unui prototip este:

tip_rezultat nume_functie (tip_1 nume_var_1, tip_2 nume_var_2, , tip_n nume_var_n);

Ex

int f(int k, int i, float a);

void g (int *p1, int *p2);

Prototipurile permit compilatorului sa verifice si sa gaseasca deferentele dintre argumentele utilizate la apelare si parametrii functiei (tipurile si numarul acestora).

Folosirea numelor parametrilor este optionala. Utilizarea lor este insa recomandata deoarece acestia pot fi utilizati de compilator in cadrul mesajelor de eroare.

Ex de prototipuri de functii, fara specificarea numelor parametrilor:

int f(int, int, float);

void g (int *, int *);

in C lipsa parametrilor se specifica prin void. In C++ lista vida indica faptul ca functia nu are parametrii si nu este necesara inserarea cuvantului void.

Pentru functia main nu este necesar un prototip, iar lipsa parametrilor nu se mai indica prin cuvantul void.

Prototipul trebuie inserat in program (de regula la inceputul programului), inaintea oricarui apel al functiei.

Prototipurile functiilor ajuta la ocolirea greselilor inainte ca ele sa apara . in plus dau posibilitatea verificarii corectitudinii programului, nepermitand functiilor sa fie apelate cu argumente nepotrivite.

5. Revenirea dintr-o functie. Instructiunea return.

Exista doua cai de incheiere a executiei unei functii si de revenire in programul apelant: prima varianta de revenire are loc dupa ce se executa ultima instructiune a functiei (dupa care urmeaza acolada de sfarsit), iar cea de-a doua varianta de revenire are loc la intalnirea instructiunii return.

Sintaxa instructiunii return este urmatoarea:

return expresie;

unde expresie reprezinta rezultatul intors de functie, deci acesta trebuie sa fie compatibil cu tipul indicat de prototipul functiei.

Exceptand functiile de tip void, toate functiile returneaza o valoare. Aceasta valoare este specificata explicit de catre instructiunea return.

Valori returnate. Toate functiile, cu exceptia celor de tip void, returneaza o valoare. Aceasta valoare este specificata explicit de catre instructiunea return. Daca nu exista nici o instructiune return, atunci valoarea returnata de functie este teoretic nedefinita. Deci, atata vreme cat o functie nu este declarata ca fiind void, ea poate fi folosita ca operand in orice expresie valida.

Obs O functie nu poate fi niciodata tinta unei atribuiri. O instructiune de forma:

modific(x,y)=100; /*instructiune incorecta*/

este gresita. Compilatorul o va taxa ca eroare si nu va compila un program care contine asa ceva.

In general, la scrierea de programe in C++, functiile vor fi de trei tipuri:

-   functii de calcul simplu - care sunt proiectate pentru a efectua operatii asupra argumentelor lor si a returna o valoare rezultata din aceste operatii (Ex. functiile standard de biblioteca sqrt() si sin()care calculeaza radacina patrata, respectiv sinusul argumentelor lor);

functii ce manevreaza informatiile si returneaza o valoare care indica reusita sau nereusita acestei manevre (Ex. functia de biblioteca fclose()care este folosita pentru a inchide un fisier- daca operatia de inchidere a decurs cu succes, functia returneaza 0, daca operatia nu a reusit, functia returneaza un cod de eroare);



functii care nu au o valoare returnata explicit. In esenta o astfel de functie este strict de procedura si nu returneaza o valoare (Ex. exit() - care termina un program). Toate functiile care nu returneaza valori trebuie declarate ca returnand tipul void.



Document Info


Accesari: 3339
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )