Ndertimi i funksioneve me shume parametra
6.4 Ndertimi i nje funksioni fq 211
Si ndertohet nje funksion?
- Koka e funksionit (deklarimi)
- {
- trupi
- }
Vete koka e funksionit perbehet nga disa pjese:
1.tipi i kthimit qe mund te jete int, long, float, double bool, char etj ose void qe tregon se funksioni nuk kthen vlere.
- emri i funksionit (duhet te jete identifikues
i vlefshem ne c++, jo space, jofjalekyce, jo numer ne fillim, jo simbole te tjera pervec _)
- (
- argumentat nese ka (informacioni qe kerkon nje funksion)
- )
Kemi disa lloje funksionesh:
1.Funksionet pa argumenta qe nuk kthejne vlere.
2.Funksionet me argumenta qe nuk kthejne vlere.
3.Funksionet pa argumenta qe kthejne vlere.
4.Funksionet me argumenta qe kthejne vlere.
Ndertimi i nje funksioni pa parametra qe nuk kthen vlere:
void emri_funx () { veprime; }
|
emri_funx();
|
Thirrja e nje funksioni pa parametra qe nuk kthen vlere:
// 1.Funksionet pa argumenta qe nuk kthejne vlere.
#include <iostream>
using namespace std;
void afisho()
{
cout << "Pershendetje"<< endl;
}
int main()
{
afisho();//thirrja e funx afisho()
afisho();
afisho();
system("pause");
return 0;
}
#include <iostream>
using namespace std;
void afisho()
{
int a = 5,b = 7,c;
c = a+b;
cout << "c = "<< c<<endl;
}
int main()
{
afisho(); //thirrja e funx afisho()
afisho();
afisho();
system("pause");
return 0;
}
2.Funksionet me argumenta qe nuk kthejne vlere.
Parametrat jane informacioni qe i duhet nje funksioni per te kryer veprimet e tij.
Parametrat deklarohen brenda kllapave te funksionit.
tipi_kthimit funksioni(tipi emri, tipi emri,etj)
EDHE SIKUR TIPI TE JETE I NJEJTE
// katrori i nje numri
#include <iostream>
using namespace std;
void square( int); // prototipi i funksionit
int main()
{
int x;
cout<<"Jepni nje numer"<<endl;
cin >> x;
square( x ) ;
square( x+1) ;
square( 52) ;
system ("pause");
return 0;
}
void square( int y )
{
int k = y * y;
cout<<"Katrori ="<< k<<endl;
}
6.4 .Funksionet me argumenta qe kthejne vlere. fq 211
Nese vlera e llogaritur nga nje funksion nuk nevojitet vetem per t'u afishuar por me te duhet te kryhen veprime te metejshme atehere funsioni duhet t'i ktheje vlere funksionit therrites.
Nje funksion qe kthen vlere duhet te kete patjeter ne rreshtin e fundit nje instruksion return vlera;
ku vlera mund te jete:
- konstante
- variabel
- shprehje
Tipi i kthimit te nje funksioni qe kthen vlere duhet te korrespondoje me tipin e vleres qe ai kthen.
Si thirret nje funksion qe kthen vlere?
Thirrja e ketyre funksioneve perfaqeson vleren e kthyer, e cila:
- mund te afishohet
- mund t'i jepet nje variabli
- mund te perdoret ne kushte te ndryshme logjike ose veprime aritmetike.
Rregulla te pergjithshme per funksionet:
- Nese nuk vendosim tipin e kthimit ne deklarimin(koken) e nje funksioni kemi gabim sintakse.
- Nese nuk vendoset instruksioni return ne nje funksion qe kthen vlere mund te kemi gabim logjik .
- Vendosja e instruksionit return vlera; ne nje funksion qe nuk kthen vlere eshte gabim sintakse.
- Deklarimi i parametrave (argumentave) ne formen(int a,b) eshte gabim sintakse. Tipi duhet vendosur per cdo argument.
- Vendosja e ; ne fund te deklarimit te funksionit eshte gabim sintakse.
- Ri-deklarimi i nje variabli lokal i cili eshte deklaruar nje here si argument eshte gabim sintakse.
- Ndertimi i trupit te nje funksioni brenda nje funksioni tjeter eshte gabim sintakse.
- Tipet dhe rendi i argumentave duhet te korrespondojne tek prototipi , thirrja dhe deklarimi i funksionit perndryshe kemi gabim.
- Nese ne ndonje rast duhet te dilet nga nje funksion qe nuk kthen vlere shkruajme instruksionin: return;
- Nese prototipi i nje funksioni F1() vendoset brenda nje funksioni tjeter F2() atehere funksioni F1() do te njihet vetem nga funksioni F2() dhe jo nga funksionet e tjere te programit.
// Shembull: katrori i nje numri duke perdorur funksionet qe kthejne vlere.
#include <iostream>
using namespace std;
int square( int ); // function prototype
int main()
{
int x=5;int y;
cout<<"Jepni nje numer"<<endl;
cin >> x;
y=square( x )+2*x+3;
cout<<"y = "<<y<<endl;
system ("pause");
return 0;
}
// Funksion me argument qe kthen vlere
int square( int y )
{
int k = y *y;
return k;
}
Tipet e te dhenave
EMRI RANGU I VLERAVE
int System dependent
unsigned int System dependent
__int8 –128 to 127
__int16 –32,768 to 32,767
__int32 –2,147,483,648 to 2,147,483,647
__int64 –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
char –128 to 127
unsigned char 0 to 255
short –32,768 to 32,767
unsigned short 0 to 65,535
long –2,147,483,648 to 2,147,483,647
unsigned long 0 to 4,294,967,295
enum Same as int
float 3.4E +/- 38 (7 digits)
double 1.7E +/- 308 (15 digits)
long double 1.2E +/ - 4932 (19