Upload
buidien
View
261
Download
7
Embed Size (px)
Citation preview
Haxhi Lajqi
Prishtinë,
2011
Algoritmet
@Lajqi 2011
Definicioni i algoritmit: Grumbulli i veprimeve me një renditje të caktuar , të cilat merren për
zgjidhjen e një problemi に quajmë algoritëm.
Grupimi i algoritmeve: Algoritme logjike
Mbeshteten ne operacione dhe konkluzione logjike.
Algoritme numerike
Shfrytezojne shprehje dhe operacione matematikore.
10-11 Tetor 2011, FIEK, Prishtinë
1
Algoritme logjike
@Lajqi 2011
Si definohet një algoritëm logjik?
Shembulli 1: Algoritmi logjik për kalimin e udhëkryqit
Nëse në rrugëkryq është vendosur semafori dhe ai punon, rruga mund të
kalohet në vendëkalim pasi të paraqitet ngjyra e gjelbër. Nëse në rrugëkryq
nuk ka semafor, ose ai nuk punon, rruga mund të kalohet në vendkalim kur
nuk ka automjete, duke shikuar majtas dhe djathtas.
10-11 Tetor 2011, FIEK, Prishtinë
2
Algoritmet numerike
10-11 Tetor 2011, FIEK, Prishtinë @Lajqi 2011
Për probleme të komplikuara është e pamundur të kuptohet paraqitja
analitike.
Në praktikë zakonisht përdoret paraqitja e algoritmeve e shprehur
përmes një numri hapash të cilët kryhen sipas një numri hapash të
fiksuar.
3
Paraqitja numerike për shembullin 1
10-11 Tetor 2011, FIEK, Prishtinë @Lajqi 2011
1. Fillimi
2. A ka semafor?
Nëse JO, hapi i 6.
3. A punon semafori?
Nëse JO, hapi i 6.
4. A është paraqitur ngjyra e gjelbër?
Nëse PO, hapi i 9.
5. Duhet pritur. Hapi i 4.
6. Shiko majtas e djathtas
7. A ka automjete?
Nëse JO, hapi i 9.
8. Duhet pritur. Hapi i 6.
9. Kalo rrugën në vendëkalim
10. Fundi.
4
@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë
Shembull 2: Të paraqitet në formë
analitike funksioni i dhënë?
5
Paraqitja analitike e shemullit 2
10-11 Tetor 2011, FIEK, Prishtinë @Lajqi 2011
1. Fillimi.
2. Merre vlerën e variablës x
3. A është x<0.9, ose x=0.9, ose x>0.9?
Nëse x<0.9, hapi i 4.
Nëse x=0.9, hapi i 5.
Nëse x>0.9, hapi i 6.
4. y=x2. Hapi i 7.
5. y=2x. Hapi i 7.
6. y=x-3. Hapi i 7.
7. Shtype vlerën e variablës y
8. Fundi.
6
@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë
7
Shembull 3: Të paraqitet në formë
analitike funksioni i dhënë?
Paraqitja analitike e shembullit 3
10-11 Tetor 2011, FIEK, Prishtinë @Lajqi 2011
8
1. Fillimi.
2. Merre vlerën e variablës a
3. A është a<5 ose a>=5?
Nëse a<5, hapi i 4.
Nëse a>=5, hapi i 5.
4. z= , Hapi i 6.
5. z=2a + 3. Hapi i 6.
6. Shtype vlerën e variablës z
7. Fundi.
Algoritmet grafike
10-11 Tetor 2011, FIEK, Prishtinë @Lajqi 2011
9
@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë
10
Shembulli 4: Të bëhet paraqitja e algoritmit
në formë analitike dhe grafike të sipërfaqës
s dhe perimetrit p të drejtkëndëshit?
Paraqitja analitike e shembullit 4
10-11 Tetor 2011, FIEK, Prishtinë @Lajqi 2011
11
1. Fillimi.
2. Merri vlerat e brinjëve: a, b
3. s=a糾b
4. p=2糾(a+b)
5. Shtypi vlerat e llogaritura: s, p
6. Fundi.
Paraqitja grafike e shembullit 4
10-11 Tetor 2011, FIEK, Prishtinë @Lajqi 2011
12
Paraqitja grafike e shembullit 1
10-11 Tetor 2011, FIEK, Prishtinë @Lajqi 2011
13
Paraqitja numerike e shembullit 3
10-11 Tetor 2011, FIEK, Prishtinë @Lajqi 2011
14
1. Fillimi.
2. Merre vlerën e variablës a
3. A është a<5 ose a>=5?
Nëse a<5, hapi i 4.
Nëse a>=5, hapi i 5.
4. z= , Hapi i 6.
5. y=2a + 3. Hapi i 6.
6. Shtype vlerën e variablës y
7. Fundi.
Paraqitja grafike e shembullit 3
10-11 Tetor 2011, FIEK, Prishtinë @Lajqi 2011
15
Fillimi
z = a2 + 2a - 1
a < 5
z
z = 2a + 3
Fundi
a
PO JO
Testimi i algoritmeve
10-11 Tetor 2011, FIEK, Prishtinë @Lajqi 2011
16
Pse duhet te testohet algoritmi?
Qe te kontrollohet saktesia e algoritmit.
Si te testohet algoritmi?
Duhet te vertetohen te gjitha rastet e mundshme te shfrytezimit te
tije. Dmth duhet te kalohet neper secilen rruge te algoritmit.
Testimi i algoritmit të shembullit 2
10-11 Tetor 2011, FIEK, Prishtinë @Lajqi 2011
17
Testimi tabelar për shembullin 2
10-11 Tetor 2011, FIEK, Prishtinë @Lajqi 2011
18
Rruga
10-11 Tetor 2011, FIEK, Prishtinë @Lajqi 2011
19
Testimi i të gjitha rrugeve të shembullit 1
10-11 Tetor 2011, FIEK, Prishtinë @Lajqi 2011
20
Interpreterët dhe kompajlerët
22.10.2010, FIEK, Prishtinë @LAJQI 2010
Program burimor (ang. source program, source code) - fajll burimor (ang. source file, .cpp).
Kompajler (ang. compiler).
Program objektiv (ang. object program, object code) - fajll objektiv (ang. objekt file, .obj).
Linker program ekzekutiv (ang. executable program, exe file) - fajll ekzekutiv (ang. Exefile, .exe).
Programi burimor
Kompajler Programi Objektiv (.obj)
Linkeri Programi Ekzekutiv (.exe)
Fajlla tjerë objektiv
1
Hapja e një projekti të ri
22.10.2010, FIEK, Prishtinë @LAJQI 2010
2
1. File
2. New
3. Zgjedhim tabin さPヴラテWIデぐざ
4. Win32 Console Application
5. Emërtojmë projektin さProjekti1ざ
6. D:\Ushtrime C++\Grupi juaj ふヮくゲエ ヱIげぶ 7. Zgjedhim さAミ Wマヮデ┞ ヮヴラテWIデざ
8. Finish
Shkruarja e programit të parë në c++
22.10.2010, FIEK, Prishtinë @LAJQI 2010
3
//Programi i pare ne C++
#include <iostream.h>
int main()
{
cout аа さMキヴW ゲW erdhet ne C++ ";
coutаа さ\ミざき return 0;
}
int main()
{
return 0;
}
int main()
{return 0;}
int main() {return 0;}
Në fund të çdo komande shënohet “;”
Shkruarja e programit (vazhdim)
22.10.2010, FIEK, Prishtinë @LAJQI 2010
4
cin に operatori për lexim
cout に operatori për shtypje
return (kthe, kthimi) に kthimi i rezultatit të funksionit
// Komenti në një rresht
/*Komenti në disa rreshta, apo
komenti në bllok */
Struktura e programit
22.10.2010, FIEK, Prishtinë @LAJQI 2010
5
Direktiva preprocesorike
#include <iostream>
# - simboli për direktivat preprocesorike
include (përfshijë, përmbajë) に C++ i ka libraritë e urdhërave, të cilat i përfshinë në programe,
përmes direktivës #include.
iostream に Input Output Stream (Rrjedha hyrëse, dalëse) に përmbanë urdhërat për hyrje/dalje
(cout, cin)
Funksioni main()
fuksioni themelor
Kompilimi dhe ekzekutimi i programit
22.10.2010, FIEK, Prishtinë @LAJQI 2010
6
.cpp (për C++)
.ojb (fajll objektiv)
.exe (fajll ekzekutiv)
Gabimet në kompajlim
22.10.2010, FIEK, Prishtinë @LAJQI 2010
7
Pくゲエ N¥ゲW エ;ヴヴラテマ¥ デ; ┗WミSラゲキマ さきざ ミ¥ a┌ミS デ¥ キミゲデヴ┌ニゲキラミキデが atëherë do të na paraqitet gabim në kompajlim.
Ruajtja, rihapja e projektit
22.10.2010, FIEK, Prishtinë @LAJQI 2010
8
Ruajtja e projektit
1. D:\Ushtrime C++\Gヴ┌ヮキ ;け 2. File
3. Save
Rihapja e projektit
1. File
2. Open WorkSpace
3. E zgjiedhim lokacionin e projektit
Rihapja e programit
1. File
2. Open
3. Ushtrimi1.cpp
Shembulli 1:
22.10.2010, FIEK, Prishtinë @LAJQI 2010
9
Te shkruhet programi ne gjuhen C++ per mbledhje e dy
numrave a dhe b;
Shembulli 1 - zgjidhja
22.10.2010, FIEK, Prishtinë @LAJQI 2010
10
//Mbledhja e dy numrave // "\n" kalimi ne rresht te ri, njejte si endl #include <iostream> using namespace std; int main() { int a, b, c=0; // deklarimi i vaiablave a = 23; b = 7; c = a + b; cout<< "Shuma e numrave " << a <<" dhe " << b <<" eshte : " << c <<"\n"; return 0; }
Leximi i vlerave te varibalave permes tastieres
Shembulli 2
22.10.2010, FIEK, Prishtinë @LAJQI 2010
11
//Ushtrimi3 në C++ //Leximi i një variable përmes tastierës dhe shtypja e këtij numri! //Operatori për lexim "cinさ #include <iostream> using namespace std; int main() { int a; coutаа さVlera per variablen a= " ; cin >> a; // leximi i vaiablave coutаа さJu keni dhene vleren per per numrin a : " << a <<"\n"; return 0; }
Shembulli 3:
22.10.2010, FIEK, Prishtinë @LAJQI 2010
12
Të llogaritet syprina dhe perimetri i drejtekendeshit me
brinjet a dhe b. Vlerat e variblave a dhe b te ipen permes
tastieres.
Shembulli 3 - zgjidhja
22.10.2010, FIEK, Prishtinë @LAJQI 2010
13
#include <iostream> using namespace std; int main() // pjesa kryesore, cka ka mbrenda main funksionit ekzekutohet { int a, b, s, p; // deklarimi i vaiablave Iラ┌デаа ゎJ┌ ノ┌デWマ ゲエニヴ┌;ミキ ┗ノWヴWミ W HヴキミテWゲ ; Э さき cin >> a; Iラ┌デаа さ\ミJ┌ ノ┌デWマ ゲエニヴ┌;ミキ ┗ノWヴWミ W HヴキミテWゲ H Э さき cin >> b; s = a * b; p=2*(a+b); Iラ┌デаа さ“キヮWヴa;ケテ; Э ゎ << s << endl; Iラ┌デаа さPWヴキマWデヴキ Э ゎ << p << endl; return 0; }
Shembulli 4:
22.10.2010, FIEK, Prishtinë @LAJQI 2010
14
Te behet gjetja e mesatares se 4 numrave te
dhene permes tastieres?
Shembulli 4 - zgjidhja
22.10.2010, FIEK, Prishtinë @LAJQI 2010
15
//Gjetja e mesatares se 4 numrave te dhene permes tastieres. #include <iostream> using namespace std; int main() // pjesa kryesore, cka ka mbrenda main funksionit ekzekutohet { int a, b, c, d; double f ; cout<< "Ju lutem shkruani 4 numra ndaras per gjetjen e notes mesatare:\n" ; cin>>a; cin>>b; cin>>c; cin>>d; f = (a + b + c + d)/4.0; cout<< "Mesatarja e tyre eshte: " << f <<"\ミゎき っっ W ノ┌;ミ ヴヴラノキミ W ミテWテデW ゲキニ┌ヴゲW ゎWミSノざ return 0; }
Java 3
Universiteti i Prishtinës
Fakulteti i inxhinierisë elektrike dhe kompjuterike
Stringjet Vlerat logjike Identifikatorët Variablat, tipet e variablave Deklarimi dhe inicializimi Shtypja e rezultatit me format
- cout.width( ), cout.fill( ), cout.precision() etj.
Escape-sequence characters (karakteret speciale)
Shembuj detyrash…
@2010 LAJQI
Stringjet
Vargjet e simblove të ndryshme (shkronjave, numrave), përkatësisht tekstet e çfarëdoshme të vendosura brenda thonjëzave i quajmë stringje.
Direktiva priprocesorike për stringje eshte:
#include <string>
さKy është një ゲデヴキミェぁざ さ┞Эヲ┝ЩΑざ に është një string
さざ に është string i zbrazët
Stringu さJETAざ Në memorie do të na shtypet
J E AT \0
@2010 LAJQI
Vlerat logjike
Kemi dy vlera logjike:
true (e vërtetë)
false (e pavërtetë)
Variablat logjike në program definohen si bool.
Kompjuteri këto dy vlera i ruan si numra të plotë pozitiv 1 dhe 0.
@2010 LAJQI
Identifikatorët
Njesitë elementare memoruese në të cilat i vendosim vlerat e variablave i
quajmë identifikatorë.
Identifikatorë formohen si kombinim i shkronjave ふ;が H ぐ ┣ が Aが Bが ぐZぶが numrave ふヰがヱがヲぐΓぶ dhe simbolit për nenvizim (_).
Janë identifikatorë:
P.sh dita, Koha, _start, c45, Madhesia
Nuk janë identifikatorë
4muaj に fillon me numër
a+b に përmban simbolin +
Nje klase に permban zbrazesire.
Vërejtje: Fjalët kyqe që janë në C++ nuk lejohen të përdoren si identifikatorë.
else, cout, if etj.
@2010 LAJQI
Variablat, tipet e tyre
Tipi Rangu i vlerave Madhësia në bajta
unsigned short int 0..65535 2 = 16 bita
short int -32768..32767 2 = 16 bita
unsigned long int 0..4294967295 4 = 32 bita
long int -2147483648..2147483647 4 = 32 bita
int - 16 bit -32768..32767 2 = 16 bita
Int - 32 bit -2147483648..2147483647 4 = 32 bita
unsigned int -16 bit 0..65535 2 = 16 bita
unsigned int に 32 bit 0..4294967295 4 = 32 bita
float 1.2E-38..3.4E38 4 = 32 bita
double 2.2E-308..1.8E308 8 = 64 bita
char 256 simbole 1= 8 bita
@2010 LAJQI
Deklarimi i variablave
Disa deklarime te variablave:
int a;
double x;
float z;
short int a;
char c;
int x,y;
long int e, f3; /Deklarimi i përbashket
double x,h; int y; float a,b; /Deklarimet në një rresht
int V[8]; /Deklarimi i Vektorit me 8 vende.
double E[3][6]; /deklarimi i Matrices me 3 rreshta dhe 6 shtylla
int A[6]; /6 anëtar - A[0], A[1], ..., A[5].
Vërejtje: Tek vektorët dhe matricat, indekset fillojnë me vlerën zero!
@2010 LAJQI
Deklarimi dhe inicializimi i variablave
1. int i=5;
2. double d=5.3;
3. int V[5]={7,2,4,1,3};
4. char Z[6]={'d','4','*','a','G','$'};
/Deklarimi dhe inicializimi i vektor me 6 karaktere
1. const double PI=3.1415926;
2. const int e=4; int A[e]={7,2,4,1};
3. const int m=4,n=3;
4. int K[m][n]={{7,4,1},
{2,5,8},
{3,6,2},
{8,1,3}};
@2010 LAJQI
Shtypja e rezultatit me format
Manipulatori setw - setw(k)
ku k është numri i vendeve që shfrytëzohen për shtypjen e rezultatit.
cout.width(k) に luan funksion të njejtë sikurse setw()!
P.sh cout.width(10) //shtypja e rezultatit ne 10 kolona.
cout << a; // p.sh., nese shtypet variabla a, qe ka vleren 15
// rezultati do te duket si në vijim
15 // ku paraqet zbrazëtirën, rreshtimi (plotesimi i
// vendeve te rezervuara) behet nga skaji i djathte
Mbushja e hapësirës me mostër - cout.fill( ) ose setfill('s')
Mbushja e pozitave të zbrazëta, mund të bëhet me ndonjë simbol, i cili duhet të jepet brenda thojzave të njëfishta (apostrofeve),
P.sh cout.fillふけゅろぶき // ne kete rast mbushja behet me simbolin けゅげ Shtypja me precizitet të caktuar cout.precision( ) ose setprecision(k)
shtypja me precizitet te caktuar, në k-kolona
@2010 LAJQI
Escape-sequence characters (karakteret speciale)
\a Alarm
\b Backspace
\f Form Feed (për printer)
\n New line (CR+LF) (rreshti i ri)
\r CR
\t Tab
\v Vertical Tab
\\ \
\? ?
\げ け
\ざ さ
\000 Numër oktal
\xhh Numër heksadecimal
\0 Null zero (zero binare)
\xhh, mund të përdoret për të shtypur në
ekran karakteret të cilat nuk i kemi në tastierë, si p.sh. shkronja “ë” dhe “ç”, të gjuhës shqipe. ASCII kodi përkatës i karakterit, duhet të shkruhet në formën heksadecimale. P.sh. për “ë”, kodi është: “137” (Si e shtypim zakonisht në tastierë, ALT+137). Atëherë, 137 në bazën 16 (numër heksadecimal), është: 89. Prandaj, për ta shtypur në dalje shkronjën “ë”, duhet të shkruhet: “\x89”. P.sh., pwr tw shtypur nw dalje:“Sot është ditë e mirë” – në C++ duhet të
shkruhet –cout << “Sot \x89sht\x89 dit\x89 e mir\x89” ;
@2010 LAJQI
#include <iostream.h>
int main()
{
cout << "sot \x89sht\x89 dit\x89 e mir\x89";
cout << "\n“;cout << "\a“;cout << "\tfillimi i nj\x89 paragrafi.“;cout <<endl;
return 0;
}
Shembulli 1: Të shkruhet programi në gjuhën
C++, i cili përmban disa nga karakteret
speciale p.sh \n, \xhh, \a, \t.
@2010 LAJQI
# i n c l u d e < i o s t r e a m >
# i n c l u d e < i o m a n i p >
# i n c l u d e < m a t h . h >
u s i n g n a m e s p a c e s t d ;
i n t m a i n ( )
{
i n t a , s , p ;
f o r ( a = 1 ; a < = 1 0 ; a + + )
{
s = p o w ( a , 2 ) ;
p = 4 * a ;
c o u t < < s e t w ( 5 )
< < a
< < s e t w ( 7 )
< < s
< < s e t w ( 6 )
< < p
< < e n d l ;
}
r e t u r n 0 ;
}
Shembulli 2: Të shkruhet programi në gjuhën C++, i
cili përmban manipulatorin setw() ose cout.width()
.
Vërejtje:
Komandat cout.width() dhe cout.fillふけゲげぶ(s-simboli për mbushje) duhet të vendosen para
shtypjes së çdo vlere, përkatësisht nuk vlejnë për
të gjitha shtypjet që vijojnë pas tyre.
Gjatë mbushjes me mostër, hapësira për shtypje
mund të përcaktohet edhe përmes manipulatorit
setw().
@2010 LAJQI
#include < iostream >
#include < iomanip>
using namespace
std;
int main()
{
int a=6547,b= -7392;
cout << "vlera a=";
cout.width (8);
cout.fill('^');
cout << a
<< endl ;
cout << "vlera b=";
cout.width (10);
cout.fill('*');
cout << b
<< endl ;
return 0;
}
Shembulli 3: Të shkruhet programi në gjuhën
C++, i cili përmban përmban manipulatorin
setfill ose cout.fillふけゲげぶ.
Vërjetje:
Simboli s, i cili shfrytëzohet për mbushje, mund të
përcaktohet edhe
përmes manipulatorit:
setfill('0')
i cili shkruhet brenda komandës cout. Gjatë
shfrytëzimit të këtij manipulatori nuk ka rëndësi si
përcaktohet madhësia e hapësirës për shtypje
(qoftë përmës komandës cout.width ose përmes
manipulatorit setw).
@2010 LAJQI
Shembulli 4: Të
shkruhet
programi në
gjuhën C++, i cili
përmban
manipulatorin
cout.precis
ion() ose
setprecisio
n(k), k-
kolona.
#include <iostream>
using namespace std;
int main()
{
double x,y;
cout << "vlera hyrëse: ";
cin >> x;
y=27/x;
cout << "vlera y=";
cout.precision(5);
cout << y
<< endl;
return 0;
}
@2010 LAJQI
Shembulli 4: Të
shkruhet
programi në
gjuhën C++, i cili
përmban
deklarimin dhe
inicializimin e
variablave.
#include <iostream>
using namespace std;
int main ()
{
int a=5; //vlera fillestare 5
int b(2);//vlera fillestare 2
int result;//ska vlerë fillestare
a = a + 3;
result = a - b;
cout << result;
return 0;
}
@2010 LAJQI
Shembulli 4: Të
shkruhet
programi në
gjuhën C++, i cili
përmban
direktiven
<string>, të
bëhet shtypja e
disa stringjeve.
// perdorimi I stringjeve
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string mystring;
mystring = “Stringu yne ne fillim!";
cout << mystring << endl;
mystring =“String tjeter nga ai fillestar!";
cout << mystring << endl;
return 0;
}
@2010 LAJQI
Shembulli 4: Të
shkruhet
programi në
gjuhën C++, i cili
përmban vlera
logjike bool.
// vlerat logjike shembull
#include <iostream>
using namespace std;
int main()
{
bool z;
double x,y;
cout << "Vlera për variablën x: ";
cin >> x;
cout << "Vlera për variablën y: ";
cin >> y;
cout << "\nA është x>y?: ";
z=(x>y);
if (z==true)
cout << "Po";
else
cout << "Jo";
cout << endl;
return 0;
}
@2010 LAJQI
Detyre shtepie -> Shembulli 8: Të shkruhet programi në gjuhën C++ i cili do të
llogaris dhe do të shtyp vëllimin e cilindrit ( V = pr2 h), nëse si vlerë hyrëse merren
radiusi r dhe lartësia h, (p=3.14 konstante). Rezultati dalës (në ekran) duhet të
duket kështu (nëse psh. vlera për r = 7 dhe h = 8):
Pas ekzekutimit!
@2010 LAJQI
Detyre shtepie -> Shembulli 9: Të shkruhet programi në gjuhën C++ që do të llogaris dhe shtyp vlerat e funksioneve x, y dhe z:
nëse m është vlera hyrëse që lexohet.
Rezultati dalës (në ekran) duhet të duket kështu (nëse psh. si vlerë hyrësejapim vlerën 8):
@2010 LAJQI
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
int main()
{ int m;
double x, y, z;
cout << "Vlera hyr\x89se m = ";
cin >> m;
x = pow(m,2)/3 - m;
y = sqrt(x-3) + 5;
z = pow(y, 3) + x – m;
cout << "P\x89r m = "<<m<< " vlerat e funksionevejan\x89:\n\n“;cout << "\tx = ";
cout <<setfill('\\') <<setw(10) << x << "\n“;cout << "\ty = ";
cout <<setfill(‘+') <<setw(10) << y << "\n“;cout << "\tz = ";
cout <<setfill(‘*') <<setw(10) << z << "\n\n“;return 0;
}
Zgjidhja e
shembullit 9:
@2010 LAJQI
Java 4
Universiteti i Prishtinës
Fakulteti i inxhinierisë elektrike dhe kompjuterike
Degëzimet (if) Degëzime të zakonshme
o Me një degë
o Me dy degë
Degëzime të ndërthurura
Operatorët
Shembuj detyrashぐ
1
05.11.2010, FIEK, Prishtinë @LAJQI
Degëzimet -> Degëzimet e zakonshme - > Një degë
Nëse në degët e komandës if ka vetëm nga një komandë thuhet se komanda if është e zakonshme.
Me një degë
Pjesa e bllok-diagramit me një degë (shih djathtas figurën), në formë të përgjithshme në program shkruhet kështu:
ku janë:
kushti - kushti për degëzim.
urdheri - komandë e cila ekzekutohet, nëse
plotësohet kushti.
if (kushti)
urdheri;
2
05.11.2010, FIEK, Prishtinë @LAJQI
Shembulli 1:
Programi përmes
së cilit llogaritet
vlera e
funksionit:
nëse vlerat e
variablave x dhe
n kompjuterit i
jepen përmes
tastierës.
#include <iostream>
using namespace std;
int main()
{
double x,s,y;
int i,n;
cout << "Vlera x=";
cin >> x;
cout << "\nVlera n=";
cin >> n;
s=0;
for (i=1;i<=n+1;i++)
if (i!=4)
s=s+(i+2);
y=2*x-3*s;
cout << "\nVlera e funksionit y=";
cout << y << "\n";
return 0;
}
3
05.11.2010, FIEK, Prishtinë @LAJQI
Degëzimet -> Degëzimet e zakonshme - > Dydegë
4
Me dy degë
Pjesa e bllok-diagramit me dy degë (shih djathtas), në formë të përgjithshme në program shkruhet kështu:
kushti - kushti për degëzim.
urdhëri1 - urdhëri që ekzekutohet nëse plotësohet kushti.
urdhëri2 に urdhëri që ekzekutohet nëse nuk plotësohet kushti.
if (kushti)
urdhëri1;
else
urdhëri2;
05.11.2010, FIEK, Prishtinë @LAJQI
Programi në të cilin
përmes komandës if
gjendet raporti mes
vlerave hyrëse x dhe
y. Pastaj, nëse x
është më i madh ose
barazi me y,
llogaritet vlera e
funksionit z=2*x+1,
përndryshe kjo vlerë
llogaritet me
shprehjen z=x+y.
#include <iostream>
using namespace std;
int main()
{
double x,y,z;
cout << "Numri i parë x=";
cin >> x;
cout << "\nNumri i dytë y=";
cin >> y;
if (x>=y)
z=2*x+1;
else
z=x+y;
cout << "\nVlera e llogaritur
është z=";
cout << z << "\n";
return 0;
}
5
05.11.2010, FIEK, Prishtinë @LAJQI
Programi përmes së
cilit numërohen
anëtarët pozitivë (p)
dhe anëtarët
negativë (n) të
vektorit të dhënë
A(m).
Vektori I dhënë:
A[m]={6,-2,-9,4,7,3,-5}
#include <iostream>
using namespace std;
int main()
{
const int m=7;
int A[m]={6,-2,-9,4,7,3,-5};
int i,p,n;
p=0; n=0;
for (i=0;i<m;i++)
if (A[i]<0)
n=n+1;
else
p=p+1;
cout << "\nNumri i anëtarëve
pozitivë p="
<< p <<"\n";
cout << "\nNumri i anëtarëve
negativë n="
<< n <<"\n";
return 0;
}
6
05.11.2010, FIEK, Prishtinë @LAJQI
Programi përmes së
cilit llogaritet shuma
e anëtarëve të
vektorit A(m), të
cilët janë më të
mëdhenj se numri 3
dhe më të vegjël se
numri 9.
#include <iostream>
using namespace std;
int main()
{
const int m=8;
int i,s;
int A[m]={5,-2,7,4,1,8,10,6};
s=0;
for (i=0;i<m;i++)
if (A[i]>3)
if (A[i]<9)
s=s+A[i];
cout << "Shuma s="
<< s << "\n";
return 0;
}
7
05.11.2010, FIEK, Prishtinë @LAJQI
Programi përmes së
cilit numërohen
anëtarët pozitivë (p),
dhe anëtarët
negativë (n) të
matricës së dhënë
F(k,m).
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
const k=4,m=3;
int F[k][m]={{7,-4,12},{0,17,-6},
{4,-1,-5}, {15,8,19}};
int i,j,n =0,p=0;
for (i=0;i<k;i++)
for (j=0;j<m;j++)
if (F[i][j]<0)
n=n+1;
else
p=p+1;
cout << "\nAnëtarët negativë n=“ <<n << "\n\n";
cout << “Anetarët pozitiv p=" << p << "\n\n";
return 0;
}
8
05.11.2010, FIEK, Prishtinë @LAJQI
Degëzime të ndërthurura
Me një komandë if
realizohet degëzimi në një
ose në dy degë. Por, tek
algoritmet e ndryshme
shpesh paraqiten degëzime
të ndërthurura, kur prej një
dege mund të ketë degëzime
të reja. Për këtë qëllim, në
degët e komandave if
shfrytëzohen edhe komanda
të tjera if.
if (kushti1)
if (kushti2)
urdhëri1;
else
urdhëri2;
else
urdhëri3;
05.11.2010, FIEK, Prishtinë
9
@LAJQI
Programi përmes së
cilit llogaritet vlera e
funksionit:
për vlerën e
variablës x, e cila
kompjuterit i jepet
përmes tastierës si
vlerë hyrëse.
#include <iostream>
using namespace std;
int main()
{
float x,y;
cout << "Vlera hyrëse x=";
cin >> x;
if (x<1.5)
y=5*x+4;
else
if (x<2.7)
y=x-3;
else
if (x<4)
y=5;
else
y=2*x;
cout << "\nRezultati y=“ << y << endl;
return 0;
}
10
05.11.2010, FIEK, Prishtinë @LAJQI
Operatorët
05.11.2010, FIEK, Prishtinë @LAJQI
11
Operatori Operacioni Shembull Rezultati
+ Mbledhja 6+1 7
- Zbritja 4-3 1
* Shumëzimi 3*4 12
/ Pjestimi 3/2 1.5
% Moduli 3%2 1
Operatorët - vazhdim
05.11.2010, FIEK, Prishtinë @LAJQI
12
Operatori Domethënia Shembull Rezultati
< Më i vogël se 2 < 3 true
<= Më i vogël se,
ose barazi me
3 <= 2 false
== Barazi me 3 == 3 true
> Më i madhë se 3 > 2 true
>= Më i madhë se,
ose barazi me
2 >= 3 false
!= Jobarazi me 2 != 3 true
Operatori Operacioni Shembull Rezultati
&& Konjukcioni, AND (2 < 3) && (4 == 4) true
|| Disjunkcioni, OR (2 != 3) || (3 > 4) false
! Negacioni, NOT !(5 > 4) false
Përparësit e operatorëve
05.11.2010, FIEK, Prishtinë @LAJQI
13
Lartë ( ) [ ]
! ~ ++ -- - (type) * & sizeof
* / %
+ -
<< >>
< <= > >=
== !=
&
^
|
&&
||
?
= += -= *= /=
Poshtë ,
Shembull me operatorë
05.11.2010, FIEK, Prishtinë @LAJQI
14
#include <iostream.h>
int main()
{
double y;
int x=3, z=2;
y=3*x-(2+6/x/z)*9/x +2*(x-1) + 6;
cout <<"Vlera y="
<<y
<<"\n\n";
return 0;
}
Pyetje?
15 05.11.2010, FIEK, Prishtinë @LAJQI
Java 5
Universiteti i Prishtinës
Fakulteti i inxhinierisë elektrike dhe kompjuterike
Kapërcimi pa kusht (goto)
Switch( )
Operatori kushtëzues (?)
Shembuj detyrash nga
shuma, prodhimi, faktorieli
ぐ
1
@2010 Lajqi 12.11.2010, FIEK, Prishtinë
Kapërcimi pa kusht goto 2
Go to (angl. kalo tek, shko tek) bën kapërcimin e detyrueshëm në
pjesën e caktuar të programit, e cila është e adresuar përmes
Label-ave (labelave, etiketave, adresave) të cilat janë emra të
çfarëdoshëm, që përfundojmë me dy pika (:).
Komanda goto
goto a;
Ku (a:) është labela e zgjedhur lirisht si identifikatorë
Shembuj labelash:
fillimi:
fundi:
perserite:
@2010 Lajqi 12.11.2010, FIEK, Prishtinë
Shembulli 1:
goto
// Programi i pare me goto
#include <iostream.h>
int main()
{
goto Fundi;
Fillimi: //Labela – etiketa,adresa “Fillimi” cout<< "Fillimi\n";
goto Dalja;
Mesi: //Labela – etiketa,adresa “Mesi” cout << "Mesi\n";
goto Fillimi;
Fundi: //Labela – etiketa,adresa “Fundi” cout << "Fundi\n";
goto Mesi;
Dalja: //Labela – etiketa,adresa “Dalja” return 0;
}
3
@2010 Lajqi 12.11.2010, FIEK, Prishtinë
Shembulli 2: goto
- Krijimi i unazës
Programi përmes
së cilit llogariten
dhe shtypen
shumat parciale
të numrave
natyrorë prej 1
deri në 9.
#include <iostream>
using namespace std;
int main()
{
int i=1;
double s=0;
g:if (i<10)
{
s=s+i;
cout << "Për i="
<< i;
cout << " Shuma s="
<< s
<< "\n";
i++;
goto g;
}
return 0;
}
4
@2010 Lajqi 12.11.2010, FIEK, Prishtinë
Shembulli 3 に goto
Programi përmes
së cilit llogaritet
vlera e faktorielit:
F = (2m-3)!
Vlera e variablës m
kompjuterit t'i
jepet përmes
tastierës si vlerë
hyrëse.
5
@2010 Lajqi 12.11.2010, FIEK, Prishtinë
Komanda Switch -> Versioni bazik i komandës switch
@2010 Lajqi
6
Pjesa e bllok-diagramit i cili shihet në vijim - djathtas, në program
mund të paraqitet duke e shfrytëzuar versionin bazik të
komandës switch kështu:
12.11.2010, FIEK, Prishtinë
Degëzimet e shumëfishta - switch( )
@2010 Lajqi
7
Programet tek të cilat na paraqiten me shumë degëzime,
thjeshtohen nëse degëzimi realizohet përmes komandës switch,
forma e përgjithshe e së cilës është:
switch ( test )
{
case 1 : test1;
// ekzekutohet komanda test = 1 ...
break;
case 5 : test5;
// ekzekutohet komanda test = 5 ...
break;
default : // te gjitha cases tjera....
}
12.11.2010, FIEK, Prishtinë
Shembulli 1 に
switch()
Programi përmes
së cilit llogariten
vlerat e funksionit
y duke shfrytëzuar
4 shprehje të
ndryshme për
llogaritje varësisht
nga 4 vlerat e
ndryshme të
variablës i.
8
@2010 Lajqi
Shembulli 2 に
switch()
Programi përmes së
cilit tregohet
kapërcimi në një
degë për më shumë
vlera të variablës
për kapërcim.
Në program, p.sh.,
kapërcehet në
degën në të cilën
gjendet shprehja
y=-5, për vlerat e
variablës i=2, 6 dhe
4.
9
@2010 Lajqi
Kapërcimi për vlerat e çfarëdoshme
@2010 Lajqi
10
Pjesa e bllok-diagramit i cili shihet në vijim - djathtas, në program
mund të paraqitet duke e shfrytëzuar versionin e komandën switch të
kësaj forme:
Këtu, nëse variabla për degëzim k nuk e ka asnjërën prej vlerave: 0, 1,
2, ..., n, ekzekutohet komanda ad në degën default të komandës
switch.
12.11.2010, FIEK, Prishtinë
Shembulli 3 に switch()
@2010 Lajqi
11 //Me switch() #include <iostream.h> int main() { int Nota; cout<<"Jepni noten 1, 2, 3, 4 ose 5 : Nota=" ; cin >> Nota; switch(Nota) { case 1: cout<<"Dobet: "; break; case 2: cout<<"Mjaftueshem: "; break; case 3: cout<<"Mire: "; break; case 4: cout<<"Shume mire: "; break; case 5: cout<<"Shkelqyeshem: "; break; default: cout <<"Gabim nota e dhene!\n"; } cout <<" NotaЭさ аа Nota << "\n"; return 0; }
//Pa switch() #include <iostream.h> int main() { int Nota; cout<<"Jepni noten 1, 2, 3, 4 ose 5 : Nota=" ; cin >> Nota; if (Nota == 1) cout<<"Dobet: " else if (Nota == 2) cout<<"Mjaftueshem: "; else if (Nota == 3) cout<<"Mire: "; else if (Nota == 4) cout<<"Shume mire: "; else if (Nota == 5) cout<<"Shkelqyeshem: "; else cout << "Gabim nota"; cout<<" Nラデ;Эさ << Nota << "\n"; return 0; }
12.11.2010, FIEK, Prishtinë
(Kushti) ? urdhëri1 : urdhëri2; // Operatori kushtëzues (?)
@2010 Lajqi
Nëse kushti është true (plotësohet), atëhere si rezultat kthehet urdhëri1, përndryshe si rezultat kthehet urdhëri2.
7==5 ? 4 : 3 // kthehet 3, pasi që nr. 7 nuk i barabartë me
nr. 5.
7==5+2 ? 4 : 3 // kthehet 4, pasi që 7 është i barabartë me
5+2.
5>3 ? a : b // kthehet vlera e a, pasi që nr. 5 është me i
madhe se nr. 3.
a>b ? a : b // kthen rezultatin varesisht se a cili është me i
madh, a ose b.
#include <iostream>
using namespace std;
int main ()
{
int a,b,c;
a=2;
b=7;
c = (a>b) ? a : b;
cout << “c=” <<c
<<endl;
return 0;
}
12
Operatori kushtëzues (?)
12.11.2010, FIEK, Prishtinë
Të s h k r u h e t p ro g ra m i n ë g j u h ë n c + + p ë r m e s s ë c i l i t l l o ga r i t e t
v l e ra e f u n k s i o n i t :
d u ke e s h f t y t e z u a r o p e rat o r i n e k u s h t e z i m i t ( ? ) .
@2010 Lajqi
13
Shembulli 2 - Operatori kushtëzues (?)
12.11.2010, FIEK, Prishtinë
Shembull (?)
Të shkruhet programi
në gjuhën c++ për
llogaritjen e funksionit:
y =(x>2)?(x-1) : (4*x+1)
#include <iostream>
using namespace std;
int main()
{
int x, y;
cout << "Vlera per x: ";
cin >> x;
y =(x>2)?(x-1):(4*x+1);
cout<<"\nRezultati per y = "
<<y
<<endl
<<endl;
return 0;
}
14
@2010 Lajqi 12.11.2010, FIEK, Prishtinë
@2010 Lajqi
Shuma dhe prodhimi
15
12.11.2010, FIEK, Prishtinë
12.11.2010, FIEK, Prishtinë @2010 Lajqi 16
@2010 Lajqi
Faktorieli brenda shumës
17
12.11.2010, FIEK, Prishtinë
12.11.2010, FIEK, Prishtinë @2010 Lajqi 18
@2010 Lajqi 12.11.2010, FIEK, Prishtinë
19
Faktorieli brenda prodhimit
12.11.2010, FIEK, Prishtinë @2010 Lajqi 20
Pyetje?
21 @2010 Lajqi 12.11.2010, FIEK, Prishtinë
Java 6
Universiteti i Prishtinës
Fakulteti i inxhinierisë elektrike dhe kompjuterike
Unazat
- while
- do while
- for
Ndërprerja e unazës - break
Kapërcimi i hapit të unazës
- continue
1
@2011 Lajqi 21.11.2011 FIEK, Prishtinë
Unaza, komanda while
27.11.2010, FIEK, Prishtinë @2011 Lajqi
2
Forma e përgjithshme e unazës
while:
E përserit urdhërin derisa kushti të plotësohet!
i=f;
while(kushti)
{
urdhëri/at;
i=i+h;
}
ku janë:
i - variabla e unazës.
f - vlera fillestare e variablës së unazës.
kushti - kushti i ekzekutimit të urdhërave që përfshihen në trupin e unazës.
h - hapi me të cilin ndryshohen vlerat e variablës i.
urdhëri/at に urdhërat që ekzekutohen brenda unazës.
while (kushti) urdhëri/at
Unaza, komanda while
27.11.2010, FIEK, Prishtinë @2011 Lajqi
3
while (CONDITION) LOOP_BODY;
Shembulli 1:
Të shkruhet
programi në
gjuhën
programuese c++
që bën validimin e
numrave të dhënë
përmes tastierës.
Të përdoret unaza
while!
#include <iostream.h> int main() { int x = 0, y = 0; bool numriValid = false; while (numriValid == false) { cout << "Ju lutem shkruani nje intexher
ndermjet 1 dhe 10:"; cin >> x; cout << "Keni shtypur: " << x << "\n\n";
if ((x < 1) || (x > 10)) { cout << "Vlera e shtypur nuk eshte
ndermjet 1 dhe 10!" << endl << "Ju lutem shkruani nje numer tjeter!" << endl << endl; } else numriValid = true;
} cout << "Tani keni shtypur numer valid,
URIME!" << endl; return 0; }
4
27.11.2010, FIEK, Prishtinë @2011 Lajqi
Shembulli 2:
Programi përmes së
cilit gjendet anëtari
më i vogël për nga
vlera absolute në
vektorin e dhënë
A[n].
A[n]={2,9,-
1,4,3,6, 8};
#include <iostream.h> #include <math.h> int main() { const int n=7; int i, x, A[n]={2,9,-1,4,3,6, 8}; x = abs(A[0]); i = 1; while (i<n) { if (abs(A[i]) < x) x = abs(A[i]); i++; } cout << "Anetari me i vogel per nga vlera absolute: x = " << x << "\n“; return 0; }
5
27.11.2010, FIEK, Prishtinë @2011 Lajqi
Unaza, komanda do-while
27.11.2010, FIEK, Prishtinë @2011 Lajqi
6
Forma e përgjithshme:
do urdhëri/at while (kushti); i=f; do { urdhëri/at; i=i+h; } while(kushti);
ku janë: i - variabla e unazës. f - vlera fillestare e variablës së unazës. kushti - kushti i ekzekutimit të
urdhërave që përfshihen në trupin e unazës.
h - hapi me të cilin ndryshohen vlerat e variablës i.
urdhëri/at に urhdëri/at e përfshira brenda unazës.
do
{
urdhëri/at;
}
while(kushti);
Unaza, komanda do-while
27.11.2010, FIEK, Prishtinë @2011 Lajqi
7
Forma e përgjithshme:
do
{
LOOP_BODY;
}
while(CONDITION);
Shembulli 3:
Programi përmes
së cilit llogaritet
prodhimi i
katrorëve të
anëtareve negativ
të vektorit A[n]. Të
përdoret unaza do
while!
A[n]={-2,9,
-1,4,3,-6,8}
// Programi "do-while"
#include <iostream.h>
#include <math.h>
int main()
{ const int n=7;
int i=0, A[n]={-2,9,-1,4,3,-6,8};
double p=1;
do
{
if (A[i] < 0)
p = p*pow(A[i],2);
i++;
}
while (i<n);
cout << "Prodhimi i llogaritur p = "
<< p
<< "\n“; return 0;
}
8
27.11.2010, FIEK, Prishtinë @2011 Lajqi
Unaza, komanda for 9
Forma e përgjithshme e unazës for:
ku:
i - variabla e unazës.
f に vlera fillestare e variables i
kushti - kushti i mbetjes brenda unazës.
h - hapi me të cilin ndryshohen vlerat e variablës i.
urdhëri/at に urdhëri/at që ekzekutohen brenda unazës.
27.11.2010, FIEK, Prishtinë @2011 Lajqi
for (i=f; kushti; i=i+h)
{
urdhëri/at;
}
Unaza, komanda for 10
Forma e përgjithshme e unazës for:
27.11.2010, FIEK, Prishtinë @2011 Lajqi
for (INITIALIZATION; CONDITION; UPDATE)
{
LOOP_BODY;
}
Shembulli 5:
Programi përmes
së cilit gjendet
anëtari me i madh
në vektorin e
dhënë A[n]. Të
përdoret unaza for.
A[n] = {2,9, -1, 4,
3,6, 8}
#include <iostream.h> int main() { const int n=7; int i,b,A[n]={2,9,-1,4,3,6,8}; b = A[0]; for (i=1;i<n;i++) { if (A[i] > b) b = A[i]; } cout << "Anëtari me i madh b=" << b << "\n“; return 0; }
11
27.11.2010, FIEK, Prishtinë @2011 Lajqi
Dalja pa kusht nga unaza break
27.11.2010, FIEK, Prishtinë @2011 Lajqi
12
Nëse brenda unazës vendoset
komanda break, kompjuteri do
të vazhdoj ekzekutimin e
progamit me komanden e cila
pason pas kllapës së fundit të
unazës.
// Programi Break
#include <iostream.h>
int main()
{
int i;
for (i=1;i<=10;i++)
{
if (i==5) break;
/*ndërprerja, dalja prej unaze*/
cout << "i=" << i << "\n";
}
return 0;
}
break;
Kapërcimi i hapit të unazës continue
27.11.2010, FIEK, Prishtinë @2011 Lajqi
13
continue mund të përdoret
vetëm brenda llupave (ang.
loop), si p.sh brenda një
shprehje for. E përfundon
(kapërcen) iteracionin (hapin)
aktual të një llupe dhe vazhdon
tek iteracioni i ardhshëm i asaj
llupe.
//Programi continue
#include <iostream.h>
int main()
{
int i;
for (i=1;i<=10;i++)
{
//kalo hapin, për i=5
if (i == 5) continue;
cout << "i="
<< i
<< "\n";
}
return 0;
}
continue;
@2011 Lajqi 27.11.2010, FIEK, Prishtinë
14
Shembulli 7: Të llogaritet funksioni y. Të
përdoret kapërcimi i hapit continue për キЮヴく
27.11.2010, FIEK, Prishtinë @2011 Lajqi 15
// Zgjidhja #include <iostream.h> int main() { int i,n; double s=0; cout << "Vlera e variables n="; cin >> n; cout << "Vlera e variables m="; cin >> m; for (i=1;i<=m+n;i++) { if (i==4) continue; s=s+(2*m-3*n); } y = 2*m – 4*s; cout << “Funksioni y =" << y << "\n"; return 0; }
Pyetje?
16 @2011 Lajqi 27.11.2010, FIEK, Prishtinë
Universiteti i Prishtinës
Fakulteti i inxhinierisë elektrike dhe kompjuterike
Fushat numerike në program
(vektorët, matricat)
Deklarimi i fushës numrike
Rezervimi i vendeve për anëtarët e
fushës numrike
Leximi dhe shtypja e anëtarëve të
fushës
Deklarimi dhe leximi i teksteve
(char[ ]), leximi i rreshtit (cin.get,
cin.getline).
1
@LAJQI 2011 FIEK, Prishtinë
Vektorët dhe matricat
FIEK, Prishtinë @LAJQI 2011
2
Çka quajmë vektor?
Kur pozicionet e numrave në hapesirën e fushës numerike
përcaktohen nga një madhësi, për fushën thuhet së është
njëdimenzionale dhe quhet vektorë.
Çka quajmë matricë?
Nësë për përcaktimin e pozicioneve të numrave përdoren dy
madhësi, fusha numerike është dydimenzionale dhe quhet
matricë.
Deklarimi i fushave numrike
FIEK, Prishtinë @LAJQI 2011
3
Deklaime të vektorëve dhe matricave
int A[8]; /Vektori
double Z[3][5]; /Matrica
Indekset fillojnë me vlerën 0 (zero)
int A[6]; 6 anëtar - A[0], A[1], ..., A[5].
Dekalirimi dhe inicializimi i vektorëve
Iエ;ヴ ZぷΑへЭべろSろがろヴろがろゅろがろ;ろがろGろがろガげがげWげぺき っVWニデラヴキ マW ニ;ヴ;ニデWヴW
const int m=5; int A[m]={7,2,4,1,3};
const int m=4,n=3; m-rreshtat, n に shtyllat
int K[m][n]={ {7,4,1},
{2,5,8},
{3,6,2},
{8,1,3} };
A[m]={9,-2,5,4,-1,6,3,7};
m=8;
@LAJQI 2011 FIEK, Prishtinë
4
Shembulli 1: Të shkruhet programi në gjuhën
C++ që bën shtypjen dhe tregon pozitën e
anëtarëve të dhënë në vektorin A[m]!
Zgjidhja e shembullit 1:
FIEK, Prishtinë @LAJQI 2011
5
#include <iostream.h> int main() { const int m=8; int i; int A[m]={9,-2,5,4,-1,6,3,7}; //Deklarimi dhe inicializimi i vektrorit cout << "An\x89tar\x89t e vektori A jan\x89:\n" << "\n"; for (i=0;i<m;i++) //unaza "for" { cout<<"An\x89tari qe ka me poziten" <<i << " \x89sht\x89: " << A[i]; cout << "\n"; } cout << "\n"; return 0; }
Leximi dhe shtypja e anëtarëve të fushës
Shembulli 2: Të krijohet dinamikisht vektori A[m], nëse m = 5 (konstante), dhe të bëhet shtypja e anëtareve të këtij vektori.
Për zgjidhjen e kësaj detyre të përdoret unaza for!
#include <iostream.h>
int main()
{ const int m=5;
int i, A[m];
//Krijimi i vektorit A
for (i=0; i<m; i++)
{
cout << "A["
<< i
<< "]= ";
cin >> A[i];
}
// Shtypja e vektorit A
cout << " Vektori i krijuar: \n";
cout << "A={";
for (i=0;i<m;i++)
{
cout << A[i];
if (i<m-1)
cout<<",";
}
cout << "}\n";
return 0;
}
6
FIEK, Prishtinë @LAJQI 2011
@LAJQI 2011 FIEK, Prishtinë
7
Shembulli 3: Të shkruhet programi përmes së cilit
llogaritet vlera e funksionit g, ku z është anëtari më i
madh në vektorin e dhënë R(n). Vlera e variablës x
kompjuterit デげI ipet përmes tastieres.
@LAJQI 2011
Zgjidhja e shembullit 3:
FIEK, Prishtinë 8
PA S S H T Y PJ E S :
H[9] = { 0, 1, 4, 9, 16, 25, 36, 49, 64 }
@LAJQI 2011 FIEK, Prishtinë
9
Shembulli 4: Të shkruhet programi në gjuhen c++ që bën
krijimin dhe shtypjen e katrorëve të indekseve të vektorit
H[m], nëse m=9 (konstante).
Për krijimin e anëtarëve të vektorit të përdoret unaza while,
ndërsa për shtypjen e anëtareve të përdoret unaza for!
FIEK, Prishtinë @LAJQI 2011 10
Zgjidhja e
shembullit 4:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{ const int m=9;
int H[m],i;
i=0;
while(i<m)
{
H[i] = pow(i,2);
i=i+1;
}
cout<<"Vektori i formuar:\n";
cout<<"H["
<<m
<<"]= {";
for(i=0;i<m;i++)
{
cout<<H[i];
if(i!= m-1)
cout<<", ";
}
cout<<"}"
<<endl;
return 0;
}
M[n]={ -1.3 ,3 .14, -6 .5 , -0 .5 , 3 , 7 .1} ;
@LAJQI 2011 FIEK, Prishtinë
11
Shembulli 5:Të shtypet numri i anëtarëve
pozitiv dhe negativ të vektorit të dhënë
M[n].
Zgjidhja e shembullit 5:
FIEK, Prishtinë
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
const int n=6;
const double M[n]={-1.3 ,3.14, -
6.5, -0.5, 3, 7.1};
int negativ = 0,pozitiv = 0;
int i;
for(i=0;i<n;i++)
{
if(M[i] >= 0)
{
pozitiv = pozitiv +1;
}
else
{
negativ = negativ +1;
}
}
cout<<"Vektori:\n\nM["
<<n
<<"]={";
for(i=0;i<n;i++)
{
cout<<M[i];
if(i!=n-1)
cout<<", ";
}
cout<<"} \nP\x89rmban "
<<negativ
<<" an\x89tar\x89 negativ"
<<" dhe "
<<pozitiv
<<" an\x89tar\x89 pozitiv.” <<“\n\n";
return 0;
}
@LAJQI 2011
12
Deklarimi dhe leximi i teksteve
FIEK, Prishtinë @LAJQI 2011
13
Komadat cin.get
cin.getline
Shembulli 1: Leximi i fjalisë përmes komandës cin.get(a,k)
//Zgjidhja e shembullit
#include <iostream.h>
int main()
{
const int m=20;
char A[m];
cout << "Fjalia qe lexohet: ";
cin.get(A,m);
cout << "Fjalia qeu lexua: "
<< A
<< "\n\n";
return 0;
}
Shtypja e fjalës に Shembulli 2
FIEK, Prishtinë @LAJQI 2011
14
#include <iostream.h>
int main()
{
char A[20];
cout << "Fjalia q\x89
lexohet: ";
cin >> A;
cout << "Fjalia q\x89 u
lexua: "
<< A
<< "\n";
return 0;
}
Si rezultat do të kemi vetëm
pjesën e parë të fjalisë që ne
e shkrujamë përmes tastierës
(dmth na lexohet vetëm fjala
e parë e fjalisë)!
Komanda:
cin.getline(A,m)
// istream getline #include <iostream> #include <iomanip> using namespace std; int main () { char emri[25], titulli[256]; cout << "Emri juaj:“; cin.getline(emri, 25); cout << "Filmi juaj i preferuar:"; cin.getline (titulli,256, '!'); //parametri i trete tegon se deri te shenja //! te lexoj tekstin. cout << emri << ", si film te preferuar e ka filmin me titull: " << "\n" << "\"" << titulli <<"\"\n“; return 0; }
15
FIEK, Prishtinë @LAJQI 2011
16 @LAJQI 2011 FIEK, Prishtinë
Universiteti i Prishtinës
Fakulteti i inxhinierisë elektrike dhe kompjuterike
@LAJQI 2010
Deklarimi dhe inicializimi i matricave
Krijimi i matricës
Sortimi i anëtarëve të vektorit
Formimi i fushave numerike:
o Formimi i matricës prej vektorit
o Formimi i matricës prej shumë
vektorëve
o Krijimi i vektorit prej anëtarëve
negativ të matricës
o Krijimi i vektorëve me anëtarët
pozitiv/negativ të matricave
17.12.2010, FIEK, Prishtinë
1
Deklarimi dhe inicializimi i matricave
@LAJQI 2010
P.sh., deklarimi dhe inicializimi i matricës K, e cila
përmban 4 rreshta dhe 3 shtylla, mund të bëhet:
Deklarimi: int K[4][3];
Deklarimi dhe incializimi:
17.12.2010, FIEK, Prishtinë
2
@LAJQI 2010 17.12.2010, FIEK, Prishtinë
Shembulli 1: Të krijohet matrica A(m,n)
dinamikisht dhe të shtypet matrica e krijuar.
3
17.12.2010, FIEK, Prishtinë @LAJQI 2010
Krijimi i matricës #include <iostream>
using namespace std;
int main()
{
const int m=2, n=3;
int i,j;
int A[m][n];
cout << "Krijimi i matrices
A[m][n]:\n";
char g[]="------------------------
--------";
for (i=0;i<m;i++)
{
cout << "\nKrijimi i rreshtit "
<<i+1
<<" te matrices A: \n";
cout<<g<<endl;
for (j=0;j<n;j++)
{
cout << "\tA["<<i<<"]["<<j<<"] =
";
cin >> A[i][j];
}
cout << "\n";
}
cout << "Shtypja e matrices
A[m][n]:\n” <<g
<<"\n";
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
cout.width(6);
cout<< A[i][j] ;
}
cout << "\n";
}
cout <<g<<"\n";
return 0;
}
4
@LAJQI 2010 17.12.2010, FIEK, Prishtinë
Shembulli 2: Të shkruhet programi që bën
shtypjen e matricës A(m,n) dhe gjen numrin e
anëtarëve negativë k të matricës A(m,n).
5
Zgjidhja e shemullit 1:
@LAJQI 2010 17.12.2010, FIEK, Prishtinë 6
@LAJQI 2010 17.12.2010, FIEK, Prishtinë
7
Shembulli 3: Të krijohet matrica Z(m, n), ku
anëtarët e saj të përcaktohen përmes shprehjes.
@LAJQI 2010
Zgjidhja e shemullit 2:
17.12.2010, FIEK, Prishtinë 8
@LAJQI 2010 17.12.2010, FIEK, Prishtinë
9
Shembulli 4: Të shkruhet programi në gjuhën c++,
përmes së cilit gjendet anëtari më i madh në
matricën e dhënë A(m,n).
Zgjidhja e shemullit 3:
17.12.2010, FIEK, Prishtinë 10 @LAJQI 2010
@LAJQI 2010 17.12.2010, FIEK, Prishtinë
11
Shembulli 5: Programi përmes së cilit gjendet
shuma e anëtarëve të matricës së dhënë R(m,n).
17.12.2010, FIEK, Prishtinë 12 @LAJQI 2010
Sortimi i anëtarëve të vektorit
17.12.2010, FIEK, Prishtinë @LAJQI 2010
13
A[i]
b
A[j]
1
2
3
@LAJQI 2010 17.12.2010, FIEK, Prishtinë
14
Shembulli 6: Të shkruhet programi në gjuhën C++
përmes së cilit radhiten anëtarët e vektorit A(m)
sipas madhësisë , duke filluar prej anëtarit më të
madh kah i vogëli.
Zgjidhja e shemullit 5:
17.12.2010, FIEK, Prishtinë 15 @LAJQI 2010
A [ i ] [ j ] = B [ i ] + p o w ( j , 2 ) ; - m b i d i a g o n a l e
A [ i ] [ j ] = B [ i ] ; - n ë d i a g o n a l e
A [ i ] [ j ] = B [ i ] + 1 0 ; - n ë n d i a g o n a l e
k u B [ m ] = { 6 , - 8 , 7 , 4 , - 2 } ;
@LAJQI 2010 17.12.2010, FIEK, Prishtinë
16
Formimi i matricës prej vektorit
Shembulli 7: Të krijohet matrica A(m,m) duke
shfrytëzuar shprehjen :
@LAJQI 2010
//Formimi i matrices prej vektorit
#include <iostream.h>
#include <math.h>
int main()
{
const m=5;
int B[m]={6,-8,7,4,-2};
int i,j,A[m][m];
for (i=0;i<m;i++)
for (j=0;j<m;j++)
if (i<j)
A[i][j]=B[i]+pow(j,2);
else
if (i==j)
A[i][j]=B[i];
else
A[i][j]=B[i] + 10;
cout << "Matrica e formuar” << "\n"; for (i=0;i<m;i++)
{
for (j=0;j<m;j++)
{
cout.width(5);
cout << A[i][j];
}
cout << "\n";
}
return 0;
}
17.12.2010, FIEK, Prishtinë 17
A[m]={1,-2,-3,4,9,6,-15};
//rreshti i pare, vektori A[m]
B[m]={4,-8,-9,2,14,6,-3};
//rreshti i dyte, vektori B[m]
C[m]={8,-8,-9,32,14,6,-5};
//rreshti i trete, vektori C[m]
E[m]={11,-8,-9,12,1,6,-7};
//rreshti i katert, vektori E[m]
F[m]={5,-4,-6,2,12,16,-17};
//rreshti i peste, vektori F[m]
H[m]={11,-8,-9,12,1,6,-1};
//rreshti i gjashte, vektori H[m]
J[m]={3,-5,-23,12, 31,6,-21};
//rreshti i shtate vektori J[m]
@LAJQI 2010 17.12.2010, FIEK, Prishtinë
18
Formimi i matrices prej shume vektoreve
Shembulli 8: Të krijohet matrica G(m,m) duke i
shfrytëzuar vektorët e mëposhtëm për rreshtat
përkatës të matricës:
//Formimi i matrices prej shume vektoreve
#include <iostream.h>
int main()
{
const m=7;
int A[m]={1,-2,-3,4,9,6,-15}; //Rreshti i pare, vektori A[m]
int B[m]={4,-8,-9,2,14,6,-3}; //Rreshti i dyte, vektori B[m]
int C[m]={8,-8,-9,32,14,6,-5}; //Rreshti i trete, vektori C[m]
int E[m]={11,-8,-9,12,1,6,-7}; //Rreshti i katert, vektori E[m]
int F[m]={5,-4,-6,2,12,16,-17}; //Rreshti i peste, vektori F[m]
int H[m]={11,-8,-9,12,1,6,-1}; //Rreshti i gjashte, vektori H[m]
int J[m]={3,-5,-23,12, 31,6,-21}; //Rreshti i shtate vektori J[m]
int i,j,G[m][m];
for (i=0;i<m;i++)
for (j=0;j<m;j++)
switch(i)
{
case 0:
G[i][j]=A[j];
break;
case 1:
G[i][j]=B[j];
break;
case 2:
G[i][j]=C[j];
break;
case 3:
G[i][j]=E[j];
break;
case 4:
G[i][j]=F[j];
break;
case 5:
G[i][j]=H[j];
break;
case 6:
G[i][j]=J[j];
break;
default:
G[i][j]=0;
break;
}
cout << "Matrica e formuar"
<< "\n";
for (i=0;i<m;i++)
{
for (j=0;j<m;j++)
{
cout.width(5);
cout << G[i][j];
}
cout << "\n";
}
return 0;
}
@LAJQI 2010 17.12.2010, FIEK, Prishtinë 19
int A[m][n]={{3,-4,6},
{-9,1,2},
{7,-8,1}};
@LAJQI 2010 17.12.2010, FIEK, Prishtinë
20
Krijimi i vektorit prej anëtarëve negativ të matricës
Shembulli 9: Të krijohet vektori B(m*n) nga anëtarët
negativ të matricës A(m,n):
@LAJQI 2010
//Krijimi i vektorit prej anetareve
negativ te matrices
#include <iostream.h>
int main()
{
const m=3,n=3;
int A[m][n]={{3,-4,6},
{-9,1,2},
{7,-8,1}};
int i,j,k,B[m*n];
//Krijimi i vektorit
k=-1;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
if (A[i][j]<0)
{
k=k+1;
B[k]=A[i][j];
}
cout << "B=[";
17.12.2010, FIEK, Prishtinë 21
//Shtypja e vektorit B
for (i=0;i<=k;i++)
{
cout.width(3);
cout << B[i];
}
cout << " ]\n";
return 0;
}
@LAJQI 2010 17.12.2010, FIEK, Prishtinë 22
Universiteti i Prishtinës
Fakulteti i inxhinierisë elektrike dhe kompjuterike
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
Nënprogramet (Funksionet)
• Definimi i funksionit
• Parametrat e funksionit
• Thirrja e funksionit
• Përdorimi i disa funksioneve në një
program
Funksioni void dhe inline
Variablat lokale dhe globale
1
Nënprogramet - Definimi i tyre
16.01.2012, FIEK, Prishtinë @LAJQI 2012
Funksioni ngërthen ne vete nje grup te urdhërave të cilat i ekzekuton me rastin e thirrjes se tij nga nje pjesë e caktuar e programit. Forma e përgjithshme e funksionit është:
tipi emri(tipi1 prm1,tipi2 prm2,...,tipin prmn) { urdhëri/at; return rezultati; }
ku janë:
tipi - tipi i rezultatit të funksionit. emri - emri i funksionit. tipi1,... tipin - tipet e parametrave formal. prm1, prm2, ..., prmn - parametrat formal. urhdëri/at - urhdëri/at që ekezekutohen brenda funksionit r - rezultati të cilin e kthen funksioni.
2
Parametrat e funksionit
16.01.2012, FIEK, Prishtinë @LAJQI 2012
Parametra formal (param1, param2)
Parametra aktual (kur ju japim vlera parametrave formal)
int shuma(int param1, int param2)
r = shuma ( 3 , 10 )
int shuma(int param1, int param2)
13
r = shuma ( 3 , 10 )
3
Shembulli 1: Thirrja e funksionit
16.01.2012, FIEK, Prishtinë @LAJQI 2012
// Thirrja e funksioneve
#include <iostream.h>
int shuma(int a,int b)
{
int y;
y=a + b;
return y;
}
int zbritja(int a,int b)
{
int y;
y=a - b;
return y;
}
int main()
{
int x, y, z, s;
cout << "Vlera x = ";
cin >> x;
cout << "\nVlera y = ";
cin >> y;
s = shuma(x, y);
z = zbritja(x, y);
cout << "\nShuma e llogaritur: s = "
<< s
<< "\n\n";
cout << "Zbritja e llogaritur: s = "
<< z
<< "\n\n";
return 0;
}
4
16.01.2012, FIEK, Prishtinë @LAJQI 2012
Përdorimi i disa funksioneve në një program
Shembulli 2: Të shkruhet programi në gjuhën programuese c++ që
bën llogaritjen e funksioneve s dhe p. Për llogaritjen e funksioneve
të shfrytëzohen funksionet me emertimin ShumaVargut dhe
ProdhimiVargut.
n
i
i2
)2*3(
n
mi
i )1(
s = p =
5
16.01.2012, FIEK, Prishtinë @LAJQI 2012
double ShumaVargut(int a,
int b,int c,int d)
{
int i;
double S=0;
for (i=a;i<=b;i++)
S=S+(c*i+d);
return S;
}
double ProdhimiVargut(int a,
int b,int d)
{
int i;
double P=1;
for (i=a;i<= b;i++)
P=P*(i+d);
return P;
}
#include <iostream.h>
double ShumaVargut(int a, int
b, int c, int d);
double ProdhimiVarg(int a, int
b, int d);
int main()
{
int n, m = 0;
double Prodhimi;
double Shuma;
cout<<"Vlera n = ";
cin>>n;
Shuma = ShumaVargut(2,n,3,2);
cout << "Shuma S= "
<< Shuma
<<"\n";
Prodhimi=ProdhimiVargut(m,n,1);
cout << "Prodhimi p = "
<< Prodhimi
<< "\n“; return 0;
}
6
Funksionet void, inline
VOID Funksionet të cilat nuk kthejnë rezultat fare, quhen funksione void (ang.
boshe, të zbrazëta, shterpe) dhe definohen si funksione të tipit void. Urdhëri i tyre për kthim të rezultateve shkruhet vetem return;.
Shembull funksioni void: void shtypMesazhin()
{
cout аа さKy eshte nje funksion void!";
return;
}
INLINE さTヴ┌ヮキざ キ a┌ミニゲキラミキデ ┣;ニラミキゲエデ ヮ;ヴ;ケキデWデ ミ¥ a┌ミS デ¥ ヮヴラェヴ;マキデく N¥ゲW
komplet funskioni zhvillohet në fillim të programit, në vijë (ang. In line) të rrjedhës së programit, atëherë quhet さIミノキミW a┌ミIデキラミざく
16.01.2012, FIEK, Prishtinë
7
@LAJQI 2012
Shembulli 3: Funksion inline
16.01.2012, FIEK, Prishtinë @LAJQI 2012
#include <iostream.h>
inline int subtraction (int a, int b)
{
int r;
r=a-b;
return (r);
}
int main ()
{
int x=5, y=3, z;
z = subtraction (7,2);
cout << “Rezultati i pare eshte "<< z; cout << “\nRezultati i dyte eshte" << subtraction (7,2);
cout << “\nRezultati i trete eshte" << subtraction (x,y);
z= 4 + subtraction (x,y);
cout << “\nRezultati i katert eshte“ << z << '\n';
return 0;
}
Pas ekzekutimit… Rezultati i pare eshte 5
Rezultati i dyte eshte 5
nRezultati i trete eshte 2
Rezultati i katert eshte 6
8
Shembulli 4: Funksioni void
16.01.2012, FIEK, Prishtinë @LAJQI 2012
#include <iostream>
using namespace std;
void printoMesazhin()
{
cout<<“Une jam një funksion!"; }
int main ()
{
printoMesazhin();
return 0;
}
Pas ekzekutimit… Une jam një funksion!
9
Variablat lokale dhe globale - definicion
@LAJQI 2012
Variablat lokale
Variablat të cilat përcaktohen brenda një funksioni, përfshirë edhe programin kryesor si funksion, paraqesin variabla lokale. Këto variabla mund të shfrytëzohen vetëm brenda funksionit ku janë definuar, përkatësisht vetëm brenda hapësirës e cila përcaktohet me kllapat e mëdha të funksionit {}.
Variablat globale Variabla të cilat deklarohen para deklarimit të funksionit main(), ose
jashtë kllapave të funksioneve, paraqesin variabla globale. Variablat globale shifen nga të gjithë nënprogramet, pavarsisht nga ajo se a shfrytëzohen ose jo prej tyre.
16.01.2012, FIEK, Prishtinë
10
#include <iostream>
using namespace std;
int main()
{
cout <<“Mosha:” cin >> mosha;
… return 0;
}
Dukshmëria e variablave
Varësisht se në cilën pjesë të programit deklarohen
variablat, ato mund të jenë:
Variabla LOKALE
Variabla GLOBALE
int n, m;
double rezultati;
char emri;
int mosha, pesha;
float gjatesia;
variabla globale
variabla lokale
16.01.2012, FIEK, Prishtinë
11
@LAJQI 2012
Universiteti i Prishtinës
Fakulteti i inxhinierisë elektrike dhe kompjuterike
12
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
- Fushat numerike në nënprograme
- Makrofunksionet
- Funksionet e librarisë së C++
- Funksionet matematikore në c++
- Funksionet për punë me stringje
përcaktimi i anëtarëve të vektorit:
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
13
Fushat numerike në nënprograme
Shembulli 1: Të krijohet vektori A(m) duke e
shfrytezuar funksionin KrijoVektorin, pas krijimit të
vektorit, të shtypen anëtarët e atij vektori.
16.01.2012, FIEK, Prishtinë @LAJQI 2012 14
përcaktimi i anëtarëve të matricës:
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
15
Fushat numerike në nënprograme
Shembulli 1: Të krijohet matrica A(m, n) duke e
shfrytezuar funksionin KrijoMatrcicen, pas krijimit
të matricës, të shtypen anëtarët e asaj matrice.
16.01.2012, FIEK, Prishtinë @LAJQI 2012 16
Makrofunksionet
Direktiva #define mund te perdoret
per krijimin e makro funksioneve.
Makrot marrin argumente ngajshem
sikurse funksionet.
Krijimi i nje makro funksioni:
#define llogarit(x) ( (x) * 2 )
llogarit (4) atehere do te kemi rez.8!
Makrot mund te kene nje e me shume
parametra.
#include <iostream.h>
#include <math.h>
#define katrori(x) (pow(x,2))
#define kubi(y) (pow(y,3))
#define shuma(x, y) (x + y) //prototipi
int main()
{
double f,g, sh;
f=katrori(2);
cout << "Katrori ......: “ << f << "\n";
g=kubi(3);
cout << "Kubi .........: “ << g << "\n";
sh = shuma(f, g);
cout << "Shuma ........: “ << sh << "\n";
return 0;
}
16.01.2012, FIEK, Prishtinë
17
@LAJQI 2012
Funksionet e librarisë së C++
Shembull: perdorimi i funksionit toupper()
#include <cctype>
#include <iostream>
using namespace std;
void main()
{
char d='v';
d=toupper(d);
cout<<d<<"\n";
return;
}
rand ()
#include <cstdlib>
tolower()
#include <cctype>
toupper()
#include <cctype>
time()
#include <ctime>
rename()
#include <cstdio>
remove()
#include <cstdio>
…
16.01.2012, FIEK, Prishtinë
18
@LAJQI 2012
Funksionet matematikore ne c++
Në matematikë Në gjuhën C++
sin(x) sin(x)
cos(x) cos(x)
tg(x) tan(x)
arcsin(x) asin(x)
arccos(x) acos(x)
arctang(x) atan(x)
ln(x) log(x)
log(x) log10(x)
xy pow(x,y)
ex exp(x)
sqrt(x)
x abs(x), fabs(x)
sh(x) sinh(x)
ch(x) cosh(x)
th(x) tanh(x)
#include <iostream.h>
#include <math.h> int main() { const int m=7; double y; int i,x; int A[m]={4,-7,3,-9,5,-3,6}; x=abs(A[1]); for (i=0;i<m;i++) if (abs(A[i])>x) x=abs(A[i]); cout << "Anetari me i madh per
nga vlera absolute: x =“ << x << "\n"; y=3*sin(x+1)+4*exp(x)-2*log(x+2); cout << "Vlera e funksionit: y=" << y << "\n"; return 0; }
16.01.2012, FIEK, Prishtinë
19
@LAJQI 2012
Funksionet për punë me stringje
Gjatesia e stringut
strlen (x)
Kopjimi i stringut
strcpy(y,x)
Kop. stringut n karaktere
strncpy(y,x,n).
Bashkimi i dy stringjeve
strncat(x,y)
Shtimi i pjeses se stringut
strncat(x,y,k)
//Kopjimi I tekstit nga A ne B
#include <iostream.h>
#include <string.h>
int main()
{
const m=20; char A[m],B[m];
cout << "Teksti që lexohet ...: ";
cin.getline(A,m);
cout << "Teksti i lexuar .....: "
<< A
<< "\n";
strcpy(B,A);
cout << "Teksti i kopjuar ....: "
<< B << "\n";
return 0;
} 16.01.2012, FIEK, Prishtinë
20
@LAJQI 2012
Shembull 1
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
21
Shembulli 2
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
22
Shembulli 3
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
23
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
24
Shembulli 4
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
25
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
26
Shembulli 5
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
27
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
28
Shembulli 6
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
29
Shembulli 7
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
30
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
31
32 @LAJQI 2012 16.01.2012, FIEK, Prishtinë