Funksionet C++

Funksionet C++

Gjatë shkruarjes së programeve të ndryshme përdoren biblioteka me funksione të gatshme, të përcaktuara nga përpiluesi i kompajlerit të gjuhës C++. 
Por, edhe vetë shfrytëzuesi mund të përcaktojë funksione të ndryshme dhe t'i shfrytëzojë ato sipas nevojës. 
Një grumbull i komandave të caktuara brenda programit mund të përsëritet më shumë herë. Me qëllim të thjeshtimit të shkruarjes së programit, grumbulli i tillë deklarohet si pjesë e veçantë, e cila quhet nënprogram. Pastaj, nënprogrami thirret përmes emrit të tij, sa herë që nevojitet. 
Në gjuhën C++ shfrytëzohen vetëm tipe të nënprogrameve që njihen si funksione (Ang. Function). Prandaj, zakonisht, në këtë gjuhë, kur flitet për nënprograme, mendohet në përcaktimin dhe në shfrytëzimin e funksioneve të ndryshme. 
Në fillim të librit është përmendur funksioni main(), i cili paraqitet në çdo program. Gjithashtu, në pjesët paraprake janë përdorur disa funksione matematikore të cilat gjenden në kuadër të modulit math.h. Kurse në fund të këtij kapitulli jepen shembuj të tjerë të shfrytëzimit të funksioneve matematikore nga moduli në fjalë. Njëkohësisht, shpjegohet përdorimi i disa funksioneve nga biblioteka përkatëse për punë me stringje.

 Definimi dhe thirrja e funksioneve 
Nënprogramet përmes së cilave definohen funksione të zakonshme shkruhen në kuadër të programit tek i cili shfrytëzohen. Nënprogrami me titullin main(), ku thirren funksionet, njihet edhe si program kryesor. 
Gjatë ekzekutimit të programit, në momentin kur kompjuteri e takon emrin e një funksioni, ekzekutimi vazhdon me komandat e përfshira brenda nënprogramit. Kur përfundon ekzekutimi i komandave të nënprogramit, 
procedura e ekzekutimit vazhdon me komandat vijuese të programit, të cilat gjenden menjëherë pas emrit të funksionit. 
Në formë të përgjithshme, definimi i një funksioni duket kështu : 

tipi emri(t1 f1, t2 f2, ..., tn fn) 
{ 
   x; 
   return r; 
}

ku janë : 
 tipi - tipi i rezultatit të funksionit. 
 emri - emri i funksionit, i zgjedhur lirisht si identifikator. 
 f1, f2, ..., fn - parametrat formalë. 
 t1, t2, ..., tn - tipet e parametrave formalë. 
 x - komanda të ndryshme brenda trupit të funksionit. 
 r - rezultati të cilin e jep funksioni. 

 Shembull 
Programi përmes së cilit llogaritet sipërfaqja e katërkëndëshit me brinjët a dhe b, duke e shfrytëzuar funksionin Dita. 

 a. Varianti pa nënprogram 
// Programi funk1a 
 include <iostream> 

using namespace std; 

int main() 
{ 
 float a,b; 
 double s; 
 cout << "\nBrinja a: "; 
 cin >> a; 
 cout << "\nBrinja b: "; 
 cin >> b; 
 s=a*b; 
 cout << "\nSipërfaqja s=" 
      << s 
      << "\n\n"; 
return 0; 
}

 b. Varianti me nënprogram 
// Programi funk1b 
 include <iostream> 
using namespace std; 
double Dita(float x,float y); 
int main() 
{ 
 float a,b; 
 double s; 
 cout << "\nBrinja a: "; 
 cin >> a; 
 cout << "\nBrinja b: "; 
 cin >> b; 
 s=Dita(a,b); 
 cout << "\nSipërfaqja s=" 
      << s 
      << "\n\n"; 
return 0; 
} 
// Nënprogrami Dita 
double Dita(float x,float y) 
{ 
 return x*y; 
}

 Llogaritje komplekse brenda funksionit 
Brenda funksionit mund të paraqiten edhe llogaritje më komplekse. Por, në fund, variabla në të cilën përfshihet rezultati i të gjitha llogaritjeve përsëri duhet të shënohet te komanda return. 

 Shembull 
Programi përmes së cilit llogaritet prodhimi i numrave natyrorë mes m dhe n, duke e shfrytëzuar nënprogramin prodhimi. 

// Programi funk2 

 include <iostream> 

double prodhimi(int m,int n); 

using namespace std; 

int main() 
{ 
 double p; 
 int m,n; 
 cout << "\nVlera e variablës m: "; 
 cin >> m; 
 cout << "\nVlera e variablës n: "; 
 cin >> n; 
 p=prodhimi(m,n); 
 cout << "\nProdhimi p=" 
      << p 
      << "\n\n"; 
return 0; 
} 
// Nënprogrami prodhimi 

double prodhimi(int m,int n) 
{ 
 double p; 
 int i; 
 p=1; 
 for (i=m;i<=n;i++) 
    p=p*i; 
 return p; 
}