Haxhi Lajqi Ushtrime Ne C PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 177

Haxhi Lajqi

Prishtinë,
2011
Algoritmet
1

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.

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Algoritme logjike
2

 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.

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Algoritmet numerike
3

 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.

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Paraqitja numerike për shembullin 1
4

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.

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Shembull 2: Të paraqitet në formë
analitike funksioni i dhënë?
5

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Paraqitja analitike e shemullit 2
6

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.

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Shembull 3: Të paraqitet në formë
analitike funksioni i dhënë?
7

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Paraqitja analitike e shembullit 3
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.

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Algoritmet grafike
9

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


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?
10

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Paraqitja analitike e shembullit 4
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.

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Paraqitja grafike e shembullit 4
12

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Paraqitja grafike e shembullit 1
13

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Paraqitja numerike e shembullit 3
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.

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Paraqitja grafike e shembullit 3
15

Fillimi

a
PO JO
a<5

z = a2 + 2a - 1 z = 2a + 3

Fundi

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Testimi i algoritmeve
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.

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Testimi i algoritmit të shembullit 2
17

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Testimi tabelar për shembullin 2
18

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Rruga
19

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Testimi i të gjitha rrugeve të shembullit 1
20

@Lajqi 2011 10-11 Tetor 2011, FIEK, Prishtinë


Interpreterët dhe kompajlerët
1

 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 Programi
Programi Linkeri
Kompajler Objektiv Ekzekutiv
burimor
(.obj) (.exe)

Fajlla
tjerë
objektiv

@LAJQI 2010 22.10.2010, FIEK, Prishtinë


Hapja e një projekti të ri
2

1. File
2. New
3. Zgjedhim tabin P
4. Win32 Console Application
5. Emërtojmë projektin Projekti1
6. D:\Ushtrime C++\Grupi juaj
7. Zgjedhim A
8. Finish

@LAJQI 2010 22.10.2010, FIEK, Prishtinë


Shkruarja e programit të parë në c++
3
//Programi i pare ne C++
 int main() #include <iostream.h>
{ int main()
return 0; {
} cout M erdhet ne C++ ";
cout \
 int main() return 0;
{return 0;} }

 int main() {return 0;}

Në fund të çdo komande shënohet


“;”

@LAJQI 2010 22.10.2010, FIEK, Prishtinë


Shkruarja e programit (vazhdim)
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 */

@LAJQI 2010 22.10.2010, FIEK, Prishtinë


Struktura e programit
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

@LAJQI 2010 22.10.2010, FIEK, Prishtinë


Kompilimi dhe ekzekutimi i programit
6

 .cpp (për C++)


 .ojb (fajll objektiv)
 .exe (fajll ekzekutiv)

@LAJQI 2010 22.10.2010, FIEK, Prishtinë


Gabimet në kompajlim
7

 P N
atëherë do të na paraqitet gabim në kompajlim.

@LAJQI 2010 22.10.2010, FIEK, Prishtinë


Ruajtja, rihapja e projektit
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

@LAJQI 2010 22.10.2010, FIEK, Prishtinë


Shembulli 1:
9

 Te shkruhet programi ne gjuhen C++ per mbledhje e dy


numrave a dhe b;

@LAJQI 2010 22.10.2010, FIEK, Prishtinë


Shembulli 1 - zgjidhja
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;
}

@LAJQI 2010 22.10.2010, FIEK, Prishtinë


Leximi i vlerave te varibalave permes tastieres
Shembulli 2
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;
}

@LAJQI 2010 22.10.2010, FIEK, Prishtinë


Shembulli 3:
12

 Të llogaritet syprina dhe perimetri i drejtekendeshit me


brinjet a dhe b. Vlerat e variblave a dhe b te ipen permes
tastieres.

@LAJQI 2010 22.10.2010, FIEK, Prishtinë


Shembulli 3 - zgjidhja
13

#include <iostream>
using namespace std;
int main() // pjesa kryesore, cka ka mbrenda main funksionit ekzekutohet
{
int a, b, s, p; // deklarimi i vaiablave
J
cin >> a;
\ J
cin >> b;
s = a * b;
p=2*(a+b);

<< s << endl;
P
<< p << endl;
return 0;
}

@LAJQI 2010 22.10.2010, FIEK, Prishtinë


Shembulli 4:
14

 Te behet gjetja e mesatares se 4 numrave te


dhene permes tastieres?

@LAJQI 2010 22.10.2010, FIEK, Prishtinë


Shembulli 4 - zgjidhja
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
<<"\
return 0;
}

@LAJQI 2010 22.10.2010, FIEK, Prishtinë


Universiteti i Prishtinës
Fakulteti i inxhinierisë elektrike dhe kompjuterike

Java 3
 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 T A \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 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 \xhh, mund të përdoret për të shtypur në


\b Backspace ekran karakteret të cilat nuk i kemi në
tastierë, si p.sh. shkronja “ë” dhe “ç”, të
\f Form Feed (për printer) gjuhës shqipe. ASCII kodi përkatës i
\n New line (CR+LF) (rreshti i ri) karakterit, duhet të shkruhet në formën
heksadecimale. P.sh. për “ë”, kodi është:
\r CR “137” (Si e shtypim zakonisht në tastierë,
\t Tab ALT+137). Atëherë, 137 në bazën 16
(numër heksadecimal), është: 89.
\v Vertical Tab
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” ;
\000 Numër oktal
\xhh Numër heksadecimal
\0 Null zero (zero binare)

@2010 LAJQI
Shembulli 1: Të shkruhet programi në gjuhën
C++, i cili përmban disa nga karakteret
speciale p.sh \n, \xhh, \a, \t.

#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;
}

@2010 LAJQI
Shembulli 2: Të shkruhet programi në gjuhën C++, i
cili përmban manipulatorin setw() ose cout.width()
.
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std; Vërejtje:
cout.fillふけ げぶ
int main()
{ Komandat cout.width() dhe
int a,s,p; (s-simboli për mbushje) duhet të vendosen para
for (a=1; a<=10; a++)
{ shtypjes së çdo vlere, përkatësisht nuk vlejnë për
s= pow(a,2); të gjitha shtypjet që vijojnë pas tyre.
p=4*a;
cout << setw(5) Gjatë mbushjes me mostër, hapësira për shtypje
<< a
<< setw(7) mund të përcaktohet edhe përmes manipulatorit
<< s setw().
<< setw(6)
<< p
<< endl;
}
return 0;
}
@2010 LAJQI
Shembulli 3: Të shkruhet programi në gjuhën
C++, i cili përmban përmban manipulatorin
setfill ose cout.fillふけ げぶ.
#include <iostream>
#include <iomanip>
using namespace Vërjetje:
std; Simboli s, i cili shfrytëzohet për mbushje, mund të
int main()
{ përcaktohet edhe
int a=6547,b=-7392; përmes manipulatorit:
cout << "vlera a=";
cout.width(8);
setfill('0')
cout.fill('^'); i cili shkruhet brenda komandës cout. Gjatë
cout << a shfrytëzimit të këtij manipulatori nuk ka rëndësi si
<< endl;
cout << "vlera b="; përcaktohet madhësia e hapësirës për shtypje
cout.width(10); (qoftë përmës komandës cout.width ose përmes
cout.fill('*');
cout << b manipulatorit setw).
<< endl;
return 0;
}
@2010 LAJQI
#include <iostream>
Shembulli 4: Të using namespace std;
shkruhet int main()
programi në {
gjuhën C++, i cili double x,y;
përmban cout << "vlera hyrëse: ";
manipulatorin cin >> x;
cout.precis y=27/x;
ion() ose cout << "vlera y=";
setprecisio cout.precision(5);
n(k), k- cout << y
kolona. << endl;
return 0;
}

@2010 LAJQI
#include <iostream>
Shembulli 4: Të using namespace std;
shkruhet int main ()
programi në {
gjuhën C++, i cili int a=5; //vlera fillestare 5
përmban int b(2);//vlera fillestare 2
int result;//ska vlerë fillestare
deklarimin dhe
a = a + 3;
inicializimin e result = a - b;
variablave. cout << result;
return 0;
}

@2010 LAJQI
// perdorimi I stringjeve
#include <iostream>
Shembulli 4: Të #include <string>
shkruhet using namespace std;
int main ()
programi në {
gjuhën C++, i cili string mystring;
mystring = “Stringu yne ne fillim!";
përmban cout << mystring << endl;
direktiven mystring =“String tjeter nga ai fillestar!";
cout << mystring << endl;
<string>, të return 0;
bëhet shtypja e }

disa stringjeve.

@2010 LAJQI
// vlerat logjike shembull
#include <iostream>
Shembulli 4: Të
using namespace std;
shkruhet int main()
programi në {
bool z;
gjuhën C++, i cili
double x,y;
përmban vlera cout << "Vlera për variablën x: ";
logjike bool. 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ëse
japim vlerën 8):

@2010 LAJQI
#include <iostream.h>
#include <math.h> Zgjidhja e
#include <iomanip.h>
int main()
shembullit 9:
{ 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;
}

@2010 LAJQI
Universiteti i Prishtinës
Fakulteti i inxhinierisë elektrike dhe kompjuterike

Java 4
1

 Degëzimet (if)
 Degëzime të zakonshme
o Me një degë
o Me dy degë
 Degëzime të ndërthurura
 Operatorët
 Shembuj detyrashぐ

@LAJQI 05.11.2010, FIEK, Prishtinë


Degëzimet -> Degëzimet e zakonshme - > Një degë
2

 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:
if (kushti)
urdheri;

 ku janë:
 kushti - kushti për degëzim.
 urdheri - komandë e cila ekzekutohet, nëse
plotësohet kushti.

@LAJQI 05.11.2010, FIEK, Prishtinë


3
#include <iostream>
Shembulli 1: using namespace std;
Programi përmes int main()
{
së cilit llogaritet
double x,s,y;
vlera e int i,n;
funksionit: cout << "Vlera x=";
cin >> x;
cout << "\nVlera n=";
cin >> n;
s=0;
for (i=1;i<=n+1;i++)
nëse vlerat e if (i!=4)
s=s+(i+2);
variablave x dhe y=2*x-3*s;
n kompjuterit i cout << "\nVlera e funksionit y=";
jepen përmes cout << y << "\n";
return 0;
tastierës. }

@LAJQI 05.11.2010, FIEK, Prishtinë


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:
if (kushti)
urdhëri1;
else
urdhëri2;

 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.

@LAJQI 05.11.2010, FIEK, Prishtinë


5
#include <iostream>
Programi në të cilin using namespace std;
përmes komandës if int main()
gjendet raporti mes {
vlerave hyrëse x dhe double x,y,z;
y. Pastaj, nëse x cout << "Numri i parë x=";
është më i madh ose cin >> x;
barazi me y, cout << "\nNumri i dytë y=";
llogaritet vlera e cin >> y;
funksionit z=2*x+1, if (x>=y)
përndryshe kjo vlerë z=2*x+1;
llogaritet me else
shprehjen z=x+y. z=x+y;
cout << "\nVlera e llogaritur
është z=";
cout << z << "\n";
return 0;
}
@LAJQI 05.11.2010, FIEK, Prishtinë
6
#include <iostream>
Programi përmes së using namespace std;
cilit numërohen int main()
anëtarët pozitivë (p) {
dhe anëtarët const int m=7;
negativë (n) të int A[m]={6,-2,-9,4,7,3,-5};
vektorit të dhënë int i,p,n;
p=0; n=0;
A(m).
for (i=0;i<m;i++)
Vektori I dhënë: if (A[i]<0)
n=n+1;
A[m]={6,-2,-9,4,7,3,-5} 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;
@LAJQI 05.11.2010, FIEK, Prishtinë
}
7
#include <iostream>
Programi përmes së using namespace std;
cilit llogaritet shuma int main()
e anëtarëve të {
vektorit A(m), të const int m=8;
cilët janë më të int i,s;
mëdhenj se numri 3 int A[m]={5,-2,7,4,1,8,10,6};
dhe më të vegjël se s=0;
numri 9. 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;
}

@LAJQI 05.11.2010, FIEK, Prishtinë


8
#include <iostream>
#include <iomanip>
Programi përmes së using namespace std;
cilit numërohen int main()
anëtarët pozitivë (p), {
dhe anëtarët const k=4,m=3;
negativë (n) të int F[k][m]={{7,-4,12},{0,17,-6},
matricës së dhënë {4,-1,-5}, {15,8,19}};
int i,j,n =0,p=0;
F(k,m).
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;
}
@LAJQI 05.11.2010, FIEK, Prishtinë
Degëzime të ndërthurura
9
 Me një komandë if
realizohet degëzimi në një
ose në dy degë. Por, tek if (kushti1)
algoritmet e ndryshme if (kushti2)
shpesh paraqiten degëzime urdhëri1;
të ndërthurura, kur prej një else
dege mund të ketë degëzime urdhëri2;
else
të reja. Për këtë qëllim, në
degët e komandave if urdhëri3;
shfrytëzohen edhe komanda
të tjera if.

@LAJQI 05.11.2010, FIEK, Prishtinë


10
#include <iostream>
using namespace std;
Programi përmes së int main()
cilit llogaritet vlera e {
funksionit: float x,y;
cout << "Vlera hyrëse x=";
cin >> x;
if (x<1.5)
y=5*x+4;
else
if (x<2.7)
për vlerën e y=x-3;
variablës x, e cila else
kompjuterit i jepet if (x<4)
përmes tastierës si y=5;
vlerë hyrëse. else
y=2*x;
cout << "\nRezultati y=“ << y <<
endl;
return 0;
@LAJQI } 05.11.2010, FIEK, Prishtinë
Operatorët
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

@LAJQI 05.11.2010, FIEK, Prishtinë


Operatorët - vazhdim
12

Operatori Domethënia Shembull Rezultati


< Më i vogël se 2<3 true
<= Më i vogël se, 3 <= 2 false
ose barazi me
== Barazi me 3 == 3 true
> Më i madhë se 3>2 true
>= Më i madhë se, 2 >= 3 false
ose barazi me
!= 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

@LAJQI 05.11.2010, FIEK, Prishtinë


Përparësit e operatorëve
13

 Lartë ()[]
! ~ ++ -- - (type) * & sizeof
*/%
+-
<< >>
< <= > >=
== !=
&
^
|
&&
||
?
= += -= *= /=
Poshtë ,
@LAJQI 05.11.2010, FIEK, Prishtinë
Shembull me operatorë
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;
}

@LAJQI 05.11.2010, FIEK, Prishtinë


Pyetje?

@LAJQI 15 05.11.2010, FIEK, Prishtinë


Universiteti i Prishtinës
Fakulteti i inxhinierisë elektrike dhe kompjuterike

Java 5
1

 Kapërcimi pa kusht (goto)


 Switch( )
 Operatori kushtëzues (?)
 Shembuj detyrash nga
shuma, prodhimi, faktorieli

@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ë
3
// Programi i pare me goto
#include <iostream.h>
Shembulli 1:
int main()
goto {
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;
}

@2010 Lajqi 12.11.2010, FIEK, Prishtinë


4
#include <iostream>
using namespace std;
Shembulli 2: goto
int main()
- Krijimi i unazës {
int i=1;
Programi përmes double s=0;
së cilit llogariten g:if (i<10)
dhe shtypen {
shumat parciale s=s+i;
të numrave cout << "Për i="
<< i;
natyrorë prej 1 cout << " Shuma s="
deri në 9. << s
<< "\n";
i++;
goto g;
}
return 0;
}
@2010 Lajqi 12.11.2010, FIEK, Prishtinë
5

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.

@2010 Lajqi 12.11.2010, FIEK, Prishtinë


Komanda Switch -> Versioni bazik i komandës switch
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:

@2010 Lajqi 12.11.2010, FIEK, Prishtinë


Degëzimet e shumëfishta - switch( )
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....
}
@2010 Lajqi 12.11.2010, FIEK, Prishtinë
8

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.

@2010 Lajqi
9

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.
@2010 Lajqi
Kapërcimi për vlerat e çfarëdoshme
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.

@2010 Lajqi 12.11.2010, FIEK, Prishtinë


Shembulli 3 switch()
11
//Me switch() //Pa switch()
#include <iostream.h> #include <iostream.h>
int main() int main()
{ {
int Nota; int Nota;
cout<<"Jepni noten 1, 2, 3, 4 ose 5 : Nota=" ; cout<<"Jepni noten 1, 2, 3, 4 ose 5 : Nota=" ;
cin >> Nota; cin >> Nota;
switch(Nota) if (Nota == 1)
{ cout<<"Dobet: "
case 1: cout<<"Dobet: "; else
break; if (Nota == 2)
case 2: cout<<"Mjaftueshem: "; cout<<"Mjaftueshem: ";
break; else
case 3: cout<<"Mire: "; if (Nota == 3) cout<<"Mire: ";
break; else
case 4: cout<<"Shume mire: "; if (Nota == 4) cout<<"Shume mire: ";
break; else
case 5: cout<<"Shkelqyeshem: "; if (Nota == 5) cout<<"Shkelqyeshem: ";
break; else cout << "Gabim nota";
default: cout <<"Gabim nota e dhene!\n"; cout<<" N
} << Nota
cout <<" Nota Nota << "\n"; << "\n";
return 0; return 0;
} }

@2010 Lajqi 12.11.2010, FIEK, Prishtinë


Operatori kushtëzues (?)
12

(Kushti) ? urdhëri1 : urdhëri2; // Operatori kushtëzues (?)

 Nëse kushti është true


(plotësohet), atëhere si rezultat #include <iostream>
kthehet urdhëri1, përndryshe si using namespace std;
rezultat kthehet urdhëri2. int main ()
7==5 ? 4 : 3 {
// kthehet 3, pasi që nr. 7 nuk i barabartë me
nr. 5. int a,b,c;
7==5+2 ? 4 : 3 a=2;
// kthehet 4, pasi që 7 është i barabartë me b=7;
5+2. c = (a>b) ? a : b;
5>3 ? a : b cout << “c=”
// kthehet vlera e a, pasi që nr. 5 është me i
madhe se nr. 3. <<c
a>b ? a : b <<endl;
// kthen rezultatin varesisht se a cili është me i return 0;
madh, a ose b.
}
@2010 Lajqi 12.11.2010, FIEK, Prishtinë
Shembulli 2 - Operatori kushtëzues (?)
13

Të s h k r u h e t p r o g r a m i n ë g j u h ë n c + + p ë r m e s s ë c i l i t l l o g a r i t e t
vlera e funksionit:

d u ke e s h f t y t e z u a r o p e r a t o r i n e k u s h t e z i m i t ( ? ) .

@2010 Lajqi 12.11.2010, FIEK, Prishtinë


14
#include <iostream>
Shembull (?) using namespace std;
int main()
{
Të shkruhet programi int x, y;
në gjuhën c++ për cout << "Vlera per x: ";
llogaritjen e funksionit: cin >> x;
y =(x>2)?(x-1) : (4*x+1) y =(x>2)?(x-1):(4*x+1);
cout<<"\nRezultati per y = "
<<y
<<endl
<<endl;
return 0;
}

@2010 Lajqi 12.11.2010, FIEK, Prishtinë


Shuma dhe prodhimi
15

@2010 Lajqi 12.11.2010, FIEK, Prishtinë


@2010 Lajqi 16 12.11.2010, FIEK, Prishtinë
Faktorieli brenda shumës
17

@2010 Lajqi 12.11.2010, FIEK, Prishtinë


@2010 Lajqi 18 12.11.2010, FIEK, Prishtinë
Faktorieli brenda prodhimit
19

@2010 Lajqi 12.11.2010, FIEK, Prishtinë


@2010 Lajqi 20 12.11.2010, FIEK, Prishtinë
Pyetje?

@2010 Lajqi 21 12.11.2010, FIEK, Prishtinë


Universiteti i Prishtinës
Fakulteti i inxhinierisë elektrike dhe kompjuterike

Java 6
1

Unazat
- while
- do while
- for
 Ndërprerja e unazës
- break
 Kapërcimi i hapit të
unazës
- continue

@2011 Lajqi 21.11.2011 FIEK, Prishtinë


Unaza, komanda while
2
E përserit urdhërin derisa kushti të
plotësohet!
Forma e përgjithshme e unazës i=f;
while:
while(kushti)
{
while (kushti) urdhëri/at;
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.

@2011 Lajqi 27.11.2010, FIEK, Prishtinë


Unaza, komanda while
3

while (CONDITION)
LOOP_BODY;

@2011 Lajqi 27.11.2010, FIEK, Prishtinë


4
#include <iostream.h>
int main()
Shembulli 1: {
int x = 0, y = 0;
Të shkruhet bool numriValid = false;
while (numriValid == false)
programi në {
cout << "Ju lutem shkruani nje intexher
gjuhën ndermjet 1 dhe 10:";
cin >> x;
programuese c++ cout << "Keni shtypur: " << x << "\n\n";
që bën validimin e if ((x < 1) || (x > 10))
{
numrave të dhënë cout << "Vlera e shtypur nuk eshte
ndermjet 1 dhe 10!"
përmes tastierës. << endl
<< "Ju lutem shkruani nje numer tjeter!"
Të përdoret unaza << endl
while! << endl;
}
else
numriValid = true;
}
cout << "Tani keni shtypur numer valid,
URIME!" << endl;
return 0;
}

@2011 Lajqi 27.11.2010, FIEK, Prishtinë


5
#include <iostream.h>
Shembulli 2: #include <math.h>
int main()
{
Programi përmes së const int n=7;
cilit gjendet anëtari int i, x, A[n]={2,9,-1,4,3,6, 8};
më i vogël për nga x = abs(A[0]);
vlera absolute në i = 1;
while (i<n)
vektorin e dhënë {
A[n]. if (abs(A[i]) < x)
x = abs(A[i]);
A[n]={2,9,- i++;
}
1,4,3,6, 8}; cout << "Anetari me i vogel per
nga vlera absolute: x = "
<< x
<< "\n“;
return 0;
}

@2011 Lajqi 27.11.2010, FIEK, Prishtinë


Unaza, komanda do-while
6
Forma e përgjithshme: do urdhëri/at while (kushti);
i=f;
do
{
do urdhëri/at;
{ i=i+h;
}
urdhëri/at; while(kushti);
} ku janë:
i - variabla e unazës.
while(kushti); 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.

@2011 Lajqi 27.11.2010, FIEK, Prishtinë


Unaza, komanda do-while
7

Forma e përgjithshme:

do
{
LOOP_BODY;
}
while(CONDITION);

@2011 Lajqi 27.11.2010, FIEK, Prishtinë


8
// Programi "do-while"
Shembulli 3: #include <iostream.h>
#include <math.h>
Programi përmes int main()
së cilit llogaritet { const int n=7;
int i=0, A[n]={-2,9,-1,4,3,-6,8};
prodhimi i
double p=1;
katrorëve të do
anëtareve negativ {
të vektorit A[n]. Të if (A[i] < 0)
përdoret unaza do p = p*pow(A[i],2);
i++;
while! }
while (i<n);
A[n]={-2,9, cout << "Prodhimi i llogaritur p = "
-1,4,3,-6,8} << p
<< "\n“;
return 0;
}

@2011 Lajqi 27.11.2010, FIEK, Prishtinë


Unaza, komanda for
9

Forma e përgjithshme e unazës for:

for (i=f; kushti; i=i+h)


{
urdhëri/at;
}
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.

@2011 Lajqi 27.11.2010, FIEK, Prishtinë


Unaza, komanda for
10

Forma e përgjithshme e unazës for:

for (INITIALIZATION; CONDITION; UPDATE)


{
LOOP_BODY;
}

@2011 Lajqi 27.11.2010, FIEK, Prishtinë


11
#include <iostream.h>
Shembulli 5: int main()
Programi përmes {
së cilit gjendet const int n=7;
anëtari me i madh
int i,b,A[n]={2,9,-1,4,3,6,8};
në vektorin e
b = A[0];
for (i=1;i<n;i++)
dhënë A[n]. Të
{
përdoret unaza for.
if (A[i] > b)
b = A[i];
A[n] = {2,9, -1, 4, }
cout << "Anëtari me i madh b="
3,6, 8} << b
<< "\n“;
return 0;
}

@2011 Lajqi 27.11.2010, FIEK, Prishtinë


Dalja pa kusht nga unaza break
12
 Nëse brenda unazës vendoset // Programi Break
komanda break, kompjuteri do #include <iostream.h>
të vazhdoj ekzekutimin e int main()
progamit me komanden e cila {
pason pas kllapës së fundit të int i;
unazës. for (i=1;i<=10;i++)
{
if (i==5)
break;
break;
/*ndërprerja, dalja
prej unaze*/
cout << "i=" << i
<< "\n";
}
return 0;
}
@2011 Lajqi 27.11.2010, FIEK, Prishtinë
Kapërcimi i hapit të unazës continue
13
 continue mund të përdoret //Programi continue
#include <iostream.h>
vetëm brenda llupave (ang.
int main()
loop), si p.sh brenda një {
shprehje for. E përfundon int i;
(kapërcen) iteracionin (hapin) for (i=1;i<=10;i++)
aktual të një llupe dhe vazhdon {
tek iteracioni i ardhshëm i asaj //kalo hapin, për i=5
if (i == 5) continue;
llupe.
cout << "i="
<< i
<< "\n";
continue; }
return 0;
}

@2011 Lajqi 27.11.2010, FIEK, Prishtinë


Shembulli 7: Të llogaritet funksioni y. Të
përdoret kapërcimi i hapit continue për キЮヴく
14

@2011 Lajqi 27.11.2010, FIEK, Prishtinë


// 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;
}

@2011 Lajqi 15 27.11.2010, FIEK, Prishtinë


Pyetje?

@2011 Lajqi 16 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).

@LAJQI 2011 FIEK, Prishtinë


Vektorët dhe matricat
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ë.

@LAJQI 2011 FIEK, Prishtinë


Deklarimi i fushave numrike
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
 Z G V
 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} };

@LAJQI 2011 FIEK, Prishtinë


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]!
4

A[m]={9,-2,5,4,-1,6,3,7};
m=8;

@LAJQI 2011 FIEK, Prishtinë


Zgjidhja e shembullit 1:
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;
}

@LAJQI 2011 FIEK, Prishtinë


6
#include <iostream.h>
int main()
Leximi dhe shtypja { const int m=5;
e anëtarëve të int i, A[m];
//Krijimi i vektorit A
fushës for (i=0; i<m; i++)
{
Shembulli 2: Të cout << "A["
krijohet dinamikisht << i
vektori A[m], nëse m << "]= ";
cin >> A[i];
= 5 (konstante), dhe }
të bëhet shtypja e // Shtypja e vektorit A
anëtareve të këtij cout << " Vektori i krijuar: \n";
cout << "A={";
vektori. for (i=0;i<m;i++)
{
cout << A[i];
if (i<m-1)
Për zgjidhjen e kësaj cout<<",";
detyre të përdoret }
unaza for! cout << "}\n";
return 0;
}

@LAJQI 2011 FIEK, Prishtinë


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.
7

@LAJQI 2011 FIEK, Prishtinë


Zgjidhja e shembullit 3:

@LAJQI 2011 8 FIEK, Prishtinë


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!
9

PA S S H T Y PJ E S :

H[9] = { 0, 1, 4, 9, 16, 25, 36, 49, 64 }

@LAJQI 2011 FIEK, Prishtinë


#include <iostream>
#include <math.h>
Zgjidhja e
using namespace std;
int main()
shembullit 4:
{ 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;
}
@LAJQI 2011 10 FIEK, Prishtinë
Shembulli 5:Të shtypet numri i anëtarëve
pozitiv dhe negativ të vektorit të dhënë
M[n].
11

M[n]={-1.3 ,3.14, -6.5, -0.5, 3, 7.1};

@LAJQI 2011 FIEK, Prishtinë


Zgjidhja e shembullit 5:
12
#include <iostream> cout<<"Vektori:\n\nM["
#include <math.h> <<n
using namespace std; <<"]={";
int main() for(i=0;i<n;i++)
{ {
const int n=6; cout<<M[i];
const double M[n]={-1.3 ,3.14, - if(i!=n-1)
6.5, -0.5, 3, 7.1}; cout<<", ";
int negativ = 0,pozitiv = 0;
int i; }
for(i=0;i<n;i++) cout<<"} \nP\x89rmban "
{ <<negativ
if(M[i] >= 0) <<" an\x89tar\x89 negativ"
{ <<" dhe "
pozitiv = pozitiv +1; <<pozitiv
} <<" an\x89tar\x89 pozitiv.”
else <<“\n\n";
{ return 0;
negativ = negativ +1; }
}
}

@LAJQI 2011 FIEK, Prishtinë


Deklarimi dhe leximi i teksteve
13
//Zgjidhja e
 Komadat shembullit
 cin.get
#include <iostream.h>
int main()
 cin.getline
{
const int m=20;
 Shembulli 1: Leximi i fjalisë char A[m];
përmes komandës cin.get(a,k) cout << "Fjalia qe
lexohet: ";
cin.get(A,m);
cout << "Fjalia qeu lexua:
"
<< A
<< "\n\n";
return 0;
}

@LAJQI 2011 FIEK, Prishtinë


Shtypja e fjalës に Shembulli 2
14
#include <iostream.h>  Si rezultat do të kemi vetëm
int main() pjesën e parë të fjalisë që ne
{ e shkrujamë përmes tastierës
char A[20]; (dmth na lexohet vetëm fjala
cout << "Fjalia q\x89 e parë e fjalisë)!
lexohet: ";
cin >> A;
cout << "Fjalia q\x89 u
lexua: "
<< A
<< "\n";
return 0;
}

@LAJQI 2011 FIEK, Prishtinë


15
// istream getline
#include <iostream>
#include <iomanip>
Komanda: using namespace std;
cin.getline(A,m) 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;
}

@LAJQI 2011 FIEK, Prishtinë


@LAJQI 2011 16 FIEK, Prishtinë
Universiteti i Prishtinës
Fakulteti i inxhinierisë elektrike dhe kompjuterike

 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

@LAJQI 2010 17.12.2010, FIEK, Prishtinë


Deklarimi dhe inicializimi i matricave
2

 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:

@LAJQI 2010 17.12.2010, FIEK, Prishtinë


Shembulli 1: Të krijohet matrica A(m,n)
dinamikisht dhe të shtypet matrica e krijuar.
3

@LAJQI 2010 17.12.2010, FIEK, Prishtinë


#include <iostream>
using namespace std; Krijimi i matricës
int main()
{
const int m=2, n=3; cout << "Shtypja e matrices
int i,j; A[m][n]:\n”
int A[m][n]; <<g
cout << "Krijimi i matrices <<"\n";
A[m][n]:\n"; for (i=0;i<m;i++)
char g[]="------------------------ {
--------"; for (j=0;j<n;j++)
for (i=0;i<m;i++) {
{ cout.width(6);
cout << "\nKrijimi i rreshtit " cout<< A[i][j] ;
<<i+1
}
<<" te matrices A: \n";
cout << "\n";
cout<<g<<endl;
for (j=0;j<n;j++)
}
{ cout <<g<<"\n";
cout << "\tA["<<i<<"]["<<j<<"] = return 0;
"; }
cin >> A[i][j];
}
cout << "\n";
}
@LAJQI 2010 4 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

@LAJQI 2010 17.12.2010, FIEK, Prishtinë


Zgjidhja e shemullit 1:

@LAJQI 2010 6 17.12.2010, FIEK, Prishtinë


Shembulli 3: Të krijohet matrica Z(m, n), ku
anëtarët e saj të përcaktohen përmes shprehjes.
7

@LAJQI 2010 17.12.2010, FIEK, Prishtinë


Zgjidhja e shemullit 2:

@LAJQI 2010 8 17.12.2010, FIEK, Prishtinë


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).
9

@LAJQI 2010 17.12.2010, FIEK, Prishtinë


Zgjidhja e shemullit 3:

@LAJQI 2010 10 17.12.2010, FIEK, Prishtinë


Shembulli 5: Programi përmes së cilit gjendet
shuma e anëtarëve të matricës së dhënë R(m,n).
11

@LAJQI 2010 17.12.2010, FIEK, Prishtinë


@LAJQI 2010 12 17.12.2010, FIEK, Prishtinë
Sortimi i anëtarëve të vektorit
13

2
A[i] A[j]
1 3

@LAJQI 2010 17.12.2010, FIEK, Prishtinë


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.
14

@LAJQI 2010 17.12.2010, FIEK, Prishtinë


Zgjidhja e shemullit 5:

@LAJQI 2010 15 17.12.2010, FIEK, Prishtinë


Formimi i matricës prej vektorit
Shembulli 7: Të krijohet matrica A(m,m) duke
shfrytëzuar shprehjen :
16

A[i][j]=B[i]+pow( j,2); - mbi diagonale


A[i][j]=B[i]; - në diagonale
A[i][j]=B[i] + 10; - nën diagonale

ku B[m]={6,-8,7,4,-2};

@LAJQI 2010 17.12.2010, FIEK, Prishtinë


//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;
}
@LAJQI 2010 17 17.12.2010, FIEK, Prishtinë
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:
18

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ë


//Formimi i matrices prej shume vektoreve case 4:
#include <iostream.h> G[i][j]=F[j];
int main() break;
{ case 5:
const m=7; G[i][j]=H[j];
int A[m]={1,-2,-3,4,9,6,-15}; //Rreshti i pare, vektori A[m] break;
int B[m]={4,-8,-9,2,14,6,-3}; //Rreshti i dyte, vektori B[m] case 6:
int C[m]={8,-8,-9,32,14,6,-5}; //Rreshti i trete, vektori C[m] G[i][j]=J[j];
int E[m]={11,-8,-9,12,1,6,-7}; //Rreshti i katert, vektori E[m] break;
int F[m]={5,-4,-6,2,12,16,-17}; //Rreshti i peste, vektori F[m] default:
int H[m]={11,-8,-9,12,1,6,-1}; //Rreshti i gjashte, vektori H[m] G[i][j]=0;
int J[m]={3,-5,-23,12, 31,6,-21}; //Rreshti i shtate vektori J[m] break;
int i,j,G[m][m]; }
for (i=0;i<m;i++)
for (j=0;j<m;j++) cout << "Matrica e formuar"
switch(i) << "\n";
{ for (i=0;i<m;i++)
case 0: {
G[i][j]=A[j]; for (j=0;j<m;j++)
break; {
case 1: cout.width(5);
G[i][j]=B[j]; cout << G[i][j];
break; }
case 2: cout << "\n";
G[i][j]=C[j]; }
break; return 0;
case 3: }
G[i][j]=E[j];
break;

@LAJQI 2010 19 17.12.2010, FIEK, Prishtinë


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):
20

int A[m][n]={{3,-4,6},
{-9,1,2},
{7,-8,1}};

@LAJQI 2010 17.12.2010, FIEK, Prishtinë


//Krijimi i vektorit prej anetareve
negativ te matrices
#include <iostream.h>
int main()
{ //Shtypja e vektorit B
const m=3,n=3; for (i=0;i<=k;i++)
int A[m][n]={{3,-4,6}, {
{-9,1,2}, cout.width(3);
{7,-8,1}}; cout << B[i];
int i,j,k,B[m*n]; }
//Krijimi i vektorit cout << " ]\n";
k=-1; return 0;
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=[";

@LAJQI 2010 21 17.12.2010, FIEK, Prishtinë


@LAJQI 2010 22 17.12.2010, FIEK, Prishtinë
Universiteti i Prishtinës
Fakulteti i inxhinierisë elektrike dhe kompjuterike

 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

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


Nënprogramet - Definimi i tyre
2

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.

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


Parametrat e funksionit
3

 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 )

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


Shembulli 1: Thirrja e funksionit
4

// Thirrja e funksioneve int main()


#include <iostream.h> {
int x, y, z, s;
int shuma(int a,int b)
cout << "Vlera x = ";
{
cin >> x;
int y; cout << "\nVlera y = ";
y=a + b; cin >> y;
return y; s = shuma(x, y);
} z = zbritja(x, y);
int zbritja(int a,int b) cout << "\nShuma e llogaritur: s = "
{ << s
int y; << "\n\n";
y=a - b; cout << "Zbritja e llogaritur: s = "
return y; << z
} << "\n\n";
return 0;
}

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


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.
5

p =  (i  1)
n

s =  (3 * i  2)
i 2 i m

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


#include <iostream.h> double ShumaVargut(int a,
double ShumaVargut(int a, int int b,int c,int d)
b, int c, int d); {
double ProdhimiVarg(int a, int int i;
b, int d); double S=0;
int main() for (i=a;i<=b;i++)
{ S=S+(c*i+d);
int n, m = 0; return S;
double Prodhimi; }
double Shuma; double ProdhimiVargut(int a,
cout<<"Vlera n = "; int b,int d)
cin>>n; {
Shuma = ShumaVargut(2,n,3,2); int i;
cout << "Shuma S= " double P=1;
<< Shuma for (i=a;i<= b;i++)
<<"\n"; P=P*(i+d);
Prodhimi=ProdhimiVargut(m,n,1); return P;
cout << "Prodhimi p = " }
<< Prodhimi
<< "\n“;
return 0;
}
@LAJQI 2012 6 16.01.2012, FIEK, Prishtinë
Funksionet void, inline
7

 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 N
komplet funskioni zhvillohet në fillim të programit, në vijë (ang. In line) të
rrjedhës së programit, atëherë quhet I

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


Shembulli 3: Funksion inline
8
#include <iostream.h>
inline int subtraction (int a, int b)  Pas ekzekutimit…
{ Rezultati i pare eshte 5
int r;
r=a-b; Rezultati i dyte eshte 5
return (r); nRezultati i trete eshte 2
}
Rezultati i katert eshte 6
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;
}
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
Shembulli 4: Funksioni void
9
#include <iostream> Pas ekzekutimit…
using namespace std;  Une jam një funksion!
void printoMesazhin()
{
cout<<“Une jam një funksion!";
}
int main ()
{
printoMesazhin();
return 0;
}

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


Variablat lokale dhe globale - definicion
10

 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.

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


Dukshmëria e variablave
11

 Varësisht se në cilën pjesë të programit deklarohen


variablat, ato mund të jenë:
 Variabla LOKALE #include <iostream>
 Variabla GLOBALE using namespace std;
int n, m;
double rezultati;
char emri;
variabla globale
int main()
{
int mosha, pesha;
variabla lokale float gjatesia;

cout <<“Mosha:”
cin >> mosha;

return 0;
}
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
Universiteti i Prishtinës
Fakulteti i inxhinierisë elektrike dhe kompjuterike

12

- Fushat numerike në nënprograme


- Makrofunksionet
- Funksionet e librarisë së C++
- Funksionet matematikore në c++
- Funksionet për punë me stringje

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


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.
13

përcaktimi i anëtarëve të vektorit:

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


@LAJQI 2012 14 16.01.2012, FIEK, Prishtinë
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.
15

përcaktimi i anëtarëve të matricës:

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


@LAJQI 2012 16 16.01.2012, FIEK, Prishtinë
Makrofunksionet
17
 Direktiva #define mund te perdoret #include <iostream.h>
per krijimin e makro funksioneve. #include <math.h>
Makrot marrin argumente ngajshem #define katrori(x) (pow(x,2))
sikurse funksionet. #define kubi(y) (pow(y,3))
#define shuma(x, y) (x + y) //prototipi
Krijimi i nje makro funksioni:
#define llogarit(x) ( (x) * 2 ) int main()
{
llogarit (4) atehere do te kemi rez.8!
double f,g, sh;
f=katrori(2);
Makrot mund te kene nje e me shume cout << "Katrori ......: “ << f << "\n";
parametra.
g=kubi(3);
cout << "Kubi .........: “ << g << "\n";
sh = shuma(f, g);
cout << "Shuma ........: “ << sh << "\n";
return 0;
}
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
Funksionet e librarisë së C++
18
Shembull: perdorimi i funksionit
 rand () toupper()
#include <cstdlib> #include <cctype>
 tolower() #include <iostream>
#include <cctype> using namespace std;
 toupper()

#include <cctype> void main()


 time() {
#include <ctime> char d='v';
 rename() d=toupper(d);
#include <cstdio> cout<<d<<"\n";
 remove() return;
#include <cstdio> }

@LAJQI 2012 16.01.2012, FIEK, Prishtinë
Funksionet matematikore ne c++
19
Në matematikë Në gjuhën C++ #include <iostream.h>
sin(x) sin(x) #include <math.h>
int main()
cos(x) cos(x) {
tg(x) tan(x) const int m=7;
arcsin(x) asin(x) double y;
int i,x;
arccos(x) acos(x) int A[m]={4,-7,3,-9,5,-3,6};
arctang(x) atan(x) x=abs(A[1]);
for (i=0;i<m;i++)
ln(x) log(x) if (abs(A[i])>x)
log(x) log10(x) x=abs(A[i]);
cout << "Anetari me i madh per
xy pow(x,y) nga vlera absolute: x =“ << x
ex exp(x) << "\n";
sqrt(x) y=3*sin(x+1)+4*exp(x)-2*log(x+2);
cout << "Vlera e funksionit: y="
x abs(x), fabs(x) << y
sh(x) sinh(x) << "\n";
return 0;
ch(x) cosh(x) }
th(x) tanh(x)
@LAJQI 2012 16.01.2012, FIEK, Prishtinë
Funksionet për punë me stringje
20

 Gjatesia e stringut //Kopjimi I tekstit nga A ne B


#include <iostream.h>
 strlen (x)
#include <string.h>
 Kopjimi i stringut int main()
{
 strcpy(y,x) const m=20;
char A[m],B[m];
 Kop. stringut n karaktere cout << "Teksti që lexohet ...: ";
 strncpy(y,x,n). cin.getline(A,m);
cout << "Teksti i lexuar .....: "
 Bashkimi i dy stringjeve << A
<< "\n";
 strncat(x,y)
strcpy(B,A);
 Shtimi i pjeses se stringut cout << "Teksti i kopjuar ....: "
<< B
 strncat(x,y,k) << "\n";
return 0;
@LAJQI 2012 } 16.01.2012, FIEK, Prishtinë
Shembull 1
21

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


Shembulli 2
22

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


Shembulli 3
23

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


24

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


Shembulli 4
25

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


26

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


Shembulli 5
27

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


28

@LAJQI 2012
16.01.2012, FIEK, Prishtinë
Shembulli 6
29

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


Shembulli 7
30

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


31

@LAJQI 2012 16.01.2012, FIEK, Prishtinë


@LAJQI 2012 32 16.01.2012, FIEK, Prishtinë

You might also like