1 / 32

F U N K S I O N E T

F U N K S I O N E T. Funksion (nënprogram) – bashkësi e komandave të caktuara që mund të përsëritet më shumë herë brenda programit. Funksion me rezultat dalës dhe me parametra formalë. Funksion me rezultat dalës dhe pa parametra formalë. Funksion pa rezultat dalës dhe me parametra formalë.

jake
Download Presentation

F U N K S I O N E T

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. F U N K S I O N E T

  2. Funksion (nënprogram) – bashkësi e komandave të caktuara që mund të përsëritet më shumë herë brenda programit. Funksion me rezultat dalës dhe me parametra formalë. Funksion me rezultat dalës dhe pa parametra formalë. Funksion pa rezultat dalës dhe me parametra formalë. Funksion pa nuk ka rezultat dalës dhe pa parametra formalë. 1. Funksion që ka rezultat dalës dhe ka parametra formalë tipi emri(t1 f1, t2 f2,...,tn fn){ x; return r;} tipi – tipi i rezultatit të funksionit. emri – emri i funksionit (identifikator). f1, f2, . . . , fn – parametra formalë. t1, t2, . . . , tn – tipet e parametrave formalë. x – komanda të ndryshme brenda funksionit. r – rezultati të cilin e jep funksioni.

  3. Thirrja e funksionit • Prototipi i funksionit – deklarohet në fillim të programit (përfundon me ;) tipi emri(t1 f1, t2 f2,...,tn fn); tipi emri(t1, t2,...,tn); emri(a1, a2,...,an); a1, a2, . . . , an – parametra aktualë (argumente).Vlerat e tyre u jipen parametrave formalë: f1 = a1, f2 = a2, . . . , fn = an • Parametrat formalë dhe ato aktualë duhet të përputhen sipas: • numrit – sa ka par. formalë aq duhet të ketë par. aktualë. • tipit – par. formal dhe par.aktual duhet ta kenë tipin e njëjtë. • radhës së shkruarjes – parametrit formal në pozitë të caktuar duhet t’i përgjigjet parametër aktual me pozitë të njëjtë.

  4. Të llogaritet sipërfaqja e katërkëndëshit me brinjët a dhe b. a) Pa funksion int main() { float a,b; double S; cout << "Brinjet a b: "; cin >> a >> b; S=a*b; cout<<"S=" << S << endl; return 0; } b)Me funksion #include <iostream> using namespace std; double siperfaqe(float x, float y); int main() { float a,b; double S; cout << "Brinjet a b: "; cin >> a >> b; S=siperfaqe(a,b); cout<<"S=" << S << endl; return 0; } double siperfaqe(float x, float y) { return x*y; }

  5. Funksioni siperfaqe mund të thirret edhe me: s=Siperfaqe(4,3); Vlera numerike: Shprehje: s=Siperfaqe(a+1,b+2); Variabla ndihmëse (lokale) – në funksion mund të përdoren më shumë variabla ndihmëse që deklarohen dhe inicializohen (ose e marrin vlerën) brenda funksionit. double Siperfaqe(float x,float y){ double z; z=x*y; return z; } Parametrat formalë të funksionit mund të emërtohen me emrat e parametrave aktualë (nuk preferohet!) double Siperfaqe(float a,float b){ double z; z=a*b; return z; }

  6. Funksion me më shumë komanda return Të llogaritet funksioni y. Vlera a është konstantë, ndërsa x lexohet nga tastiera a) Me një komandë return double vleraY(float x,float a){ float y if(x<=a) y=2*x+1; else y=3*x-4; return y; } #include <iostream>using namespace std;double vleraY(float x,float a); int main( ){ const float a=4.5; float x,y; cout<<"\nBrinja x:"; cin>>x; y = vleraY(x,a); cout<<"\nvlera y=“<<y<<endl; return 0; } b) Me dy komanda return double vleraY(float x,float a){ if(x<=a) return 2*x+1; else return 3*x-4; }

  7. Funksion me llogaritje komplekse Të llogaritet prodhimi i numrave mes m dhe n me përdorim të funksionit. b) Me funksion #include <iostream>using namespace std;double prodhimi(int m,int n);int main( ){ double p; int m,n; cout<<"\n m:"; cin>>m; cout<<"\n n:"; cin>>n; p=prodhimi(m,n); cout <<"\n p= “<<p<<endl; return 0; } double prodhimi(int m,int n){ double p; int i; p=1; for(i=m; i<=n; i++) p=p*i; return p; } a) Pa funksion #include <iostream>using namespace std;int main( ){ double p; int i,m,n; cout<<"\n m:"; cin>>m; cout<<"\n n:"; cin>>n; p=1; for(i=m; i<=n; i++) p=p*i; cout <<"\n p= “<<p<<endl; return 0; }

  8. Funksioni mund të thirret direkt në komandën për shtypje #include <iostream>using namespace std;double prodhimi(int m,int n);int main( ){ int m,n; cout<<"\n m:"; cin>>m; cout<<"\n n:"; cin>>n; cout <<"\n p= “<< prodhimi(m,n)<<endl; return 0; }double prodhimi(int m,int n){ double p; int i; p=1; for(i=m; i<=n; i++) p=p*i; return p; }

  9. Funksioni mund të thirret në unazë Të përpilohet tabela e faktorielëve të numrave natyrorë mes 1 dhe k (lexohet nga tastiera). Faktorieli i numrit n: Për shembull: k=8 Dalje: k:8 x F---------------------- 1 1 2 2 3 6 4 24 5 120 6 720 7 5040 8 40320 ---------------------- ...

  10. a)Zgjidhje me përdorim të funksionit prodhimi. #include <iostream>using namespace std;double prodhimi(int m,int n);int main( ){ double F; int k,x; char h[]=“-------------------” cout<<"\n k:"; cin>>k; cout<<"\n x F\n”<<h<<endl; for(x=1; x<=k; x++){F=prodhimi(1,x); cout<<setw(5)<<x<<setw(10)<<F<<endl; } cout<<h<<endl; return 0; }double prodhimi(int m,int n){ double p; int i; p=1; for(i=m; i<=n; i++) p=p*i; return p; }

  11. a)Zgjidhje me përdorim të funksionit fakt. #include <iostream>using namespace std;double fakt(int m);int main( ){ double F; int k,x; char h[]=“-------------------” cout<<"\n k:"; cin>>k; cout<<"\n x F\n”<<h<<endl; for(x=1; x<=k; x++){F=fakt(x); cout<<setw(5)<<x<<setw(10)<<F<<endl; } cout<<h<<endl; return 0; } double fakt(int m){ double F; int i; for(i=1; i<=m; i++) F=F*i; return F; }

  12. 2. Funksion me rezultat dalës dhe pa parametra formal tipi emri(){ x;return r;} Dalje: 13 14 15 16 17 18 19 20 21 22 #include <iostream>using namespace std;int ora();int main( ){ int i; for(i=1; i<=10; i++){ cout << i+ora()<< endl;} return 0; } int ora(){return 12; }

  13. 3. Funksion pa rezultat dalës dhe me parametra formal void emri(t1 f1, t2 f2,...,tn fn){ x;return;} Dalje: Koha e bukurKoha e bukurKoha e bukurKoha e bukurKoha e bukurKoha e bukurKoha e bukurKoha e bukurKoha e bukurKoha e bukur #include <iostream>using namespace std;void koha(int m,int n);int main( ){koha(1,10); return 0; } void koha(int m,int n){ int i; for(i=m; i<=n; i++) cout<<”Koha e bukur\n”; return; }

  14. 4. Funksion pa rezultat dalës dhe pa parametra formal void emri(){ x;return;} Dalje: Libri dhe lapsi Libri dhe lapsi Libri dhe lapsi Libri dhe lapsi Libri dhe lapsi Libri dhe lapsi Libri dhe lapsi Libri dhe lapsi Libri dhe lapsi Libri dhe lapsi #include <iostream>using namespace std;void libri();int main( ){libri();return 0; } void libri(){ int i; for(i=1; i<=10; i++) cout<<setw(40-2*i)<<”Libri dhe lapsi\n”; return; }

  15. Më shumë thirrje të një funksioni Të llogaritet vlera e funksionit(x dhe y lexohen nga tastiera) b)Me funksion #include <iostream>using namespace std;double fakt(int m);int main{ double a,b,c,x,y; cout<<"\n x:"; cin>>x; cout<<"\n n:"; cin>>n; a=fakt(n+1); b=fakt(2*n); c=fakt(n); y=3x+a+b+c/x;cout<<"\n y=“<<y<<endl; return 0; } a)Pa funksion #include <iostream>using namespace std;int main( ){ double a,b,c,x,y; int i,n; cout<<"\n x:"; cin>>x; cout<<"\n n:"; cin>>n; a=1; for(i=1; i<=(n+1); i++) a=a*i; b=1; for(i=1; i<=(2*n); i++) b=b*i; c=1; for(i=1; i<=n); i++) c=c*i; y=3x+a+b+c/x;cout<<"\n y=“<<y<<endl; return 0; } double fakt(int m){ double F; int i; for(i=1; i<=m; i++) F=F*i; return F; }

  16. b)Me funksion pa përdorim të variablave ndihmëse #include <iostream>using namespace std;double fakt(int m);int main(){ double x,y; cout<<"\n x:"; cin>>x; cout<<"\n n:"; cin>>n; y=3x+fakt(n+1)+fakt(2*n)+fakt(n)/x;cout<<"\n y=“<<y<<endl; return 0; } double fakt(int m){ double F; int i; for(i=1; i<=m; i++) F=F*i; return F; }

  17. Të llogaritet vlera e funksionit h duke shfrytëzuar funksion për llogaritje të shumës a)Pa funksion #include <iostream>using namespace std;int main(){ float x; double s1,s2,h; cout<<"\n x:"; cin>>x; cout<<"\n n:"; cin>>n; s1=0; for(i=2; i<=(n+1); i++) s1=s1+(2i+3); s2=0; for(i=1; i<=n; i++) s2=s2+(i-5); h=x-2*s1+4*s2;cout<<"\n h=“<<h<<endl; return 0; }

  18. m n a b m=2 n=n+1 a=2 b=3 m=1 n=n a=1 b=-5 a)Me funksion #include <iostream>double shuma(int m,int n,float a,float b);using namespace std;int main(){ float x; double s1,s2,h; cout<<"\n x:"; cin>>x; cout<<"\n n:"; cin>>n; h=x-2*shuma(2,n+1,2,3)+4*shuma(1,n,1,-5);cout<<"\n h=“<<h<<endl; return 0; }

  19. double shuma(int m,int n,float a,float b){ float s; int i; s=0; for(i=m; i<=n; i++) s=s+(a*i+b); return s; }

  20. Thirrje të më shumë funksioneve në program Të llogariten vlerat e shprehjeve (x dhe n lexohen nga tastiera): a)Me funksion #include <iostream>using namespace std;double fakt(int m);double shuma(int m,float x);int main(){double x,g,h; int n; cout<<"\n x:"; cin>>x; cout<<"\n n:"; cin>>n; g=x/3+fakt(2*n+1); h=x+fakt(n)/2-3*shuma(n+1,4);cout<<"\n g=“<<g<<endl; cout<<"\n h=“<<h<<endl; return 0; }

  21. double fakt(int m){ double F; int i; for(i=1; i<=m; i++) F=F*i; return F; } double shuma(int m,float k){ double s; int i; s=0; for(i=1; i<=m; i++) s=s+(k*i); return s; }

  22. VEKTORËT NË FUNKSIONE Të llogaritet shuma e elementeve të vektorit. Dalje: i A[i] ---------------------- 0 17 1 4 2 12 3 9 4 3 ---------------------- Shuma: 45 #include <iostream>#include <iomanip> using namespace std;int vektorSH(int X[],int n);int main( ){ const int m=5; int i,g,A[m]={17,4,12,9,3}; char t[]=“-------------------” cout << "\n i A[i]\n“ << t << endl; for(i=0; i<m; i++) cout << setw(5) << i << setw(10) << A[i] << endl; g=vektorSH(A,m); cout << t << "\n Shuma: “ << g << endl; return 0; } int vektorSH(int X[],int n){ int i,s; s=0; for(i=0; i<n; i++) s+=X[i]; return s; }

  23. Të caktohet anëtari maksimal i vektorit. #include <iostream>#include <iomanip> using namespace std;int max(int A[],int m);int main( ){ const int m=8; int x,A[m]={4,6,9,3,15,7,5,8}; x=max(A,m); cout <<“Anëtari më i madh x=“ << x << endl; return 0; } double max(int A[],int m){ int i,x; x=A[0]; for(i=1; i<m; i++) if(A[i]>x) x=A[i]; return x; } Dalje:Anëtari më i madh: x=15 x=max(A,4); x=?

  24. Të numërohen anëtarët pozitiv të vektorit që janë më të vegjël se numri z. #include <iostream>#include <iomanip> using namespace std;int numriP(int R[],int m,float z);int main( ){ const int m=8; int x,R[m]={4,-6,9,-3,15,7,5,8}; cout << “Vlera z:”; cin >> z; g=numriP(R,m,z); cout <<“\nNumri i kërkuar g=“ << g << endl; return 0; } double numriP(int R[],int m, float z){ int i,g; g=0; for(i=0; i<m; i++) if((R[i]>0) && (R[i]<z)) g++; return g; } Dalje (z=8):Numri i kërkuar g=3

  25. Të radhiten sipas madhësisë anëtarët e vektorit, me zmadhim të vlerave. #include <iostream>#include <iomanip> using namespace std;void radha(int A[],int m);int main( ){ const int m=5; int i,A[m]={15,9,8,7,5};radha(A,m); cout << “\nVektori i sortuar \n” << “A={“; for(i=0; i<m; i++) cout << setw(4) << A[i]; cout << “ }\n“; return 0; } void radha(int A[],int m){ int i,j,x; for(i=0; i<m-1; i++) for(j=i+1; j<m; j++) if(A[i]>A[j]){ x=A[i]; A[i]=A[j]; A[j]=x; } return; } Dalje:Vektori i sortuarA={ 5 7 8 9 15 }

  26. PËRDORIMI I DISA VEKTORËVE NË FUNKSION Të llogaritet vlera e funksionit #include <iostream>#include <iomanip> using namespace std;float shumaV(int A[],int B[],int n);int main( ){ const int n=7; float s,x,z; int A[n]={3,6,9,-2,-7,8,5}; int B[n]={2,7,-4,5,8,-1,3}; s=shumaV(A,B,n);z=3*x+2*s; cout << "\nz=“ << z << endl; return 0; }float shumaV(int A[],int B[],int n){ int i; float s=0; for(i=0; i<n; i++) s+=(3*A[i]+B[i]*B[i]); return s; } Dalje: z=-186.9

  27. FORMIMI I VEKTORËVE NË FUNKSIONE Të formohet vektori sipas shprehjes: #include <iostream>#include <iomanip> using namespace std;void formimi(int X[],int n);int main( ){ const int m=5; int i,A[m]; formimi(A,m);cout << "\nVektori i formuar\n“; for(i=0; i<n; i++) cout << setw(4) << A[i];cout << “ }\n“; return 0; }void formimi(int X[],int n){ int i;for(i=0; i<n; i++) X[i]=3+4*i; return; } Dalje: Vektori i formuarA={ 3 7 11 15 19 }

  28. Të formohet vektori sipas shprehjes:(x lexohet nga tastiera) #include <iostream>#include <iomanip> using namespace std;void vektoriZ(float Z[],int n,float x);int main( ){ const int n=5; int i, float x,Z[n];cout << "\nx=“; cin >> x; vektori(Z,n,x);cout << "\nVektori i formuar\n“; for(i=0; i<n; i++) cout << setw(7) << Z[i];cout << “ }\n“; return 0; } void vektoriZ(float Z[],int n,float x) { int i,k; float s; for(i=0; i<n; i++){ s=0; for(k=0; k<=i; k++) s+=(k+3); Z[i]=2*x+4*s; } return; } Dalje:x=5.8 Vektori i formuarA={ 23.6 39.6 59.6 83.6 111.6 }

  29. SHFRYTËZIMI I DISA VEKTORËVE NË FUNKSION PËR FORMIM TË VEKTORIT Të formohet vektori sipas shprehjes:(d lexohet nga tastiera) #include <iostream>#include <iomanip> using namespace std;void formimiZ(int X[],int Y[], double Z[], float d, int m);int main( ){ const int m=8; int i; float d; int X[m]={6,3,-2,5,4,9,1,-7}; int Y[m]={-2,1,5,8,7,3,4,6}; double Z[m];cout << "\nd=“; cin >> d; formimiZ(X,Y,Z,d,m);cout << "\nVektori i formuar\n“; for(i=0; i<n; i++) cout << setw(5) << Z[i];cout << “ }\n“; return 0; } void formimiZ(int X[],int Y[], double Z[], float d, int m){int i,k; int i; for(i=0; i<m; i++) if(X[i]<Y[i]) Z[i]=X[i]+d; else Z[i]=X[i]-2*Y[i]; return; } Dalje:d=5 Vektori i formuarA={ 10 1 -1 20 17 3 8 -16 }

  30. MATRICAT NË FUNKSIONE - Numri i kolonave duhet të caktohet në prototipin dhe vetë funksionin Të llogaritet shuma e elementeve të matricës. #include <iostream>#include <iomanip> const int n=3;double matrica(int X[][n],int m);using namespace std;int main( ){ const int m=4; int i,j; double r; int A[m][n]={{5,8,2} {7,3,9} {6,1,5} {3,2,4}}; r=matrica(A,m); cout << "\nShuma=“ << r << endl; return 0; } double matrica(int X[][n],int m){ int i,j; double s=0; for(i=0; i<m; i++) for(j=0; i<n; j++) s+=X[i][j]; return s; } Dalje:Shuma=55

  31. FORMIMI I MATRICAVE NË FUNKSIONE Të formohet matrica sipas shprehjes: #include <iostream>#include <iomanip>using namespace std;const int n=4;void matricaZ(int Z[][n],int m);int main( ){ const int m=5; int i,j; int Z[m][n]; matricaZ(z,m);for(i=0; i<m; i++){ for(j=0; i<n; j++) cout << setw(5) << Z[i][j]; cout << endl; } return 0; } void matricaZ(int Z[][n],int m){ int i,j; for(i=0; i<m; i++) for(j=0; i<n; j++) if(i<j) Z[i][j]=2*i+j; else if (i==j) Z[i][j]=0; else Z[i][j]=i+3*j; return; } Dalje:0 1 2 31 0 4 52 5 0 7 3 6 9 04 7 10 13

  32. Të gjinden anëtarët maksimal të rreshtave të matricës #include <iostream>#include <iomanip>using namespace std;const int n=4;int max(int A[][n],int i,int m);int main( ){ const int m=5; int i,j,max; int A[m][n]={{5,2,14,8} {7,9,1,-6} {8,3,15,4} {12,6,5,-1} {6,4,-5,2}}; for(i=0; i<m; i++){ for(j=0; i<n; j++) cout << setw(5) << A[i][j];x=max(A,i,m); cout << setw(8) << x << endl; } return 0; } int max(int A[][n],int i,int m){ int j,max; x=A[i][0]; for(j=0; i<n; j++) if(A[i][j]>max) max=A[i][j]; return max; } Dalje: 5 2 14 8 14 7 9 1 -6 9 8 3 15 4 1512 6 5 -1 12 6 4 -5 2 6

More Related