miercuri, 30 martie 2016

Introducere in functii C++

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