Din punct de vedere conceptual, functia reprezinta o aplicatie definita pe o multime D (D=multimea, domeniul de definitie), cu valori in multimea C (C=multimea de valori, codomeniul), care indeplineste conditia ca oricarui element din D ii corespunde un unic element din C.
Sa lasam aceasta definitie complicata,ceea ce este mai usor de retinut si la fel de corect: Â Un program C/C++ este un ansamblu de functii.
- Forma generala
tip_functie nume_functie(parametru 1,parametru 2,parametru 3, … ,parametru n){secventa de instructiuni}
Unde:
– tip_functie este tipul valorii pe care o intoarce functia ;
–nume_functie este numele pe care dorim sa i-l punem functiei ;
– parametru 1, parametru 2, parametr 3, … , parametru n reprezinta lista de parametrii (nr vom lamuri in scurt timp ce sunt parametrii ) ;
–secventa de instructiuni este practic ceea ce vrem sa faca functia .
Exemplu:
Sa vedem si un exemplu clar de functie:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #include <iostream>#include <conio>using namespace std;int inmultire(int nr1,int nr2){int rezultat;rezultat=nr1*nr2;return rezultat;}int main(){int nr1,nr2;cout<<"Dati primul numar: ";cin>>nr1;cout<<"Dati al doilea numar: ";cin>>nr2;cout<<"Rezultat: "<<inmultire(nr1,nr2);getch();return 0;} |
Sper ca ati observat ca am declarat functia imediat dupa ce am declarat bibliotecile pe care le-am folosit. Acum sa analizam putin programul … Am creat o functie inmultire( ) , cu parametrii nr1 si nr2. In variabila rezultat am calculat produsul celor 2 variabile parametru. Am „spus” ca functia va returna acest rezultat prin return rezultat;
In functia principala am declarat 2 variabile, le-am citit de la tasatura si am afisat produsul acestora cu ajutorul functiei.
- Parametrii functiilor
Parametrii sunt elementele de care depind functiile. In exemplus de mai sus acestia erau nr1 si nr2. De ce depinde functia inmultire( ) de acesti parametrii ? Pentru ca pe ei se bazeaza cand calculeaza rezultatul, de ei are nevoie. Pentru a stoca produsul parametrilor am folosit variabila auxiliara rezultat.
Exemplu:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| #include <iostream>
#include <conio>
using namespace std;
int adunare (int a, int b){int r;r=a+b;return (r);}int main (){int z;z = adunare (7,3);cout << "The result is " << z;getch();return 0;} |
Functia adunare ( ) calculeaza suma numerelor 7 si 3. O atribuie variabile z in cadrul functiei principale. In final vom afisa variabila z.
- Functii fara tip
Functiile care nu ai niciun tip nu trebuie sa returneze o valoare, pot afisa un mesaj. Numite si void functions aceste functii sunt la fel de importante ca si cele cu un tip bine definit.
Declaram o functie de acest gen astfel:
void functie(void)
Exemplu
1
2
3
4
5
6
7
8
9
10
11
12
| #include <iostream>#include <conio>using namespace std;void mesaj(void){cout<<"Sunt o functie void !";}int main(){mesaj();getch();return 0;} |
Functia mesaj ( ) afiseaza pur si simplu: „Sunt o functie void !” . La ce folosesc astfel de functii ? Vom vedea imediat.
Programul de mai jos citeste de la tastatura elementele unui vector de n elemente, iar cand gaseste ca suma a 2 numere de pe pozitii consecutive este numar par afiseaza mesajul „am gasit ! „.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <iostream>#include <conio>using namespace std;void gasit(void){cout<<"am gasit ! "<<endl;}int main(){int v[10],i,n;cout<<"n=";cin>>n;for (i=0;i<n;i++){cout<<"v["<<i+1<<"]=";cin>>v[i];}for (i=0;i<n;i++)if ( (v[i]+v[i+1])%2==0) gasit();getch();return 0;} |
Niciun comentariu:
Trimiteți un comentariu