You are on page 1of 92

P

P
r
r
i
i
n
n
c
c
i
i
p
p
e
e
t
t

P
P
r
r
o
o
g
g
r
r
a
a
m
m
i
i
m
m
i
i
t
t
n
n

J
J
a
a
v
v
a
a
:
:

A Ar rk ki it te ek kt tu ur ra at t d dh he e I In nt te er rf fe ej js sa at t
!shfrImo
(Ijosn o nro: knIfujf I - VI)



ngn nvId SchmIdf mo !Idvnn Iunjnkun













CjIInn
2004

Prmbajtja

HYRJ...............................................................................................................................1
I KOMPJ\TRT H PROGRAMIMI....................................................................2
l.l 'ISHTI KOMIJ!TI!I..............................................................................................2
l.2 I!OC!AMIMI I KOMIJ!TI!IVI..................................................................................3
(l.3 I!OC!AMIT JAI OIJIKTI)....................................................................................4
l.4 SISTIMIT OII!ATIVI HI WIOWS-I .....................................................................5
(l.5 A!KITIKT!!A I SOIT!I!IT) ....................................................................................5
II JAVA APIIKACIONT.............................................................................................6
(2.l AI!IKACIOI HI A!KITIKT!!A I TIJ) ....................................................................6
2.2 SI I!TOHIT HI IKZIK!TOHIT JI AI!IKACIO................................................6
2.3 SI I!KSIOO AI!IKACIOI ...................................................................................6
2.3.l (CJ!!MA) SHTIC! I IKZIK!TIMIT II! AI!IKACIOI ..........................................8
2.4 SI JI OIJIKT I KOST!!KTO JI TJITI!............................................................9
(2.5 II!MI!ISIMI I MISAZHIVI TI CAIIMIVI TI KOMII!ATO!IT) ...............................l0
(2.6 II!MI!IHJI) ......................................................................................................l0
2.? !SHT!IMI TI I!OC!AMIMIT ...................................................................................ll
III ARITMTIKA H NRYSHORT...................................................................12
3.l A!ITMITIKA I !M!AVI TI I!OTI..........................................................................l2
3.2. MAHISITI I IMI!T!A!A: !YSHO!IT...............................................................l3
3.2.l !YSHO!IT M! TI !YSHOJI: A!JA I V!I!IS ...................................l6
3.3 A!ITMITIKA MI THYISA: TIII O!I!I....................................................................2l
3.4 TIII IOO!IA..........................................................................................................22
3.5 (I!IO!ITITI) II!IA!ISIA I OII!ATO!IVI.............................................................23
3.6 ST!ICJIT, KA!AKTI!IT HI VII!IMIT I TY!I....................................................24
3.? KOT!O!!IMI I TIIIVI TI TI HIAVI .................................................................25
3. 8 HY!JA (II!T) II!MIS A!C!MITIVI I!OC!AMO!I..........................................26
(3.S.1 Konter/ini nJernje/ S/ringjete e Aunrote Jle Iorno/icini) ....................26
3.S.2 Konter/ini i Tenpero/uree ne H,rje (1npu/) .................................................26
(3.9 IACOSTIIIKIMI I CAIIMIVI I SHI!IHJI) ........................................................29
(3.l0 IJA!IT KYI HI IITIIIKATO!IT)..................................................................29
IV HYRJA (INP\T), AIJA (O\TP\T) H GJNJA ....................................30
4.l. HY!JA (II!T) ITI!AKTIVI ..................................................................................30
4.2 A!JA (O!TI!T) C!AIIKI ......................................................................................32
(4.2.l IAI!AT HI KO!IZAT I TY!I) ........................................................................32
4.2.2 II!SHTATJA I IAI!AVI MI T!ASHICIMI...........................................................32
4.3. IO!MATI HI MITOAT II! VIZATIM.....................................................................34
4.3.1 Kone/ru//or-ne/oJo/ Jle OIje//i /lie .............................................................34
4.4 OIJIKTIT MI CJIJI: !YSHO!IT I I!SHAVI.................................................36
4.5. TISTIMI I I!OC!AMIT QI II!O! HY!JI................................................................39


V STR\KT\RA KOMPONNTV: NRTIMI I MTOAV
H KIASAV.........................................................................................................41
(5.l MITOAT) ..............................................................................................................4l
5.2 MITOAT I!I!IKI..................................................................................................4l
.2.1 Dieo Me/oJo PuIli/e Tlenelore .....................................................................41
.2.2 Me/oJo/ Kone/ru//ore......................................................................................44
5.3 IA!AMIT!AT I MITOAVI......................................................................................46
5.3.l IO!MAT I IA!AMIT!AVI.....................................................................................4?
5.4 CASI ST!Y: KO!IZI A!ISI MI ISTIIM TI II!CJITHSHIM...........................5l
5.5 !IZ!!TATIT I MITOAVI: I!KSIOIT................................................................56
5.6 MITOAT I!IVATI ..................................................................................................59
VI STR\KT\RA KONTROIIIT: \RHRAT K\SHTZ\S
H ARKITKT\RA SOIT\RIT.................................................................65
(6.l !!JIHA I KOT!O!!IT HI ST!!KT!!A I KOT!O!!IT) ....................................65
6.2 ST!!KT!!A K!SHTIZ!ISI I KOT!O!!IT..............................................................65
6.2.l !!HI!AT K!SHTIZ!IS TI VIOS!! II!I!IA...........................................6?
(6.2.2 I!OI!IMIT SITAKSO!I MI K!SHTIZ!IS)........................................................69
6.3 VII!IMIT !I!ACIOA!I (OII!ATO!IT !OCJIKI) ..................................................?0
6.4 ZIATIMI I !!HI!AVI K!SHTIZ!IS.......................................................................?2
(6.5 !YSHIMI I !!JIHIS SI KOT!O!!IT)................................................................?3
(6.6 !!HI!I SWITCH)..................................................................................................?3
(6.? KOMIOITIT MOI! HI KOT!O!!!IS)..........................................................?3
6.8 MIAXHI! KOTOSH TI IAKIS (CASI ST!Y) ....................................................?4
6.8.l0 OIJIKTI TI SH!MIIISHTA CA I JIJTA K!ASI..............................................??
(6.9 TISTIMI I MITOAVI HI K!ASAVI) .....................................................................??
SHTOJC: KSHIIIA PRAKTIK PR PROGRAMIM.......................................?B
IMI!TIMI I CJ!HI SHQIII I IM!AVI I KO..........................................................?8
IVI!IT I KO HI HII!A!KIA ..................................................................................84
XJI!!JA I ASCII KOIVI ...........................................................................................8?
IJA!IT KYI TI CJ!HIS I!OC!AM!ISI JAVA..............................................................88
PRINCIPE T PROGRAMIMIT N JAVA HYRJE

l

Hyrje

o kofo foksf jnno orkfhyor dho orshfnfur ushfrImof ngn knIfujf I-VI fo IIbrIf fo
nvId SchmIdf: "IrogrnmmIng IrIncIIos In Jnvn: ArchIfocfuros nnd Inforfncos",
qo mund fn gjonI no www.cIs.ksu.odu/snnfos/schmIdf/j. Ionshfu, no fund oshfo
odho njo shfojco mo nrfIkuj koshIIIuos or rogrnmIm fo mIro. I fnIondoroj nuforIn or
IojImIn o ubIIkImIf fo kofIj foksfI.
!IbrI I SchmIdf-If oshfo I mrokuIIuoshom or fIIIosfnrof no rogrnmIm dho konkrofIshf
no Jnvn. Mo nno fo shombujvo rnkfIko o shumo fo nforf mo cIIIndo Ioxuos, nuforI o
bon fo kondshom mosImIn o Jnvn-s dho fo foknIknvo fo ndryshmo fo rogrnmImIf.
MofIvI or shkrunrjon o kofIj foksfI no gjuhon shqIo IIndI gjnfo unos mo sfudonfo fo
cIIof nuk o zoforonIn mIro gjuhon nngIozo. Ior shknk fo ongosos so gjuhos nfn nuk
mund fn IoxonIn IIbrIn dho f'I kufonIn kodof o ndryshmo. Iorshfnfjn Imo o kodIf no
gjuhon shqIo (no mnson sn oshfo o mundur) doII fo jofo o dobIshmo or fn.
nfyrIshf, nrnoIqohof qo ky foksf fo ordorof krnhns IIbrIf fo SchmIdf-If. Ionshfu,
Informnfn fo dobIshmo mund fo mIrron odho ngn uob-fnqjn o rof. Infon IorIshn:
fborIshn.noffIrms.com.

Pv k sLt ky tekst?

Ky foksf oshfo shkrunr or sfudonfof qo I ndjokIn ushfrImof ngn "IrogrnmImI dho
nIgorIfmof" no !nIvorsIfofIn o IrIshfInos, ISHM, onrfnmonfI I MnfomnfIkos,
rojfImI I Shkoncos KomjuforIko. MIroo mund fn ordorIn sI foksf fIIIosfnr fo gjIfho
nfn qo dunn fn mosojno gjuhon Jnvn bnshko mo dIsn foknIkn bnshkokohoro fo
rogrnmImIf dho fIIozofIno o rogrnmImIf fo orIonfunr knh objokfof.

GJuLu e pvdovuv n tekst

Ky foksf nuk o kn or qoIIIm shmnngIon o mosImIf fo gjuhos nngIozo, or mosImIn
fhoIbosor fo gjornvo. Cjuhn nngIozo, no fo vorfofo, oshfo kushf I domosdoshom or
Shkoncon KomjuforIko.
I mIroros fo gjIfhn vorojfjof, koshIIInf dho komonfof rrofh foksfIf.




!Idvnn Iunjnku, Ing. mnf.
rIdvnn.bunjnkufshmn.unI-r.odu







PRINCIPE T PROGRAMIMIT N JAVA I KOMPJUTERT DHE PROGRAMIMI

2

I Kompjutert dhe Programimi



1.1 'sht Kompjuteri?


1. oso komjufor oshfo do qonIo qo mund f'I zbnfojo urdhornf, nfohoro jo shombuj
fo komjuforovo ngn jofn o ordIfshmo.

IorgjIgjo:
!shfnrI oshfo komjufor qo I zbnfon urdhornf qo In jo ororI I vof. CjoIIoborosjn oshfo
komjufor qo bon ushqIm fo ngrohfo sIns urdhorIf. ShIfosI oshfo komjufor qo I sjoII
mnIIornf qo I korkon fI. KnbInn o foIofonIf oshfo komjufor qo I zbnfon urdhornf qo fI
In jo, nsI fn fufosh knrfoIon o rroguIIf. Vofurn oshfo komjufor qo IovIz sIns
urdhornvo fun. nfyrIshf, kn odho shumo shombuj fo fjoro.


2. Shono fo gjIfhn njIsjof hyroso-dnIoso qo jnno fo IIdhurn mo komjuforIn qo do fn
ordorosh or ushfrImof o fun fo rogrnmImIf.

IorgjIgjo:
InjIsjo hyroso: fnsfIorn, mIu (mnusI), mIkrofonI.
InjIsjo dnIoso: monIforI, nIfonrInnfof, shfyosI.
InjIsjo hyroso-dnIoso: knrfoIn o rrjofIf.


3. !IognrIfosIf-knIkuInforof jnno komjuforo. CIInf jnno njIsjof hyroso-dnIoso or njo
IIognrIfos

IorgjIgjo:
InjIsjo hyroso or IIognrIfosIn oshfo fnsfIorn (bnshkosIn o fnsfovo) no fo cIIon fI I shfy
numrnf dho vorImof nrIfmofIko. InjIsjo dnIoso oshfo okrnnI oso shIrIfI I Iofros no fo
cIIIn nrnqIfon rozuIfnfof.


PRINCIPE T PROGRAMIMIT N JAVA I KOMPJUTERT DHE PROGRAMIMI

3

1.2 Programimi i kompjuterve


1. Cjojo njo IIbor mo rocofn dho sfudIojo njo ngn rocofnf o fIj. Shono foIjof dokInrnfIvo,
omrnf, dho snsIfo o snkfn. Ionshfu, rrofho do udhozIm (InsfruksIon) no rocofo qo fy fo
dukof jorocIz.

IorgjIgjo:
!ocofn or orgnfIfjon o njo njI:
2 fil/er-qeee pertlolen ne 200nl uje. Percile/ 3- nin. Jle lile/ /e qenJroje 30 ninu/o
ne go/e /e nIuluor.
Kullole/ Jle oel/u i nxel/e /e pile/.
oji i pergo/i/ur i free/e/ pile/ 2-3 lere ne Ji/e.
Sleqer i el/ole/ eipoe elijee.

IoIjof dokInrnfIvo: orvIohon, orzIhof, IIhof fo qondrojo, kuIIohof, Ihof, shfohof.
Imrnf: fIIfor-qoso, ujo, mInufo, gofo, nj, shoqor, shIjo.
!dhozImo jorocIzo: orzIhof 3-5 mIn.; "Ashfu I nxohfo" (n oshfo njI domosdo I
nxohfo); 2-3 horo no dIfo, sIns shIjos.


2. ArIfmofIkn shosh quhof "gjuhn o nro rogrnmuoso". Tn zomo so kjo shrohjo oshfo
njo rogrnm
(3 + 2) - l + (6 + 5)

dho fn zomo so fI jo komjufor. Shono hnnf qo I ndormorr mo InsIn fond or f'I kryor
(okzokufunr) udhozImof (InsfruksIonof) no kofo rogrnm. (omofhono, IIognrIfo
rozuIfnfIn o shrohjos "njo IIognrIfjo no hn").

IorgjIgjo:
Kryorjn (okzokufImI) no drojfImIn roj mnjfns-djnfhfns, do f'I knIonfo kofn hnn:
l) mbIodh 3 mo 2, qo jo 5 | 5 - l + (6 + 5)
2) zbrIfo l, qo jo 4 | 4 + (6 + 5)
3) mbIodh 6 mo 5, qo jo ll | 4 + ll
4) mbIodh 4 mo ll, qo jo l5 | l5.
(IrovonI no drojfImIn roj djnfhfns-mnjfns)


3. AIgjobrn oshfo gjuho rogrnmuoso. Shono hnnf qo I bon or fn zgjIdhur vIoron o x-If
no kofo "rogrnm":
3, - x = 3 + 2x
(!dhozIm: hnI I nro oshfo fo shfosh x fo dy nnovo fo bnrnzImIf, duko o dhono
bnrnzImIn o rI, 3, - x + x = 3 + 2x + x.)
PRINCIPE T PROGRAMIMIT N JAVA I KOMPJUTERT DHE PROGRAMIMI

4

IorgjIgjo:
3, - x = 3 + 2x | shfojmo x fo dy nnovo fo bnrnzImIf
3, - x + x = 3 + 2x + x | I mbIodhIm -x mo x no nnon
o mnjfo, qo jo 0 (nnuIohon)
3, = 3 + 2x + x | I mbIodhIm 2x mo x no nnon o djnfhfo
3, = 3 + 3x | shfojmo -3 fo dy nnovo fo bnrnzImIf
3, - 3 = 3 + 3x - 3 | un ndorrojmo vondof 3x dho -3 (nnn o dj.) (vofIn komufnf.)
3, - 3 = 3 - 3 + 3x | I zbrosIm 3 mo 3 no nnon o djnfhfo
3, - 3 = 3x | josofojmo socIIIn monom mo 3
3, : 3 - 3 : 3 = 3x : 3 | josofojmo 3, mo 3 no nnon o mnjfo
, - 3 : 3 = 3x : 3 | josofojmo 3 mo 3 no nnon o mnjfo
, - l = 3x : 3 | josofojmo 3x mo 3 no nnon o djnfhfo
, - l = x | un ndorrojmo nnof shrohjovo
x = , - l. | fund.


4. Qo njo joso o vogoI o njo Jnvn-rogrnmI:

int x = 3 + 2;
int y = x + 1;
afishoNKonsol(y);

CIInf joso fo kofIj rogrnmI dukon fo jono foIjo omrn mbIomrn shrohjo nIgjobrIko

IorgjIgjo:
IoIjo: = (ndnj vIoron), nfIshooKonsoIo
Imrn: x, y, 3, 2, l
MbIomrn: Inf
Shrohjo nIgjobrIko: 3+2


5. Iroozo njo gjuho rogrnmuoso or fo vIznfunr rrnfho dho knfroro mo ngjyrn no njo
fIofo. CIInf foIjo do f'I orfshIsh (.sh. "vIznfo", "orshko") omrn ("rrofh") mbIomrn ("I
mndh", "I orrof")

IorgjIgjo:
IoIjo: "vIznfo rrofhIn", "vIznfo knfrorIn", "orshko rrofhIn", "orshko knfrorIn", "fshIj
rrofhIn", "fshIj knfrorIn", "ngjyros rrofhIn", "ngjyros knfrorIn", "vIznfo hnrkun", "fshIj
hnrkun"
Imrn: rrofh, knfror, rrofh I mbushur, knfror I mbushur, ngjyro
MbIomrn: I mndh, I mosom, I vogoI, I orrof, I ndrIfur ofj.


(1.3 Programet Jan Objekte)
PRINCIPE T PROGRAMIMIT N JAVA I KOMPJUTERT DHE PROGRAMIMI

5

1.4 Sistemet Operative dhe Windows-i


1. Iordoro komjuforIn or fn fIIIunr njo rogrnm, .sh. Iojo no orunuos fjnIosh
(word-rocossor). Shono fo gjIfhn drIfnrof qo krIjohon ngn rogrnmI, shono monyrnf so
sI fI In jo fo dhonnf hyroso rogrnmIf, dho shono monyrnf so sI o shfnq rogrnmI
dnIjon.

IorgjIgjo:
Hnjn o Word 2000:
rIfnrof: drIfnrjn kryosoro o rogrnmIf, drIfnrjn o dokumonfIf nkfIv.
Monyrnf so sI In jn fo dhonnf hyroso: mo fnsfIoro, mo mnus.
IrogrnmI o shfnq dnIjon: ormos okrnnIf, ormos shfyosIf, ormos nIfonrInnfovo
(fIngujf o ndryshom).


(1.5 Arkitektura e Softuerit)

PRINCIPE T PROGRAMIMIT N JAVA II JAVA APLIKACIONET
6

II Java Aplikacionet


(2.1 Aplikacioni dhe Arkitektura e Tij)


2.2 Si Ndrtohet dhe Ekzekutohet nj Aplikacion


1. InsfnIo oso njo !rofhIno ZhvIIIuoso fo Infogrunr (Infogrnfod ovoIomonf
InvIronmonf, II), oso Jnvn ovoIomonf KIf-In (JK) dho shkrunjo, komnjIojo dho
okzokufojo rogrnmIn vIjuos:

/** Tung afishon dy rreshta n konsol */
public class Tung
{ public static void main(String[] args)
{ System.out.println("Tungjatjeta bot!");
System.out.println(2004);
}
}


2.3 Si Funksionon Aplikacioni


1. Shkrunjo njo Jnvn-rogrnm qo o nfIshon omrIn dho mbIomrIn fond no njo rroshf.

IorgjIgjo:

/** Emri1 e shenon emrin tim ne nje rresht */

public class Emri1
{ static public void main(String[] args)
{ System.out.println("Filan Fisteku");
}
}


2. Shkrunjo njo Jnvn-rogrnm qo o nfIshon omrIn dho mbIomrIn fond, nshfu qo omrI yf
oshfo no njo rroshf fo vonnfo, dho mbIomrI yf oshfo no rroshfIn fjofor.

PRINCIPE T PROGRAMIMIT N JAVA II JAVA APLIKACIONET
?
IorgjIgjo:

/** Emri2 e afishon emrin dhe mbiemrin tim ashtu qe
* emri afishohet ne nje rresht te vecante,
* dhe mbiemri afishohet ne rreshtin tjeter. */

public class Emri2
{ public static void main(String[] args)
{ System.out.println("Filan");
System.out.println("Fisteku");
}
}


3. Ior fo dy ushfrImof o monrshmo, shjogo so rogrnmI yf o kn nrkIfokfuron o
nrnqIfur sI no fIguron o mooshfmo. (Kjo o qnrfoson fnkfIn so rogrnmo fo ndryshmo
mund fo ndorfohon no fo njojfIn sfII fo nrkIfokfuros).




IorgjIgjo:

To dy rogrnmof o knno njo kInso mo njo mofodo main; mofodn I dorgon mosnzho
objokfIf System.out.


PRINCIPE T PROGRAMIMIT N JAVA II JAVA APLIKACIONET
8

2.3.1 (Gjurma) Shtegu i Ekzekutimit pr Aplikacionin


1. Shkrunjo njo shfog fo okzokufImIf (oxocufIon frnco) or njo rogrnm qo o shkrovo
ngn ushfrImof o mohorshmo.

IorgjIgjo:

o fn shkrunjmo shfogun o okzokufImIf fo rogrnmIf Emri1.java.

/** Emri1 e shenon emrin tim ne nje rresht */
public class Emri1
{ static public void main(String[] args)
{ System.out.println("Filan Fisteku");
}
}

Afohoro kur nIIkncIonI Emri1 nIsof ngn ordoruosI, fnjII Emri1.class kojohof no
!AM dho bohof objokf Emri1.
Qo njo orshkrIm fo objokfIf Emri1 (dho System.out, qo fnshmo okzIsfon) no !AM.



Objokfof rrIjno ("ushojno") no !AM dho rosIn mosnzho. Koshfu, or fn fIIIunr
unon, komjuforI (mo snkfosIshf JVM - Jnvn VIrfunI MnchIno) In dorgon objokfIf
Emri1 njo mosnzh or fn fIIIunr mofodon o vof mnIn.
Kur Emri1 o rnnon mosnzhIn, nI no fo vorfofo o nIs mofodon main, urdhornf o so
cIIos okzokufon, njo ngn njo. o fn ordorIm njo shonuos, >, or fo fhoksunr so cIII
urdhor kryhof (okzokufohof) mo nro.



!rdhorI, System.out.println("Filan Fisteku"), In dorgon mosnzhIn,
println("Filan Fisteku") objokfIf System.out. ArgumonfI "Filan Fisteku" oshfo njo
kn do fo nfIshojo mofodn. (Thonjoznf nuk nfIshohon, or duhof f'I orfshInI,
mogjIfhnfo). Ky oshfo njo shombuII so sI njo objokf In dorgon njo mosnzh objokfIf
fjofor, duko o zgjunr ngn ushImI.
PRINCIPE T PROGRAMIMIT N JAVA II JAVA APLIKACIONET
9
MosnzhI I dorgohof objokfIf System.out, I cIII o vo no uno mofodon o vof println.
o ndorkoho, objokfI Emri1 rof:



IorfundImIshf, System.out o ormbush korkoson dho foksfI, Filan Fisteku,
nrnqIfof no drIfnron komnnduoso. Sno fo ndodho kjo, System.out o Injmoron objokfIn
Emri1 so mund fo vnzhdojo mo urdhorIn fjofor, dho System.out kfhohof no gjondjon o
vof fo "ushImIf".
Sno fo mbnrojo println, no fruIn o mofodos main mo nuk kn nsgjo or f'u
okzokufunr.



dho objokfI Emri1 Injmoron so kn orfundunr.


2.4 Si nj Objekt e Konstrukton nj Tjetr


1. Shkrunjo rogrnmIn qo o nfIshon omrIn fond mo dnfon dho kohon. KomnjIojo dho
okzokufojo. Ikzokufojo orsorI. Krnhnso fo dhonnf dnIoso ngn dy okzokufImof.

IorgjIgjo:

import java.util.*;
/** EmriDheData e afishon emrin tim dhe daten e kohen e sakte. */
public class EmriDheData
{ public static void main(String[] args)
{ System.out.print("Filan Fisteku --- ");
// Urdheri vijues e krijon nje objekt:
GregorianCalendar c = new GregorianCalendar();
System.out.println(c.getTime()); // kerko kohen nga c dhe afisho pergjigjen
System.out.println();
System.out.println("Fund.");
}
}


PRINCIPE T PROGRAMIMIT N JAVA II JAVA APLIKACIONET
l0


Diogroni /loeor i opli/ocioni/ qe e ofielon enrin Jle /olen


IIgurn o kn njo nrkIfokfuro Inforosnnfo: EmriDheData oshfo konfroIIuosI, soso
konfroIIon so kn do fo ndodho; System.out oshfo nmjn dnIoso, soso In rozonfon
ordoruosIf "nmjon" o rogrnmIf; dho GregorianCalendar oshfo modoII, soso o
"modoIon" oron o komjuforIf. Ky oshfo shombuIII I nro I fhjoshfo I nrkIfokfuros
ModoI-VIow-ConfroIIor (no fo cIIon do fo mboshfofomI gjnfo kursIf).


(2.5 Prmirsimi i Mesazheve t Gabimeve t Kompilatorit)

(2.6 Prmbledhje)

PRINCIPE T PROGRAMIMIT N JAVA II JAVA APLIKACIONET
ll

2.7 Ushtrime t Programimit


1. Shkrunjo njo Jnvn-rogrnm qo o nfIshon omrIn fond dho ndroson osfnro no fro oso
mo shumo rroshfn. Insfnj, ordoro njo objokf GregorianCalendar or nfIshIm fo dnfos
dho kohos nrn omrIf fond.


2. Shkrunjo njo Jnvn-rogrnm qo dukof sIkur s'bon nsgjo.


3. KrIjo J, objokfo GregorianCalendar duko I fufur kofn dy urdhorn,

System.out.println( new GregorianCalendar().getTime() );
System.out.println( new GregorianCalendar().getTime() );

no mofodon mnIn. kn ndodh kur o okzokufon rogrnmIn


4. dryshojo rogrnmIn ngn ushfrImI I knIunr sI vIjon: Iufo ndormjof dy urdhornvo
kofo Jnvn-InsfruksIon:

try { Thread.sleep(5000); }
catch (InterruptedException e) { }

uk do fn shqyrfojmo kofo urdhor komIoks - fhono fhjoshf, nI shknkfon qo mofodn
mnIn fo vonohof or 5000 mIIIsokondn (dmfh., 5 sokondn). KomnjIojo dho okzokufojo
rogrnmIn. kn ndodh


5. Shkrunjo Jnvn-rogrnmIn mo fo vogoI (mo numrIn mo fo vogoI fo knrnkforovo) qo
mundosh. A okzIsfon rogrnmI mo I mndh I mundshom (mo numrIn mo fo mndh fo
knrnkforovo)


6. Shkrunjo njo Jnvn-rogrnm qo o vIznfon kofo vIznfIm no okrnn:

/\
/ \
----
| - |
| | ||
PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
l2

III Aritmetika dhe Ndryshoret


3.1 Aritmetika e Numrave t Plot


!IognrIfo socIIon ngn kofo shrohjo nshfu sI do fn bonfo komjuforI; frogo fo gjIfho
hnnf o IIognrIfjos. InsI fn kosh kryor IIognrIfjon, shkrunjo socIIon ngn fo orbrondn
njo Jnvn-nIIkncIonI, sI ky:

public class Test
{ public static void main(String[] args)
{ System.out.println(1 + ((2 - 4) * 3) + 5); }
}

1. 6 * ((-2 + 3) * (2 - 1))
2. 6 * (-2 + 3) * (2 - 1)
3. 6 * -2 + 3 * (2 - 1)
4. 6 * -2 + 3 * 2 - 1

IorgjIgjo:

1. 6 * ((-2 + 3) * (2 - 1))
=> 6 * (1 * (2 - 1))
=> 6 * (1 * 1)
=> 6 * 1
=> 6

2. 6 * (-2 + 3) * (2 - 1)
=> 6 * 1 * (2 - 1)
=> 6 * 1 * 1
=> 6 * 1
=> 6

3. 6 * -2 + 3 * (2 - 1)
=> 6 * -2 + 3 * 1
=> -12 + 3 * 1
=> -12 + 3
=> -9

4. 6 * -2 + 3 * 2 - 1
=> -12 + 3 * 2 - 1
=> -12 + 6 - 1
=> -6 - 1
=> -7

PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
l3

3.2. Madhsit e Emrtuara: Ndryshoret

1. dryshojo nIIkncIonIn vIjuos nshfu qo fn IIognrIso vIoron o 3 njozofqIndnrknvo (20-
confoshnvo) o l2 osoqIndnrknvo (5-confoshnvo); komnjIojo dho okzokufojo.

/** Total - e llogarit sasin e parave t imta q i kam */
public class Total
{ public static void main(String[] args)
{ int gjysma = 4;
int njezeta = 2;
int dhjeta = 0;
int pesa = 1;
int qindarka = 6;
System.out.println("Pr kto sasi meteliksh (monedhash):");
System.out.print("Gjysma = ");
System.out.println(gjysma);
System.out.print("Njzetqindarka = ");
System.out.println(njezeta);
System.out.print("Dhjetqindarka = ");
System.out.println(dhjeta);
System.out.print("Pesqindarka = ");
System.out.println(pesa);
System.out.print("Qindarka = ");
System.out.println(qindarka);
System.out.print("Shuma totale sht ");
System.out.println( (gjysma * 50) + (njezeta * 20)
+ (dhjeta * 10) + (pesa * 5) + (qindarka * 1) );
}
}

IorgjIgjo:

/** Total2 - e llogarit sasin e parave t imta q i kam */
public class Total2
{ public static void main(String[] args)
{ int gjysma = 0;
int njezeta = 3;
int dhjeta = 0;
int pesa = 12;
int qindarka = 0;
System.out.println("Pr kto sasi meteliksh (monedhash):");
System.out.print("Gjysma = ");
System.out.println(gjysma);
System.out.print("Njzetqindarka = ");
System.out.println(njezeta);
System.out.print("Dhjetqindarka = ");
System.out.println(dhjeta);
System.out.print("Pesqindarka = ");
System.out.println(pesa);
System.out.print("Qindarka = ");
System.out.println(qindarka);
System.out.print("Shuma totale sht ");
System.out.println( (gjysma * 50) + (njezeta * 20)
+ (dhjeta * 10) + (pesa * 5) + (qindarka * 1) );
}
}
PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
l4
2. dryshojo (modIfIkojo) nIIkncIonIn no fIguron 3.l. nshfu qo fn nrnqoso vIoron o
socIIIf gru fo monodhos. Irovojo nIIkncIonIn or 5 njozofqIndnrkn, l osoqIndnrko
dho l qIndnrko. AIIkncIonI duhof fo kfhojo:

Pr kto sasi meteliksh (monedhash):
Njzetqindarka = 5, q bjn 100 cent
Dhjetqindarka = 0, q bjn 0 cent
Pesqindarka = 1, q bjn 5 cent
Qindarka = 1, q bjn 1 cent
Shuma totale sht 106 cent

IorgjIgjo:

/** Total3 - e llogarit sasine e parave te imta qe i kam */
public class Total3
{ public static void main(String[] args)
{ int gjysma = 0;
int njezeta = 5;
int dhjeta = 0;
int pesa = 1;
int qindarka = 1;
System.out.println("Per kto sasi metelikesh (monedhash):");
System.out.print("Gjysma = ");
System.out.println(gjysma + ", qe bejne " + gjysma*50 + " cente");
System.out.print("Njzetqindarka = ");
System.out.println(njezeta + ", qe bejne " + njezeta*20 + " cente");
System.out.print("Dhjetqindarka = ");
System.out.println(dhjeta + ", qe bejne " + dhjeta*10 + " cente");
System.out.print("Pesqindarka = ");
System.out.println(pesa + ", qe bejne " + pesa*5 + " cente");
System.out.print("Qindarka = ");
System.out.println(qindarka + ", qe bejne " + qindarka*1 + " cente");
System.out.print("Shuma totale eshte ");
System.out.println( (gjysma * 50) + (njezeta * 20)
+ (dhjeta * 10) + (pesa * 5) + (qindarka * 1) );
}
}


3. dryshojo (modIfIkojo) rogrnmIn Total4 nshfu qo fn shfnqo dnIjon o vof no formnf
dhjofor (docImnI), .sh.

Shuma totale sht 2.51 euro.

Shjogo so kn ndodh kur nIIkncIonI I ndryshunr ordorof mo vIornf o dhonn no
ushfrImIn o knIunr. (VoshfIrosIno do fn rroguIIojmo no joson "KonvorfImI ndormjof
SfrIngjovo o umrnvo dho IormnfIzImI".)
PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
l5

/** Total4 e llogarit vleren e parave te imta qe i kam */
public class Total4
{ public static void main(String[] args)
{ int njezeta = 5;
int dhjeta = 2;
int pesa = 0;
int qindarka = 6;
System.out.println("Per keto vlera te metelikeve:");
System.out.println("Njezetqindarka = " + njezeta);
System.out.println("Dhjeteqindarka = " + dhjeta);
System.out.println("Peseqindarka = " + pesa);
System.out.println("Qindarka = " + qindarka);
int krejt = (njezeta * 20) + (dhjeta * 10)
+ (pesa * 5) + (qindarka * 1);
System.out.println("Shuma totale eshte " + (krejt / 100) + " euro e "
+ (krejt % 100) + " cente");
}
}

IorgjIgjo:

/** Total5 e llogarit vleren e parave te imta qe i kam */
public class Total5
{ public static void main(String[] args)
{ int njezeta = 5;
int dhjeta = 2;
int pesa = 0;
int qindarka = 6;
System.out.println("Per keto vlera te metelikeve:");
System.out.println("Njezetqindarka = " + njezeta);
System.out.println("Dhjeteqindarka = " + dhjeta);
System.out.println("Peseqindarka = " + pesa);
System.out.println("Qindarka = " + qindarka);
int krejt = (njezeta * 20) + (dhjeta * 10)
+ (pesa * 5) + (qindarka * 1);
System.out.println("Shuma totale eshte " + (krejt / 100) + "."
+ (krejt % 100) + " euro");
}
}


Kur I ordorIm vIornf o ushfrImIf fo knIunr (5 njozofqIndnrkn, 5 osoqIndnrkn o l
qIndnrko) nIIkncIonI nfIshon:

Shuma totale eshte 1.6 euro

qo no fo vorfofo oshfo l ouro o 60 confo, no vond fo l ouro o 6 confo.


4. Sn or ushfrIm, shkrunjo njo nIIkncIon no Jnvn qo nfIshon fnboIo fo shumozImIf fo
numrnvo ndormjof l dho 3, dmfh., l*l, l*2, o koshfu mo rndho, dorI no 3*3.

PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
l6

3.2.1 Ndryshoret Mund t Ndryshojn: Ndarja e Vlers


1. !Ishkrunjo rogrnmIn BeriTIma nshfu qo fo bojo nrn fo Imfn ngn 5-Iuro, l-Iuro,
50-confo, 20-confo, l0-confo, 5-confo dho l-conf.

/** BeriTIma i llogarit parat e imta pr sasit n ndryshoret
* eurot dhe centet. */
public class BeriTIma
{ public static void main(String[] args)
{ int eurot = 3;
int centet = 46;
int parate = (eurot * 100) + centet;
System.out.println("20-centshe = " + (parate / 20));
parate = parate % 20;
System.out.println("10-centshe = " + (parate / 10));
parate = parate % 10;
System.out.println("5-centshe = " + (parate / 5));
parate = parate % 5;
System.out.println("1-centshe = " + parate);
}
}

IorgjIgjo:

/** BeriTIma5 i llogarit parat e imta pr sasit n ndryshoret
* eurot dhe centet. */
public class BeriTIma5
{ public static void main(String[] args)
{ int eurot = 33;
int centet = 16;
int parate = (eurot * 100) + centet;
System.out.println("Nga 5-euro = " + (parate / 500));
parate = parate % 500;
System.out.println("Nga 1-euro = " + (parate / 100));
parate = parate % 100;
System.out.println("50-centshe = " + (parate / 50));
parate = parate % 50;
System.out.println("20-centshe = " + (parate / 20));
parate = parate % 20;
System.out.println("10-centshe = " + (parate / 10));
parate = parate % 10;
System.out.println("5-centshe = " + (parate / 5));
parate = parate % 5;
System.out.println("1-centshe = " + parate);
}
}


2. CIInf jnno rozuIfnfof o kofyro shrohjovo
6/4; 64; ?/4; ?4; 8/4; 84; 6/-4; -64; 6-4.

PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
l?
IorgjIgjo.

6/4 = l;
64 = 2;
?/4 = l;
?4 = 3;
8/4 = 2;
84 = 0;
6/-4 = -l;
-64 = -2;
6-4 = 2;

public class TestoVeprimet
{ public static void main(String[] args)
{ System.out.println(6/4);
System.out.println(6%4);
System.out.println(7/4);
System.out.println(7%4);
System.out.println(8/4);
System.out.println(8%4);
System.out.println(6/-4);
System.out.println(-6%4);
System.out.println(6%-4);
}
}


3. Iordoro nIgjobron or fo shjogunr so so ndnrjn o vIoros, parat = parat % 20
no rogrnmIn MakeChange o zbrof no monyro korrokfo numrIn o 20-confoshnvo ngn
snsIn fIIIosfnro o ndryshoros parat.

IorgjIgjo. gn nIgjobrn o dImo so I josofuoshmI mund fo shkruhof sI 'rodhImI I
josofuosIf mo horosIn o Iofo, Ius mbofjn'. mfh.

nrnfo == 20*(nrnfo/20) + (nrnfo20)

Irnndnj, kur ndryshoros nrnfo In ndnjmo vIoron parat = parat%20, no no fnkf In
hoqIm numrIn o 20-confoshnvo ngn snsIn o monrshmo.


4. Shkrunjo kofo vnrg fo urdhornvo no Jnvn:
jo ndryshoro, parat_e_mija, InIcInIIzohof mo l2.
parat_e_mija zvogoIohof or 5.
parat_e_mija dyfIshohof.
parat_e_mija rosofohof, rIvondosof no l.
VIorn o ndryshoros parat_e_mija I dorgohof no njo rInfIn-mosnzh objokfIf
System.out.

PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
l8
IorgjIgjo.

int parat_e_mija = 12;
parat_e_mija = parat_e_mija - 5;
parat_e_mija = 2 * parat_e_mija;
parat_e_mija = 1;
System.out.println(parat_e_mija);


5. Shkrunjo njo shfog fo okzokufImIf fo kofIj nIIkncIonI:

public class Ushtrimi3
{ public static void main(String[] args)
{ int x = 12;
int y = x + 1;
x = x + y;
y = x;
System.out.println(x + " sht i barabart me " + y);
}
}

IorgjIgjo.

Ushtrimi3
-----------------
| main
| { >int x = 12;
| int y = x + 1;
| x = x + y;
| y = x;
| System.out.println(x + " sht i barabart me " + y);
| }

Ushtrimi3
-----------------
| main ----
| { int x ==| 12 |
| ----
| >int y = x + 1;
| x = x + y;
| y = x;
| System.out.println(x + " sht i barabart me " + y);
| }

Ushtrimi3
-----------------
| main ----
| { int x ==| 12 |
| ----
| >int y = 12 + 1;
| x = x + y;
| y = x;
| System.out.println(x + " sht i barabart me " + y);
| }

PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
l9
Ushtrimi3
-----------------
| main ----
| { int x ==| 12 |
| ----
| int y ==| 13 |
| ----
| >x = x + y;
| y = x;
| System.out.println(x + " sht i barabart me " + y);
| }

Ushtrimi3
-----------------
| main ----
| { int x ==| 12 |
| ----
| int y ==| 13 |
| ----
| >x = 12 + 13;
| y = x;
| System.out.println(x + " sht i barabart me " + y);
| }

Ushtrimi3
-----------------
| main ----
| { int x ==| 25 |
| ----
| int y ==| 13 |
| ----
| ...
| >y = x;
| System.out.println(x + " sht i barabart me " + y);
| }

Ushtrimi3
-----------------
| main ----
| { int x ==| 25 |
| ----
| int y ==| 13 |
| ----
| ...
| >y = 25;
| System.out.println(x + " sht i barabart me " + y);
| }

Ushtrimi3
-----------------
| main ----
| { int x ==| 25 |
| ----
| int y ==| 25 |
| ----
| ...
| >System.out.println(x + " sht i barabart me " + y);
| }

PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
20
Ushtrimi3
-----------------
| main ----
| { int x ==| 25 |
| ----
| int y ==| 25 |
| ----
| ...
| >System.out.println(25 + " sht i barabart me " + y);
| }

Ushtrimi3
-----------------
| main ----
| { int x ==| 25 |
| ----
| int y ==| 25 |
| ----
| ...
| >System.out.println("25 sht i barabart me " + y);
| }

Ushtrimi3
-----------------
| main ----
| { int x ==| 25 |
| ----
| int y ==| 25 |
| ----
| ...
| >System.out.println("25 sht i barabart me " + 25);
| }

Ushtrimi3
-----------------
| main ----
| { int x ==| 25 |
| ----
| int y ==| 25 |
| ----
| ...
| >System.out.println("25 sht i barabart me 25");
| }

dho frnzn, 25 sht i barabart me 25, nrnqIfof no konsoIo (drIfnron komnnduoso).


PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
2l

3.3 Aritmetika me Thyesa: Tipi double

1. !Ishkrunjo rogrnmIn, CelsiusNeFahrenheit, no rogrnmIn, FahrenheitNeCelsius, qo
o konvorfon njo vIoro doubIo fo grndovo InhronhoIf no njo vIoro doubIo fo grndovo
CoIsIus dho I nfIshon fo dy vIornf.

/** CelsiusNeFahrenheit e konverton
* nje vlere Celsius ne Fahrenheit. */
public class CelsiusNeFahrenheit
{ public static void main(String[] args)
{ int c = 22; // grade Celsius
double f = ((9.0/5.0) * c) + 32;
System.out.println("Per " + c + " grade Celsius,");
System.out.println(f + " grade Fahrenheit");
}
}

IorgjIgjo:

/** FahrenheitNeCelsius e konverton
* nje vlere Fahrenheit ne Celsius */
public class FahrenheitNeCelsius
{ public static void main(String[] args)
{ double f = 27.5; // grade Fahrenheit
double c = (f - 32) * 5 / 9;
System.out.println("Per " + f + " grade Fahrenheit,");
System.out.println(c + " grade Celsius");
}
}


2. Ihof so njo kIIomofor oshfo 0.62l3? o mIIos. !Ishkrunjo rogrnmIn,
CelsiusNeFahrenheit, no rogrnmIn, KilometraNeMila, qo o morr sI hyrjo njo numor fo
Iofo fo kIIomofrnvo dho o nfIshon sI dnIjo njo vIoro doubIo fo mIInvo korrosonduoso.


3. !IognrIfI rozuIfnfof o kofyro shrohjovo; kI kujdos rrofh konvorfImovo (cnsfs) fo
numrnvo fo Iofo no doubIo gjnfo IIognrIfjovo:

n) (5.3 + 7) / 2.0
b) (5.3 + 7) / 2
c) 5.3 + (7 / 2)
) (1.0 + 2) + ((3 % 4) / 5.0)

IorgjIgjo:

n) (5.3 + 7) / 2.0 == 12.3 / 2.0 == 6.15
b) (5.3 + 7) / 2 == 12.3 / 2 == 6.15
c) 5.3 + (7 / 2) == 5.3 + 3 == 8.3
) (1.0 + 2) + ((3 % 4) / 5.0) == 3.0 + (3 / 5.0) == 3.0 + 0.6 == 3.6
PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
22

3.4 Tipi boolean


1. dorfojo njo Jnvn-nIIkncIon fo Iofo qo o ordor foknIkon no kofo nrngrnf (no
IIbor) or fn orcnkfunr so n oshfo njo fomornfuro o dhono no CoIsIus mo o ngrohfo so
njo fomornfuro o dhono no InhronhoIf. Tosfojo nIIkncIonIn mo 40 grndo CoIsIus dho
40 grndo InhronhoIf.

IorgjIgjo.

public class KrahasoTemp
{ public static void main(String[] args)
{ double C = 40;
double F = 40;
double C_e_konvertuar = ((9.0/5.0) * C) + 32;
System.out.print(C + " Celius m e ngroht se " + F + " Fahrenheit? ");
System.out.println(C_e_konvertuar > F);
// ose, duke e prdorur operatorin ( ? : )
// System.out.println((C_e_konvertuar > F ? "e vrtet" : "e pavrtet"));
}
}


2. dorfojo njo Jnvn-nIIkncIon fo cIIIf I frogohof njo snsI o l0-confoshnvo dho njo snsI
o 5-confoshnvo dho nI o nfIshon so n oshfo snsIn o l0-confoshnvo mo nk o vIofshmo
sosn snsIn o 5-confoshnvo. Tosfojo nIIkncIonIn mo 4 dhjofo-confoshn dho 6 oso-
confoshn. (Ior uno fo nvnrur)


3. !IognrIfo rozuIfnfIn o kofyro shrohjovo:

n) (3 * 2) >= (-9 - 1)
b) 3 * 2 != 5.5 + 0.4 + 0.1

IorgjIgjo:

n) (3 * 2) >= (-9 - 1)
=> 6 >= (-9 - 1)
=> 6 >= -10
=> true

b) 3 * 2 != 5.5 + 0.4 + 0.1
=> 6 != 5.5 + 0.4 + 0.1
=> 6 != 5.9 + 0.1
=> 6 != 6.0
=> 6.0 != 6.0
=> false


PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
23

3.5 (Prioriteti) Prparsia e Operatorve


1. !IognrIfI orgjIgjof or socIIon ngn kofo shrohjo:

n) 6 * -2 + 3 / 2 - 1
b) 5.3 + 7 / 2 + 0.1
c) 3*2%4/5.0*2*3

IorgjIgjo:

n) 6 * -2 + 3 / 2 - 1
=> -12 + 3 / 2 - 1
=> -12 + 1 - 1
=> -11 - 1
=> -12

b) 5.3 + 7 / 2 + 0.1
=> 5.3 + 3 + 0.1
=> 8.3 + 3.0 + 0.1
=> 11.3 + 0.1
=> 11.4

c) 3*2%4/5.0*2*3
=> 6%4/5.0*2*3
=> 2/5.0*2*3
=> 2.0/5.0*2*3
=> 0.4*2*3
=> 0.4*2.0*3
=> 0.8*3
=> 0.8*3.0
=> 2.4

(Jnvn o jo 2.4000000000000004 sI rozuIfnf no IIognrIno o fundIf or shknk fo gnbImovo
fo rrumbuIInkosImIf.)


2. jo monyro fjofor or fn kufunr rIorIfofIn (ornrosIno) o oornforovo oshfo so
rIorIfofof jnno rroguIIn or f'I fufur kIInnf no shrohjo. Ior shombuII, rIorIfofof nn
frogojno so shrohjn 1 + 2.0 * 3 do fo duhoj fo kIInozohof sI
1 + (2.0 * 3). gjnshom, 5 - 3 / 2 * 4 + 6 * -2 / -3 + 1.5 kIInozohof sI ((5 -
((3 / 2) * 4)) + ((6 * -2) / -3)) + 1.5.
Ior socIIon ngn shrohjof no ushfrImIn o knIunr, shkrunjo shrohjon mo kIInnf o
vofn.

PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
24
IorgjIgjo:

n) ((6 * -2) + (3 / 2)) - 1
b) (5.3 + (7 / 2)) + 0.1
c) ((((3*2)%4)/5.0)*2)*3


3.6 Stringjet, Karaktert dhe Veprimet e tyre

1. !IognrIfI rozuIfnfof o kofyro shrohjovo:

n) 2 + ("a" + " ") + "bc"
b) 1 + "" + 2 + 3
c) 1 + 2 + "" + 3
) 1 + 2 + 3 + ""
d) 1 + "" + (2 + 3)


IorgjIgjo:

n) 2 + ("a" + " ") + "bc" == 2 + "a " + "bc" ==
"2a " + "bc" == "2a bc"
b) 1 + "" + 2 + 3 == "1" + 2 + 3 == "12" + 3 == "123"
c) 1 + 2 + "" + 3 == 3 + "" + 3 == "3" + 3 == "33"
) 1 + 2 + 3 + "" == 3 + 3 + "" == 6 + "" == "6"
d) 1 + "" + (2 + 3) == 1 + "" + 5 == "1" + 5 == "15"


2. Qo dy sfrIngjo:

String t = "abc ";
String u = "ab";

kn nfIshohof mo kofn urdhorn

n) System.out.println(t.equals(u));
b) System.out.println(u.charAt(1) == t.charAt(1));
c) System.out.println(t.length() - u.length());
) System.out.println(u + 'c');
d) System.out.println(t.trim());
o) System.out.println(t.toUpperCase());

IorgjIgjo:

n) false
b) true
c) 2
) abc
d) abc
o) ABC
PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
25

3.7 Kontrollimi i Tipeve t T Dhnave


Io o zomo so fI jo Jnvn-komnjIorI.

1. In I IIognrIfur orgjIgjof no kofo shrohjo, nrnshIkojo fIIn o socIIIf rozuIfnf fo
shrohjos (oso n kn gnbIm fII):

n) 5.3 + (7 / 2)
b) 3 * (1 == 2)
c) 1 < 2 < 3
) "a " + 1 + 2
d) ("a " + 1) * 2


IorgjIgjo:

n) double + (int / int) => double + int => double
b) int * boolean => gabim tipi
c) boolean < int => gabim tipi
) String + int + int => String + int => String
d) (String + int) * int => String * int => gabim tipi


2. CIII ngn kofn urdhorn ormbnn gnbIm fo fIIf

int x = 3.5;
double d = 2;
String s = d;
d = (d > 0.5)
System.out.println(s * 3);

IorgjIgjo:

int x = 3.5; - prmban gabim - humbet preciziteti
double d = 2; - nuk prmban gabim (int => double)
String s = d; - gabim i tipit
d = (d > 0.5) - gabim i tipit
System.out.println(s * 3); - gabim i tipit (String * int)


PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
26

3. 8 Hyrja (Input) Prmes Argumenteve Programore

(3.8.1 Konvertimi ndrmjet Stringjeve e Numrave dhe Formatizimi)

3.8.2 Konvertimi i Temperaturs me Hyrje (Input)


1. KomnjIojo dho okzokufojo kodIn FahrenheitNeCelsius frI horo mo nrgumonfof
rogrnmoro 20, 22 dho -10, orknfosIshf.

import java.text.*;
/** FahrenheitNeCelsius2 konverton vlern e temperatures */
public class FahrenheitNeCelsius2
{ public static void main(String[] args)
{ int f = new Integer(args[0]).intValue();
double c = (5.0/9.0) * (f - 32);
System.out.println("Pr grad Fahrenheit: " + f + ",");
DecimalFormat formatuesi = new DecimalFormat("0.0");
System.out.println("grad Celsius: " + formatuesi.format(c));
}
}

IorgjIgjo: o vIjon komnnduoso:

java FahrenheitNeCelsius 20
java FahrenheitNeCelsius 22
java FahrenheitNeCelsius -10

o II - joon nrgumonfof no vondIn orknfos. (I.sh. no jC!ASI: '!un - !un
Argumonfs' o hn vondIn o gnfshom ku mund f'I shkrunjmo nrgumonfof rogrnmoro)


2. !Iunojo rogrnmIn qo I bon f'Imn nrnfo, BeriTIma, nshfu qo ourof dho confof jIon
sI nrgumonfo rogrnmoro, .sh.,

java BeriTIma 3 46

PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
2?
IorgjIgjo:

/** BeriTIma i llogarit parat e imta pr sasit n ndryshoret
* eurot dhe centet. */
public class BeriTImaArg
{ public static void main(String[] args)
{ int eurot = new Integer(args[0]).intValue();
int centet = new Integer(args[1]).intValue();
int parate = (eurot * 100) + centet;
System.out.println("20-centshe = " + (parate / 20));
parate = parate % 20;
System.out.println("10-centshe = " + (parate / 10));
parate = parate % 10;
System.out.println("5-centshe = " + (parate / 5));
parate = parate % 5;
System.out.println("1-centshe = " + parate);
}
}


3. !Iunojo njorIn oso fo dy rogrnmof: CelsiusNeFahrenheit dho KilometraNeMila, qo I
ko shkrunr sI zgjIdhjo fo ushfrImovo fo knIunrn ("ArIfmofIkn mo Thyosn: TII double"),
nshfu qo rogrnmof fo ordorIn nrgumonfo rogrnmoro.

IorgjIgjo:

KodI orIgjInnI:

/** CelsiusNeFahrenheit e konverton
* nje vlere Celsius ne Fahrenheit. */
public class CelsiusNeFahrenheit
{ public static void main(String[] args)
{ int c = 22; // grade Celsius
double f = ((9.0/5.0) * c) + 32;
System.out.println("Per " + c + " grade Celsius,");
System.out.println(f + " grade Fahrenheit");
}
}

KodI I rIununr:

/** CelsiusNeFahrenheit e konverton
* nje vlere Celsius ne Fahrenheit. */
public class CelsiusNeFahrenheitArg
{ public static void main(String[] args)
{ int c = new Integer(args[0]).intValue(); // grade Celsius
double f = ((9.0/5.0) * c) + 32;
System.out.println("Per " + c + " grade Celsius,");
System.out.println(f + " grade Fahrenheit");
}
}


PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
28
4. To fhomI so njo rogrnm, Tosf, oshfo nIsur mo nrgumonfof rogrnmoro
12 345 6 7.89. ShkrunjI urdhornf InIcInIIzuos qo I Ioxojno nrgumonfof dho o vondosIn
sfrIngun "12" no njo ndryshoro, s; o vondosIn numrIn o Iofo 6 no njo ndryshoro, i; o
vondosIn numrIn doubIo 7.89 no ndryshoron d.

IorgjIgjo:

String s = args[0];
int i = new Integer(args[2]).intValue();
double d = new Double(args[3]).doubleValue();


5. Shkrunjo njo vnrg roj fro urdhornsh qo: o Ioxon njo nrgumonf rogrnmor sI numor
fo Iofo: i, o Ioxon njo nrgumonf rogrnmor sI numor fo Iofo, j; o nfIshon true oso
false, vnrosIshf so n oshfo vIorn o i-so mo o mndho so sn o j-so.

IorgjIgjo:

int i = new Integer(args[0]).intValue();
int j = new Integer(args[1]).intValue();
System.out.println(i > j);


6. !shfrImI 3 no joson: "MndhosIfo o Imorfunrn: dryshorof", nfI voshfIrosI or f'I
nfIshunr sI duhof orgjIgjof kur snsIn o nfIshunr o ouro-confovo ormbnnfo snsI mo fo
vogoI so l0 fo confovo. Iordoro kInson DecimalFormat or fn zgjIdhur kofo robIom.
Irovojo zgjIdhjon fondo mo hyrjon roj 5 njozofqIndnrknsh, njo osoqIndnrko dho njo
qIndnrko.

IorgjIgjo:

KodI I Inrformondur:

/** Total4 e llogarit vleren e parave te imta qe i kam */
public class Total4
{ public static void main(String[] args)
{ int njezeta = 5;
int dhjeta = 2;
int pesa = 0;
int qindarka = 6;
System.out.println("Per keto vlera te metelikeve:");
System.out.println("Njezetqindarka = " + njezeta);
System.out.println("Dhjeteqindarka = " + dhjeta);
System.out.println("Peseqindarka = " + pesa);
System.out.println("Qindarka = " + qindarka);
int krejt = (njezeta * 20) + (dhjeta * 10)
+ (pesa * 5) + (qindarka * 1);
System.out.println("Shuma totale eshte " + (krejt / 100) + "."
+ (krejt % 100) + " euro");
}
}
PRINCIPE T PROGRAMIMIT N JAVA III ARITMETIKA DHE NDRYSHORET
29
KodI I rroguIIunr:

import java.text.*;
/** Total6 e llogarit vleren e parave te imta qe i kam
* afishon me formatues. */
public class Total6
{ public static void main(String[] args)
{ int njezeta = 5;
int dhjeta = 0;
int pesa = 1;
int qindarka = 1;
System.out.println("Per keto vlera te metelikeve:");
System.out.println("Njezetqindarka = " + njezeta);
System.out.println("Dhjeteqindarka = " + dhjeta);
System.out.println("Peseqindarka = " + pesa);
System.out.println("Qindarka = " + qindarka);
int krejt = (njezeta * 20) + (dhjeta * 10)
+ (pesa * 5) + (qindarka * 1);
DecimalFormat formatues = new DecimalFormat("0.00");
System.out.println("Shuma totale eshte "
+ formatues.format(krejt/100.0) + " euro");
}
}


(3.9 Diagnostifikimi i Gabimeve n Shprehje)

(3.10 Fjalt Kye dhe Identifikatort)

PRINCIPE T PROGRAMIMIT N JAVA IV HYRJA, DALJA DHE GJENDJA
30

IV Hyrja (Input), Dalja (Output) dhe Gjendja


4.1. Hyrja (Input) Interaktive


1. Shkrunjo njo vnrg urdhornsh qo o ordorIn JOptionPane or fo Ioxunr no monyro
InfornkfIvo omrIn o njo orsonI (sfrIng) dho moshon o vof (numor I Iofo).

IorgjIgjo:

import javax.swing.*; // ne fillim te kodit

String emri = JOptionPane.showInputDialog("Emri:");
String m = JOptionPane.showInputDialog("Mosha:");
int mosha = new Integer(m).intValue();


2. Shkrunjo njo nIIkncIon: class Test, qo o Ioxon no monyro InfornkfIvo njo numor fo
Iofo dho o nfIshon no drIfnron komnnduoso rronjon knfroro fo fIj. Tosfojo kofo
rogrnm: kn ndodh kur fI, sI ordoruos, o koqordor duko o shkrunr omrIn fond no
vond fo numrIf Io kur sI hyrjo o shfy vofom OK Kur rofuzon fo shkrunsh kndo dho
shkon no droko

IorgjIgjo:

import javax.swing.*;
/** Test - e lexon ne menyre interaktive nje numer te plote
* dhe e afishon ne dritaren komanduese rrenjen katrore te tij */
public class Test
{ public static void main(String[] args)
{ String n = JOptionPane.showInputDialog("Numri i plote:");
int numri = new Integer(n).intValue();
System.out.println(Math.sqrt(numri));
}
}


PRINCIPE T PROGRAMIMIT N JAVA IV HYRJA, DALJA DHE GJENDJA
3l
3. !roguIIojo rogrnmIn Total, nshfu qo fo ordoro hyrjo InfornkfIvo.

/** Total - e llogarit sasin e parave t imta q i kam */
public class Total
{ public static void main(String[] args)
{ int gjysma = 0;
int njezeta = 3;
int dhjeta = 0;
int pesa = 12;
int qindarka = 0;
System.out.println("Pr kto sasi meteliksh (monedhash):");
System.out.print("Gjysma = ");
System.out.println(gjysma);
System.out.print("Njzetqindarka = ");
System.out.println(njezeta);
System.out.print("Dhjetqindarka = ");
System.out.println(dhjeta);
System.out.print("Pesqindarka = ");
System.out.println(pesa);
System.out.print("Qindarka = ");
System.out.println(qindarka);
System.out.print("Shuma totale sht ");
System.out.println( (gjysma * 50) + (njezeta * 20)
+ (dhjeta * 10) + (pesa * 5) + (qindarka * 1) );
}
}

IorgjIgjo:

import javax.swing.*;
/** TotalInteraktiv - e llogarit sasin e parave t imta q i kam
* duke perdorur hyrje interaktive. */
public class TotalInteraktiv
{ public static void main(String[] args)
{ String gj = JOptionPane.showInputDialog("Numri i gjysmave:");
int gjysma = new Integer(gj).intValue();
String nj = JOptionPane.showInputDialog("Numri i njezetave:");
int njezeta = new Integer(nj).intValue();
String dh = JOptionPane.showInputDialog("Numri i dhjetave:");
int dhjeta = new Integer(dh).intValue();
String p = JOptionPane.showInputDialog("Numri i pesave:");
int pesa = new Integer(p).intValue();
String q = JOptionPane.showInputDialog("Numri i qindarkave:");
int qindarka = new Integer(q).intValue();
System.out.println("Pr kto sasi meteliksh (monedhash):");
System.out.print("Gjysma = ");
System.out.println(gjysma);
System.out.print("Njzetqindarka = ");
System.out.println(njezeta);
System.out.print("Dhjetqindarka = ");
System.out.println(dhjeta);
System.out.print("Pesqindarka = ");
System.out.println(pesa);
System.out.print("Qindarka = ");
System.out.println(qindarka);
System.out.print("Shuma totale sht ");
System.out.println( (gjysma * 50) + (njezeta * 20)
+ (dhjeta * 10) + (pesa * 5) + (qindarka * 1) );
}
}

PRINCIPE T PROGRAMIMIT N JAVA IV HYRJA, DALJA DHE GJENDJA
32

4.2 Dalja (Output) Grafike

(4.2.1 Panelat dhe Kornizat e tyre)

4.2.2 Prshtatja e Panelave me Trashgimi

Qo kodI or kInsof PaneliIm dho KornizeTest3:
(umrnf mnjfns jnno vofom or f'I numorunr rroshfnf, dmfh. nuk jnno joso o kodIf.)

// PaneliIm.java

1 import java.awt.*;
2 import javax.swing.*;
3 /** PaneliIm e krijon nje panel me ngjyra */
4 public class PaneliIm extends JPanel
5 { /** paintComponent e mbush panelin me gjerat qe do te paraqiten
6 * @param g - "penda" grafike qe i vizaton gjerat */
7 public void paintComponent(Graphics g)
8 { int gjeresia_e_kornizes = 300;
9 int lartesia_e_kornizes = 200;
10 g.setColor(Color.white);
11 g.fillRect(0, 0, gjeresia_e_kornizes, lartesia_e_kornizes);
12 g.setColor(Color.red);
13 int skaji_majtas = 105;
14 int lart = 70;
15 // vizatoje nje drejtkendesh
16 int gjeresia = 90;
17 int lartesia = 60;
18 g.drawRect(skaji_majtas, lart, gjeresia, lartesia);
19 // vizatoje nje rreth te mbushur
20 int diametri = 40;
21 g.fillOval(skaji_majtas + gjeresia - diametri, lart, diametri, diametri);
22 }
23 }

// KornizeTest3.java

1 import javax.swing.*;
2 import java.awt.*;
3 /** KornizeTest3 e paraqet nje dritare grafike me ngjyra */
4 public class KornizeTest3
5 { public static void main(String[] args)
6 { JFrame korniza_ime = new JFrame();
7 // fute nje panel te ri ne kornize (frame):
8 korniza_ime.getContentPane().add(new PaneliIm());
9 // vere titullin ne kulmin e kornizes:
10 korniza_ime.setTitle("VizatuesIKornizesSime");
11 // nje menyre e lehte per ta ngjyrosur prapavijen e tere dritares
12 int gjeresia_e_kornizes = 300;
13 int lartesia_e_kornizes = 200;
14 korniza_ime.setSize(gjeresia_e_kornizes, lartesia_e_kornizes);
15 korniza_ime.setVisible(true);
16 System.out.println("Korniza u paraqit!");
17 }
18 }
PRINCIPE T PROGRAMIMIT N JAVA IV HYRJA, DALJA DHE GJENDJA
33

dorrojo kInson PaneliIm (dho KornizeTest3) sI vIjon:

1. !rofhI I nrnqIfur vIznfohof mo ngjyro fo zozo. (!dhozIm: ordoro Color.black.)

2. MndhosIn o nnoIIf oshfo 400 mo 400 IksoIn.

3. IrnnvIjn o drIfnros oshfo o vordho. (!dhozIm ordoro Color.yellow.)

4. IIIsn vIznfohof mo mndhosI 80 mo 40.

5. rojfkondoshI vIznfohof no kondIn o oshfom fo djnfhfo fo drIfnros
300-mo-200. (!dhozIm: o kofo rnsf, kondI I sIorm I mnjfo I drojfkondoshIf do fo Ishfo
fo IksoI-ozIfn 2l0, l40.)

IorgjIgjo:
1. Ins rroshfIf l9 o shfojmo rroshfIn:

g.setColor(Color.black)

2. !roshfnf 8, 9:

8 { int gjeresia_e_kornizes = 400;
9 int lartesia_e_kornizes = 400;

3. !roshfI l0 fo PaneliIm:

g.setColor(Color.yellow);

4.
g.fillOval(skaji_majtas + gjeresia - diametri * 2, lart,
diametri * 2, diametri);

5. !roshfI l8 fo PaneliIm:

g.drawRect(210, 140, gjeresia, lartesia);

rojfkondoshI nuk dukof IofosIshf no kornIzo or shknk fo hnosIros qo o morr shIrIfI
I fIfuIIIf Inrf. ShIrIfI I morr dIsn IksoIn (no drojfImIn vorfIknI), vnrosIshf ngn
nrnmofrnf o rrofhInos (WIndows, !Inux ofj.).


PRINCIPE T PROGRAMIMIT N JAVA IV HYRJA, DALJA DHE GJENDJA
34

4.3. Formati dhe Metodat pr Vizatim

4.3.1 Konstruktor-metodat dhe Objekti this

Qo kodI I kInsos VizatuesIOres:

import java.awt.*;
import javax.swing.*;
import java.util.*;
/** VizatuesIOres e vizaton nje ore ne nje panel. */
public class VizatuesIOres extends JPanel
{ public VizatuesIOres()
{ int gjeresia = 200; // gjeresia e ores
// konstruktoje kornizen e ketij paneli:
JFrame korniza_e_ores = new JFrame();
// dhe fute kete panel (panelin _this_) ne kornizen e vet:
korniza_e_ores.getContentPane().add(this);
// tregoje kornizen:
korniza_e_ores.setTitle("Ora");
korniza_e_ores.setSize(gjeresia, gjeresia);
korniza_e_ores.setVisible(true);
}

/** paintComponent e vizaton oren me kohen korrekte.
* @param g - penda grafike qe e ben vizatimin */
public void paintComponent(Graphics g)
{ int gjeresia = 200;
g.setColor(Color.white);
g.fillRect(0, 0, gjeresia, gjeresia); // ngjyrose prapavijen
GregorianCalendar koha = new GregorianCalendar();
int minutat = koha.get(Calendar.MINUTE);
int oret = koha.get(Calendar.HOUR);
int kendi_i_minutave = 90 - (minutat * 6);
int kendi_i_oreve = 90 - oret * 30;
// vizatoje oren si rreth te zi:
int skaji_majtas = 50;
int lart = 50;
int diametri = 100;
g.setColor(Color.black);
g.drawOval(skaji_majtas, lart, diametri, diametri);
// vizatoje akrepin e minutave te kuq, 10 piksela me te vogel,
// me gjeresi prej 5 shkallesh
g.setColor(Color.red);
g.fillArc(skaji_majtas + 5, lart + 5, diametri - 10, diametri - 10,
kendi_i_minutave, 5);
// vizatoje akrepin e oreve te kalter, 50 piksela me te vogel,
// me gjeresi prej -8 shkallesh
g.setColor(Color.blue);
g.fillArc(skaji_majtas + 25, lart + 25, diametri - 50, diametri - 50,
kendi_i_oreve, -8);
}

/** Metoda main (e futur per testim) e monton oren ne kornizen e vet. */
public static void main(String[] args)
{ new VizatuesIOres(); }
}
PRINCIPE T PROGRAMIMIT N JAVA IV HYRJA, DALJA DHE GJENDJA
35
1. ModIfIkojo kInson VizatuesIOres, nshfu qo nkroI I vof I orovo fo jofo mo gjnfosI fo
njojfo mo fo nkroIf fo mInufnvo, or dyfIsh mo I gjoro.

2. IormIrosojo ozIfon o nkroIf fo orovo no kInson VizatuesIOres nshfu qo fo IovIzo
grndunIIshf, o jo vofom no oron o Iofo. Iordoro kofo formuIo:

kondI_I_orovo = 90 - ((orof + (mInufnf/60.0)) * 30)

3. Iojo oron "dIgjIfnIo" sI odho "nnnIogo" duko o nfIshunr kohon o snkfo, no shIfrn, no
fundIn o drIfnros.

IorgjIgjo:
So nrI, o runjmo kodIn sI VizatuesIOres2. Insfnj I ndorrojmo fo gjIfhn nrnqIfjof o
omrIf VizatuesIOres mo VizatuesIOres2 (.sh. mo njo urdhor fo zovondosImIf
'!oInco'). Insfnj I bojmo modIfIkImof fonn. Koshfu do f'I komI fo runjfurn fo dy
vorsIonof o rogrnmIf.

1.
// vizatoje akrepin e oreve te kalter,
// me gjeresi prej -16 shkallesh
g.setColor(Color.blue);
g.fillArc(skaji_majtas + 5, lart + 5, diametri - 10, diametri - 10,
kendi_i_oreve, -16);

2. dorrohon rroshfnf no mofodon paintComponent:

GregorianCalendar koha = new GregorianCalendar();
int minutat = koha.get(Calendar.MINUTE);
int oret = koha.get(Calendar.HOUR);
int kendi_i_minutave = 90 - (minutat * 6);
int kendi_i_oreve = 90 - (int)((oret + (minutat/60.0)) * 30);

3. o fund fo mofodos paintComponent shfohon rroshfnf:

g.setColor(Color.black);
g.drawString(koha.get(Calendar.HOUR) + ":" + koha.get(Calendar.MINUTE),
90, 170);

PRINCIPE T PROGRAMIMIT N JAVA IV HYRJA, DALJA DHE GJENDJA
36

4.4 Objektet me Gjendje: Ndryshoret e Fushave

1. Qo kodI or ShembullIFushes:

import java.awt.*;
import javax.swing.*;
/** ShembullIFushes afishon ate se sa shpesh vizatohet ne ekran nje dritare */
public class ShembullIFushes extends JPanel
{ private int numri; // kjo ndryshore-fushe e ben numerimin se sa shpesh
// eshte vizatuar nja dritare; per kete arsye,
// vlera e saj duhet te jete gjithmone jonegative.

/** ShembullIFushes e konstrukton dritaren. */
public ShembullIFushes()
{ numri = 0; // dritarja nuk eshte vizatuar kurre
// konstrukto kornizen e panelit dhe afishoje:
JFrame korniza_ime = new JFrame();
korniza_ime.getContentPane().add(this);
int lartesia = 200;
korniza_ime.setSize((3*lartesia)/2, lartesia);
korniza_ime.setVisible(true);
}

/** paintComponent e paraqet numrin e vizatimeve
* @param g - penda grafike */
public void paintComponent(Graphics g)
{ numri = numri + 1; // po vizatojme edhe nje here
g.setColor(Color.black);
int margjina = 25;
int lartesia_e_rreshtit = 20;
int rreshti_i_pare = 40;
int rreshti_baze = rreshti_i_pare + (lartesia_e_rreshtit * numri);
g.drawString("U vizatua " + numri + " here", margjina, rreshti_baze);
}

/** Metoda main i monton panelin dhe kornizen dhe i tregon ato. */
public static void main(String[] args)
{ new ShembullIFushes(); }
}

KomnjIojo dho okzokufojo kofo nIIkncIon:

public class TregoDyShembujTeFushes
{ public static void main(String[] args)
{ ShembullIFushes a = new ShembullIFushes();
ShembullIFushes b = new ShembullIFushes();
}
}

Sn drIfnro I konsfrukfon (Vorojfjo: KI kujdos kur fo orgjIgjosh - rovo f'I IovIzosh
drIfnrof qo I shoh no okrnn.) Kur o IkonIfIkon (mInImIzon) dho o doIkonIfIkon
(rIvondos) njoron ngn drIfnrof ShembullIFushes, n ndIkon kjo no nrnqIfjon o fjofros
o fnro orfundImI nrrIn or gjondjof o brondshmo fo objokfovo ShembullIFushes
rosokfIvIshf
PRINCIPE T PROGRAMIMIT N JAVA IV HYRJA, DALJA DHE GJENDJA
3?
IorgjIgjo:

n) AIIkncIonI I konsfrukfon dy drIfnro no fo njojfon ozIfo mo fIIIIm no kondIn o
sIorm fo mnjfo fo okrnnIf.
b) dIkon no rnsfIn kur drIfnrjn qo "fIo" duhof fo rIvIznfohof.
c) Cjondjof o brondshmo jnno fo nvnrurn ngn njorn-fjofrn. SocIIn I kn fushnf o
vofn.


2. Iorfundojo so shkrunrI kInson ClockWriter2 (no IIbor) dho bojo njo oksorImonf:
IIIIojo nIIkncIonIn, IkonIfIkojo drIfnron qo o gjonoron nI no okrnn, dho ns oso
mInufnsh, rIhno drIfnron. fnro koho shoh Krnhnsojo kofo sjoIIjo mo nfo fo kInsos
ClockWriter no IIguron l?.


3. Qo njo shombuII komIk qo o IIusfron ordorImIn o fushnvo.

Shkrunjo njo kInso VizatuesIVezes,
qo o gjonoron njo drIfnro grnfIko qo
o nrnqof njo vozo:











Sn horo qo fo IkonIfIkohof dho fo
doIkonIfIkohof drIfnrjn EggWriter,
vozn rIvIznfohof sn gjysmn o
mndhosIso so vof fo monrshmo:



Hnjn dho mbyIIjn o shoshfo o
drIfnros bon qo vozn fo fkurrof no
nsgjo.

(!dhozIm: Iordoro njo fusho or fn
mbnjfur mond mndhosIno o vozos
qo do fo vIznfohof; sn horo qo
mofodn nInf o rIvIznfon vozon, njo onshfu o orgjysmon vIoron o fushos.)
PRINCIPE T PROGRAMIMIT N JAVA IV HYRJA, DALJA DHE GJENDJA
38
IorgjIgjo:

import java.awt.*;
import javax.swing.*;
/** VizatuesIVezes e krijon nje dritare grafike qe e vizaton nje veze.
* Sa here qe te rivizatohet dritarja, veza zvogelohet pergjysme */
public class VizatuesIVezes extends JPanel
{ private int GJERESIA = 300; // gjeresia e kornizes
private int LARTESIA = 200; // lartesia e kornizes
private Color NGJYRA_E_PRAPAVIJES = Color.yellow;
// ngjyra per ta lyer kornizen

private int gjeresia_e_vezes = 600; // duhet te jete jonegative
private int lartesia_e_vezes = 400; // duhet te jete jonegative

/** Konstruktori EggWriter e krijon dritaren dhe e ben te dukshme */
public VizatuesIVezes()
{ JFrame korniza_ime = new JFrame();
korniza_ime.getContentPane().add(this);
korniza_ime.setTitle("VizatuesIVezes");
korniza_ime.setSize(GJERESIA, LARTESIA);
korniza_ime.setVisible(true);
}

/** paintComponent e vizaton vezen.
* @param g - "penda grafike" qe e vizaton vezen */
public void paintComponent(Graphics g)
{ g.setColor(NGJYRA_E_PRAPAVIJES);
g.fillRect(0, 0, GJERESIA, LARTESIA); // "fshije" tere prapavijen

int kufiri_majtas = 10; // kufiri i majte: pozita horizontale e vezes
int vija_baze = 190; // vija-baze: ku te leshohet veza
g.setColor(Color.pink); // ngjyra e vezes
g.fillOval(kufiri_majtas, vija_baze - lartesia_e_vezes,
gjeresia_e_vezes, lartesia_e_vezes);
g.setColor(Color.black); // ngjyra e vijes kufizuese te vezes
g.drawOval(kufiri_majtas, vija_baze - lartesia_e_vezes,
gjeresia_e_vezes, lartesia_e_vezes);

// rregulloji fushat ashtu qe veza te zvogelohet
// kur te vizatohet ne heren tjeter
gjeresia_e_vezes = gjeresia_e_vezes / 2;
lartesia_e_vezes = lartesia_e_vezes / 2;
}
}

Ior fn rovunr, o shkrunjmo, .sh., kodIn vIjuos:

public class TregoVezen
{ public static void main(String[] args)
{ new VizatuesIVezes(); }
}

PRINCIPE T PROGRAMIMIT N JAVA IV HYRJA, DALJA DHE GJENDJA
39

4.5. Testimi i Programit q Prdor Hyrje


1. !Ishkrunjo nIIkncIonIn qo I orImfon nrnfo: BeriTIma, nshfu qo f'I korkojo dy
numrn fo Iofo sI hyrjo (vIoron o ourovo dho vIoron o confovo) dho o bon orImfImIn.
Insfnj orkufIzo dIsn rnsfo fo fosfImIf fo fIIf fo "kufIso so zozo" (or fo dhonnf
hyroso); orkufIzo dIsn rnsfo fo fosfImIf fo fIIf fo "kufIso so bnrdho". o bnzo fo
oksorImonfovo fun shkrunjo njo IIsfo fo formnvo fo hyrjos InfornkfIvo qo do fo bonIn
qo rogrnmI fo unojo mIro, dho shkrunjo njo IIsfo fo formnvo fo hyrjos qo do fo mund
fo shknkfonIn orgjIgjo fo nrIfurn no jokorrokfo.

IorgjIgjo: AIIkncIonI I ormondur oshfo ky:

/** BeriTIma i llogarit parat e imta pr sasit n ndryshoret
* eurot dhe centet. */
public class BeriTIma
{ public static void main(String[] args)
{ int eurot = 3;
int centet = 46;
int parate = (eurot * 100) + centet;
System.out.println("20-centshe = " + (parate / 20));
parate = parate % 20;
System.out.println("10-centshe = " + (parate / 10));
parate = parate % 10;
System.out.println("5-centshe = " + (parate / 5));
parate = parate % 5;
System.out.println("1-centshe = " + parate);
}
}

IrogrnmI I rIshkrunr:

import javax.swing.*;
/** BeriTIma2 i llogarit parat e imta pr sasit n ndryshoret
* eurot dhe centet. */
public class BeriTIma2
{ public static void main(String[] args)
{ String e = JOptionPane.showInputDialog("Numri i plote i eurove:");
int eurot = new Integer(e).intValue();
String c = JOptionPane.showInputDialog("Numri i centeve te mbetura:");
int centet = new Integer(c).intValue();
int parate = (eurot * 100) + centet;
System.out.println("20-centshe = " + (parate / 20));
parate = parate % 20;
System.out.println("10-centshe = " + (parate / 10));
parate = parate % 10;
System.out.println("5-centshe = " + (parate / 5));
parate = parate % 5;
System.out.println("1-centshe = " + parate);
}
}

PRINCIPE T PROGRAMIMIT N JAVA IV HYRJA, DALJA DHE GJENDJA
40
Hyrjof o fIIf fo "kufIso so zozo" jnno nfo qo do fo mund f'I shkrunnfo njo ordoruos
fIIk, jo-forf-I kujdosshom. Ior rogrnmIn o orImfImIf, do fo mund f'I rovonIm kofo
vIorn fo ourovo o fo confovo fo fIIf 'kufI o zozo':
3 49
0 99
3 ll2
349 0
-2 -l2
-2 l2
njo dy

Hyrjof o fIIf "kufI o bnrdho" jnno krIjunr or fo nn ndIhmunr f'I kufojmo dho f'I
nnnIIzojmo urdhornf socIfIko brondn rogrnmIf. IrogrnmI I orImfImIf I bon
IIognrIfjof o fIj mo vorImIn moduIo, rnndnj do fo mund f'I krIjonIm kofo hyrjo, qo o
ordorIn urdhorIn, parat = parat % 20; (money = money % 20;) dho fo frogojmo so
kn ndodh kur f'Imnf mund fo IIognrIfon vofom mo 20-confoshn dho mo 20-confoshn o
dIsn monodhn:
0 60
0 6l
l 00
0 65

!rdhornf fjoro moduIo no rogrnm mund fo rovohon ngjnshom.

PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
4l

V Struktura e Komponenteve:
Ndrtimi i Metodave dhe Klasave


(5.1 Metodat)


5.2 Metodat Publike

5.2.1 Disa Metoda Publike Themelore


1. Qo kInsof AsciiArtVizatues dho VizatoArt:

// AsciiArtVizatues.java
/** AsciiArtVizatues permban metoda per te vizatuar Ascii art */
public class AsciiArtVizatues
{ /** Konstruktori AsciiArtVizatues e ben 'inicializimin'. */
public AsciiArtVizatues()
{ System.out.println(); }

/** afishoBlete e afishon nje blete */
public void afishoBlete()
{ System.out.println(" ,-.");
System.out.println(" \\_/"); // karakteri '\' duhet te shkruhet si '\\'
System.out.println(">{|||}-");
System.out.println(" / \\");
System.out.println(" `-^");
System.out.println();
}

/** afishoFlutur e afishon nje flutur */
public void afishoFlutur()
{ System.out.println(" _ \" _"); // karakteri '"' duhet te shkruhet si '\"'
System.out.println(" (_\\|/_)");
System.out.println(" (/|\\)");
System.out.println();
}

/** afishoKalikuse e afishon nje kalikuse */
public void afishoKalikuse()
{ System.out.println(" `m\'"); // \' pr '
System.out.println(" (|)");
System.out.println();
}
}

PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
42
// VizatoArt.java
/** VizatoArt afishon Ascii art dhe nje fjali */
public class VizatoArt
{ public static void main(String[] args)
{ AsciiArtVizatues vizatuesi = new AsciiArtVizatues();
vizatuesi.afishoBlete();
System.out.println("Ky eshte test.");
vizatuesi.afishoFlutur();
vizatuesi.afishoBlete();
}
}

To fhomI so o ndryshojmo kInson VizatoArt nshfu qo fo dukof koshfu:

public class VizatoArt2
{ public static void main(String[] args)
{ AsciiArtVizatues v = new AsciiArtVizatues();
v.afishoFlutur();
v.afishoFlutur();
}
}

kn nfIshohof no okrnn


IorgjIgjo: o okrnn nfIshohof njo rroshf I zbrnzof (konsfrukforI) dho dy fIufurn.


2. Shjogo so kn nrnqIfof no drIfnron komnnduoso kur okzokufohof nIIkncIonI
vIjuos. Sn objokfo AsciiWriter konsfrukfohon

public class TestArt
{ public static void main(String[] args)
{ AsciiArtVizatues vizatuesi = new AsciiArtVizatues();
vizatuesi.afishoBlete();
new AsciiArtVizatues().afishoFlutur();
vizatuesi.afishoKalikuse();
}
}

IorgjIgjo: o drIfnron komnnduoso nfIshohof njo rroshf I zbrnzof (konsfrukforI), njo
bIofo, njo rroshf I zbrnzof (konsfrukforI I objokfIf fo rI fo orkohshom
new AsciiArtVizatues().afishoFlutur()) dho njo fIufur, nsfnj njo knIIkuso.
Konsfrukfohon dy objokfo AsciiArtVizatues: vIznfuosI dho njo objokf I orkohshom, qo
krIjohof no rroshfIn o osfo. Sn horo qo rrjodhn o konfroIIIf knIon noor fjnIon kyo,
new, krIjohof njo objokf I rI.


PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
43
3. Qo njo kInso mo njo mofodo ubIIko:

import javax.swing.*;
public class KlaseNdihmese
{ public KlaseNdihmese()
{ } // asgje per inicializim

/** llogariteRrenjenKatrore e lexon nje numer te plote si hyrje
* dhe e afishon rrenjen katrore te tij. */
public void llogariteRrenjenKatrore()
{ String s = JOptionPane.showInputDialog("Shkruane nje numer:");
double d = new Double(s).doubleValue();
double rrenja = Math.sqrt(d);
JOptionPane.showMessageDialog(null,
"Rrenja katrore e " + d + " eshte " + rrenja);
}
}

Shkrunjo njo nIIkncIon nshfu qo mofodn main o fIj o fhorrof mofodon or f'I ndIhmunr
ordoruosIf qo f'I IIognrIso dy rronjo knfroro.

IorgjIgjo:

public class LlogaritiDyRrenje
{ public static void main(String[] args)
{ KlaseNdihmese llogarites = new KlaseNdihmese();
llogarites.llogariteRrenjenKatrore();
llogarites.llogariteRrenjenKatrore();
}
}


4. Shkrunjo mofodon qo mungon or kofo nIIkncIon:

import javax.swing.*;
/** GjatesiaEEmrit e llogarit gjatesine e dy emrave.
* Hyrja: dy emra, secili i shkruar ne nje dialog hyres
* Dalja: dialogjet qe i afishojne emrat dhe gjatesite e tyre. */
public class GjatesiaEEmrit
{ public static void main(String[] args)
{ KlaseNdihmese n = new KlaseNdihmese();
n.lexoEmrinDheAfishoGjatesineETij();
n.lexoEmrinDheAfishoGjatesineETij();
JOptionPane.showMessageDialog(null, "Fund.");
}
}

public class KlaseNdihmese
{ ...
/** lexoEmrinDheAfishoGjatesineETij e lexon nje emer dhe e afishon
* emrin me gjatesine e tij
* Udhezim: per stringun, x, x.length() e kthen gjatesine e x */
...
}

PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
44
IorgjIgjo:

o kInson ndIhmoso, o shfojmo mofodon:

public class KlaseNdihmese
{ ...
/** lexoEmrinDheAfishoGjatesineETij e lexon nje emer dhe e afishon
* emrin me gjatesin e tij
* Udhezim: per stringun, x, x.length() e kthen gjatesine e x */
private static void lexoEmrinDheAfishoGjatesineETij()
{ String emri = JOptionPane.showInputDialog("Emri");
JOptionPane.showMessageDialog(null, "Emri: " + emri
+ "; Gjatesia: " + emri.length() );
}
}

Mofodn nuk unon or shknk so oshfo dokInrunr sI rIvnfo. omofhono njo mund fo
fhIrrof vofom ngn ndonjo vond orbrondn kInsos so vof. Ior fn fhIrrur kofo mofodo roj
kInsos GjatsiaEEmrit, duhof fn dokInrojmo sI ubIIko (dmfh. fn ndorrojmo fjnIon kyo
private mo fjnIon kyo public).

5.2.2 Metodat Konstruktor


1. Qo njo kInso mo konsfrukfor dho mofodo ubIIko:

public class KlaseAfishuese
{ public KlaseAfishuese()
{ System.out.println("A"); }

public void afishoB()
{ System.out.println("B"); }
}

kn nfIshon ky nIIkncIon

public class TestoKlasenAfishuese
{ public static void main(String[] args)
{ KlaseAfishuese p = new KlaseAfishuese();
p.afishoB();
p.afishoB();
new KlaseAfishuese().afishoB();
KlaseAfishuese q = p;
}
}

PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
45
IorgjIgjo: AIIkncIonI I dhono nfIshon:

A
B
B
A
B

Cjnfo okzokufImIf konsfrukfohon dy objokfo, rnndnj A nfIshohof dy horo. !rdhorI I
fundIf I ndnrjos so vIoros nuk konsfrukfon objokf. AI fhjoshf o kojon ndroson qo o
mbnn p - no q.


2. Qo njo kInso mo konsfrukfor dho mofodo ubIIko:

public class Numerues
{ private int numri;

public Numerues()
{ numri = 0; }

public void numero()
{ numri = numri + 1;
System.out.println(numri);
}
}

kn nfIshon ky nIIkncIon

public class TestoNumeruesin
{ public static void main(String[] args)
{ Numerues a = new Numerues();
a.numero();
a.numero();
Numerues b = new Numerues();
b.numero();
a.numero();
Numerues c = a;
c.numero();
a.numero();
}
}

IorgjIgjo:

1
2
1
3
4
5

ShombuIII TestoNumeruesin I krIjon dy objokfo, mo fushn fo ndryshmo numri.
dryshorof c dho a I roforohon fo njojfIf objokf.

PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
46

5.3 Parametrat e Metodave

1. kn do fo nfIshojo ky nIIkncIon:

public class KlaseAfishuese2
{ public KlaseAfishuese2() { }

public void afishoEmrin(String emri)
{ String s = " ";
System.out.println(emri + s + emri);
}
}

public class TestoKlasenAfishuese2
{ public static void main(String[] args)
{ String s = "Filan";
new KlaseAfishuese2().afishoEmrin(s + s);
}
}

IorgjIgjo: AIIkncIonI nfIshon:

FilanFilan FilanFilan

soso nrnmofrI nkfunI IIognrIfof sI FilanFilan. Vorojo so sI nuk kn kurrfnro IIdhjo
ndormjof dy ndryshorovo mo omrIn o njojfo s.


2. ShkrunjI frunf qo mungojno or mofodnf o kosnj kInso; shIkojo nIIkncIonIn qo
nson noso fo duhof ndIhmo.

import javax.swing.*;
/** KlaseEmer e mban mend nje emer dhe afishon te dhena per te. */
public class KlaseEmer
{ private String emri; // emri qe mbahet mend

/** Konstruktori KlaseEmer e inicializon nje objekt KlaseEmer
* @param n - emri qe do te mbahet mend */
public KlaseEmer(String n)
{ ... }

/** afishoEmrin e afishon emrin e mbajtur mend nga ky objekt */
public void afishoEmrin()
{ ... }

/** afishoGjatesine e afishon gjatesine e emrit te mbajtur mend.
* (Udhezim: perdore metoden length nga Tabela 5, Kapitulli 3.) */
public void afishoGjatesine()
{ ... }
}

PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
4?
public class TestoKlasenEmer
{ public static void main(String[] args)
{ KlaseEmer emri_im = new KlaseEmer("Filan Fisteku");
System.out.print("une quhem ");
emri_im.afishoEmrin();
System.out.print("emri im i ka kaq karaktere: ");
emri_im.afishoGjatesine();
}
}

Prgjigje:

/** Konstruktori KlaseEmer e inicializon nje objekt KlaseEmer
* @param n - emri qe do te mbahet mend */
public KlaseEmer(String n)
{ emri = n; }

/** afishoEmrin e afishon emrin e mbajtur mend nga ky objekt */
public void afishoEmrin()
{ System.out.println(emri); }


/** afishoGjatesine e afishon gjatesine e emrit te mbajtur mend.
* (Udhezim: perdore metoden length nga Tabela 5, Kapitulli 3.) */
public void afishoGjatesine()
{ System.out.println(emri.length()); }


5.3.1 Format e Parametrave


1. Qo njo kInso ndIhmoso:

public class KlaseAritmetike
{ private int baza;

public KlaseAritmetike(int b)
{ baza = b; }

public void afishoShumezimin(String etiketa, double d)
{ System.out.println(etiketa + (baza * d)); }
}

n) kn nfIshon nIIkncIonI vIjuos (VIznfonI shfIgjof (gjurmof) o okzokufImIf noso nuk
jonI fo sIgurfo rrofh nsImIf fo nrnmofrnvo.)

public class TestoKlasenAritmetike
{ public static void main(String[] args)
{ KlaseAritmetike k = new KlaseAritmetike(2);
k.afishoShumezimin("3", 4.5 + 1);
int i = 4;
k.afishoShumezimin("A", i);
k.afishoShumezimin("A, i-1);
}
}

PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
48
b) Shjogo gnbImof no kofo nIIkncIon:

public class Gabimet
{ public static void main(String[] args)
{ KlaseAritmetike k = new KlaseAritmetike();
afishoShumezimin("A", 5);
int s = 0;
k.afishoShumezimin(s, 2 + s);
k.afishoShumezimin(1, "A");
k.afishoShumezimin("A", 9, 10);
k.afishoDicka();
}
}

IorgjIgjo:

n)
311.0
A8.0
A6.0

(InvokImI) ThIrrjn o nro I kn nrnmofrnf o vorfofo (nkfunIo) "3" dho 5.5, qo shknkfon
qo sfrInguf "3" f'I shfohof 11.0 (dmfh. baza * 5.5). ThIrrjn o dyfo I kn nrnmofrnf o
vorfofo "A" dho 4; fhIrrjn o frofo I kn nrnmofrnf "A" dho 3.

b) Qo gnbImof o gjofurn ngn Jnvn-komnjIorI:

KlaseAritmetike k = new KlaseAritmetike(): konsfrukforI o kn numrIn o
gnbunr fo nrgumonfovo
afishoShumezimin("A", 5): fhIrrjos (InvokImIf) I mungon omrI I objokfIf rnnuos
k.afishoShumezimin(s, 2 + s): nrnmofrI I dyfo nkfunI oshfo String, ndorsn
korkohof double
k.afishoShumezimin(1, "A"): nrnmofrI I nro oshfo numor I Iofo, ndosn
korkohof String, dho nrnmofrI I dyfo oshfo String, ndorsn korkohof double -
rondIfjn o nrnmofrnvo oshfo mo rondosI.
k.afishoShumezimin("A", 9, 10): oshfo dhono snsI o gnbunr o nrnmofrnvo
nkfunIo
k.afishoDicka(): oshfo fhIrrur mofodo o cIIn nuk oshfo fnro no kInson orknfoso
KlasAritmetike.


PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
49
2. ShkrunjI mofodnf qo mungojno or kofo kInso:

/** ShumeEPergjithshme i ndihmon nje femije t'i mbledhe disa numra */
public class ShumeEPergjithshme
{ private int shuma; // shuma e krejt numrave te mbledhur deri tash

/** Konstruktori ShumeEPergjithshme e incializon objektin */
public ShumeEPergjithshme()
{ shuma = 0; }

/** shtojaShumes ia shton edhe nje numer shumes se pergjithshme
* @param num - numri i plote qe do t'i shtohet shumes */
...

/** afishoShumen e afishon shumen aktuale te krejt numrave te shtuar
* deri tash */
...


public class MbledhiDoNumra
{ public static void main(String[] args)
{ ShumeEPergjithshme llogaritesi = new ShumeEPergjithshme();
llogaritesi.shtojaShumes(16);
llogaritesi.shtojaShumes(8);
llogaritesi.afishoShumen();
llogaritesi.shtojaShumes(4);
llogaritesi.afishoShumen();
}
}


3. Mofodn paintComponent o kInsos qo o ndorfon oron, VizatuesIOres (fo 4.3.l), mund fo
rIshkruhof nshfu qo fn ordoro kofo mofodo:

/** vizatojeOren e vizaton nje ore me kohen momentale
* @param oret - numri momental i oreve, numer i plote midis 1 e 12
* @param minutat - numri momental i minutave,
* numer i plote midis 0 e 59
* @param x - kndi i siprm i majt ku duhet t paraqitet ora
* @param y - kndi i siprm i djatht ku duhet t paraqitet ora
* @param diametri - diametri i ors
* @param g - penda grafike qe perdoret per ta vizatuar oren */
public void vizatojeOren(int oret, int minutat, int x, int y,
int diametri, Graphics g)

Shkrunjo kofo mofodo, fufo no kInson VIznfuosIOros, dho rIshkrunjo paintComponent-In
o kInsos or fn fhIrrur mofodon.
Insfnj, bojo paintComponent-In f'I vIznfojo J, orn - njo or kohon fondo dho njo or
kohon nkfunIo no SIdnoj (+9 oro, krnhnsunr mo IrIshfIno).

Vorojfjo: oso ky ushfrIm korkon foor, Ioxojo njosIno fjofor nsfnj kfhohu fn rIunosh
ushfrImIn.

PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
50
IorgjIgjo: KInsn VizatuesIOrs rroguIIohof sI vIjon:

import java.awt.*;
import javax.swing.*;
import java.util.*;
/** VizatuesIOres3 e vizaton nje ore ne nje panel. */
public class VizatuesIOres3 extends JPanel
{ public VizatuesIOres3()
{ int gjeresia = 200; // gjeresia e ores
// konstruktoje kornizen e ketij paneli:
JFrame korniza_e_ores = new JFrame();
// dhe fute kete panel (panelin _this_) ne kornizen e vet:
korniza_e_ores.getContentPane().add(this);
// tregoje kornizen:
korniza_e_ores.setTitle("Ora");
korniza_e_ores.setSize(gjeresia, gjeresia);
korniza_e_ores.setVisible(true);
}

/** paintComponent e vizaton oren me kohen korrekte.
* @param g - penda grafike qe e ben vizatimin */
public void paintComponent(Graphics g)
{ int gjeresia = 200;
g.setColor(Color.white);
g.fillRect(0, 0, gjeresia, gjeresia); // ngjyrose prapavijen
int skaji_majtas = 50;
int lart = 50;
int diametri = 100;
GregorianCalendar koha = new GregorianCalendar();
vizatojeOren(koha.get(Calendar.HOUR), koha.get(Calendar.MINUTE),
skaji_majtas, lart, diametri, g);
}

/** vizatojeOren e vizaton nje ore me kohen momentale
* @param oret - numri momental i oreve, numer i plote midis 1 e 12
* @param minutat - numri momental i minutave, numer i plote midis 0 e 59
* @param x - kndi i siprm i majt ku duhet t paraqitet ora
* @param y - kndi i siprm i djatht ku duhet t paraqitet ora
* @param diametri - diametri i ors
* @param g - penda grafike qe perdoret per ta vizatuar oren */
public void vizatojeOren(int oret, int minutat, int x, int y,
int diametri, Graphics g)
{ int kendi_i_minutave = 90 - (minutat * 6);
int kendi_i_oreve = 90 - oret * 30;
// vizatoje oren si rreth te zi:
g.setColor(Color.black);
g.drawOval(x, y, diametri, diametri);
// vizatoje akrepin e minutave te kuq, 10 piksela me te vogel,
// me gjeresi prej 5 shkallesh
g.setColor(Color.red);
g.fillArc(x + 5, y + 5, diametri - 10, diametri - 10,
kendi_i_minutave, 5);
// vizatoje akrepin e oreve te kalter, 50 piksela me te vogel,
// me gjeresi prej -8 shkallesh
g.setColor(Color.blue);
g.fillArc(x + 25, y + 25, diametri - 50, diametri - 50,
kendi_i_oreve, -8);
}
PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
5l

/** Metoda main e monton oren ne kornizen e vet.
* Metoda eshte futur ketu per qellime te testimit. */
public static void main(String[] args)
{ new VizatuesIOres3(); }
}

Ior f'I vIznfunr dy orn: fo IrIshfInos dho fo SIdnojIf, I bojmo kofo ndryshImo:

7 { int gjeresia = 400; // gjeresia e kornizes

14 korniza_e_ores.setSize(gjeresia, gjeresia/2);

21 { int gjeresia = 400;

30 int distanca = 200; // distanca ndermjet dy orave
31 vizatojeOren((koha.get(Calendar.HOUR)+9) % 24, koha.get(Calendar.MINUTE),
32 skaji_majtas + distanca, lart, diametri, g);


5.4 Case Study: Korniz Dalse me Destinim t Prgjithshm


1. Qo kInsn Shkrues:

import java.awt.*; import javax.swing.*;
/** Shkrues e krijon nje dritare grafike qe e afishon nje fjali */
public class Shkrues extends JPanel
{ private int gjeresia; // gjeresia e kornizes
private int lartesia; // lartesia e kornizes
private String fjalia = ""; // e mban fjaline qe do te afishohet
private int x_pozita; // x-pozita e fjalise
private int y_pozita; // y-pozita e fjalise

/** Konstruktori Shkrues e konstrukton Panelin
* @param gj - gjeresia e dritares
* @param l - lartesia e dritares */
public Shkrues(int gj, int l)
{ gjeresia = gj;
lartesia = l;
x_pozita = gjeresia / 5; // caktoje poziten e fjalise
y_pozita = lartesia / 2;
JFrame korniza_ime = new JFrame();
korniza_ime.getContentPane().add(this);
korniza_ime.setTitle("Shkrues");
korniza_ime.setSize(gjeresia, lartesia);
korniza_ime.setVisible(true);
}

/** paintComponent e vizaton panelin
* @param g - ''penda grafike'' qe i vizaton elementet */
public void paintComponent(Graphics g)
{ g.setColor(Color.red);
g.drawString(fjalia, x_pozita, y_pozita);
}

PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
52
/** shkruajeFjaline e afishon nje string te ri ne dritare
* @param s - fjalia qe do te afishohet */
public void shkruajeFjaline(String s)
{ fjalia = s;
this.repaint(); // terthorazi e detyron metoden paintComponent
// qe te ekzekutohet
}
/** vendoseFjaline e riafishon fjaline ekzistuese ne pozite te re
* @param x_i_ri - pozita e re filluese horizontale
* @param y_i_ri - pozita e re filluese vertikale */
public void vendoseFjaline(int x_i_ri, int y_i_ri)
{ x_pozita = x_i_ri;
y_pozita = y_i_ri;
this.shkruajeFjaline(fjalia); // detyro rishkruarjen e fjalise ekzistuese
}
}

Shjogojo fo sjoIIurIf o kofIj nIIkncIonI qo o ordor kInson Shkrues:

import javax.swing.*;
public class ShembullTjeter
{ public static void main(String[] args)
{ Shkrues shkruesi = new Shkrues(300, 200);
String s = JOptionPane.showInputDialog("Ju lutem shkruani dicka:");
shkruesi.shkruajeFjaline(s);
shkruesi.vendoseFjaline(0,190);
shkruesi.shkruajeFjaline(s + s);
}
}

IorgjIgjo: AIIkncIonI o nfIshon fjnIIno o nro fo fufur no ozIfon 60, l00 (300/5, 200/2).
IjnIIn o dyfo o fufur nrnqIfof no ozIfon o njojfo dho nsfnj monjohoro rIvondosof no
0, l90. Iofhunjso monjohoro ns kosnj, fjnIIn nfIshohof dy horo no 0, l90. Ior syfo o
ordoruosIf, krojf kn shIhof oshfo nfIshImI I nro dho I fundIf.


2. Shkrunjo njo nIIkncIon qo korkon ngn ordoruosI fn shkrunjo njo numor fo Iofo, o
IIognrIf rronjon knfroro fo nfIj numrI, dho o ordor kInson Shkrues or fn nfIshunr
numrIn dho rronjon knfroro fo fIj. !ronjn fo nfIshohof mo snkfosI roj 6 vondosh
docImnIo.

IorgjIgjo:

import java.text.*; import javax.swing.*;
public class RrenjaKatrore
{ public static void main(String[] args)
{ String s = JOptionPane.showInputDialog(
"Ju lutem shkruane nje numer te plote:");
int num = new Integer(s).intValue();
double d = Math.sqrt(num);
String pergjigjja = new DecimalFormat("0.000000").format(d);
new Shkrues(300,200).shkruajeFjaline("rrenja katrore e " + num
+ " eshte " + pergjigjja);
}
}
PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
53
3. Shfojn kofo mofodo fo ro kInsos Shkrues:

/** shkruajeFjalineEDyte e afishon nje fjali, t, prfundi fjalise
* se pare ne dritare.
* @param t - fjalia e dyte qe do te afishohet */
public void shkruajeFjalineEDyte(String t)

Kur o shfon kofo mofodo, n duhof fn rIndroqosh shkruajeFjaline rivendoseFjaline

IorgjIgjo:

import java.awt.*; import javax.swing.*;
/** Shkrues2 e krijon nje dritare grafike qe i afishon dy fjali */
public class Shkrues2 extends JPanel
{ private int gjeresia; // gjeresia e kornizes
private int lartesia; // lartesia e kornizes

private String fjalia = ""; // e mban fjaline qe do te afishohet
private String fjalia2 = ""; // fjalia e dyte qe do te afishohet

private int x_pozita; // x-pozita e fjalise
private int y_pozita; // y-pozita e fjalise
private int shtesa = 20; // ku afishohet fjalia e dyte nen te paren

/** Konstruktori Shkrues e konstrukton Panelin
* @param gj - gjeresia e dritares
* @param l - lartesia e dritares */
public Shkrues2(int gj, int l)
{ ... si m par ... }

/** paintComponent e vizaton panelin
* @param g - ''penda grafike'' qe i vizaton elementet */
public void paintComponent(Graphics g)
{ g.setColor(Color.red);
g.drawString(fjalia, x_pozita, y_pozita);
g.drawString(fjalia2, x_pozita, y_pozita + shtesa);
}

/** shkruajeFjaline e afishon nje string te ri ne dritare
* @param s - fjalia qe do te afishohet */
public void shkruajeFjaline(String s)
{ ... si m par ... }
/** vendoseFjaline e riafishon fjaline ekzistuese ne pozite te re
* @param x_i_ri - pozita e re filluese horizontale
* @param y_i_ri - pozita e re filluese vertikale */
public void vendoseFjaline(int x_i_ri, int y_i_ri)
{ ... si m par ... }

/** shkruajeFjalineEDyte e afishon nje fjali, t,
* nen fjaline e pare ne dritare.
* @param t - fjalia e dyte qe do te afishohet */
public void shkruajeFjalineEDyte(String t)
{ fjalia2 = t;
this.repaint();
}
}
PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
54
4. Shkrunjo njo kInso qo o Iofoson kofo socIfIkncIon:

TekstShkrues I nfIshon dorI no fro rroshfn fo foksfIf no drIfnro grnfIko

Kone/ru//ori.
TekstShkrues(int gj, int l)
I konsfrukfon drIfnron mo gjorosI gj IksoIn
dho InrfosI l IksoIn dho o nfIshon njo drIfnro
mo fro rroshfn fo zbrnzof

Me/oJo/.

afisho1(String s) In shfon s fundIf fo !roshfIf l dho I nfIshon
vIornf nkfunIo fo fo fro rroshfnvo fo foksfIf.

ricakto1(String s) I shndorron !roshfIn l fo foksfIf no s dho I
nfIshon vIornf nkfunIo fo fo fro rroshfnvo

afisho2(String s) In shfon s fundIf fo !roshfIf 2 dho I nfIshon
vIornf nkfunIo fo fo fro rroshfnvo fo foksfIf.

ricakto2(String s) I shndorron !roshfIn l fo foksfIf no s dho I
nfIshon vIornf nkfunIo fo fo fro rroshfnvo

afisho3(String s) In shfon s fundIf fo !roshfIf l dho I nfIshon
vIornf nkfunIo fo fo fro rroshfnvo fo foksfIf.

ricakto3(String s) I shndorron !roshfIn l fo foksfIf no s dho I
nfIshon vIornf nkfunIo fo fo fro rroshfnvo


Tosfojo kInson mo kofo nIIkncIon:

import javax.swing.*;
public class TestoTekstShkruesin
{ public static void main(String[] args)
{ TekstShkrues shkrues = new TekstShkrues(300, 200);
String s = JOptionPane.showInputDialog("Ju lutem shkruani ca tekst:");
shkrues.afisho1(s);
s = JOptionPane.showInputDialog("Provoni edhe nje here:");
shkrues.afisho1(s);
s = JOptionPane.showInputDialog("Edhe nje here:");
shkrues.afisho3(s);
s = JOptionPane.showInputDialog("Hera e fundit:");
shkrues.ricakto1(s);
}
}

Insfnj, rIshkrunjo kInson CelsiusNFahrenheit, nshfu qo fn ordoro njo ShkruesTeksti
or fn nfIshunr dnIjon o vof.
PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
55
IorgjIgjo:

import java.awt.*;
import javax.swing.*;
/** TekstShkrues i paraqet deri ne tre rreshta tekst ne nje dritare grafike */
public class TekstShkrues extends JPanel
{ private int gjeresia; // gjeresia e kornizes
private int lartesia; // lartesia e kornizes

private String fjalia1 = "";
private String fjalia2 = "";
private String fjalia3 = "";
private int x_pozita; // x-pozita e fjalive
private int y_pozita; // y-pozita e fjalive
private int shtesa = 20; // distanca ndermjet fjalive

/** Konstruktori TekstShkrues e krijon dritare dhe e ben te dukshme
* @param gj - gjeresia e dritares
* @param l - lartesia e dritares */
public TekstShkrues(int gj, int l)
{ gjeresia = gj;
lartesia = l;
x_pozita = gjeresia / 5; // caktoje poziten e fjalise
y_pozita = lartesia / 2;
JFrame korniza_ime = new JFrame();
korniza_ime.getContentPane().add(this);
korniza_ime.setTitle("TekstShkrues");
korniza_ime.setSize(gjeresia, lartesia);
korniza_ime.setVisible(true);
}

/** paintComponent e vizaton dritaren
* @param g - penda grafike qe i vizaton elementet brenda dritares */
public void paintComponent(Graphics g)
{ g.setColor(Color.red);
g.drawString(fjalia1, x_pozita, y_pozita);
g.drawString(fjalia2, x_pozita, y_pozita + shtesa);
g.drawString(fjalia3, x_pozita, y_pozita + (2 * shtesa));
}

public void afisho1(String s)
{ fjalia1 = fjalia1 + s;
this.repaint();
}

public void ricakto1(String s)
{ fjalia1 = s;
this.repaint();
}

// metodat tjera jane te ngjashme me dy te mesipermet

}

PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
56

5.5 Rezultatet e Metodave: Funksionet

1. kn nfIshon ky nIIkncIon

public class Numerues2
{ private int numri;

public Numerues2(int i)
{ numri = i; }

public int numeroA()
{ numri = numri + 1;
return numri;
}

public double numeroB()
{ return numri + 1.5; }

public String numeroC()
{ return "*" + numri; }
}

public class TestoNumeruesin2
{ public static void main(String[] args)
{ Numerues2 n = new Numerues2(3);
int x = n.numeroA();
System.out.println(x + " " + n.numeroB());
System.out.println(n.numeroC() + n.numeroA());
}
}

IorgjIgjo:

4 5.5
*45


2. Qo funksIonI celsiusNeFahrenheit:

/** celsiusNeFahrenheit i prkthen gradt Celsius n Fahrenheit
* @param c - gradt n Celsius
* @return (kthen) gradt prkatse (ekuivalente) n Fahrenheit */
public double celsiusNeFahrenheit(double c)
{ double f = ((9.0 / 5.0) * c) + 32;
return f;
}

Vondoso kofo funksIon no kInson ShnderruesITemperatures. Shfojn odho kofo mofodo
kInsos:

/** fahrenheitNeCelsius i shndrron gradt Fahrenheit n Celsius
* @param f - gradt n Fahrenheit, double
* @return (kthen) ekuivalentin e shkallve n Celsius, double */

(!dhozIm: ordoro nIgjobron or fn IIognrIfur formuIon shndorruoso.)
PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
5?
Insfnj, fosfojo kInson mo kofo nIIkncIon:

public class ShnderroTemperaturat
{ public static void main(String[] args)
{ ShnderruesITemperatures llogaritesi = new ShnderruesITemperatures();
int temp = new Integer(args[0]).intValue(); // merre hyrjen si arg. prog.
double ftemp = llogaritesi.celsiusNeFahrenheit(temp);
System.out.println(temp + "C eshte " + ftemp + "F");
System.out.println("Verifiko: " + ftemp + "F eshte "
+ llogaritesi.fahrenheitNeCelsius(ftemp) + "C");
double ctemp = llogaritesi.fahrenheitNeCelsius(temp);
System.out.println(temp + "F eshte " + ctemp + "C");
System.out.println("Verifiko: " + ctemp + "C eshte "
+ llogaritesi.celsiusNeFahrenheit(ctemp) + "F");
}
}

IorgjIgjo:

public class ShnderruesITemperatures
{ public ShnderruesITemperatures() { }

public double celsiusNeFahrenheit(double c)
{ return ((9.0 / 5.0) * c) + 32; }

public double fahrenheitNeCelsius(double f)
{ return (5 * (f - 32)) / 9.0; }
}


3. Shkrunj funksIonof qo Iu orgjIgjon socIIIf socIfIkncIon vIjuos:

n)
/** kilometraNeMila e konverton nje sasi kilometrash ne mila
* duke e perdorur formulen: Mila = 0.62137 * Kilometra
* @param k sasia e kilometrave
* @return kthen sasine korresponduese te milave */
public double kilometraNeMila(double k)

Iufo funksIonIn no njo nIIkncIon qo o Ioxon njo vIoro fo kIIomofrnvo ngn ordoruosI
dho o nfIshon vIoron no mIIn.

b)
/** totaliIShtuarI e llogarit totalin e shtuar qe rezulton
* nga kapitali fillestar, k, shkalla e interesit, i,
* dhe kohezgjatja prej n periudhave shtuese, duke e perdorur kete formule:
* totali = k((1 + (i/n))^n (^ dmth. "ne fuqine")
* @param k - kapitali fillestar, sasi e dollareve, centeve (p.sh. 150.67)
* @param i - shkalla e interesit per periudhen shtuese,
* ne trajte decimale (ose si thyese) (p.sh. 0.01 eshte 1%)
* @param n - periudhat perberese (p.sh., nese shtuarja behet ne muaj,
* atehere dy vite bejne 24 periudha te shtuarjes) */
public double totaliIShtuarI(double k, double i, int n)

PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
58
c)
/** plotpjesetohetMeNente e provon se a plotpjesetohet argumenti i vet
* me 9
* @param arg argumenti qe do te provohet
* @return kthen true, nese plotpjesetohet me 9, perndryshe kthen false
public boolean plotpjesetohetMeNente(int arg)

)
/** rroga e llogarit rrogen javore te nje nepunesi
* @param emri emri i nepunesit
* @param oret oret e punuara gjate javes
* @param cmimi_i_ores cmimi i ores
* @return kthen nje tekst (string) qe perbehet nga emri, i vijuar
* nga "Euro" dhe rroga */
public String rroga(String emri, int oret, double cmimi_i_ores)

IorgjIgjo:

n)
public double kilometraNeMila(double k)
{ return (0.62137 * k); }

b)
public double totaliIShtuarI(double k, double i, int n)
{ return ( k * Math.pow(1 + (i/n), n) };

c)
public boolean plotpjesetohetMeNente(int arg)
{ return ((arg % 9) == 0); }

)
public String rroga(String emri, int oret, double cmimi_i_ores)
{ double rroga = oret * cmimi_i_ores;
return (emri + ": Euro " + rroga);
}


4. Qo njo nIIkncIon qo do fo kIshfo dobI ngn njo funksIon. !Ishkrunjo nIIkncIonIn
nshfu qo fn kofo njo funksIon.

/** Syprinat i afishon syprinat e tre rratheve */
public class Syprinat
{ public static void main(String[] args)
{ System.out.println("Per rrezen 4, syprina = " + (Math.PI * 4*4));
System.out.println(Math.PI * 8*8);
System.out.println((Math.PI * 19*19) + " eshte syprina per rrezen 19");
}
}

(Vorojfjo: Math.PI oshfo omrI I Jnvn-s or konsfnnfon mnfomnfIkoro, II.)

PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
59
IorgjIgjo:

/** Syprinat2 i afishon syprinat e tre rratheve */
public class Syprinat2
{ public static void main(String[] args)
{ Formula f = new Formula();
System.out.println("Per rrezen 4, syprina = " + f.syprinaE(4));
System.out.println(f.syprinaE(8));
System.out.println(f.syprinaE(19) + " eshte syprina per rrezen 19");
}
}

public class Formula
{ public Formula() { }

public double syprinaE(int rrezja)
{ return (Math.PI * rrezja * rrezja); }
}


5.6 Metodat Private


1. Qo kInsn VizatuesIVezeveNeStek:

import java.awt.*;
import javax.swing.*;
/** VizatuesIVezeveNeStek i paraqet tri veze, te stekuara (nje mbi nje) */
public class VizatuesIVezeveNeStek extends JPanel
{ private int gjeresia_e_kornizes;
private int lartesia_e_kornizes;
// madhesite (gjeresite) e tri vezeve te stekuara:
private int madhesia_e_vezes1;
private int madhesia_e_vezes2;
private int madhesia_e_vezes3;

/** Konstruktori VizatuesIVezeveNeStek i stekon tri veze 3-me-2 ne dritare
* @param gjeresia - gjeresia e panelit
* @param lartesia - lartesia e panelit
* @param madhesia1 - gjeresia e vezes se poshtme
* @param madhesia2 - gjeresia e vezes se mesme
* @param madhesia3 - gjeresia e vezes se siperme */
public VizatuesIVezeveNeStek(int gjeresia, int lartesia,
int madhesia1, int madhesia2, int madhesia3)
{ gjeresia_e_kornizes = gjeresia;
lartesia_e_kornizes = lartesia;
madhesia_e_vezes1 = madhesia1;
madhesia_e_vezes2 = madhesia2;
madhesia_e_vezes3 = madhesia3;
JFrame korniza_ime = new JFrame();
korniza_ime.getContentPane().add(this);
korniza_ime.setTitle("VizatuesIVezeveNeStek");
korniza_ime.setSize(gjeresia_e_kornizes, lartesia_e_kornizes);
korniza_ime.setVisible(true);
}

PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
60
/** paintComponent e mbush dritaren me vezet
* @param g - penda grafike */
public void paintComponent(Graphics g)
{ g.setColor(Color.yellow);
g.fillRect(0, 0, gjeresia_e_kornizes, lartesia_e_kornizes); // prapavija
// leshoje vezen e pare ne fund te kornizes:
int veza1_lart = vizatojeNjeVeze(lartesia_e_kornizes,
madhesia_e_vezes1, g);
// steko dy vezet e mbetura mbi te:
int veza2_lart = vizatojeNjeVeze(veza1_lart,
madhesia_e_vezes2, g);
int veza3_lart = vizatojeNjeVeze(veza2_lart,
madhesia_e_vezes3, g);
}

/** vizatojeNjeVeze e vizaton nje veze ne proporcion 3-me-2
* (lartesia e vezes eshte sa dy-te-tretat e lartesise se saj)
* @param fundi - pozita e fundit te vezes
* @param gjeresia - gjeresia e vezes
* @param penda - penda grafike qe do ta vizatoje vezen
* @return y-poziten e skajit te siperm te vezes se vizatuar. */
private int vizatojeNjeVeze(int fundi, int gjeresia, Graphics penda)
{ int lartesia = (2 * gjeresia) / 3;
int skaji_lart = fundi - lartesia;
int skaji_majtas = (gjeresia_e_kornizes - gjeresia) / 2;
penda.setColor(Color.pink);
penda.fillOval(skaji_majtas, skaji_lart, gjeresia, lartesia);
penda.setColor(Color.black);
penda.drawOval(skaji_majtas, skaji_lart, gjeresia, lartesia);
return skaji_lart;
}

/** Testoje dritaren: */
public static void main(String[] args)
{ int gjeresia_totale = 300;
int lartesia_totale = 200;
new VizatuesIVezeveNeStek(gjeresia_totale, lartesia_totale, 50, 90, 140);
}
}

Shkrunjo njo nIIkncIon fosfuos qo I konsfrukfon kofo vnrIncIono fo kInsos
VizatuesIVezeveNeStek

n) new VizatuesIVezeveNeStek(300, 200, 30, 0, 500);
b) new VizatuesIVezeveNeStek(300, 200, 30, -10, 30);
c) new VizatuesIVezeveNeStek(300, 200, -300, 300, 30);

Mund fo fo dukof o dobIshmo fn mnksImIzosh drIfnron or f'I nro dIsn rozuIfnfo.

IorgjIgjo:
n)
public class TestoVezetNeStek1
{ public static void main(String[] args)
{ new VizatuesIVezeveNeStek(300, 200,
30, 0, 500);
}
}
PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
6l
2. Shfojn mofodnf ubIIko caktoMadhesineEVezes1(int madhesia),
caktoMadhesineEVezes2(int madhesia),
dho caktoMadhesineEVezes3(int madhesia) kInsos VizatuesIVezeveNeStek.
nfyrIshf, socIIn mofodo o rIcnkfon mndhosIno o vozos orknfoso fo nrnqIfur dho o
rIvIznfon drIfnron. Tosfojo kInson o modIfIkunr mo kofo nIIkncIon:

import javax.swing.*;
public class StekoDisaVeze
{ public static void main(String[] args)
{ VizatuesIVezeveNeStek2 vizatuesi
= new VizatuesIVezeveNeStek2(300, 200, 0, 0, 0);
String s = JOptionPane.showInputDialog(
"Shkruaje madhesine e vezes se fundit:");
vizatuesi.caktoMadhesineEVezes1(new Integer(s).intValue());

s = JOptionPane.showInputDialog("Shkruaje madhesine e vezes se mesme:");
vizatuesi.caktoMadhesineEVezes2(new Integer(s).intValue());

s = JOptionPane.showInputDialog("Shkruaje madhesine e vezes se siperme:");
vizatuesi.caktoMadhesineEVezes3(new Integer(s).intValue());
}
}

IorgjIgjo: In o ndorrunr nsnjo joso fo kodIf fo kInsos VizatuesIVezeveNeStek, shfojI
kofo mofodn:

/** caktoMadhesineEVezes1 e cakton madhesine e vezes se poshtme
* @param madhesia - madhesia (gjeresia) e vezes */
public void caktoMadhesineEVezes1(int madhesia)
{ madhesia_e_vezes1 = madhesia; repaint(); }

public void caktoMadhesineEVezes2(int madhesia)
{ madhesia_e_vezes2 = madhesia; repaint(); }

public void caktoMadhesineEVezes3(int madhesia)
{ madhesia_e_vezes3 = madhesia; repaint(); }


3. Qo kInsn Shkrues3, o cIIn oshfo modIfIkIm I kInsos Shkrues:

import java.awt.*; import javax.swing.*;
/** Shkrues3 e krijon nje dritare grafike qe e afishon nje fjali */
public class Shkrues3 extends JPanel
{ private int gjeresia; // gjeresia e kornizes
private int lartesia; // lartesia e kornizes
private String fjalia = ""; // e mban fjaline qe do te afishohet
private int x_pozita = 50; // x-pozita e fjalise
private int y_pozita = 80; // y-pozita e fjalise

/** Konstruktori Shkrues3 e konstrukton Panelin
* @param gj - gjeresia e dritares
* @param l - lartesia e dritares */
public Shkrues3(int gj, int l)
{ ... si te klasa Shkrues ...}

PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
62
/** paintComponent e vizaton panelin
* @param g - ''penda grafike'' qe i vizaton elementet */
public void paintComponent(Graphics g)
{ ndertoKufirin(g);
g.setColor(Color.red);
g.drawString(fjalia, x_pozita, y_pozita);
}

/** ndertoKufirin e nderton kufirin e kornizes.
* @param penda - penda grafike e perdorur per ta ngjyrosur kufirin */
private void ndertoKufirin(Graphics penda)
{ penda.setColor(Color.blue);
// ngjyrose krejt dritaren me te kalter:
penda.fillRect(0, 0, gjeresia, lartesia);
int madhesia_e_kufirit = 20;
int gjeresia_e_drejtkendeshit_qendror
= gjeresia - (2 * madhesia_e_kufirit);
int lartesia_e_drejtkendeshit_qendror
= lartesia - (2 * madhesia_e_kufirit);
penda.setColor(Color.white);
// vizatoje drejtkendeshin qendror te bardhe:
penda.fillRect(madhesia_e_kufirit, madhesia_e_kufirit,
gjeresia_e_drejtkendeshit_qendror,
lartesia_e_drejtkendeshit_qendror);
}

/** shkruajeFjaline e afishon nje string te ri ne dritare
* @param s - fjalia qe do te afishohet */
public void shkruajeFjaline(String s)
{ ... si te klasa Shkrues ... }

/** vendoseFjaline e riafishon fjaline ekzistuese ne pozite te re
* @param x_i_ri - pozita e re filluese horizontale
* @param y_i_ri - pozita e re filluese vertikale */
public void vendoseFjaline(int x_i_ri, int y_i_ri)
{ ... }

/** main per testim */
public static void main(String[] args)
{ Shkrues3 shkruesi = new Shkrues3(300, 200);
shkruesi.shkruajeFjaline("Sa kornize e bukur!");
}
}

ModIfIkojo mofodon ngjyrosKufirin nshfu qo fn vIznfojo njo rrofh fo mbushur fo
bnrdho, mo dInmofor sn InrfosIn o drIfnros, no qondor ornrn rnnvIjos so vordho.

IorgjIgjo.

private void ndertoKufirin(Graphics penda)
{ penda.setColor(Color.yellow);
// ngjyrose krejt dritaren me te verdhe:
penda.fillRect(0, 0, gjeresia, lartesia);
int diametri = lartesia;
penda.setColor(Color.white);
// vizatoje rrethin qendror te bardhe:
penda.fillOval(gjeresia/2 - diametri/2, 0, diametri, diametri);
}
PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
63
4. Kjo kInso mund fo orfIfojo ngn njo mofodo rIvnfo; fufo nfo mofodo.

import java.awt.*;
import javax.swing.*;
/** Rrathet i vizaton tre rrathe koncentrike (bashkeqendrore) */
public class Rrathet extends JPanel
{ public Rrathet()
{ JFrame korniza_ime = new JFrame();
korniza_ime.getContentPane().add(this);
korniza_ime.setTitle("TekstShkrues");
korniza_ime.setSize(200, 200);
korniza_ime.setVisible(true);
}

public void paintComponent(Graphics g)
{ int x_poz = 100; // x-pozita e qendres se rrethit
int y_poz = 100; // y-pozita e qendres se rrethit
int diametri = 60; // diametri i rrethit qe vizatohet
g.setColor(Color.black);
int rrezja = diametri / 2;
g.drawOval(x_poz - rrezja, y_poz - rrezja, diametri, diametri);
diametri = diametri + 20;
rrezja = diametri / 2;
g.drawOval(x_poz - rrezja, y_poz - rrezja, diametri, diametri);
diametri = diametri + 20;
rrezja = diametri / 2;
g.drawOval(x_poz - rrezja, y_poz - rrezja, diametri, diametri);
}
}

PRINCIPE T PROGRAMIMIT N JAVA V STRUKTURA E KOMPONENTEVE...
64
IorgjIgjo:

import java.awt.*;
import javax.swing.*;
/** Rrathet2 i vizaton tre rrathe koncentrike (bashkeqendrore) */
public class Rrathet2 extends JPanel
{ private int diametri = 60; // diametri i rrethit me te madh
int x_poz = 100; // x-pozita e qendres se rrethit
int y_poz = 100; // y-pozita e qendres se rrethit

public Rrathet2()
{ JFrame korniza_ime = new JFrame();
korniza_ime.getContentPane().add(this);
korniza_ime.setTitle("TekstShkrues");
korniza_ime.setSize(200, 200);
korniza_ime.setVisible(true);
}

public void paintComponent(Graphics g)
{ g.setColor(Color.black);
vizatoRrethin(diametri, g);
vizatoRrethin(diametri / 2, g);
vizatoRrethin(diametri / 4, g);
}

public void vizatoRrethin(int d, Graphics g)
{ int rrezja = d / 2;
g.drawOval(x_poz - rrezja, y_poz - rrezja, d, d);
}

/** main - per testim */
public static void main(String[] args)
{ new Rrathet2(); }
}
PRINCIPE T PROGRAMIMIT N JAVA VI STRUKTURA E KONTROLLIT...
65

VI Struktura e Kontrollit: Urdhrat Kushtzues
dhe Arkitektura e Softuerit


(6.1 Rrjedha e Kontrollit dhe Struktura e Kontrollit)


6.2 Struktura Kushtzuese e Kontrollit


1. kn do fo nfIshojno kofn shombuj

n) double d = 4.14;
int i = 3;
if ( i == d )
{ System.out.println("Baraz"); }
else { i = (int)d; }
if ( i != 3 )
{ System.out.println("Jo baraz"); }

b) public static void main(String[] args)
{ System.out.println( f(2, 3) );
int i = 2;
System.out.println( f(i+1, i) );
}

private static String f(int x, int y)
{ String prgjigjja;
if ( x <= y )
{ prgjigjja = "m i vogl"; }
else { prgjigjja = "jo m i vogl"; }
return prgjigjja;
}

Prgjigje:
n) Jo baraz
b) m i vogl
jo m i vogl


2. To fhomI so ndryshorjn x oshfo InIcInIIzunr sI int x = 1. Ior socIIIn ngn urdhornf
vIjuos, gjojI gnbImof sInfnksoro qo do f'I dofokfojo Jnvn-komnjIorI.
(oso jonI fo nsIgurfo or gnbImof, shkrunnI urdhornf no njo rogrnm fosfuos dho
rovonI f'I komnjIonI.)

n) if ( x ) { } else { x = 2; }
b) if x>0 { x = 2 }
c) if ( x = 0 ) { x = 2; }; else {}
PRINCIPE T PROGRAMIMIT N JAVA VI STRUKTURA E KONTROLLIT...
66
IorgjIgjo:

n) TosfI I urdhorIf kushfozuos duhof fo jofo I fIIf boolean, or x o kn fIIn int.
b) Iorrofh shrohjos x>0 korkohon kIInnf. Ionshfu, x = 2 duhof fo orfundojo mo
Ikorosjo.
c) Shrohjn x = 0 nuk oshfo korrokfo - do fo duhoj fo shkruhof x == 0.
Ionshfu, Ikorosjn nrn fjnIos kyo else duhof fo hIqof.


3. IordorI urdhornf kushfozuos or f'I shkrunr frunf o kofyro mofodnvo:

n) /** afishoift e afishon se a sht argumenti i vet ift apo tek:
* Afishon "IFT" kur argumenti sht ift.
* Afishon "TEK" kur argumenti sht tek.
* @param a - argumenti */
public void afishoift(int a)

b) /** minus e zbret argumentin e vet t dyt nga i pari,
* duke u siguruar q rezultati sht jonegativ
* @param arg1 - argumenti i par, duhet t jet jonegativ
* @param arg2 - argumenti i dyt
* @return (kthen) (arg1 - arg2), nse arg1 >= arg2;
* return (kthen) -1, nse arg1 sht negativ ose nse arg2 > arg1 */
public int minus(int arg1, int arg2)

(!dhozIm: vondoso njo urdhor kushfozuos brondn njo kushfozuosI.)

c) /** mod e bn pjestimin e plot t argumentve t vet
* @param arg1 - i pjestueshmi
* @param arg2 - pjestuesi
* @return (arg1 / arg2), duke u siguruar q arg2 sht jozero;
* return 0 dhe afisho nj porosi t gabimit, nse arg2 == 0 */
public int mod(int arg1, int arg2)

Prgjigje:

n)
public void afishoift(int a)
{ if ( (a % 2) == 0 ) // a eshte cift?
{ System.out.println("IFT");
else // prndryshe, sht tek
{ System.out.println("TEK");
}

b)
public int minus(int arg1, int arg2)
{ int prgjigjja = -1;
if (arg1 >= 0)
{ if (arg1 >= arg2)
{ prgjigjja = arg1 - arg2; }
}
return prgjigjja;
}

PRINCIPE T PROGRAMIMIT N JAVA VI STRUKTURA E KONTROLLIT...
6?

6.2.1 Urdhrat Kushtzues t Vendosur Prbrenda


1. kn do fo nfIshojo ky shombuII

int i = 1;
if ( i < 0 )
{ System.out.println("a"); }
else { System.out.println("b");
if ( i == 1 )
{ System.out.println("c"); }
System.out.println("d");
}
System.out.println("e");

IorgjIgjo:

b
c
d
e


2. Iordoro fIguron vIjuoso or f'I snjunr rnsfof o fosfImIf nshfu qo socIIn rrjodho o
konfroIIIf noor PrimtoPrsri okzokufohof ngn fo nkfon njo rnsf I fosfImIf. Tosfojo
nIIkncIonIn fond mo rnsfof fun fo fosfImIf.



IorgjIgjo: jo bnshkosI o fosfovo do fo mund fo Ishfo: -2 0, 2 -2, 2 l02, dho 2 2.


PRINCIPE T PROGRAMIMIT N JAVA VI STRUKTURA E KONTROLLIT...
68
3. n) Shkrunjo kofo mofodo; ordorI kushfozuosIf o fufur orbrondn

/** konvertoNSekonda e konverton (prkthen) nj sasi t orve, minutave
* n koh ekuivalente n sekonda.
* @param ort - ort, numr i plot jonegativ
* @param minutat - minutat, numr i plot n rangun 0..59
* @return (kthen) kohn n sekonda;
* nse ka argumente t kqija, kthen -1 */
public int konvertoNSekonda(int ort, int minutat)

b) Insfnj, rIshkrunjo mofodon o monrshmo po kushfozuos fo fufur orbrondn -
ordoro njo ndryshoro boolean or fn mbnjfur mond sfnfusIn o konvorfImIf.

IorgjIgjo:

n)
import javax.swing.*;
...
public int konvertoNSekonda(int ort, int minutat)
{ int sekondat = -1;
if ( ort < 0 )
{ JOptionPane.showMessageDialog(null,
"gabim: or negative: " + ort);
else { if ( minutat < 0 )
{ JOptionPane.showMessageDialog(null,
"gabim: minuta negative: " + minutat);
}
else { if ( minutat > 59 )
{ JOptionPane.showMessageDialog(null,
"gabim: minutat: " + minutat);
}
else { sekondat = ((ort*60) + minutat) * 60; }
}
}
return sekondat;
}

PRINCIPE T PROGRAMIMIT N JAVA VI STRUKTURA E KONTROLLIT...
69
b)
import javax.swing.*;
...
public int konvertoNSekonda2(int ort, int minutat)
{ boolean mir = true; // e mban mend a jan t dhnat hyrse t pranueshme
int sekondat = -1;
if ( ort < 0 )
{ JOptionPane.showMessageDialog(null,
"gabim: or negative: " + ort);
mir = false;
}
if ( minutat < 0 )
{ JOptionPane.showMessageDialog(null,
"gabim: minuta negative: " + minutat);
mir = false;
}
if ( minutat > 59 )
{ JOptionPane.showMessageDialog(null,
"gabim: minutat: " + minutat);
mir = false;
}
if ( mir )
{ sekondat = ((ort * 60) + minutat) * 60; }
return sekondat;
}


4. AIIkncIonof no IIgurnf 2 dho 4 (no IIbor) nuk sIIIon snkfosIshf njojfo. Cjojo njo rnsf
fosfuos qo o domonsfron kofo, dho shjogo so fnro ndorrImosh duhof f'I bohon IIguros
4 nshfu qo fo sIIIof snkfosIshf njojfo sI IIgurn 2 mo fo gjIfhn hyrjof o mundshmo.

IorgjIgjo:
Shqyrfojmo nrgumonfof, -2 nbc; IIgurn 2 o nrnqof njo gnbIm mo nrgumonfIn o nro
dho nuk bon mo IIognrIfjo; IIgurn 4 o gjunn njo orjnshfIm (oxcofIon) dho orfundon
monjohoro.
Ior fn boro IIguron 4 fo sIIIof no monyro IdonfIko mo IIguron 2, urdhorI I frofo I
mofodos main duhof fo ndorrohof, fo fhomI, int centt = -1, dho ndnrjn o vIoros,
centt = new Integer(args[1]).intValue(), duhof fo zhvondosof brondn krnhuf-fhon
fo urdhorIf fo dyfo kushfozuos.



(6.2.2 Problemet Sintaksore me Kushtzues)
PRINCIPE T PROGRAMIMIT N JAVA VI STRUKTURA E KONTROLLIT...
?0

6.3 Veprimet Relacionale (Operatort Logjik)

1. !IognrIfI orgjIgjof or socIIon ngn shrohjof vIjuoso. Suozo so int x = 2 dho
double y = 3.5 .

n) (x > 1) && ((2*x) <= y)
b) !(x == 1)
c) (x >= 0 && x <= 1) || (1 <= y)
) x > 0 && x < 10 && (y == 3)

IorgjIgjo:
n) (x > 1) && ((2*x) <= y)
=> (2 > 1) && ((2*x) <= y)
=> true && ((2*x) <= y)
=> true && ((2*2) <= y)
=> true && (4 <= y)
=> true && (4 <= 3.5)
=> true && false
=> false

b) !(x == 1) => !(2 == 1) => !false => true

c) (x >= 0 && x <= 1) || (1 <= y)
=> (2 >= 0 && x <= 1) || (1 <= y)
=> (true && x <= 1) || (1 <= y)
=> (true && 2 <= 1) || (1 <= y)
=> (true && false) || (1 <= y)
=> false || (1 <= y)
=> false || (1 <= 3.5)
=> false || true
=> true

) x > 0 && x < 10 && (y == 3)
=> 2 > 0 && x < 10 && (y == 3)
=> true && x < 10 && (y == 3)
=> true && 2 < 10 && (y == 3)
=> true && true && (3.5 == 3)
=> true && false
=> false


2. oso oshfo dhono kjo mofodo,

public int minus(int arg1, int arg2)
{ int prgjigjja;
if ( arg1 < 0 || arg2 > arg1 )
{ prgjigjja = -1; }
else { prgjigjja = arg1 - arg2; }
return prgjigjja;
}

fnro rozuIfnfo kfhohon ngn minus(3, 2) minus(2, 3) minus(-4, -5) minus(4, -5)
PRINCIPE T PROGRAMIMIT N JAVA VI STRUKTURA E KONTROLLIT...
?l
IorgjIgjo:
minus(3, 2) kfhon 1
minus(2, 3) kfhon -1
minus(-4, -5) kfhon -1
minus(4, -5) kfhon 9


3. Ior socIIon ngn kofo mofodn, shkrunjo njo fru qo ormbnn vofom njo urdhor
kushfozuos. (TosfI I kushfozuosIf I ordor vorImof roIncIonnIo.)

n)
/** shtIThjeshtIVogl tregon se a sht argumenti numr i thjesht
* m i vogl se 10
* @param i - argumenti
* @return (kthen) true, nse argumenti sht nr. i thjesht, < 10 ;
* return (kthen) false, prndryshe. */
public boolean shtIThjeshtIVogl(int i)

b)
/** pjesto e bn pjestimin e dy argumenteve t veta
* @param x - vler jonegative
* @param y - vler jo e barabart me zero
* @return (kthen) (x / y), nse vlejn kushtet e msiprme pr x e y;
* return (kthen) 0, prndryshe. */
public double pjesto(double x, double y)


Prgjigje:

n)
public boolean shtIThjeshtIVogl(int i)
{ boolean prgjigjja;
if ( i == 2 || i == 3 || i == 5 || i == 7 )
{ prgjigjja = true; }
else { prgjigjja = false; }
return prgjigjja;
}

Vorojfjo: fruI I mofodos mund fo zovondosohof mo kofo urdhor fo vofom:

return ( i == 2 || i == 3 || i == 5 || i == 7 );

b)
public double pjesto(double x, double y)
{ double prgjigjja = 0;
if ( x >= 0 && y != 0 )
{ prgjigjja = x / y; }
return prgjigjja;
}

PRINCIPE T PROGRAMIMIT N JAVA VI STRUKTURA E KONTROLLIT...
?2

6.4 Zbatimi i Urdhrave Kushtzues


1. Tosfojo ora12she mo socIIon ngn kofo koho: 9,45; 23,59; 0,0l; 50,50; -l2,-l2; 24,0.

IorgjIgjo: Tn zomo so ora12she gjondof no kInson KonvertuesIKohs:

public class TestoKohn
{ public static void main(String[] args)
{ KonvertuesIKohs k = new KonvertuesIKohs();
String koha = k.ora12she(9, 45);
System.out.println(koha);
// N t vrtet, sht m thjesht t testohet secili rast
// me nga nj urdhr:
System.out.println(k.ora12she(23, 59));
System.out.println(k.ora12she(0, 01));
System.out.println(k.ora12she(50, 50));
System.out.println(k.ora12she(-12, -12));
System.out.println(k.ora12she(24, 0));
}
}


2. Iordoro ora12she no njo nIIkncIon qo o morr kohon momonfnIo (duko o ordorur njo
objokf GregorianCalendar), o konvorfon no sfrIng (duko o ordorur ora12she), dho o
nfIshon sfrIngun no drIfnron komnnduoso.

IorgjIgjo:
Tn zomo so ora12she gjondof no kInson KonvertuesIKohs:

import java.util.*;
public class TestoKohn2
{ public static void main(String[] args)
{ KonvertuesIKohs k = new KonvertuesIKohs();
GregorianCalendar koha = new GregorianCalendar();
String s =
k.ora12she(koha.get(Calendar.HOUR_OF_DAY),
koha.get(Calendar.MINUTE));
System.out.println(s);
}
}

PRINCIPE T PROGRAMIMIT N JAVA VI STRUKTURA E KONTROLLIT...
?3
3. Shkrunjo njo mofodo qo o Iofoson kofo socIfIkIm:

/** prkthejeNotn i konverton poenat numerik n not-shkronj.
* @param poenat - poena numerik q duhet t jen n rangun 0..100
* @return (kthen) nj not-shkronj bazuar n kt shkall:
* 100..90 = "A"; 89-80 = "B"; 79..70 = "C"; 69..60 = "D"; 59..0 = "F" */
public String prkthejeNotn(int poenat)

Iordoro mofodon no njo nIIkncIon qo o Iuf ordoruosIn or f'I shkrunr oonnf
numorIko dho o nfIshon nofon-shkronjo orknfoso.

IorgjIgjo:

public String prkthejeNotn(int poenat)
{ String nota = "F";
if ( poenat >= 90 )
{ nota = "A"; }
else { if ( poenat >= 80 )
{ nota = "B"; }
else { if ( poenat >= 70 )
{ nota = "C"; }
else { if ( poenat >= 60 )
{ nota = "D"; }
// prndryshe, nota mbetet "F"
}
}
}
return nota;
}


4. IormIrosojo nIIkncIonIn PrimtoPrsri nshfu qo
n) orgjIgjjof roj zoro monodhnsh nuk nfIshohon. Ior shombuII, f'Imnf or 0 Iuro
o ? confo duhof fo nfIshojno vofom

pesa = 1
njshe = 2

b) noso novojIfof vofom njo IIoj I monodhos or fo boro f'Imn, nfohoro ordorof omor
njojos (dho jo shumos) or omorfIm, .sh. or 0 Iuro o 9l confo, nIIkncIonI nfIshon

1 gjysm
2 njzeta
1 njsh


(6.5 Ndryshimi i rrjedhs s kontrollit)

(6.6 Urdhri Switch)

(6.7 Komponentet Model dhe Kontrollues)

PRINCIPE T PROGRAMIMIT N JAVA VI STRUKTURA E KONTROLLIT...
?4

6.8 Menaxher Kontosh t Banks (Case Study)

1. Qo dIsn ushfrImo fo vogIn IIdhur mo fosfImIn:

n) Shkrunjo njo fosfuos-konfroIIuos qo o krIjon njo objokf LlogariEBanks,
I doozIfon l000, I forhoq ?00, dho yof or bnInnsIn. AfIshojo bnInnsIn no drIfnron
komnnduoso.

b) Shkrunjo njo fosfuos-konfroIIuos qo o krIjon njo objokf LexuesIBanks dho korkon
ngn objokfI fn Ioxojo njo komnndo. KonfroIIuosI o kojon kodIn o komnndos dho
snsIno no drIfnron komnnduoso.

c) Zgjorojo fosfIn qo o boro no LlogariEBanks or fn orfshIro odho njo objokf
ShkruesIBanks. Iordoro mofodon tregoTransaksionin fo objokfIf ShkruesIBanks
or f'I nfIshunr rozuIfnfof o doozIfIf dho forhoqjos.

) IorfundImIshf, shkrunjo njo fosfuos qo o ordor njo objokf LexuesIBanks or fn
Ioxunr njo komnndo fo doozIfImIf, o vondos doozIfIn no njo objokf
LlogariEBanks, dho I frogon njo objokfI ShkruesIBanks qo fn nfIshojo rozuIfnfIn.

IorgjIgjo:

n)
public class TestoLlogarine
{ public static void main(String[] args)
{ LlogariEBankes llog = new LlogariEBankes(0);
llog.depozito(1000);
boolean mire = llog.terhiqi(700);
System.out.println("balansi = " + llog.merreBalansin());
}
}

b)
public class TestoLexuesin
{ public static void main(String[] args)
{ LexuesIBankes l = new LexuesIBankes();
char c = l.lexoKomanden("Shkruaje nje komande: ");
System.out.println("Komanda ishte: " + c);
int i = l.lexojeSasine();
System.out.println("Sasia ishte: " + i);
}
}

PRINCIPE T PROGRAMIMIT N JAVA VI STRUKTURA E KONTROLLIT...
?5
c)
import javax.swing.*;
public class TestoLlogarineShkruesin
{ public static void main(String[] args)
{ LlogariEBankes llog = new LlogariEBankes(0);
ShkruesIBankes sh = new ShkruesIBankes("Shkruesi", llog);
llog.depozito(1000);
sh.tregojeTransaksionin("depozit", 1000);
JOptionPane.showMessageDialog(null, "Shtypni OK");
boolean mire = llog.terhiqi(700);
sh.tregojeTransaksionin("terheqje", 700);
}
}

)
public class TestoKrejt
{ public static void main(String[] args)
{ LlogariEBankes llog = new LlogariEBankes(0);
LexuesIBankes l = new LexuesIBankes();
ShkruesIBankes sh = new ShkruesIBankes("Shkruesi", llog);
String s = "" + l.lexoKomanden("Shkruani dicka:");
int i = l.lexojeSasine();
llog.depozito(i);
sh.tregoTransaksionin(s, i);
}
}


2. Shfojn kofo mofodo kInsos LlogariEBanks:

/** depozitoInteresin e rrit llogarin me nj pages t interesit,
* t llogaritur si (shkalla_e_interesit * balansi_momental)
* @param shkalla - shkalla e interesit, vler ndrmjet 0.0 dhe 1.0
* @return (kthen) sasin e depozituar n llogari;
* nse depoziti nuk mund t kryhetm kthen 0 */
public int depozitoInteresin(double shkalla)

dho shfojo komnndon hyroso, I dd.d, qo o Iojon ordoruosIn qo fn rrIso bnInnsIn
momonfnI or dd.d.

IorgjIgjo: Mofodn o ro I shfohof modoIIf:

public class LlogariEBankes
{ ...
public int depozitoInteresin(double shkalla)
{ int sasia = 0;
if ( shkalla < 0.0 || shkalla > 1.0 )
{ System.out.println(
"Gabim te LlogariEBankes: shkalle e parregullt e interesit");
}
else { sasia = (int)(shkalla * balansi);
depozito(sasia);
}
return sasia;
}
}
PRINCIPE T PROGRAMIMIT N JAVA VI STRUKTURA E KONTROLLIT...
?6
KonfroIIuosI rroguIIohof qo fo Ioxojo:

public class KontrolluesILlogarise
{ ...
public void perpunoTransaksionet()
{ ...
else if ( komanda.equals("I") )
{ double shkalla = lexuesi.lexoShkallenEInteresit();
sasia = llogaria.depozitoInteresin(shkalla);
shkruesi.tregoTransaksionin("Depozit i interesit: ", sasia);
}
...
}
}

ho kjo o korkon njo mofodo fo ro, lexoShkallnEInteresit, no nmjon hyroso:

public class LexuesIBankes
{ ...
/** lexoShkallenEInteresit e lexon nje shkalle te interesit perqindje
* @return shkallen, te konvertuar ne thyese (numer me presje) */
public double lexoShkallenEInteresit()
{ ... } // programoje kt t duket ngjashm me lexoSasin
}


3. KonsfrukforI or kInson LlogariEBanks o Iojon njo IIognrI fo ro fo bnnkos fo fIIIojo
mo vIoro jonognfIvo. dryshojo (modIfIkojo) konfroIIuosIn, cInss MenaxherILlogaris,
nshfu qo no fIIIIm, o yof ordoruosIn or vIoron fIIIosfnro qo do fn vondoso no
IIognrIno o ro fo krIjunr.

PRINCIPE T PROGRAMIMIT N JAVA VI STRUKTURA E KONTROLLIT...
??

6.8.10 Objekte t Shumfishta nga e Njjta Klas

1. !Iunojo UdhheqsILlogaris2 nshfu qo mund f'I frnnsforojo fondof ngn IIognrIn o
nro no IIognrIno o dyfo. Komnndn o ro, >, o orcjoIIur ngn njo snsI, o forhoq snsIno ngn
IIognrIn o nro dho o doozIfon no IIognrIno o dyfo. Insfnj, shfojo komnndon, <, o cIIn I
frnnsforon nrnfo ngn IIognrIn o dyfo no fo nron.

IorgjIgjo:

public class KontrolluesILlogarise2
{ ...
public void perpunoTransaksionet()
{ ...
case '>':
{ int sasia = lexuesi.lexoSasine();
boolean mire = llogaria_primare.terhiqi(sasia);
if ( mire )
{ llogaria_sekondare.depozito(sasia);
shkruesi_primar.tregoTransaksionin("Transfer: Euro ", sasia);
shkruesi_sekondar.tregoTransaksionin("Depozit: Euro ", sasia);
}
else { shkruesi_primar.tregoTransaksionin("transferi jovalid", sasia);
break;
}
...
}
}

gjnshom shkruhof kodI odho or rnsfIn '<'.



(6.9 Testimi i Metodave dhe Klasave)


PRINCIPE T PROGRAMIMIT N JAVA SHTOJC: KSHILLA PRAKTIKE...
?8

Shtojc: Kshilla Praktike pr Programim

(nrfIkuj orIgjInnIo ngn !Idvnn Iunjnku)



Emrtimi n Gjuhn Shqipe i Emrave n Kod

SHTI MI !IISI qo omorfImI I onfIfofovo fo rogrnmIf (ndryshorof, fushnf,
mofodnf, kInsof) fo bohof no monyro fo orshfnfshmo. Kjo o Iohfoson rogrnmImIn.
Ionshfu o Iohfoson odho IoxuoshmorIno o kodIf dho o rrIf qnrfosIno o fIj. oso
rogrnmI kn omrn fo orshfnfshom fo onfIfofovo, mo vono oshfo shumo Iohfo f'I
kfhohomI qo fn zgjorojmo o nvnnsojmo odho mo foj.
Io kn, no fo vorfofo, domofhono f'I omorojmo onfIfofof no monyro fo orshfnfshmo
So nrI o ormondIm njo sfnndnrd fo znkonshom fo omorfImIf qo ordorof no
IIfornfuron o rogrnmImIf fo mIro. Ky sfnndnrd mundoson qo f'I dnIIojmo fnro Iohfo no
kod ndryshorof, mofodnf (funksIonof) dho kInsof ndormjof vofo. o nk fjnIo, sIns
kofIj sfnndnrdI:

kInsof omorfohon nshfu qo fIIIojno mo shkronjo fo mndho dho vnzhdojno mo
shkronjn fo vogIn. oso omrI I kInsos orbohof roj mo shumo so njo fjnIo,
nfohoro fjnIn dnIIohof nshfu qo fIIIohof mo shkronjo fo mndho. I.sh.

Katror, TopLevizes, ModelIKartes, LlogariEBankes ofj.

mofodnf, funksIonof omorfohon nshfu qo fIIIojno mo shkronjo fo vogoI dho
vnzhdojno onshfu mo shkronjo fo vogoI. oso omrI kn mo shumo so njo fjnIo,
nfohoro fjnIn fjofor dnIIohof duko fIIIunr mo shkronjo fo mndho. ho, nnfyrIshf,
ns omrIf vIjno kIInnf mo nrgumonfof orknfoso (noso kn). I.sh.

depozito(), afishoBalansin(), vizatojeTopin(),
gjejeHipotenuzen(kateta_1, kateta_2)

IorjnshfIm roj kosnj rroguIIo bon vofom konsfrukforI I kInsos I cIII, sI o dImo,
o kn omrIn o njojfo mo fo kInsos so vof, rn nI fIIIon mo shkronjo fo mndho. I.sh.

Katror(brinja), TopLevizes(x, y, rrezja), ModelIKartes(ngjyra),
LlogariEBankes(200)

ndryshorof no rogrnm fIIIojno mo shkronjo fo vogoI dho shkruhon forosIshf mo
shkronjn fo vogIn. oso omrI orbohof roj dy oso mo shumo fjnIosh, dIsfnncn
mIdIs fjnIovo shkruhof mo 'vIzo oshfo', dmfh. mo '_'. I.sh.

brinja_a, siperfaqja_e_katrorit, gjeresia, lartesia

I
PRINCIPE T PROGRAMIMIT N JAVA SHTOJC: KSHILLA PRAKTIKE...
?9
o kodIn qo oshfo I shkrunr sIns kofyro rroguIInvo, drojfordrojf mund fo
orcnkfohof so kn oshfo 'fIInn omrI':
oso fIIIon mo shkronjo fo mndho dho nuk kn kIInn, nfohoro oshfo kInso.
oso fIIIon mo shkronjo fo mndho or kn kIInn, nfohoro oshfo konsfrukfor.
oso fIIIon mo shkronjo fo vogoI dho kn kIInn, oshfo mofodo, funksIon. Kofu
ndIhmon odho njo so kur omrI orbohof dy n mo foor fjnIovo, fjnIn fjofor fIIIon
mo fo mndho.
oso omrI oshfo krojf mo shkronjn fo vogIn dho dIsfnncnf ovonfunIo ndormjof
fjnIovo jnno '_', nfohoro kjo oshfo ndryshoro, vnrInboI, oso fusho.

SI shombuII or IIusfrImIn o kofyro rroguIInvo, do fn shqyrfojmo rogrnmIn vIjuos:

import java.awt.*;
import javax.swing.*;
/** Vizatim i vizaton tri veze nje-mbi-nje */
public class Vizatim extends JPanel
{ int gjeresia = 200;
int lartesia = gjeresia * 2 / 3;

/** Konstruktori Vizatim e konstrukton objektin */
public Vizatim()
{ JFrame korniza_ime = new JFrame();
korniza_ime.getContentPane().add(this);
korniza_ime.setTitle("Vizatimi (c)");
korniza_ime.setSize(gjeresia, lartesia);
korniza_ime.setVisible(true);
}

/** paintComponent e kryen vizatimin: 3 veze nje mbi nje
* @param g - penda grafike */
public void paintComponent(Graphics g)
{ g.setColor(Color.white);
g.fillRect(0, 0, gjeresia, lartesia);
g.setColor(Color.yellow);
int qh = gjeresia / 2; // qendra horizontale
int qv = lartesia / 2; // qendra vertikale
int r1 = gjeresia / 10; // gjysme-diametri i pare (horizontal)
int r2 = lartesia / 10;// gjysme-diametri i dyte (vertikal)
g.fillOval(qh - r1, qv + r2, 2*r1, 2*r2);
g.fillOval(qh - r1, qv - r2, 2*r1, 2*r2);
g.fillOval(qh - r1, qv - 3*r2, 2*r1, 2*r2);
}

/** main per ta konstruktuar objektin */
public static void main(String[] args)
{ new Vizatim(); }
}

Kofu, kInso oshfo Vizatim, mo konsfrukforIn o vof Vizatim(), nsfnj JFrame dho
Graphics, qo jnno orkufIzunr no kInsnf o Imorfunrn (mo urdhornf import). Vorojmo so
kInsn dnIIohof ngn konsfrukforI I vof mo nfo so konsfrukforI I kn kIInnf, ndorsn kInsn
nuk I kn.
PRINCIPE T PROGRAMIMIT N JAVA SHTOJC: KSHILLA PRAKTIKE...
80
Mofodn jnno paintComponent(Graphics g), main(String[] args), getContentPane(),
add(Component this), setTitle(String titulli),
setSize(int gjeresia, int lartesia), setVisible(boolean duket),
nsfnj setColor(Color c), fillRect(int x1, int y1, int gjeresia, int lartesia)
dho fillOval(int x1, int y1, int gjeresia, int lartesia).
dorsn ndryshoro jnno: gjeresia, lartesia, korniza_ime, qh, qv, r1 dho r2.
Vorojmo so nuk komI novojo fn 'IodhIm kryof' shumo or fn kufunr so gjeresia oshfo
ndryshoro o jo, bIo fjnIn, mofodo no kInso. (Io fo Ishfo mofodo, do fo kIshfo kIInn:
gjeresia(), o fo Ishfo kInso do fo fIIIonfo mo shkronjo fo mndho: Gjeresi).

Disa Specifika t Gjuhs Shqipe Rreth Emrtimit

Cjuhof rogrnmuoso znkonIshf jnno dIznjnunr nshfu qo fo jofo o orshfnfshmo fo
shkruhof kod no gjuhon nngIozo. AngIIshfjn odho nshfu kn sfrukfuro fo fhjoshfo
grnmnfIkoro: nuk kn rnsn. ImrI znkonIshf o kn vofom njo frnjfo. Kjo gjo nuk ndodh no
gjuhon shqIo, ku omrI I kn oso rnsn. o shqI, omrI kn odho frnjfo - mund fo jofo I
shqunr: foI, oso I nshqunr: fo. (o nngIIshf frnjfn o shqunr ronIIzohof mo 'fho', or
omrI nuk oson ndryshIm.)
Kofu do fo jnIm dIsn koshIIIn rnkfIko so sI fo omorfohon onfIfofof no kod nshfu qo
kodI fo jofo I kufuoshom odho kur ordorIm omrn shqI or IdonfIfIknforo.


K!ust

KInsof omorfohon sI omrn no frnjfo fo nshqunr. I.sh.

Top, Letr, Vizatues, LlogariEBanks

IordorImI I kofIIIo I jo kufIm kodIf. I.sh. kodI

LlogariEBanks llogaria_ime;

kn kufIm dho Inforrofohof koshfu: llogaria_Imo oshfo LlogariEBanks.

Mo o nqnrfo do fo Ishfo,

LlogariaEBanks llogaria_ime;

Tnsh s'o kufohof qnrfo so cIIn oshfo IIognrIn (ndryshorjn), o cIIn oshfo kInsn (fII I
ndryshoros).

PRINCIPE T PROGRAMIMIT N JAVA SHTOJC: KSHILLA PRAKTIKE...
8l

Metodut

Mofodnf omorfohon sI foIjo no monyron urdhororo. I.sh.

llogariteRrogen(), vizatojeKubin(5),
shkruajeFjalin("Liza n botn e udirave"),
orgjIfhosIshf: kryejePunn(...)

Kjo rroguII oshfo o orshfnfshmo soso mofodnf, funksIonof nonkufojno vorIm,
nksIon qo duhof fn bojo komjuforI. IoIjn oshfo njo qo o orshkrunn vorImIn, ndorsn
monyrn urdhororo I orshfnfof nsnj so no o urdhorojmo komjuforIn fn kryojo njo
funksIon no mofodo.


NdvysLovet, IusLut

dryshorof, fushnf omorfohon sI omrn no frnjfo fo shqunr. I.sh.

gjatsia, gjersia, bilansi, ngjyra

Kofu frnjfn o shqunr oshfo mo o orshfnfshmo sosn frnjfn o nshqunr. I.sh. do fo Ishfo
o nIogjIkshmo fo shkrunjmo

gjatsi = 5;

o kofo monyro, kodI I shkrunr mo IdonfIfIknforo no gjuhon shqIo do fo Ishfo I
kufuoshom qo no shIkIm fo nro.

Shombuj fo koqInj fo ordorImIf fo omrnvo:

K!us: GubImI: SI duLet:
Rrethi (oshfo no frnjfo fo shqunr) Rreth
bilans (shkronjn o nro o vogoI) Bilans
Vizatoje (oshfo foIjo, duhof omor) Vizatues

Metodu:
llogaritjaERroges() (oshfo omor, duhof foIjo) llogariteRrogen()
gjeje_mesin() (dIsfnnco mo '_') gjejeMesin()

NdvysLove:
Rrezja (fIIIon mo fo mndho) rrezja
qendraERrethit (fjnIn fjofor fIIIon mo fo mndho) qendra_e_rrethit
ngjyr (oshfo no frnjfo fo nshqunr) ngjyra



PRINCIPE T PROGRAMIMIT N JAVA SHTOJC: KSHILLA PRAKTIKE...
82

Metodut stunduvde get dLe set

Shosh noor kodo novojIfof fo mIrrof vIorn o ndonjo fusho (fo dhono rIvnfo). Kjo no
kodof sfnndnrdo nngIIshf bohof mo mofodnf get. dorsn kur korkohof f'I jIof njo vIoro
ndonjo fusho, ordoron mofodnf set. I.sh.

getColor(), getBalance(), getSize()

ShqI kofo mofodn do fo omorfohoshIn:

merreNgjyren(), merreBalansin(), merreMadhesine()

gnnjohoro hnsIm odho no kosI frnjfn fo ngjnshmo:

colorOf(), nameOf(), numberOf()

fo cIInf shqI do fo mund fo shkruhoshIn sI:

ngjyraE(), emriI(), numriI()

Ior mofodnf set, ndoshfn fjnIn mo o orshfnfshmo shqI do fo Ishfo: cakto.
omofhono,

setSize(...), setName(), setBalanse()

no shqI do fo IshIn:

caktoMadhesine(...), caktoEmrin(...), caktoBalansin(...)


Jn njo shombuII I njo kInso I shkrunr sIns kofIj sIsfomI fo omorfImIf:

/** TopLevizes e modelon nje top qe leviz */
public class TopLevizes
{ private int x_poz; // x-pozita e qendres se topit
private int y_poz; // y-pozita e qendres se topit
private int rrezja; // rrezja e topit

private int x_shpejtesia = +5; // shpejtesia horizontale;
private int y_shpejtesia = +2; // shpejtesia vertikale;

private Kuti permbajtesi; // permbajtesi ku leviz topi

/** Konstruktori TopLevizes e konstrukton topin.
* @param x_fillues - qendra (hori.) e pozites filluese te topit
* @param y_fillues - qendra (vert.) e pozites filluese te topit
* @param r - rrezja e topit
* @param kutia - permbajtesi ne te cilin udheton topi */
PRINCIPE T PROGRAMIMIT N JAVA SHTOJC: KSHILLA PRAKTIKE...
83
public TopLevizes(int x_fillues, int y_fillues, int r, Kuti kutia)
{ x_poz = x_fillues;
y_poz = y_fillues;
rrezja = r;
permbajtesi = kutia;
}

/** xPozita e kthen poziten horizontale aktuale te topit */
public int xPozita()
{ return x_poz; }

/** yPozita e kthen poziten vertikale aktuale te topit */
public int yPozita()
{ return y_poz; }

/** rrezjaE e kthen rrezen e topit */
public int rrezjaE()
{ return rrezja; }

/** leviz e leviz topin
* @param njesi_kohe - sasia e kohes prejse eshte levizur topi
* heren e fundit */
public void leviz(int njesi_kohe)
{ x_poz = x_poz + (x_shpejtesia * njesi_kohe);
if ( permbajtesi.neKontaktHorizontal(x_poz) )
{ x_shpejtesia = -x_shpejtesia; } // ktheje drejtimin
// horizontal mbrapa
y_poz = y_poz + (y_shpejtesia * njesi_kohe);
if ( permbajtesi.neKontaktHorizontal(y_poz) )
{ y_shpejtesia = -y_shpejtesia; } // ktheje drejtimin
// vertikal mbrapa
}

public static void main(String[] args)
{ Kuti kutia = new Kuti(50); // me madhesi 50 me 50 (piksela)
TopLevizes topi_im = new TopLevizes(25, 25, 10, kutia);
// rrezja eshte 10 piksela
while ( true )
{ topi_im.leviz(1); // 1 njesi te kohes se kaluar
System.out.println("x = " + topi_im.xPozita()
+ "; y = " + topi_im.yPozita());
}
}
}

Vorojfjo: ShombuIII oshfo I IIdhur mo kInson Kuti.



PRINCIPE T PROGRAMIMIT N JAVA SHTOJC: KSHILLA PRAKTIKE...
84

Nivelet n Kod dhe Hierarkia

IrogrnmI I shkrunr mIro oshfo I Ioxuoshom no nfo mnso qo fo shIhof nIgorIfmI
drojfordrojf ngn kodI. Shkrunrjn o rogrnmovo fo bukurn, fo Ioxuoshmo, fo qnrfn dho
fo kufuoshmo oshfo nrf mo vofo no rogrnmIm. Kofu do fn rozonfojmo njo sIsfom fo
nIvoIIzImIf fo kodIf qo o bon nfo fo dukof mIro o qnrfo.
Ior f'I dnIIunr josof o rogrnmIf (kInsof, mofodnf, urdhornf) ndormjof vofo, kodI
orgnnIzohof no nIvoIo.
IvoII I nro oshfo nIvoII I kInsos. KInsof shkruhon no fIIIIm fo rroshfIf, n u fufur fnro
'brondn', dmfh. n u shfyro fnro djnfhfns:

/** TopLevizes e modelon nje top qe leviz */
public class TopLevizes
{

}


IvoII I dyfo, qo oshfo njo Tnb (oso dy knrnkforo) brondn, oshfo nIvoII I mofodnvo dho I
fushnvo fo kInsos (ndryshorovo gIobnIo fo kInsos):

/** TopLevizes e modelon nje top qe leviz */
public class TopLevizes
{ private int x_poz; // x-pozita e qendres se topit
private int y_poz; // y-pozita e qendres se topit
...
/** Konstruktori TopLevizes e konstrukton topin... */
public TopLevizes()
{

}

/** rrezjaE e kthen rrezen e topit */
public int rrezjaE()
{

}
}


PRINCIPE T PROGRAMIMIT N JAVA SHTOJC: KSHILLA PRAKTIKE...
85
IvoII I frofo oshfo odho njo Tnb (oso dy knrnkforo) djnfhfns. Ky oshfo nIvoII I
urdhornvo fo mofodnvo, dmfh. I frunvo fo mofodnvo:

/** TopLevizes e modelon nje top qe leviz */
public class TopLevizes
{ private int x_poz; // x-pozita e qendres se topit
private int y_poz; // y-pozita e qendres se topit
...
/** Konstruktori TopLevizes e konstrukton topin... */
public TopLevizes(int x_fillues, int y_fillues, int r, Kuti kutia)
{ x_poz = x_fillues;
y_poz = y_fillues;
rrezja = r;
permbajtesi = kutia;
}

/** rrezjaE e kthen rrezen e topit */
public int rrezjaE()
{ return rrezja; }
}

Qo njo grnfIkon qo o IIusfron kofo orgnnIzIm:

|--------------------------------------------------- (niveli i klass)
|
public class NdonjeKlase
{ |--------------------------- (niveli i metodave)
| |
| public NdonjeKlase()
| { |--- (niveli i trupave te metodave)
| | | ...
| | |---
| }
| |
| public void ndonjeMetode()
| { |--- (niveli i trupave te metodave)
| | | ...
| | | ...
| | |---
| }
| |
| |----------------------------
}
|----------------------------------------------------


PRINCIPE T PROGRAMIMIT N JAVA SHTOJC: KSHILLA PRAKTIKE...
86
Urdhrat e Prbr

!rdhorn fo orboro kofu I qunjmo nfn urdhorn qo no vofo mund fo ngorfhojno bIIok
urdhornsh. To fIIIo jnno: if, while, for. Idojn o orgjIfhshmo oshfo qo fjnIn kyo o
urdhorIf (if, while, orknfosIshf for) fo mos kofo urdhorn fo fruIf fo vof non fo, or
qo fruI fo jofo I shfyor djnfhfns mjnff. Mo fjnIon 'fru', kofu o qunjmo bIIokun o
urdhornvo, domofhono urdhornf qo ndodhon brondn kIInnvo gjnrororo.

\vdLvI II

if ( ... )
{ |
|
...
|
}

\vdLvI II...e!se...

if ( ... )
{ |
|
...
|
}
else { |
|
...
|
}

\vdLvI wLI!e

while ( ... )
{ |
|
...
|
}

\vdLvI Iov

for ( ...; ...; ... )
{ |
|
...
|
}

PRINCIPE T PROGRAMIMIT N JAVA SHTOJC: KSHILLA PRAKTIKE...
8?
!roguIIn o njojfo duhof fo ruhof odho kur komI urdhor fo orboro orbrondn njo
urdhorI fjofor fo orboro:

if ( ... )
{ while ( ... )
{ |
|
...
|
}
}
else { for ( ...; ...; ... )
{ |
|
...
|
}
}

gjnshom vorohof or fo gjIfhn kombInImof o urdhornvo. Tnsh oshfo mo o qnrfo so
ordoron vofom dy knrnkforo or f'I dnIIunr nIvoIof. Io fo ordorIm mo shumo, or
shombuII fro oso knfor knrnkforo, urdhornf o brondshom nn shkojno shumo djnfhfns
dho nn dnIIn roj nmjos. y knrnkforo mjnffojno or fn dnIIunr nIvoIIn ngn nIvoII.
Io orsorIsIm odho njohoro so kodI I shkrunr bukur oshfo I qnrfo, vofo-shjoguos or fo
gjIfho nfn qo o shIkojno, duko o orfshIro odho vofo nuforIn o fIj.



Nxjerrja e ASCII kodeve

KodI vIjuos, kur okzokufohof, o nxjorr fnboIon ASCII no rnngun 32..255.

public class ASCII
{ public static void main(String[] args)
{ for (int i = ' '; i<=255; i++)
{ System.out.print((char)i + "=" + (i<100?" ":"") + i + " | ");
if ( (i - 1) % 10 == 0 )
{ System.out.println(); }
}
}
}

Iroj nfy mund f'I IoxonI vIornf or 'o', 'I', '' dho '':

o = AIf + 235
I = AIf + 203
= AIf + 23l
= AIf + l99
PRINCIPE T PROGRAMIMIT N JAVA SHTOJC: KSHILLA PRAKTIKE...
88

Fjalt Kye t Gjuhs Programuese Java


abstract
boolean
break
byte
case
cast
catch
char
class
const
continue
default
do
double
else
extends
final
finally
float
for
future
generic
goto
if
implements
import
inner
instanceof
int
interface
long
native
new
null
operator
outer
package
private
protected
public
rest
return
short
static
super
switch
synchronized
this
throw
throws
transient
try
var
void
volatile
while

__________________________________
PRINCIPE T PROGRAMIMIT N JAVA DESIGN: RIDVAN BUNJAKU
FFlNClFE IE FFCGF/MlMlI NE J/V/ DESIGN: RIDVAN BUNJAKU

















* * * * * nrfrIdosIgn * * * * *

You might also like