Universiteti Shtetëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM.

Slides:



Advertisements
Similar presentations
MENDO! Mendo para se të bësh gjynah ndaj Krijuesit, Furnizuesit, ndaj Atij që të dhuroi çdo të mirë. Këto të mira janë aq të shumta, saqë nëse mundoheni.
Advertisements

Rruga për ahiret nuk kalohet me këmbë, por me zemër.
Algjebra Relacionale & SQL
School of EECS, Peking University
Lenda : Kontabiliteti Financiar
Proceset Multiprogramim me timesharing->pseudoparalelizem ≠ nga multiprocesori(sharojne nje RAM) Procesi ndryshon nga Programi sepse ai eshte aktiv. (PC,regjistrat,variablat,
Teknologji Informative
Leksioni nr 2 Data Base.
JavaScript Leksion 4.
Arkitektura baze e aplikacioneve web Hyrje ne PHP
Universiteti i Prizrenit
Variablat Konstantet Strukturat e kontrollit Ciklet Tabelat (Arrays)
Universiteti Shtetëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM.
Universiteti Shtetëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM.
TIK 12 – Prof. Blerand Koshi
Sherbimet e fileve dhe printimit
Marrja e te inputit te perdoruesit
Algoritmet e Renditjes
Universiteti i Prizrenit
Android.
Funksionet ne PHP PhD, MS, Under Leksion 8.
Bazat e te dhenave Elemente kryesore te MySQL-se
Universiteti Shtetëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM.
LEKSION 11 Database-t Object-Oriented(te orientuar objekt)
Formatet e skedareve grafike dhe teknikat e kompresimit
Table 10.1 Capital Expenditure Data for Bennett Company
Elementet e gjuhës C++.
LEKSION 12 XML (Extensible Markup Language) Skema XML
Universiteti Shtetëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM.
Të llogaritet shuma e elementeve të vektorit.
JavaScript Leksion 8.
MS POWERPOINT PREZANTIMET.
Elementet e gjuhës C++.
Universiteti AAB Programi: PSIKOLOGJI STATISTIKE T-testi Për grupet e pavarura Për grupet e varura Dr.sc. Merita Shala.
5. Unazat.
Tema: Viruset dhe Antiviruset Sh. m
Algoritmet e Sortimit.
6. Unaza While dhe Do While
Menaxhimi i perdoruesve dhe grupeve
F U N K S I O N E T.
SH-M-U-2 Kl.9/4 Valon Ibishi Lënda:Informatikë Tema:Programi Excel Arsimtar:Muhamer Ujkani Vushtrri,2014.
LEKSION 9 Dizenjimi i database-it relacional.
Agregatët monetarë Ekzistojnë agregatë monetarë të ndryshëm që përfaqësojnë masa sasiore të ofertës agregate të parasë në një vend. Agregatët monetarë.
USHTRIME MSc. Fisnik Morina PhD (c)
Punuar nga: Rilind Ademi
Variablat dhe Funksionet
I Love my family!!!.
Shkencat kompjuterike I
Perpunimi i stringjeve
Universiteti Shtetëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM.
SH.M.U 2 Vushtrri Sistemet operative te Winows XP Muhamer Ujkani
Punuar nga : Granit Bajrami
Format ne HTML/XHTML Leksion Jan-19.
Targetimi i elementeve specifike
E Drejta e Procedures Penale
Degëzimet.
Puna me fajlla ne C++ Dr. Fisnik Dalipi.
Internet Ligjerata 8 Dr. Fisnik Dalipi.
Formular Projekti Forumi i Mesuesit Novator, Shkurt 2014 Text
TIK 12 – Prof. Blerand Koshi
Programim I Degëzimet Gazmend Xhaferi.
TIK 11 – Prof. Blerand Koshi
Variablat dhe konstantet
Degëzimet.
Microsoft office excel. Punoi:rron prokuplA Lenda:informatike arsimtar:muhamer ujkani tema:perdorimi I excel-it Klasa:9/5.
Lutje per Diten Evropiane kunder Trafikimit 18 Tetor Zot i perjetshem,
Unazat FOR.
Unazat while.
SMART TOURISM ENHACEMENT PROJECT
Operatorët.
Presentation transcript:

Universiteti Shtetëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM I Ligjerata 6 fisnik.dalipi@unite.edu.mk fisnikd.wordpress.com

Funksionet Duke perdorur funksionet programi ndahet ne module te vogla dhe eshte me e thjeshte te programosh me to. Nje funksion eshte nje bllok instruksionesh qe ekzekutohet kur theritet nga nje pike e programit. Ka kete sintakse deklarimi i nje funksioni tipi emri ( arg1, argt2, ...) bllok instruksionesh ku:   · tipi eshte tipi i te dhenave qe kthen funksioni.   · emri eshte emri i funksionit qe perdoret edhe per ta theritur funksionin .   · arg cdo argument perbehet nga tipe te dhenash shoqeruar nga identifikuesit. Keto bejne te mundur qe funksionit ti kalohen parametra ne momentin kur thirren per ekzekutim. Parametrat ndahen me presje.   · bllok instruksionesh eshte trupi i funksionit qe kufizohet nga { }. Mr. Fisnik Dalipi

Funksionet Output: Rezultati eshte 8 // funksion shembull #include <iostream > int shuma (int a, int b) { int r; r=a+b; return (r); } int main () int z; z = shuma (5,3); cout << " Rezultati eshte" << z; return 0; Output: Rezultati eshte 8 Pra fuksioni thirret sipas te njejtes menyre si eshte deklaruar:   int shuma(int a,int b) | | | | z = shuma(5, 3); Mr. Fisnik Dalipi

Funksionet Ne momentin qe funksioni thirret prej main, kontrolli humbet nga main dhe kalon te funksioni shuma. Vlerat e te dy parametrave (5 dhe 3) kopjohen ne variablat lokale int a dhe int b brenda funksionit. Funksioni shuma deklaron nje variabel (int r;), qe mer vleren e a+b. Meqe vlerat e parametrave a dhe b jane 5 dhe 3 perkatesisht, rezultati eshte 8 Kodi: return (r); Finalizon funksionin shuma, dhe kthen kontrollin mbrapsht te funksioni qe e thirri (main) qe vazhdon egzekutimin ne te njejtin pike ku ishte shkeputur prej funksionit shuma, gjithashtu kthen vleren 8, vlere qe i jepet variablit z. Mr. Fisnik Dalipi

Funksione pa tip_kthimi (void) Tipi qe paraprin ne deklarimin e variablit duhet te jete i njejte me tipin e kthimit te instruksioni return. Nese nuk duam qe funksioni te kthej nje vlere atehere perdoret fjala kyce void. Kjo perdoret edhe kur funksioni nuk mer parametra. Ne C++ mund edhe te mos e perdoresh void ne rastin kur nuk mer parametra. Por sa here te thirret funksioni perdoret emri bashke me kllapat qe jane te detyrueshme te shkruhen, sepse tregon qe eshte thirje funksioni dhe jo variabel. Mr. Fisnik Dalipi

Per funksionet qe afishojne mesazhe normalisht ska nevoje per tip kthimi. Per shembull: #include <iostream.h>  void hello (void) { cout << “Tung nga Interneti!"; }  int main () hello (); return 0; Mr. Fisnik Dalipi

Funksionet – sipas references Deri tani, parametrat i kalohen fuksionit me vlere. Kjo dmth se kur therasim nje funksion me parametra I kemi kaluar funksionit vetem vlerat e variablave dhe jo vete variablat. Per shembull: int x=5, y=3, z; z = shuma ( x , y ); Ne kete rast thiret funksioni duke i kaluar vlerat x dhe y, dmth 5 dhe 3 dhe jo vete variablat. Ne kete menyre kur funksioni shuma thirret vlerat e variablave te tij a dhe b behen 5 dhe 3 por cdo modifikim i a apo b brenda funksionit shuma nuk do te kene efekt te x dhe y jashte tij, sepse variablat x dhe y kaluan thjesht vlerat e tyre perkatese Mr. Fisnik Dalipi

Funksionet - kalimi me reference Por mund te lind nevoja te manipulojme brenda funksionit vlera te variablave external (jashtem). Per keto raste perdoren argumentet qe kalojne me reference, si vijon: // kalimi me reference #include <iostream > void dubliko (int& a, int& b, int& c) { a*=2; b*=2; c*=2; } int main () int x=1, y=3, z=7; dubliko (x, y, z); cout << "x=" << x << ", y=" << y << ", z=" << z; return 0; Dalja: x=2, y=6, z=14 Mr. Fisnik Dalipi

Funksionet - kalimi me reference Nese verejme deklarimin e funksionit dubliko tipi i cdo argumenti ndiqet nga nje ampersand (&), qe tregon se variabli do te kalohet me reference dhe jo me vlere si zakonisht. Kur i kalon parametrat me reference, po kalojme vete variablin dhe cdo modifikim qe bejme brenda funksionit per parametrat, do te kene efekt jashte tij. Mr. Fisnik Dalipi

Funksionet - kalimi me reference Nese e deklaronim funksionin si: void dubliko (int a, int b, int c) do te kalonin vetem vlerat dhe variablat nuk do te ishin te modifikuar ne main Ky tip deklarimi "me reference" duke perdorur (&) perdoret vetem te C++. Ne C perdoren pointerat per te bere dicka ekuvalente Mr. Fisnik Dalipi

// me shume se nje vlere kthimi #include <iostream.h> Shembull: // me shume se nje vlere kthimi #include <iostream.h>  void prevnext (int x, int& prev, int& next) { prev = x-1; next = x+1; }  int main () int x=100, y, z; prevnext (x, y, z); cout << "Previous=" << y << ", Next=" << z; return 0; } Dalja :Previous=99, Next=101 Mr. Fisnik Dalipi

Vlerat default te argumenteve Kur deklarojme nje funksion mund tu japim vlera default (paradefinuar) argumentave te tij. Kjo vlere do te perdoret nese parameteri eshte bosh ne te majte kur thiret funksioni. Per te bere kete thjesht i jep nje vlere argumentave te deklarimi i funksioneve. Nese vlera per nje parameter nuk kalohet kur funksioni thiret perdoret vlera defoult, por nese vlera specifikohet atehere vlera default nuk meret parasysh:   // vlera default (e paradefinuar) #include <iostream.h>  int divide (int a, int b=2) { int r; r=a/b; return (r); }  int main () cout << divide (12); cout << endl; cout << divide (20,4); return 0; Rezultati: 6 5 Mr. Fisnik Dalipi

Vlerat default te argumenteve Si shihet ka dy thirje te funksionit divide. E para: divide (12) kemi specifikuar vetem nje argument , por funksioni kerkon dy. Keshtu divide mer si vlere 2 per parametrin e dyte . Rezultati i kesaj thirrje te funksionit eshte 6 nga (12/2). Ne thirrjen e dyte: divide (20,4) dhe rezultati eshte 5 nga (20/4). Mr. Fisnik Dalipi

Funksionet Overloaded Dy funksone te ndryshem mund te kene te njejtin emer nese prototipet e argumentave te tyre jane te ndryshem, kjo dmth qe mund tu japim te njejtin emer disa funksioneve nese ata kane ose numer te ndryshem argumentash ose tipe te ndryshem argumentash. Per shembull: Mr. Fisnik Dalipi

Funksionet overloaded // funksione overloaded #include <iostream.h>  int divide (int a, int b) { return (a/b); }  float divide (float a, float b) int main () { int x=5,y=2; float n=5.0,m=2.0; cout << divide (x,y); cout << "\n"; cout << divide (n,m); return 0; } Rezultati: 2 2.5 Mr. Fisnik Dalipi

Funksionet overloaded Ne kete rast ne kemi percaktuar dy funksione me me te njejtin emer, por njeri pret argumenta te tipit int dhe tjetri te tipit float. Kompilatori e di cilin te theras ne cdo rast duke ekzaminuar tipet, kur funksioni thirret. Nese thirret me dy ints si argument therret funksionin qe ka dy int ne prototip , nese thirret me dy float therret funksionin tjeter. Per thjeshtesi, kemi shkruar te njejtin kod ne trupin e funksioneve. Mund te ndertojme dy funksione me te njejtin emer por me sjellje komplet te ndryshme. Mr. Fisnik Dalipi

Rekursiviteti Rekursiviti eshte procesi, kur nje funksion therret vetveten . Per shembull: n! = n * (n-1) * (n-2) * (n-3) ... * 1 E ilustrojme rekursivitetin me nje shembull si vijon: Mr. Fisnik Dalipi

Rekursiviteti - shembull // factorial calculator #include <iostream.h>  long faktoriel (long a) { if (a > 1) return (a * faktoriel (a-1)); else return (1); } int main () { long i; cout << “Jep nje numer: "; cin >> i; cout << i<< "!" << " = " << faktoriel (i); return 0; } Jep nje numer:9 9!=362880 Mr. Fisnik Dalipi

Prototipi i funksioneve Deri tani, keni percaktuar funksionet perpara shfaqjes se pare te thirjes per to, qe zakonisht ishte ne main, duke lene funksionin main ne fund. Nese perserisim shembujt duke vendosur funksionin main para funksioneve te tjera, do te shihnim nje gabim. Arsyeja eshte se per te qene e mundur thirrja e nje funksioni, duhet te deklarohet paraprakisht ky si funksion Por ka nje alternative per te shmangur shkrimin e te gjithe funksioneve para main. Kjo realizohet me ane te prototipit. Qe dmth te besh nje deklarim paraprak per funksionin. Kompilatori duhet te dije argumentat dhe tipin e kthimit. Mr. Fisnik Dalipi

Prototipi i funksioneve Sintaksa eshte: type name ( argument_type1, argument_type2, ...); Eshte identik me rrjeshtin e pare te deklarimit te funksionit pervec : Nuk permban {} Nuk ka ne fund (;). Te argumentat eshte e mjaftueshme te shtypen tipet e tyre. Per shembull: Mr. Fisnik Dalipi

cout << “Numri eshte tek.\n"; else cift (a); } void cift (int a) // prototipet #include <iostream.h> void tek (int a); void cift (int a);  int main () { int i; do { cout << “Jepe numrin(0 per dalje):"; cin >> i; tek (i); } while (i!=0); return 0; void tek (int a) { if ((a%2)!=0) cout << “Numri eshte tek.\n"; else cift (a); }  void cift (int a) if ((a%2)==0) cout << “Numri eshte cift.\n"; else tek (a); } Jepe nje numer(0 per dalje):9 Numri eshte tek. Jepe nje numer(0 per dalje):112 Numri eshte cift.

Prototipi i funksioneve Ky shembull eshte ndertuar ne menyren me te gjate per te shpjeguar prototipet. Prototipet e funksioneve jane: void tek (int a); void cift (int a); qe mundeson qe funksionet te perdoren para se te deklarohen plotesisht, per shembull ne main. Shume programues rekomandojne qe per cdo funksion duhet te shkruajme prototipin. Egzistenca e tyre ne te njejtin vend lehteson pune gjate programimit dhe gjithashtu lehteson procesin e krijimit te ‘header file’. Mr. Fisnik Dalipi

PYETJE?