Visual basic

KAPITULLI 4
 
FJALITË E KUSHTËZUARA
 
Nё kёtё kapitull do tё shpjegojmё fjalitё e kushtёzuara si: If ...Then, If... Then...
Else, If ... Then ElseIf dhe fjalitё Select Case. Siç dhe nёnkuptohet  nga titulli,
kёto fjali duke u bazuar nё kushte tё caktuara krijojnё mundёsinё e zgjedhjes se
cila fjali do tё ekzekutohet. Çdo vendim merret nё bazё tё njё kushti qё nёse ёshtё
i vёrtet, fjalia do tё ekzekutohet ose nёse nuk ёshtё i vёrtet, fjalia nuk do tё
ekzekutohet.   
 
4.1 FJALIA IF
 
Pёrpara se tё shpjegojm fjalin if le tё shpjegojmё disa operatorё qё janё shumё tё
rёndёsishёm jo vetёm nё Visual Basic por dhe nё programet e tjera. Njё program
fillon me fjalin e parё dhe vazhdon hap pas hapi deri sa harrin nё fund tё
programit. Rregullat nё tё cilat fjalitё ekzekutohen nё njё program quhen flow of
control. Fjalitё tё cilat kontrollojnё flow janё tё ndara nё dy kategori:
conditionals dhe loops. Nё                                                             Fig. 4. 1 po
tregojmё operatorёt dhe kuptimin e secilit prej tyre.  
Operator  Kuptimi
==  e barabarte me
!=  jo e barabarte me
<   me e vogel se
<=  me e vogel se ose e barabarte
>   me e madhe se
=>  me e madhe se ose e barabarte
                                                            Fig. 4. 1 Operatorёt dhe kuptimi i tyre.
Nё Fig. 4. 2 po japim operatorёt logjikё qё pёrdoren gjatё fjalive tё kushtёzuara
nё programim. Operatorёt logjikё kanё vetёm dy vlera: true (e vёrtetё) ose fallse
(jo e vёrtetё). Page 86 of 239
 
Operator  Kuptimi
!  logical NOT (jo i vertetё)
&&  logical AND (edhe)
||  logical OR (ose)
Fig. 4. 2 Logical operators.
Operatori (!) pёrdoret pёr logical NOT i cili nёse variabla ёshtё e vёrtetё resultati
do tё jetё jo i vёrtetё dhe e anasjellta nёse variabla do tё jetё jo e vёrtetё rezultati
do tё jetё i vёrtetё. Duhet pasur parasysh qё vlera e variablёs nuk ndryshon.
Operatori && pёrdoret pёr logical AND. Rezultati do tё jetё i vёrtetё vetёm nё
rastin kur tё dyja variablat janё tё vёrteta nё tё gjitha rastet e tjera rezultati ёshtё
jo i vёrtetё. Operatori || ёshtё jo i vёrtetё vetёm nё rastin kur tё dyja variablat janё
jo tё vёrteta, nё rastet e tjera ёshtё i vёrtetё. Çfarё thamё mё lartё janё tё
shpjeguara nё Fig. 4. 3 ku 0 pёrdoret pёr jo tё vёrtetё dhe 1 pёrdoret pёr tё vёrtetё.  
A  B  ! A  !B  A&&B  A||B
0  0  1  1  0  0
0  1  1  0  0  1
1  0  0  1  0  1
1  1  0  0  1  1
Fig. 4. 3 Boolean algebra pёr variablat A dhe B.
Nё njё fjali ku tё tre operatorёt janё tё pёrdorur radha e kryerjes sё veprimeve
ёshtё: logical NOT (!), logical AND (&&) dhe logical OR (||). Nёse do i kthehemi
pёrsёri Fig. 4. 3 do tё vёmё re se pёr A && B mjafton qё krahu i majtё tё jetё 0
dhe rezultati do tё jetё 0 dhe pёr A||B mjafton qё krahu i majtё tё jetё 1 resultati
do tё jetё 1. Ky konkluzion do na ndihmojё nё pёrcaktimin e shpejtё tё rezultatit
gjatё pёrdorimit tё operatorёve nё fjalitё if.  
 
4.1.1 Fjalia If . . . Then
Tani ne jemi gati tё vimё nё atё qё ёshtё qёllimi i kёtij kapitulli, fjalia if. Njё fjali
if konsiston nё fjalёn e rezervuar if e ndjekur nga njё shprehje boolean dhe nga
njё fjali tjetёr. Nёse kushti ёshtё i vёrtetё fjalia do tё ekzekutohet dhe nёse kushti
nuk ёshtё i vёrtetё fjalia nuk do tё ekzekutohet dhe programi do tё vazhdojё tё
ekzekutojё fjalitё pёr kodin e mёposhtёm. Le ta analizojmё kёtё me njё shembull
tё thjeshtё ku supozojmё se x dhe y janё dy variabla tё cilat i marrin vlarat nga
fjalitё e mёsipёrme nё program. Nёse vlera e variablёs y do tё jetё mё e madhe se
vlera e variablёs x atёherё fjalia nё vazhdim do tё ekzekutohet ku y do ti shtohet
numri 1, nёse vlera e variablёs y do tё jetё mё e vogёl se vlera e variablёs x
atёherё fjalia nё vazhdim nuk do tё ekzekutohet.   Page 87 of 239
 
  if (y > x)
  y += 1;
Fig. 4. 4 paraqet njё flow chart pёr njё fjali if. Si dhe ju e shikoni nga skema e
paraqitur nё figurё, fillimisht ёshtё vlerёsuar kushti i dhёnё i cili ka dy mundёsi i
vёrtetё ose jo i vёrtetё. Nёse kushti do tё jetё i vёrtetё programi do tё vazhdojё me
fjalin nё vazhdim, nёse kushti nuk do tё jetё i vёrtetё programi do ta anashkalojё
fjalinё dhe do tё vazhdojё mё poshtё.  
 
Fig. 4. 4 Si funksionon njё fjali if.
Nё kodin e mёposhtёm ne kemi krijuar njё projekt i cili pёrdoret nga mёsusi i njё
lёnde nё universitet pёr llogaritjen e notёs sё studentёve nё fund tё simestrit.
Studentёt nё kёtё klasё kanё tre provime gjatё simestrit, ku secili prej provimeve
ka pёrqindje tё njёjtё nё llogaritjen e notёs pёrfundimtare. Pra mёnyra se si ёshtё
llogaritur nota pёrfundimtare ёshtё duke mbledhur notat pёr secilin provim dhe
rezultatin e pjesёtojmё me 3. Nё vazhdim po japim kodin pёr butonat Llogarit
Mesataren, Pastron dhe Mbyll.  
Private Sub btnCalculate_Click(ByVal eventSender As System.Object, _
        ByVal eventArgs As System.EventArgs) Handles btnCalculate.Click
 Page 88 of 239
 
        ' Kjo procedure llogarit dhe shfaq mesataren e notave.
        ' Nese mesatarja eshte e larte shpreh urimet.  
        Dim sngProvim1 As Single
        Dim sngProvim2 As Single
        Dim sngProvim3 As Single
        Dim sngMesatarja As Single
 
        ' Copy the scores into the variables
        sngProvim1 = CSng(txtProvim1.Text)
        sngProvim2 = CSng(txtProvim2.Text)
        sngProvim3 = CSng(txtProvim3.Text)
 
        ' Llogarit dhe shfaq mesataren
        sngMesatarja = (sngProvim1 + sngProvim2 + sngProvim3) / 3
        lblMesatarja.Text = FormatNumber(sngMesatarja)
 
        ' Nese mesatarja eshte e larte falendero studentin.
        If sngMesatarja > 95 Then
            lblMesatarja.Text = "Urime, Pune e Mire"
        End If
    End Sub
 
    Private Sub btnClear_Click(ByVal eventSender As System.Object, _
        ByVal eventArgs As System.EventArgs) Handles btnClear.Click
 
        ' Pastron Text Boxes dhe Labels
        txtProvim1.Text = ""
        txtProvim2.Text = ""
        txtProvim3.Text = ""
        lblAverage.Text = ""
        lblMesatarja.Text = ""
 
        ' Kthen kursorin
        txtProvim1.Focus()
    End Sub
 
    Private Sub btnExit_Click(ByVal eventSender As System.Object, _
        ByVal eventArgs As System.EventArgs) Handles btnExit.Click
 
        ' Mbyll window
        Me.Close()
    End Sub
End Class    
Nё Fig. 4. 1 po japim formёn e aplikimit pasi ёshtё llogaritur nota mesatare pёr
njё student, ku studenti ka marrё nё provimin e parё 98 %, nё tё dytin 97 % dhe Page 89 of 239
 
nё tё tretin 99 %. Ne po pёrdorim njё fjali if pёr butonin Llogarit Mesataren, ku
nёse nota mesatare e studentit ёshtё mbi 95% atёherё njё mesazh urimi shfaqet nё
label:  
lblMesatarja.Text = "Urime, Pune e Mire"
Pёr butonin Pastron ne thjesht po pastrojmё çdo Label dhe TextBoxe, duke
boshatisur string nga karakteret. Nё fjalin e fundit tё kёtij butoni, pasi fjalitё pёr
kёtё buton tё jenё ekzekutuar kursori kthehet nё TextBoxin e parё. Kjo nuk ka
ndonjё vlerё tё veçantё nё kod, veçse e bёnё atё mё komod pёr pёrdorusin. Butoni
Mbyll pёrfundon aplikimin duke mbyllur kёtё window.  
        ' Mbyll window
        Me.Close()
 
Fig. 4. 5 Forma pёr llogaritjen e notave.
 
 Page 90 of 239
 
4.1.2 Fjalia If . . . Then . . . Else
Kjo fjali ёshtё disi mё ndryshe nga fjalia if, pasi ajo ekzekuton njё ose njё grup
fjalishё nёse kushti ёshtё i vёrtetё dhe njё tjetёr fjali apo grup fjalishё nёse kushti
nuk ёshtё i vёrtetё. Formati i saj ёshtё paraqitur si mё poshtё:
If kushti Then
fjali
(mund tё vazhdojmё me fjali tё tjera)
Else
       fjali
       (mund tё vazhdojmё me fjali tё tjera)
End If
Pёr shembull nёse do i referoheshim programit pёr llogaritjen e notёs
pёrfundimtare nё aplikimin e mёsipёrm. Pёrveç urimit nё rastin kur kemi njё notё
pёrfundimtare pёr studentin mё tё madhe se 95 %, nё rastet e tjera do tё donim ti
jepnim kurajo studentit duke i thёnё vazhdo tё punosh mё shumё. Kjo realizohet
nёpёrmjet kёtyre llojё fjalishё.
        If sngMesatarja > 95 Then
            lblMesatarja.Text = "Urime, Pune e Mire"
Else
LblMesatarja.Text = "Duhet te punosh me shume"  
        End If    
Fjalia Else specifikon njё ose njё grup fjalishё tё cilat ekzekutohen kur kushti nuk
ёshtё i vёrtetё. Nё rastin e mёsipёrm kur mesatarja pёr tё tre provimet e njё
studenti ёshtё mё e vogёl ose e barabartё me 95 %, atёherё do tё printohet fjalia
“Duhet tё punosh mё shumё”. Shikoni se si kjo realizohet nё programin e
mёsipёrm ku i vetmi ndryshim ёshtё fjalia Else nё kodin pёr butonin Llogarit
Mesataren. Nё Fig. 4. 6 studenti ka marrё nё provimin e parё 87 %, nё tё dytin 78
% dhe nё tё tretin 80 %, pra siç e shihni fjalia “Duhet te punosh me shume”
printohet.  
 
 
 
 Page 91 of 239
 
Fig. 4. 6 Forma me mesazhin e shfaqur.
 
 
    Private Sub btnCalculate_Click(ByVal eventSender As System.Object, _
        ByVal eventArgs As System.EventArgs) Handles btnCalculate.Click
 
        ' Kjo procedure llogarit dhe shfaq mesataren e notave.
        ' Nese mesatarja eshte e larte shpreh urimet.  
        Const sngNOTE_MIRE As Single = 95
        Dim sngProvim1 As Single
        Dim sngProvim2 As Single
        Dim sngProvim3 As Single
        Dim sngMesatarja As Single
 
        ' Copy the scores into the variables
        sngProvim1 = CSng(txtProvim1.Text)
        sngProvim2 = CSng(txtProvim2.Text)
        sngProvim3 = CSng(txtProvim3.Text)
 
        ' Llogarit dhe shfaq mesataren
        sngMesatarja = (sngProvim1 + sngProvim2 + sngProvim3) / 3
        lblMesatarja.Text = FormatNumber(sngMesatarja)
 
        ' Nese mesatarja eshte e larte falendero studentin, Page 92 of 239
 
        ' ndryshe jepi kurajo
        If sngMesatarja > 95 Then
            lblMesatarja.Text = "Urime, Pune e Mire"
        Else
            lblMesatarja.Text = "Duhet te punosh me shume"
        End If
    End Sub
 
4.1.3 Fjalitё If . . . Then . . . ElseIf
Kёto llojё fjalishё janё tё ngjashme me fjalitё If . . . Then . . . Else, pёrveç faktit se
ato do tё ekzekutojnё fjalitё njёra pas tjetrёs deri sa tё gjejnё njё kushtё tё vёrtetё.
Mё poshtё po japim formёn e zakonshme pёr fjalitё If . . . Then . . . ElseIf.  
If kushti Then
fjali
(mund tё vazhdojmё me fjali tё tjera)
ElseIf
       fjali
       (mund tё vazhdojmё me fjali tё tjera)
       (vendos fjali ElseIf sa tё nevoiten)
Else
       fjali
       (mund tё vazhdojmё me fjali tё tjera)
End If
Le tё vazhdojmё pёsёri me programin qё kemi krijuar pёr lloagaritjen e notave
pёr studentёt pasi ata kanё dhёnё tre provime. Shto nё forёm dhe dy label ku nё
njёrёn vendosni tekstin Notat dhe nё tjetrёn ndёrro: Name nё lblNotat,
BorderStyle 3D dhe fshije tekstin e saj dhe lere vlerёn bosh. Forma e saj duhet tё
jetё si nё Fig. 4. 7.
 
 
 Page 93 of 239
 
Fig. 4. 7 Forma ku do tё shfaqen notat sipas shkronjave.
 
 
Kliko dy herё mbi butonin Llogarit Mesataren dhe type kodin si mё poshtё. Vini
re se si duke pёrdorur fjalinё ElseIf pёr vlera tё ndryshme tё mesatares printohen
shkronja tё ndryshme nё lblNotat.  
    Private Sub btnCalculate_Click(ByVal eventSender As System.Object, _
        ByVal eventArgs As System.EventArgs) Handles btnCalculate.Click
 
        ' Kjo procedure llogarit dhe shfaq mesataren e notave.
        ' Nese mesatarja eshte e larte shpreh urimet.  
        Const sngNOTE_MIRE As Single = 95
        Dim sngProvim1 As Single
        Dim sngProvim2 As Single
        Dim sngProvim3 As Single
        Dim sngMesatarja As Single
 
        ' Copy the scores into the variables
        sngProvim1 = CSng(txtProvim1.Text)
        sngProvim2 = CSng(txtProvim2.Text)
        sngProvim3 = CSng(txtProvim3.Text)
 
        ' Llogarit dhe shfaq mesataren
        sngMesatarja = (sngProvim1 + sngProvim2 + sngProvim3) / 3 Page 94 of 239
 
        lblMesatarja.Text = FormatNumber(sngMesatarja)
 
        ' Llogarit dhe shfaq notat me shkronja
        If sngMesatarja < 60 Then
            lblNotat.Text = "F"
        ElseIf sngMesatarja < 70 Then
            lblNotat.Text = "D"
        ElseIf sngMesatarja < 80 Then
            lblNotat.Text = "C"
        ElseIf sngMesatarja < 90 Then
            lblNotat.Text = "B"
        ElseIf sngMesatarja <= 100 Then
            lblNotat.Text = "A"
        Else
    lblNotat.Text = "Gabim"
        End If
 
        ' Nese mesatarja eshte e larte, jepi studentit urimin,
        ' ndryshe jepi kurajo te punoje me shume.
        If sngMesatarja > sngNOTE_MIRE Then
            lblMesazh.Text = "Urime, pune e mire"
        Else
            lblMesazh.Text = "Duhet me shume pune"
        End If
    End Sub
Nё Fig. 4. 8 tregohet llogaritja e rezultatit ku studenti nё provimin e parё ka marrё 78 %,
nё tё dytin 84 % dhe nё tё tretin 80 %. Nga llogaritjet Mesatarja ёshtё 80.67 %, Nota
ёshtё B dhe mesazhi ёshtё se duhet mё shumё punё. Vini re gjithashtu se fjalia Else e
pёrdorur nё fund tё fjalive ElseIf siguron qё nёse pёrdorusi fut vlera mё tё mёdha se 100,
atёherё njё mesazh “Gabim” do tё shfaqet.     
 
 
 
 
 
 
 
 Page 95 of 239
 
Fig. 4. 8 Programi duke punuar.
 
 
4.1.4 Fjalitё nested If
Njё fjali nested If ёshtё njё fjali If qё shfaqet brenda njё fjalie tjetёr If. Le tё
shohim njё aplikim pёr kёtё lloj fjalie dhe duke shpjeguar kodin e tij do tё harrim
tё kuptojmё mё mirё fjalitё nested If.  
Referohuni Fig. 4. 9 pёr tё kuptuar se si forma ёshtё dizenjuar. Nё kёtё aplikim
pёrdorusi duhet tё fusi rrogёn vjetore dhe vitet e punёs pёr tё parё nёse
kualifikohet nga banka pёr kredi apo jo.  
Nёse shikoni me kujdes kodin e mёposhtёm do tё vini re se fjalia If pёrdoret
brenda fjalisё If. Nё fjalinё e parё If ne po themi se nёse rroga e njё punёtori ёshtё
mё e madhe se 12000 dhe vitet e punёs janё mё shumё se 3 vite, atёherё aplikusi
kualifikohet. Nё kёtё rast kodi i theksuar nё kodin e mёposhtёm do tё
ekzekutohet. Nёse rroga ёshtё mё e madhe se 12000, por vitet e punёs janё mё
pak ose 3 vite, atёherё aplikusi nuk kualifikohet. Pra siç e shihni janё dy kushte qё
duhet tё plotёsohen qё aplikukusi tё pёrfitojё njё kredi. Shikoni Fig. 4. 9 ku
programi ёshtё nё Start Debugging. Rroga e punёtorit ёshtё 14000 dhe vitet e
punёs janё 4 vite, pra tё dy kushtet plotёsohen.       
        'Konverton rrogen dhe vitet nga TextBoxes Page 96 of 239
 
        Dim sngRroga As Single = CSng(txtRroga.Text)
        Dim intVitetePune As Integer = CInt(txtVitePune.Text)
 
        'Percakto kur aplikanti kualifikohet per kredi
        If sngRroga > 12000 Then
            If intVitetePune > 3 Then
                lblMessage.Text = "Aplikanti kualifikohet"
            Else
                lblMessage.Text = "Aplikanti nuk kualifikohet"
            End If
        Else
            If intVitetePune > 5 Then
                lblMessage.Text = " Aplikanti kualifikohet"
            Else
                lblMessage.Text = "Aplikanti nuk kualifikohet"
            End If
        End If
Por nёse kushti pёr sngRroga > 12000 nuk ёshtё i vёrtetё dhe kushti punёtori ka
mё shumё se pesё vite pune, ёshtё i vёrtetё, atёherё kodi i mёposhtёm do tё
ekzekutohet. Shikoni Fig. 4. 10 ku megjithёse rroga e punёtorit ёshtё e vogёl
10000, pra kushti nuk plotёsohet, por plotёsohet kushti i fjalisё tjetёr If vitet e
punёs janё mё shumё se 5. Nё kёtё rast nuk kemi njё fjali nested if, pra kemi
vetёm njё kusht, atё qё vitet e punёs tё jenё mё shumё se 5.  
If intVitetePune > 5 Then
                lblMessage.Text = " Aplikanti kualifikohet"
            Else
                lblMessage.Text = "Aplikanti nuk kualifikohet"
            End If
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Page 97 of 239
 
Fig. 4. 9 Rroga ёshtё 14000 dhe 4 vite pune.
 
 
 
Fig. 4. 10 Rroga 10000 dhe Vitet e punёs 7.
 Page 98 of 239
 
4.2 KRAHASIMI DHE TESTIMI I STRING
 
Visual Basic ka disa metoda ne klasёn String tё cilat e lehtёsojnё punёn me
strings. Kompiuterat nuk ruajnё karaktere nё memorie si: A, B, C etj, por ata
ruajnё kode numerike qё prezantojnё karakteret. Visual Basic pёrdor Unicode, i
cili presanton shkronjat, numrat nga 0 nё 9, simbolet dhe karakteret specile. Secili
karakter ruhet nё memorie nё bazё tё numrave Unicode, i cili ёshtё i mjaftushёm
pёr tё paraqitur tё gjitha fjalёt nё alfabetet e botёs.  
Nёse do tё krahasonim C me D do tё thoshim se kodi numerik pёr shkronjёn C
ёshtё mё i vogёl se kodi pёr D. Shronjat kapitale vijnё pёrpara shkronjave tё
vogla si: kodi numerik pёr C ёshtё mё i vogёl se c. Ndёrsa hapёsira boshe ёshtё
para tё gjitha shkronjave. Kur ne krahasojmё dy string ajo qё ne bёjmё ёshtё se ne
krahasojmё secilin karakter tё string. Le ta ilustrojmё kёtё me njё shembull pёr ta
kuptuar mё mirё kёtё.
strEmri1 = “Alban”   
strEmri2 = “Altin”
If strEmri1 > strEmri2 Then
lblMesazh.Text = “Alban eshte me i math se Altin”
Else
       lblMesazh.Text = “Alban nuk eshte me i math se Altin”
End If
String “Alban” dhe “Altin” krahasohen karakter pas karakteri, pra karakteri i par
ёshtё i njёjtё pёr tё dy string (A). Kalojmё tek karakteri i dytё i cili pёrsёri ёshtё i
njёjtё pёr tё dyja string (l). Pёr karakterin e tretё kemi “b” pёr stringun e parё dhe
“t” pёr stringun e dytё, pra strEmri1 ёshtё mё i madh se strEmri2 dhe fjalia,
“Alban eshte me i madh se Altin” do tё printohet. Vini re se nё kёtё rast numri i
karaktereve pёr tё dyja string ёshtё i barabartё, por kjo nuk ёshtё gjithmonё e
vёrtetё. Pёr shembull nё rastin e string si: “aaa” dhe “aa” krahasohen karakteret e
para, tё cilat janё tё njёjtё. Kalohet nё karakteret e dyta, tё cilat dhe ato janё tё
njёjta. Karakteri i tretё i stringut tё parё ёshtё “a”, ndёrsa pёr stringun e dytё ёshtё
hapёsirё. Siç e kemi thёnё mё lartё hapёsira ёshtё mё e vogёl se tё gjitha
shkronjat, pra stringu “aaa” ёshtё mё i madh se “aa”.  Page 99 of 239
 
4.2.1 Metodat ToUpper dhe ToLower
Metodat ToUpper dhe ToLower janё pjesё tё String, pra ato mund tё thёrriten me
çdo variabёl string apo shprehje. Metoda ToUpper konverton nё shkronja
kapitale. Shikoni se si kjo realizohet nё shembullin nё vazhdim, ku fjala “Vlora”
kthehet nё “VLORA”. Kini parasysh se kjo metodё kthen tё gjitha shkronjat me tё
vogla nё shkronja tё mёdha, por ajo nuk ndyshon gjё tek shkronjat qё janё me
gёrma kapitale.
strShkronjVogel = “Vlora”
strShkronjMadhe = strShkronjVogel.ToUpper()       
Metoda ToLower ёshtё e njёjtё me metodёn ToUpper vetёm se kthen shkronjat me
gёrma kapitale nё shkronja tё vogla. Shikoni kodin nё vazhdim.
strShkronjMadhe = “VLORA”
strShkronjVogel = strShkronjMadhe.ToLower()       
 
4.2.2 Funksioni IsNumeric
Funksioni IsNumeric pranon njё string si argument dhe nёse kjo string ka njё
numёr atёherё funksioni kthehet i vёrtetё (True). Nё tё kundёrt ai ёshtё jo i
vёrtetё. Shikoni pёrdorimin nё kodin e mёposhtёm ku strNumer ёshtё njё numёr
pra funksioni ёshtё i vёrtetё dhe fjalia e theksuar do tё ekzekutohet.
‘ Funksioni
IsNumeric(StringExpression)
‘ Shembull
Dim strNumer As String
strNumer = “234”
If IsNumeric(strNumer) Then
      lblMesazhi.Text = “Ështё njё numёr”
Else
     lblMesazhi.Text = “Nuk ёshtё njё numёr”
End If
Ndёrsa nё kodin e mёposhtёm funksioni kthehet jo i vёrtetё, pasi variabla
strNumer nuk ёshtё numёr dhe fjalia e theksuar do tё ekzekutohet.   Page 100 of 239
 
‘ Funksioni
IsNumeric(StringExpression)
‘ Shembull
Dim strNumer As String
strNumer = “234”
If IsNumeric(strNumer) Then
      lblMesazhi.Text = “Ështё njё numёr”
Else
     lblMesazhi.Text = “Nuk ёshtё njё numёr”
End If
 
4.2.3 Lёvizja e hapёsirave nga String
A leading space ёshtё njё hapёsirё qё shfaqet nё fillim tё string. Pёr shembull
strigu nё vazhdim ka pesё leading space.  
  “     Vlora”
A trailing space ёshtё hapёsira qё shfaqet nё fund tё string, si nё fjalinё nё
vazhdim ku kemi pese trailing space.  
  “Vlora     “
Klasa String ka tre metoda pёr tё lёvizur hapёsirat: TrimStart, TrimEnd dhe Trim.
Shikoni formatin pёr secilёn mё poshtё.  
  StringExpression.TrimStart()
StringExpression.TrimEnd()
  StringExpression.Trim ()
Metoda TrimStart kthen njё kopjo tё string me tё gjitha hapёsirat e fillimit tё
lёvizura, metoda TrimEnd kthen njё kopjo tё string me tё gjitha hapёsirat e
fundit tё lёvizura dhe Metoda Trim kthen njё kopjo tё string me tё gjitha
hapёsirat e fillimit dhe tё fundit tё lёvizura.
strQytet = “     Vlora     “
lblMesazh1.Text = strQytet.TrimStart() Page 101 of 239
 
lblMesazh2.Text = strQytet.TrimEnd()
lblMesazh3.Text = strQytet.Trim()
Nё kodin e mёsipёrm fjalia e parё krijon njё string “     Vlora     “. Nё fjalin e dytё
lёvizen hapёsirat e fillimit dhe kemi “Vlora     “. Nё tё tretёn kemi fjalin “     
Vlora“ ku janё lёvizur hapёsirat e fundit tё string dhe nё fjalin e fundit janё
lёvizur tё gjitha hapёsirat e fillimit dhe tё mbarimit “Vlora“.   
 
4.2.4 Metoda Substring
Nё Visua Basic ka dy formate pёr metodёn substring.  
  StringExpression.Substring(Fillimi)
  StringExpression.Substring(Fillimi, Gjatёsia)
Kini kujdes se numёrimi i karaktereve nё string fillon me 0. Nё formatin e parё
fjala “Fillimi” tregon nё ç’farё pozicioni do tё fillojё string. Shikoni kodin e
mёposhtёm.
  Dim strMbiemri As String
  Dim strEmriPlote As String = “Gjergji Shaska”
  strMbiemri = strEmriPlote.Substring(8)
Pasi kodi tё ekzekutohet variabla strMbiemri do tё jetё “Shaska”, pasi do tё fillojё
nё pozicionin e tetё dhe do tё shkojё deri nё fund tё stringut. Ndёrsa pёr foramtin
e dytё kemi.
  Dim strEmri As String
  Dim strEmriPlote As String = “Gjergji Shaska”
  strEmri = strEmriPlote.Substring(0, 7)
Nё kёtё kodё string fillon nё 0 dhe merr 7 karaktere nga string, pra variabla
strEmri do tё ketё vetёm emrin “Gjergji”.  
 
4.2.5 Metoda IndexOf
Metoda IndexOf kёrkon pёr njё karakter nё string. Kjo metodё ka tre forma.
StringExpression.IndexOf(Kerkon) Page 102 of 239
 
StringExpression.IndexOf(Kerkon, Fillimi)
StringExpression.IndexOf(Kerkon, Fillimi, Numero)
Nё formёn e parё kёrkohet pёr njё karakter, nёse gjendet kthehet vlera e
pozicionit tё atij karakteri, nёse jo kthehet vlera -1. Le ta shohim kёtё me njё
shembull ku do tё pёrdorim tё tre format e mёsipёrme.  
Dim strFutboll As String = “Flamurtari”
Dim intPozicioni As Integer
intPozicioni = strFutboll.IndexOf(“a”)
Pasi ky kod tё ekzekutohet pozicioni i variablёs do tё jetё 2, sepse “a” ёshtё nё
pozicionin e dytё. Pёr formatin e dytё do tё kemi.
Dim strFutboll As String = “Flamurtari”
Dim intPozicioni As Integer
intPozicioni = strFutboll.IndexOf(“a”, 3)
Nё kёtё rast pozicioni i variablёs do tё jetё 7, pasi do tё jetё pozicioni pёr “a” e
dytё. Vёrtet ne po kёrkojmё pёr “a”, por ne i kemi dhёnё vlerёn e fillimit nё
pozicionin e tretё, e cila nuk e kap “a” e parё. Pёr formatin e tretё kemi.
Dim strFutboll As String = “Flamurtari”
Dim intPozicioni As Integer
intPozicioni = strFutboll.IndexOf(“a”, 3, 4)
Pasi kodi tё ekzekutohet pozicioni i variablёs do tё jetё -1, pasi kёrkimi fillon nё
pozicionin e 3 dhe vazhdon tё kёrkojё 4 pozicione pas kёsaj.
 
4.2.6 Message Box
Njё message box ёshtё njё window qё shfaq njё mesazh. Ne e kemi pёrdorur kёtё
dhe mё parё me metodёn MessageBox.Show. Tani ne do tё diskutojmё pesё
forma tё metodave.   
MessageBox.Show(Message)
MessageBox.Show(Message, Caption) Page 103 of 239
 
MessageBox.Show(Message, Caption, Buttons)
MessageBox.Show(Message, Caption, Buttons, Icon)
MessageBox.Show(Message, Caption, Buttons, Icon, DefaultButton)
Pёr tё kuptuar secilёn prej kёtyre formave ne po krijojmё njё program tё thjeshtё,
ku do tё kemi pesё butona dhe secili prej tyre i pёrgjigjet formave pёrkatёse.
Krijoni kёtё program dhe pёr secilin buton type kodin pёr tё shfaqur message box.
Kur MessageBox.Show ekzekutohet, njё mesazh do tё shfaqet nё Window. Si pёr
shembull fjalia e mёposhtme do tё shfaqet si nё Fig. 4. 11.   
MessageBox.Show(“Flamurtari”)
                                     Fig. 4. 11 Butoni _1                 Fig. 4. 12 Butoni_2
            
 
                                           Fig. 4. 13 Butoni_3        Fig. 4. 14 Butoni_4
             Page 104 of 239
 
 
Nё formatin e dytё, do tё shfaqet dhe njё titull, ku Caption ёshtё njё string.
Shikoni kodin nё vazhdim dhe message box tregohet nё Fig. 4. 112.
MessageBox.Show(“Flamurtari”, “Futboll”)
Nё rastin e tretё “Buttons” ёshtё njё vlerё qё specifikon cilin buton tё shfaqi nё
message box. Message box kur pёrdoret pa ndonjё vlerё specifike ka vetёm
butonin OK. Mё posht ne po japim vlerat pёr “Buttons”.  
Vlera              Pёrshkrimi                                                                  
MessageBoxButtons.AbortRetryIgnore       Shfaq butonat Abort, Retry dhe
Ignore
MessageBoxButtons.OK           Shfaq butonin OK
MessageBoxButtons.OKCancel         Shfaq butonat OK dhe Cancel  
MessageBoxButtons. RetryCancel       Shfaq butonat Retry dhe Cancel
MessageBoxButtons.YesNo         Shfaq butonat Yes dhe No
MessageBoxButtons.YesNoCancel       Shfaq butonat Yes, No dhe Cancel                         
 
Pёr shembull nё fjalin nё vazhdim message box do tё shfaqet si nё Fig. 4. 13, ku
do tё kemi dy butona Yes dhe No.
MessageBox.Show(“Flamurtari”, “Futboll”, MessageBoxButtons.YesNo)
Icon ёshtё njё vlerё qё specifikon njё icon pёr tu shfaqur nё njё message box.
Vlerat pёr Icon janё: MessageBoxIcon.Asterisk, MessageBoxIcon.Error,
MessageBoxIcon.Exclamation, MessageBoxIcon.Hand,
MessageBoxIcon.Information, MessageBoxIcon.Question, MessageBoxIcon.Stop
dhe MessageBoxIcon.Warning. Pёr shembull kodi nё vazhdim do tё shfaqi Fig. 4.
134.
MessageBox.Show(“Flamurtari”, “Futboll”, MessageBoxButtons.YesNo,
MessageBoxIcon.Question)
DefaultButton specifikon cili buton zgjidhet kur pёrdorusi shtyp butonin “enter”.  
 
 Page 105 of 239
 
Vlera              Pёrshkrimi                                                                   
MessageBoxDefaultButton.Button1      Zgjeth butonin e parё duke filluar nga e
majta
MessageBoxDefaultButton.Button2      Zgjeth butonin e dytё duke filluar nga e
majta
MessageBoxDefaultButton.Button3      Zgjeth butonin e tretё duke filluar nga e
majta
Pёr shembull fjalia nё vazhdim do tё zgjedhi butonin e parё.
MessageBox.Show(“Flamurtari”, “Futboll”, MessageBoxButtons.YesNo,
MessageBoxIcon.Question, _
MessageBoxDefaultButton.Button1)
 Nё vazhdim po japim kodin e plotё pёr tё gjithё butonat.  
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
 
        MessageBox.Show("Flamurtari")
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button2.Click
 
        MessageBox.Show("Flamurtari", "Futboll")
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button3.Click
 
        MessageBox.Show("Flamurtari", "Futboll", MessageBoxButtons.YesNo)
    End Sub
 
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button4.Click
 
        MessageBox.Show("Flamurtari", "Futboll", MessageBoxButtons.YesNo,
MessageBoxIcon.Question)
    End Sub
 Page 106 of 239
 
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button5.Click
 
        MessageBox.Show("Flamurtari", "Futboll", MessageBoxButtons.YesNo, _
        MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
    End Sub
End Class
4.2.7 Pёrdorimi i ControlChars.CrLf
Nёse ju doni tё shfaqni informacionin nё message box nё disa rreshta, ju mund tё
pёrdorni ControlChars.CrLf. Shikoni kodin nё vazhdim pёr tё kuptuar se si kjo
arrihet dhe Fig. 4. 15 ku tregohen dy rreshtat e shfaqur nё message box.  
   MessageBox.Show(“Rreshti i parё” & ControlChars.CrLf & “Rreshti I dytё”)
Fig. 4. 15 Butoni_6
 
 
4.3 FJALITË CASE
 
Njё tjetёr fjali e kushtёzuar nё Visual Basic ёshtё fjalia Case, e cila lejon tё
zgjidhet njё drejtim kur ka dhe shumё mundёsi tё tjera pёr tё zgjedhur. Fjalia
Case vlerёson njё shprehje pёr tё pёrcaktuar njё vlerё dhe e gjenё atё vlerё
ndёrmjet shumё tё tjerave. Secila fjali  case (rast) ka fjali tё cilat ekzekutohen nё
rast se kushti pёr fjalin case ёshtё i vёrtetё. Mё poshtё tregohet forma e fjalisё
case. Page 107 of 239
 
Select Case (shprehja qё testohet)
Case 1
  (njё ose disa fjali)
Case 2
  (njё ose disa fjali)
(vazhdon pёr tё gjitha case)
Case Else
  (njё ose disa fjali)
End Select
Nё fjalin e parё “Select Case”  vendoset shprehja qё do tё testohet. Pas sajё
vendosen me radhё tё gjitha rastet e mundёshme, duke treguar se çfarё duhet tё
ekzekutojё programi nёse Case ёshtё e vёrtetё. Nё fund tё tё gjitha fjalive Case
vjen fjalia Case Else, e cila ekzekutohet nёse asnjё nga fjalitё Case nuk ёshtё e
vёrtetё. Megjithatё Case Else nuk ёshtё e detyrushme, pasi nёse ajo nuk pёrdoret
programi do tё compilet pa gabime. Por nё pёrgjithёsi programusi e pёrdor kёtё
llojё fjalie pasi ai kёrkon tё sigurohet se nёse asnjё nga rastet nuk ёshtё i vёrtetё
programi ekzekuton njё fjali tё caktuar. Fjalitё Case pёrfundojnё me nje End
Select.  
Pёr tё kuptuar mё mirё çfarё thamё mё lartё le tё shohim se si paraqiten gjimnazet
e qytetit tё Vlorёs. Supozojmё se kemi krijuar njё forёm me nje Text Box tё
quajtur “txtInput.Text”. Nёse vlera i kёtij Text Box do tё jetё e njёjtё me njёrёn
nga case, atёherё fjalia pёrkatёse do tё shfaqet. Pra nёse pёrdorusi type 2 nё Text
Box, atёherё nё MessageBox do tё shfaqet mesazhi: Gjimnazi Halim Xhelo, nёse
pёrdorusi type 4 mesazhi do tё jetё: Shkolla Tregtare. Kini parasysh se programi
mund tё pёrmbajё dhe disa fjali pёr njё case. Nё kёtё rast kur vlera e tekstit do tё
jetё e njёjtё me njё prej case programi do tё ekzekutojё tё gjitha fjalitё dhe do tё
vazhdojё me End Select. Nёse pёrdorusi nuk type asnjё nga vlerat 1, 2, 3, dhe 4,
atёhrё mesazhi do tё jetё: Vlera e tekstit eshte e papranushme.     
Select Case CInt(txtInput.Text)
Case 1
  MessageBox.Show(“Gjimnazi Ali Demi”)
Case 2
  MessageBox.Show(“Gjimnazi Halim Xhelo”) Page 108 of 239
 
Case 3
  MessageBox.Show(“Mustafa Qemal Ataturku”)
Case 4
  MessageBox.Show(“Shkolla Tregtare”)
Case Else
  MessageBox.Show(“Vlera e tekstit eshte e papranushme”)
End Select
Nё figurёn e mёposhtme po japim flowchart pёr gjimnazet nё qytetin e Vlorёs.
 
Fig. 4. 16 Forma e njё fjalie Case.
 
Njё tjetёr mёnyrё e tё shprehurit tё fjalive case ёshtё duke pёrdorur disa shprehje
tё ndara nga presjet. Pёr shembull fjalia e parё nё kodin nё vazhdim krahason
intNumer 1, 3, 5, dhe 7 dhe fjalia e dytё krahason intNumer 2, 4, 6 dhe 8.  
Select Case intNumer
Case 1, 3, 5, 7 Page 109 of 239
 
   numrat = “Tek”
Case 2, 4, 6, 8
   numrat = “Cift”
Case Else
  numrat = “Numra tё tjere”
End Select
Por fjalia case mund tё pёrdoret dhe pёr tё testuar vlera string. Supozojmё se vlera
e variablёs strQytetet ёshtё njё vlerё string.
Select Case strQytetet
Case “Vlora”, “Durresi”, “Tirana”
   MessageBox.Show(“Qytete Shqiptare”)
Case “Shqiperi”, “Itali”, “Angli”
   MessageBox.Show(“Shtete Europiane”)
Case Else
  MessageBox.Show(“Jashte kufive te percaktuar”)
End Select
 Njё tjetёr mёnyrё paraqitje pёr fjalitё case ёshtё duke pёrdorur operatorёt si nё
shembullin nё vazhdim.  
Select Case strTemperatura
Case Is < 10
   MessageBox.Show(“Eshte ftohte.”)
Case Is > 30
   MessageBox.Show(“Eshte vape.”)
Case Else
  MessageBox.Show(“Temperatura eshte normale”)
End Select Page 110 of 239
 
 Nёse do tё vazhdonim pёrsёri me kodin e mёsipёrm por duam qё temperatura tё
ketё kufi,  nga 10 nё 20 gradё celcius dhe nga 20 nё 30 gradё celcius. Shikoni se
si kjo arrihet nё kodin e mёposhtёm.  
 Select Case strTemperatura
Case Is < 10   
   MessageBox.Show(“Eshte ftohte.”)
Case 10 To 20  
   MessageBox.Show(“Eshte mire.”)
Case 20 To 30  
   MessageBox.Show(“Eshte shume mire.”)
Case Is > 30
   MessageBox.Show(“Eshte vape.”)
Case Else
  MessageBox.Show(“Temperatura nuk eshte e percaktuar”)
End Select
 
4.4 RADIO BUTTONS DHE CHECK BOXES
 
Radio buttons shfaqen nё grupe dyshё ose mё shumё, duke lejuar pёrdorusin
tё zgjedhi njё ose disa opsione. Kёta butona janё tё pёrdorshёm kur programusi
do ti japi pёrdorusit njё mundёsi zgjidhje, por duke pasur dhe njё apo disa
zgjedhje tё tjera. Secili buton radio ka njё rreth qё duket i mbushur kur butoni
ёshtё klikuar dhe duket bosh kur nuk ёshtё i klikuar. Kёta llojё butonash mund tё
pёrdoren nё dy mёnyra.  
  Tё gjithё butonat radio brenda njё “group box” janё anёtarё tё tё njёjtit
grup. Nё Fig. 4. 17 tregohen dy grupe radio buttons, ku pёr secilin grup
vetёm njё radio button mund tё jetё i zgjedhur. Vini re se kur ju zgjidhni
njё tjetёr buton, ai qё mё parё ishte i zgjedhur do tё kthehet jo i zgjedhur.  
  Tё gjithё butonat radio nё njё forёm, por jo brenda njё “group box” janё
anёtarё tё tё njёjtit grup. Shikoni Fig. 4. 18.    
 Page 111 of 239
 
Fig. 4. 17 Radio Buttons nё dy group box.
 
 
Fig. 4. 18 Radio Buttons nё tё njёjtёn forёm.
 Page 112 of 239
 
Vini re se nё Fig. 4. 17 kemi pёrdorur dhe tre check box, tё cilёt janё tё ngjashёm
me butonat radio por vetёm se zgjedhja e njёrit nuk ka lidhje me zgjedhjen e
tjetёrit. Siç e shihni nё Fig. 4. 17 dy prej check box janё tё klikuar, gjё e cila ёshtё
e pamundur pёr radio buttons.    
 
4.5 VARIABLAT CLASS-LEVEL  
 
 Variablat Class-level nuk deklarohen brenda metodave. Ato deklarohen
jashtё çdo metode dhe mund tё arrihen nga çdo fjali e metodave tё sё njёjtёs
forёm. Deri tani ne nё pёrgjithsi kemi pёrdorur variablat local, tё cilat mund tё
arrihen vetёm nga fjalitё e sё njёjtёs metodё ku ajo ёshtё deklaruar. Por shpesh
lind nevoja e krijimit tё variablave tё cilat duhet tё pёrdoren nga dy apo mё shumё
metoda. Kёto llojё variablash ne mund ti deklarojmё brenda njё klase, por jashtё
çdo metode.  
Shikoni kodin nё vazhdim ku nёse ju e mbani mend ne e krijuam atё pёr
programin kalkulatori nё kapitullin 3. Dy variablat total1 dhe total2 nuk janё
deklaruar local, ato mund tё arrihen nga tё gjitha metodat e klasёs. Pra ne themi se
ato janё deklaruar si variabla class-level. Ndёrsa brenda metodёs pёr butonin
btnZero_Click ne kemi deklaruar njё variabёl local, e cila mund tё pёrdoret vetёm
nga fjalitё e kёsaj metode. Ky ёshtё vetёm njё shembull dhe ne nuk e kemi
pёrdorur kёtё variabёl nё fjalitё e kёsaj metode.             
Public Class Form1
    Inherits System.Windows.Forms.Form
 
    Dim total1 As Integer
    Dim total2 As Integer
 
Private Sub btnZero_Click(ByVal sender As System.Object, ByVal e As   
System.EventArgs) Handles btnZero.Click
 
    Dim llogarit As Integer
        txtShfaq.Text = txtShfaq.Text & btnZero.Text
End Sub
Vlen tё theksohet se variablat class-level duhet tё pёrdoren vetёm kur ato
nevoiten. Pёrdorimi i tyre i shpeshtё ёshtё i gabuar, megjithse programi compilet
pa gabime. Imagjinoni se sa e vёshtirё ёshtё tё gjesh gabimin kur kemi pёrdorur
njё variabёl class-level, sidomos kur programet janё shumё tё gjatё kjo do tё jetё
e pamundur. Pёr mё tepёr ne duhet tё kontrollojmё tё gjitha metodat ku ajo Page 113 of 239
 
pёrdoret. Ndёrsa kur ne kemi njё gabim pёr njё variabёl e cila ёshtё e deklaruar
“local” ne jemi tё sigurt se gabimi ёshtё brenda kёsaj metode.   
 
4.6 PROJEKTI ANËTARËT E PALESTRËS  
 
Nё kёtё program ne do tё ndёrtojmё njё aplikim pёr tё llogaritur pagesёn e
klientёve tё njё palestre gjimnastike. Menazheri i kёsaj palestre kёrkon njё
program ku tё llogaritet pagesa pёr klientёt e tij, duke u bazuar nё moshёn, muajt
e regjistrimit dhe opsionet e ofruar nga palestra.  
Tarifat pёr grup moshat e ndryshme do tё jenё si mё poshtё.
Tё Rritur      $30 nё muaj
Femije nёn 12 vjeç    $15 nё muaj  
Student        $25 nё muaj
Nёnshtetas mbi 65 vjeç    $25 nё muaj   
Palestra ka disa opsione pёr tё cilat anёtarёt duhet tё paguajnё plus.
Yoga      $10 plus
Karate      $15 plus
Trajtim personal  $30 plus
Bazuar nё muajt e regjistrimit palestra ofron ulje.
1 – 3 muaj      Ska ulje
4 – 6 muaj      5% ulje
7- 9 muaj      8% ulje
10 ose mё shumё muaj    10% ulje
Pёrdorusi duhet tё ketё opsionet e zgjedhjes sё moshёs, opsionet e ofruara nga
palestra dhe muajt qё dёshiron tё rregjistrohet. Pas kёsaj ai duhet tё klikojё
butonin “Llogarit” dhe programi duhet tё shfaqi pagesёn mujore dhe pagesёn
totale tё kёtij klienti. Palestra oron njё kontratё pёr anёtarёt e saj jo mё shumё se
dy vjetё, pra 24 muaj. Pra programi duhet tё pranojё vlerat pёr numrin e muajve
nga 1 nё 24, jashtё kёtyre vlerave njё mesazh ku tё thuhet se vlerat nuk janё tё Page 114 of 239
 
sakta, duhet tё shfaqet. Ndёrsa pёr vlerat nga 1 nё 24 programi duhet tё llogarisi
pagesёn mujore dhe totale tё anёtarit tё palestrёs. Bazuar nё Fig. 4. 19 ju duhet tё
ndёrtoni formёn e kёtij aplikimi. Tregoni kujdes tё vendosni nё forёm tё gjitha
kontrollet dhe i emёroni ato. Gjithashtu nё vazhdim po japim dhe flowchart pёr
kёtё program.   
 
Fig. 4. 19 Forma e aplikimit Anetaret e Palestres.
 Page 115 of 239
 
 
Fig. 4. 20 Flowchart pёr llogaritjen e tarifes mujore.
 
 
Fig. 4. 21 Flowchart pёr kalkulimin dhe opsionet shtese. Page 116 of 239
 
 
 
Fig. 4. 22 Flowchart pёr pёrcaktimin e uljes.
 
 
Fig. 4. 23 Flowchart pёr butonin Llogarit. Page 117 of 239
 
 
Tani ne jemi gati tё shkruajmё kodin pёr kёtё program.  
Etapa 1:   Fillimisht do tё vendosim dy variabla class-level. Kliko View Code nё
Solutions Explorer dhe type kodin si mё poshtё.  
Public Class Form1
    Inherits System.Windows.Forms.Form
 
    'Variabla konstante Class-level jane perdorur
    'per te llogaritur uljen.
    Const decUlje4ne6 As Decimal = 0.05D
    Const decUlje7ne9 As Decimal = 0.085D
    Const decUlje10neshume As Decimal = 0.1D
Etapa 2:   Hap Design window dhe kliko dy herё mbi butonin Llogarit dhe type kodin si
mё poshtё.
        'Kjo metode llogarit tarifat per anetaret.
 
        'Deklaron variablat local.
        Dim decBaze As Decimal   'Pagesa baze mujore
        Dim decUlje As Decimal   'Ulja sipas anetareve
        Dim decTotal As Decimal  'Tarifa totale per anetaret
        Dim intMujor As Integer  'Numri i muajve
 
        'Kerkon numrin e muajve dhe mbylle nese  
        'kemi te dhena jo te sakta.
        Try
            intMujor = CInt(txtMuaj.Text)
 
        Catch ex As Exception
            MessageBox.Show("Te dhena jo te sakta", "Gabim")
            Return
        End Try
 
        'Kerkon muajt, duhet te jene 1-24
        If (intMujor < 1) Or (intMujor > 24) Then
            MessageBox.Show("Te dhena jo te sakta", "Gabim")
            Return
        End If
 
        'Llogarit tarifen baze mujore
        If radRritur.Checked = True Then
            decBaze = 30
        ElseIf radFemije.Checked = True Then Page 118 of 239
 
            decBaze = 20
        ElseIf radStudent.Checked = True Then
            decBaze = 25
        ElseIf radNenshtetas.Checked = True Then
            decBaze = 25
        End If
 
        'Sherbimet  
        If chkYoga.Checked = True Then
            decBaze += 10
        End If
        If chkKarate.Checked = True Then
            decBaze += 15
        End If
        If chkPersonal.Checked = True Then
            decBaze += 30
        End If
 
        'Percakton uljen bazuar ne anetaresimin
        Select Case intMujor
            Case Is <= 3
                decUlje = 0
            Case 4 To 6
                decUlje = decBaze * decUlje4ne6
            Case 7 To 9
                decUlje = decBaze * decUlje7ne9
            Case Is >= 10
                decUlje = decBaze * decUlje10neshume
        End Select
 
        'Llogarit tarifen totale
        decBaze -= decUlje
        decTotal = decBaze * intMujor
 
        'Shfaq tarifat
        lblMuaj.Text = FormatCurrency(decBaze)
        lblTotal.Text = FormatCurrency(decTotal)
Etapa 3:   Hap pёrsёri Design window dhe kliko dy herё mbi butonin Pastron. Type
kodin e mёposhtёm.   
        'Pastron formen
        radRritur.Checked = True
        chkYoga.Checked = False
        chkKarate.Checked = False
        chkPersonal.Checked = False
        txtMuaj.Clear() Page 119 of 239
 
        lblMuaj.Text = String.Empty
        lblTotal.Text = String.Empty
Etapa 4:   Ju tashmё dini tё shkruani kodin pёr butonin Mbyll. Pasi tё shkruani kodin pёr
kёte buton, ruani programin dhe testojeni atё. Sigurohuni se vlerat e shfaqura
nga programi janё tё saktat, duke e testuar atё dhe me vlearat e figurёs sё
mёposhtme.   
Fig. 4. 24 Testimi pёr aplikimin Anetaret e Palestres.
 
 
 
 
 
 
 
 Page 120 of 239
 
Ushtrime dhe Problema
 
4.1  Pёrcakto gabimin me kodin nё vazhdim.
4.2  Kush do tё jetё vlera e variablёs x pёr kodin nё vazhdim?
Dim x As Integer = 5
Dim y As Integer = 7
if(x < y)
x = y – 3
4.3         Krijo njё flowchart pёr programin e paraqitur pёr fjalitё nested if. Trego
kujdes veçanarisht nё kushtet e problemit.
4.4         Krijo njё program i cili tё shfaqi pёr message box shenjёn !.
4.5         Plotёso fjalitё e mёposhtёme.
a)  Fjalia                               do tё ekzekutojё njё grup fjalishё nёse
kushti ёshtё i vёrtetё dhe njё tjetёr grup fjalishё nёse kushti ёshtё
jo i vёrtetё.  
b)  Metoda                           kthen string nё gёrma kapitale.  
c)  Metoda                           kthen string nё shkronja tё vogla.  
4.6      Converto kodin nё vazhdim nё formёn e fjalive case.
If intNumer >= 0 And intNumer <= 5 Then
  intMesazh = 7
Else If intNumer >= 6 And intNumer <= 10 Then
  intMesazh = 20    
Else If intNumer >= 11 And intNumer <= 15 Then
  intMesazh = 25
Else If intNumer >= 16 And intNumer <= 20 Then
  intMesazh = 50
Else If intNumer >= 21 And intNumer <= 30 Then
  intMesazh = 77 Page 121 of 239
 
Else
MessageBox.Show(“Te dhena te papranushme”)
End If  
4.7      Cili ёshtё ndryshimi ndёrmjet variablave class-level dhe variablave local?
4.8      Krijoni njё program i cili ti japi mundёsin pёrdorusit tё fusi dy numra.
Programi duhet tё pёrcaktojё cili numёr ёshtё mё i vogёl dhe cili ёshtё mё i
madh. Pёr secilin rast programi duhet tё shfaqi njё mesazh nё MessageBox,
ku tё tregojё se cili numёr ёshtё.
    
    
 Page 122 of 239
 
 
KAPITULLI 5
 
FJALITË LOOP
 
Ky kapitull do tё na shpjegojё fjalitё loop ose fjalitё qё pёrsёriten, tё cilat bёjnё tё
mundur qё njё fjali tё ekzekutohet disa herё apo nё pafundёsi. Fjalitё loop ashtu
siç dhe nёnkuptohet nga emri, do tё pёrsёriten deri sa programusi ti ndalojё ato. Si
dhe fjalitё e kushtёzuara fjalitё loop kanё tё nevojshёm njё shprehje boolean qё
pёrcakton sa herё fjalia do tё ekzekutohet. Fjalitё loop shumё shpesh mund tё
mёnjanohon nga pёrdorimi, por pёrdorimi i tyre lehtёson shumё punёn e
programusit, kёshtu qё ato jo vetёm nё Visual Basic por nё tё gjitha gjuhёt e
programimit janё shumё tё pёrdorshme.   
 
5.1 FJALITË DO WHILE LOOP
 
Njё fjali Do While ekzekuton tё njёjtёn fjali deri sa kushti bёhet jo i vёrtetё.
Si dhe fjalia if njё fjali while vlerёson kushtin e dhёnё dhe nёse ёshtё i vёrtetё
ekzekuton fjalitё tё  quajtura ndryshe struktura e fjalisё loop. Por nё ndryshim nga
fjalia if, fjalia while vlerёsohet pёrsёri pasi tё gjitha fjalitё e strukturёs sё loop
janё ekzekutuar dhe nёse kushti ёshtё i vёrtetё fjalitё e loop ekzekutohen pёrsёri
dhe kjo pёrsёritet dhe pёrsёritet deri sa kushti bёhet jo i vёrtetё. Nёse kushti nuk
bёhet kurrё jo i vёrtetё fjalia loop do tё ekzekutohet nё pafundёsi. Visual Basic ka
tre lloj loop: Do While loop, Do Until loop dhe For . . . Next loop. Ndryshimi
ndёrmjet tyre qёndron nё mёnyrёn se si ato e kontrollojnё pёrsёritjen e fjalive qё
ekzekutohen.   
Fjalia Do While ka dy pjesё tё rёndёsishme: njё shprehje boolen qё testohet pёr tё
vёrtetё ose jo tё vёrtetё dhe njё fjali apo grup fjalishё qё pёrsёriten pёr aq kohё sa
shprehja ёshtё e vёrtetё. Nё Fig.5. 1 jepet njё flowchart pёr Do While loop. Siç
shihet nga figura fillimisht testohet kushti, i cili nёse ёshtё i vёrtetё struktura do tё
vazhdojё me njё metodё. Pasi fjalitё e metodёs tё jenё ekzekutuar tё gjitha, kushti
vlerёsohet pёrsёri. Nёse kushti ёshtё i vёrtetё ky proçes pёrsёritet dhe pёrsёritet Page 123 of 239
 
derisa kushti tё bёhet jo i vёrtetё. Kur kushti nuk ёshtё i vёrtetё Do While loop
pёrfundon sё ekzekutuari.  
 
Fig.5. 1 Flowchart pёr Do While loop.
Mё poshtё po japim formatin pёr Do While loop.
Do While shprehja
fjalia ose fjalitё (mund tё kemi shumё fjali)
Loop
Ky tip loop fillon gjithmonё me Do While dhe mbaron me Loop. Ndёrmjet tyre
vendosen fjalitё tё cilat quhen “body”. Do While loop funksionon si njё fjali If qё
ekzekutohet duke u pёrsёritur.  
Nё vazhdim po japim njё kodё tё shkurtёr pёr njё Do While loop. Krijoni njё
projekt dhe provojeni atё. Pasi ne deklarojmё intNumero si integer qё fillon nё 1,
nё fjalinё Do While intNumero < 5 ne po japim kushtin pёr kёtё loop. Do While
loop do tё ekzekutohet deri sa variabla intNumero tё jetё mё e vogёl se 5.
Studioni me kujdes fjalitё e kёsaj loope dhe gjeni sa herё do tё ekzekutohet ajo?   
        Dim intNumero As Integer = 1
 
        Do While intNumero < 5
            lblMesazh.Text = CStr(intNumero)
            intNumero += 1
  Loop
Le tё konsiderojmё njё tjetёr shembull pothuajse tё njёjtё me shembullin e
mёsipёrm, por intNumero nuk ёshtё duke u rritur por ёshtё duke u zvogёluar. Nё
kёtё rast variabla intNumero fillon pёrsёri me vlerёn 1, por herёn e dytё qё ajo
ekzekutohet zvogёlohet me 1, pra do tё jetё 0, herёn tjetёr pёrsёri zvogёlohet me 1
dhe bёhet -1 dhe vazhdon nё tё njёjtёn mёnyrё tё zvogёlohet gjithmonё dhe mё Page 124 of 239
 
shumё. Pra variabla intNumero ёshtё gjithmonё mё e vogёl se 5, pra kushti i loop
gjithmonё ёshtё i vёrtetё. Kёto lloj loop quhen infinite loop pasi ata ekzekutohen
nё pafundёsi.    
        Dim intNumero As Integer = 1
 
        Do While intNumero < 5
            lblMesazh.Text = CStr(intNumero)
            intNumero -= 1
  Loop
Do While loop mund tё paraqitet nё dy forma: kushti tё vlerёsohet nё fillim, ky
quhet “pretest” dhe kushti tё vlerёsohet nё fund, ky quhet “posttest”. Tё dyja
llojet kryejnё saktёsisht tё njёjtin funksion, por ndryshimi ndёrmjet tyre qёndron
se pёr loop “posttest” tё paktёn ajo do tё ekzekutohet njё herё.    
Forma pёr njё pretest Do While loop.
Do While shprehja
fjalia ose fjalitё (mund tё kemi shumё fjali)
Loop
Nё tё njёjtin projekt qё krijuat mё parё, fjalinё qё do tё ekzekutohej kthejeni nё
formёn e komentit dhe shkruani njё fjali pёr tё shfaqur variablёn intNumero nё
njё MessageBox. Kodi do tё duket si mё poshtё.  
        Do While intNumero < 5
            'lblMesazh.Text = CStr(intNumero)
            MessageBox.Show(CStr(intNumero))
            intNumero += 1
  Loop  
Start Debugging dhe vini re se sa herё qё ju klikoni mbi butonin OK tё
MessageBox do tё shfaqen 1, 2, 3 dhe 4. Pas kёsaj windows pёr MessageBox do
tё zhduket, pasi loop ekzekutohet vetёm 4 herё. Nё vazhdim po japim flowchart
pёr kёtё kod tё shkurtёr.  Page 125 of 239
 
 
Fig.5. 2 Flowchart pёr pretest Do While loop.
Forma pёr njё posttest Do While loop.
Do  
fjalia ose fjalitё (mund tё kemi shumё fjali)
Loop While shprehja
Nё shembullin e mёposhtёm ne po japim tё njёjtin kod qё pёrdorёm dhe mё sipёr
por nё formёn posttest loop. Ndryshoni variablёn intNumero nga 1 nё 5 dhe
vёreni output. Ndryshoni variablёn intNumero nga 1 nё 5 dhe pёr pretest tё
programit tё mёsipёrm dhe shpjegoni ndryshimin qё vёreni me posttest.   
        Dim intNumero As Integer = 1
 
        Do
            'lblMesazh.Text = CStr(intNumero)
            MessageBox.Show(CStr(intNumero))
            intNumero += 1
        Loop While intNumero < 5 Page 126 of 239
 
intNumero
< 5
Shfaq
intNumero
Shton 1 ne
intNumero
Jo
 
Fig.5. 3 Flowchart pёr posttest DoWhile loop.
Pёr ta kuptuar mё mirё ndryshimin ndёrmjet pretest dhe posttest loop ne do tё
krijojmё njё program ku ti pёrdorim tё dyja mёnyrat. Pёr formёn e kёtij programi
na nevoiten dy TextBox ku do tё shfaqim numrat nga 0 nё 9. Nё fig po japim
testimin e programit dhe nё vazhdim po japim dhe kodin pёr butonin Llogarit.
 
Fig.5. 4 Forma dhe testimi pёr numrat nga 0 nё 9.
 Page 127 of 239
 
 
Nё vazhdim po japim kodin pёr butonin Llogarit.
        'Perdorimi Do While Loop.  
        '----------------------------------------------------------------
        'Shfaq numrat nga 0 ne 9
 
        Dim i As Integer
 
        'Metoda 1 pretest loop
        Do While (i <= 9)
            txtMesazh1.Text = txtMesazh1.Text & i & ","
            i += 1
        Loop
 
        'Vendos vleren i = 0 qe te perdoret perseri
        i = 0
 
        'Metoda 2 posttest loop
        Do
            txtMesazh2.Text = txtMesazh2.Text & i & ","
            i += 1
        Loop While (i <= 9)
 
Do Until loop
Do Until loop ekzekutohet derisa kushti i saj ёshtё i vёrtetё. Do Until loop ёshtё
shumё e ngjashme me Do While loop dhe gjithashtu pёrdor dhe dy mёnyrat
pretest dhe posttest.
Formati pretest pёr Do Until loop ёshtё si mё poshtё.
  Do Until shprehja
  fjali (mund tё jenё mё shumё se njё fjali)
  Loop
Ndёrsa formati pёr posttest ёshtё.
  Do  
       fjali (munt tё jenё mё shumё se njё fjali)
  Loop Until shprehja
 Page 128 of 239
 
5.2 FOR . . . NEXT LOOP
 
For . . . Next loop mund tё themi se ka pёrdorimin mё tё gjerё duke e krahasuar
me format e tjera tё loop. Kjo loop pёrdoret pёr situatat kur ne kёrkojmё tё
numёrojmё se sa herё loop ekzekutohet. Kjo loop ka vetёm formёn pretest dhe
nuk ka formёn posttest si Do While apo Do Until loop. Nё vazhdim po japim
formёn pёr For . . . Next loop.
  For Variabla = Vlera fillestare To Vlera e fundit [Rritja]
  fjali (mё shumё fjali mund tё kemi)
  Next Variabla
Le tё shohim tё gjitha pjesёt me radhё.
•  Variabla ёshtё njё variabёl e ciala duhet tё ketё njё vlerё numerike.
•  Vlera fillestare ёshtё vlera nё tё cilёn do tё fillojё tё numёrojё variabla.  
•  Vlera e fundit ёshte vlera e fundit qё ekzekutohet, e cila duhet tё jetё
numerike.
•  Rritet ёshtё njё vlerё numerike e cila tregon se sa rritet variabla pas çdo
ekzekutimi. Megjithatё pёrdorimi nuk ёshtё i detyruar, nёse nuk do tё
pёrdoret ndonjё vlerё pёr tё, automatikisht variabla do tё rritet me 1 çdo
herё qё ajo ekzekutohet.  
•  Fjalia Next variabla tregon fundin e loop dhe rrit variablёn me vlerёn e
treguar ose me 1 nё rastin kur nuk kemi vendosur ndonjё vlerё tё veçantё.  
Ky ёshtё njё shembull pёr For . . . Next loop. Krijoni njё projekt me njё forёm e
cila tё pёrmbajё vetёm njё buton Numero. Shto kodin e mёposhtёm pёr kёtё buton
dhe testoje atё. Sa herё do tё shfaqet fjala Vlora kur ju klikoni mbi butonin OK tё
MessageBox.  
For intNumero = 0 To 5
MessageBox.Show(“Vlora”)
Next intNumero    
1)  intNumero vendoset nё vlerёn fillestare 1.
2)  intNumero krahasohet me 5, nёse ёshtё mё e vogёl ose e barabartё me 5.
vazhdon mё poshtё, nё tё kundёrt loop pёrfundon ekzekutimin.
3)  ekzekuton fjalinё duke printuar fjalёn Vlora nё MessageBox.
4)  intNumero rritet me 1.
5)  shkon mbrapa nё etapёn e dytё dhe pёrsёrit etapat.    Page 129 of 239
 
 
Fig.5. 5 Flowchart pёr For . . . loop.
 
Step Value
Step Value ёshtё njё vlerё qё shtohet nё variabёl çdo herё qё For . . . Next
loop ekzekutohet. Nёse nuk vendoset ndonjё vlerё ajo rritet me 1. Shikoni kodin
nё vazhdim ku pas çdo here qё kodi ekzekutohet variabla x rritet me 10.
        Dim x As Integer
 
        For x = 0 To 50 Step 10
            txtMesazh.Text = txtMesazh.Text & x & ","
  Next x
Nё kёtё loop vlera e fillmit ёshtё 0, pas sajё vjen vlera 10, 20, 30, 40 dhe 50. Kjo
dallohet fare qartё, pasi tё gjitha vlerat printohen nё TextBox si nё Fig.5. 6.  
 
 
 
 
 
 
 Page 130 of 239
 
Fig.5. 6 Printimi i vlerave nga 1 nё 50 duke u rritur me 10.
 
 
Nё tё njёjtёn mёnyrё si pёr njё step value pozitive kemi dhe njё step value
negative. Nё kodin e mёposhtёm do tё marrim tё njёjtin output me kodin e
mёsipёrm, me tё vetmin ndryshim se vlerat do tё printohen duke filluar nga vlera
mё e madhe tek vlera mё e vogёl, 50, 40, 30, 20, 10 dhe 0. Vёrejeni kёtё nё kodin
e mёposhtёm.  
        Dim x As Integer
 
        For x = 50 To 0 Step -10
            txtMesazh.Text = txtMesazh.Text & x & ","
  Next x
Njё tjetёr funksion shumё i pёrdorshёm pёr for . . . next loop ёshtё mbledhja e
disa numra. Kodi i mёposhtёm bёn pikёrisht kёtё, deklaron njё variabёl intNumra
e cila shёrben pёr tё ruajtur numrat e mbledhur dhe pёr tja shtuar numrit
pasaardhёs. Krijoni njё program me njё buton tё quajtur “Mbledhja” dhe type
kodin e mёposhtёm.    
        Dim x, intNumra As Integer
 Page 131 of 239
 
        intNumra = 0
        For x = 1 To 50
            intNumra += x
        Next x
        MessageBox.Show("Shuma eshte " & intNumra.ToString())  
Por ne mund dhe tja lёmё nё dorё pёrdorusit se sa numra dёshiron tё mbledhi. Nё
tё njёjtёn forёm qё pёrdorёm pёr kodin e mёsipёrm shtoni dhe njё buton tjetёr dhe
type kodin e mёposhtёm.  
        Dim intNumero, intMaxNumer As Integer
        Dim dblTotal As Double = 0
        Dim dblNumer As Double
        Dim strInput As String
        intMaxNumer = CInt(InputBox("Sa numra doni te mblidhni."))
 
        For intNumero = 1 To intMaxNumer
            strInput = InputBox("Fusni nje numer.")
            dblNumer = CDbl(strInput)
            dblTotal += dblNumer
        Next intNumero
 
        MessageBox.Show("Shuma eshte " & dblTotal.ToString())
Fillimisht pёrdorusit i kёrkohet sa numra dёshiron tё mbledhi. Kjo arrihet
nёpёrmjet kodit tё mёposhtёm.  
intMaxNumer = CInt(InputBox("Sa numra doni te mblidhni."))
Nё kёtё kod ne po pёrdorim njё InputBox, tё cilin do ta shpjegojmё nё detaje nё
nё kёtё kapitull. Megjithatё tani ёshtё e rёndёsishme tё kuptohet se ata pёrodoren
pёr ti dhёnё mundёsinё pёrdorusit tё caktojё sa numra dёshiron tё mbledhi dhe
cilёt janё kёta numra. Vlera e vendosur nga pёrdorusi pёr maksimumin e numrave
qё do tё mblidhen, ruhet nё variablёn intMaxNumer dhe kjo pёrcakton vlerёn e
pёrfundimit tё ekzekutimit tё loop. Mё poshtё pёrdorusi vendos numrat deri sa
vlera intMaxNumer tё arrihet. Kur kjo vlerё arrihet loop pёrfundon sё ekzekutuari
dhe vlera e numrave tё mbledhur shfaqet nё MessageBox.  
Ndonjёherё ёshtё e nevojshme tё ndalojmё Do While, Do Until dhe For . . . Next
loop kur ato janё duke u ekzekutuar. Kjo arrihet nёpёrmjet fjalive Exit Do dhe
Exit For, tё cilat kur vendosen brenda kёtyre loop shkaktojnё pёrfundimin e tyre.
Le tё shohim se si kjo arrihet nё shembullin e dhёnё mё poshtё.  
        Dim intNumero, intMaxNumer As Integer
        Dim dblTotal As Double = 0 Page 132 of 239
 
        Dim dblNumer As Double
        Dim strInput As String
        intMaxNumer = CInt(InputBox("Sa numra doni te mblidhni."))
 
        For intNumero = 1 To intMaxNumer
            strInput = InputBox("Fusni nje numer.")
            If strInput = String.Empty Then
                Exit For
            Else
                dblNumer = CDbl(strInput)
                dblTotal += dblNumer
            End If
        Next intNumero
 
        MessageBox.Show("Shuma eshte " & dblTotal.ToString())    
Fjalia If . . . Then . . . Else e pёrdorur nё kёtё kod, bёn tё mundur qё nёse
pёrdorusi nuk fut ndonjё vlerё pёr numrat qё do tё mblidhen dhe klikon mbi
butonin “Cancel” ajo do tё kthejё vlerёn 0. Kjo arrihet duke pёrdorur fjalinё Exit
For, e cila pёrfundon ekzekutimin e loop. Megjithatё pёrdorimi i kёtyre llojё
fjalish kёrkon njё kujdes tё veçantё, pasi ato ndalojnё ekzekutimin e loop
normalisht.  
Ështё e rёndёsishme tё bёjmё njё pёrmbledhje tё shkurtёr pёr tё treja llojet e loop,
ku tё fukusohemi nё mёnyrёn se si tё pёrcaktojmё cilёn prej tyre ёshtё mё mirё
pёr tё pёrdorur. Siç e dini shumё programe mund tё shkruhen me tё treja llojet e
loop, por pёrdorimi i njёrёs mund tё ketё shumё avantazhe duke u krahasuar me
te tjerat.  
Do While Loop ёshtё e pёrdorshme kur ju dёshironi qё loop tё pёrsёritet pёr aq
kohё sa kushti tё jetё i vёrtetё. Do Until loop ёshtё shumё e ngjashme me Do
While loop dhe nё pёrgjithsi Do While loop ёshtё mё e pёrdorshme. Nё dallim
nga tё dy loop qё pёrmendёm mё sipёr, For . . . Next loop ёshtё vetёm pretest
loop, ajo asnjёherё nuk ёshtё posttest. Kjo loop pёrdoret kur numri i ekzekutimit
tё loop ёshtё i njojtur.   
 
5.3 NESTET LOOP
 
Ashtu si dhe nested If, nested loop ёshtё njё loop brenda njё loope. Imagjinoni
se si njё orё me akrepa funksionon. Kur akrepi i orёs kryen njё rrotullim, akrepi i
minutave ka kryer 60 rrotullime dhe kur akrepi i minutave kryen njё rrotullim
akrepi i sekondave ka kryer 60 rrotullime. Pra pёr njё rrotullim tё akrepit tё orёs Page 133 of 239
 
kemi 3600 rrotullime tё akrepit tё sekondave. E njёjta ide funksionon dhe pёr
nested loop. Vёreni se si kjo ide funksionon pёr kodin e mёposhtёm.  
        For ora = 0 To 24
            lblOra.Text = ora.ToString
            For minuta = 0 To 59
                lblMinuta.Text = minuta.ToString
                For sekonda = 0 To 59
                    lblSekonda.Text = sekonda.ToString
                Next sekonda
            Next Minuta
        Next Ora    
Kur loop e brendshme ekzekutohet 60 herё, loop pёr minutat ekzekutohet njё herё
dhe kur loop pёr orёn tё ekzekutohet 1 herё, loop pёr minutat do tё jetё
ekzekutuar 60 herё dhe loop pёr sekondat do tё jetё ekzekutuar 3600 herё. Vini re
se pёr gjetjen e numrit tё ekzekutimeve tё loop thjesht shumёzohet numri i
ekzekutimeve tё secilёs loop.   
 
5.4 INPUT BOXES DHE LIST BOXES
 
Input Boxe ёshtё njё mёnyrё e cila i jep mundёsinё pёrdorusit tё fusi tё
dhёna. Njё input box ka dy butona: OK dhe Cancel. Forma e shfaqjes sё input
boxes ёshtё:
InputBox(Prompt [, Title] [, Default] [, Xpos] [, Ypos])
  Prompt ёshtё njё string qё shfaqet nё input box, e cila ёshtё e vitmja qё
ёshtё e detyrushme.   
  Title ёshtё njё string qё shfaqet nё title bar dhe ёshtё jo e detyrushme.  
  Default ёshtё njё string e cila shfaqet fillimisht nё input box. Duke qenё se
vlera e saj nuk ёshtё e detyrushme, nёse nuk vendoset ndonjё vlerё pёr tё
ajo lihet bosh.  
  Xpos dhe Ypos vendosin pozicionin e input box duke marrё si referencё,
siç e kemi shpjeguar nё kapitullin e parё, cepin e sipёrm tё krahut tё majtё
tё ekranit. Xpos mat distancёn horizontale duke pasur si referencё cepin e
sipёrm tё krahut tё majtё tё ekranit. Nёse ne nuk vendosim ndonjё vlerё tё
caktuar, input box do tё vendoset nё mes tё ekranit. Ypos mat distancёn
vertikalisht dhe nёse nuk vendoset ndonjё vlerё e caktuar input box
pozicionohet afёrsisht nё kreun e sipёrm tё ekranit.  Page 134 of 239
 
Siç thamё mё sipёr input box ka dy butona: butonin OK i cili nёse klikohet
funksioni kthen njё vlerё string dhe butonin Cancel i cili kur klikohet kthen njё
string boshe.  
List box shfaq njё listё me objekte dhe i jep mundёsinё pёrdorusit tё zgjedhi njё
ose disa objekte nga kjo listё. Pёr tё krijuar njё list box kliko dy herё mbi ListBox
nё ToolBox, ose kliko mbi tё dhe tёrhiqe duke e mbajtur mousin tё shtypur.
Vendoseni atё nё pozicionin e dёshiruar. Pёr tё krijuar njё listё me objekte, nёn
Properties kliko mbi Items dhe kliko butonin nё tё djathtё. Do tё shfaqet njё
window i ri si nё Fig.5. 7, ku siç e shihni ne kemi type disa vlera: Vlora, Tirana,
Fieri dhe Durresi. Kini parasysh se vlerat duhet tё shfaqen secila nё njё rresht.
Pasi tё keni type tё gjitha vlerat siç tregohet nё Fig.5. 7, klikoni mbi butonin OK
dhe vini re se tё gjitha vlerat janё transferuar nё list box. Nё kёtё mёnyrё ne themi
se kemi krijuar njё list box.     
 
Fig.5. 7 String Collection Editor dialog box.
     Page 135 of 239
 
Njё tjetёr mёnyrё se si tё shtojmё objekte nё njё listё box ёshtё nёpёrmjet kodit:
ListBox.Items.Add(emёri i objektit qё do tё shtohet)
Provojeni kёtё duke shtuar nё formёn e mёsipёrme njё buton, klikoni dy herё mbi
tё dhe shtoni kodin e mёposhtёm. Start Debugging dhe kliko mbi butonin. Vini re
se emri Shkodra do tё shtohet nё listё.   
ListBox1.Items.Add("Shkodra")
Nё fjalinё e mёsipёrme fjala Shkodra shtohet nё fund tё listёs, por ka dhe njё
metodё e cila mund ta vendosi atё nё pozicione tё caktuara tё listёs. Kjo arrihet
sipas kodit tё mёposhtёm.
ListBox.Items.Insert(Inedx, emёri i objektit)
Nёse do tё dёshironim ta shtonim emrin Shkodra pas emrit Vlora nё kodin e
butonit do tё typet fjalia e mёposhtme dhe nё Fig.5. 8 tregohet se si emri Shkodra
do tё pozicionohet nё listёn e mёparshme:
ListBox1.Items.Insert(1, "Shkodra")
 
Fig.5. 8 Shtimi i emёrit Shkodra pas emёrit Vlora.
 Page 136 of 239
 
 
Po a ka ndonjё mёnyrё ku ashtu si objekti u shtua nё listё dhe tё lёvizet nga lista?
Kjo arrihet nёpёrmjet: Items.Remove. Kjo mёnyrё heq nga lista njё objekt tё
caktuar si nё fjalinё nё vazhdim ku fjalia Fieri lёvizet nga lista. Nёse pёr kodin e
mёposhtёm emri i objektit nuk ndodhet nё listё, atёherё asnjё objekt nuk do tё
lёvizet nga lista.   
ListBox1.Items.Remove("Fieri")
Metoda Items.Clear fshin tё gjithё objektet nga lista. Nёse fjalia e mёposhtёme do
tё pёrdoret pёr kodin e butonit, atёherё asnjё prej emrave tё qyteteve nuk do tё
ndodhej nё listё kur butoni tё klikohej.  
ListBox1.Items.Clear()  
Tani do tё krijojmё njё projekt ku tё pёrdorim list boxes.  
Etapa e parё: Krijoni njё forёm si nё Fig.5. 9, e cila tё pёrmbajё dy list boxes: e
para pёr emrat e personave tё cilёt do tё kёrkojnё ditёlindjen dhe e dyta pёr
ditёlindjet e tyre. Pёr tё krijuar listёn e parё kliko mbi list box, kliko mbi Items nё
windows Properties dhe kliko nё butonin e shfaqur djathtas. Type njё listё me
emrat e shokёve tuaj. Vendos vlerёn pёr Name: lstMuajt. Pёr list boxin tjetёr
kliko mbi tё dhe vepro nё tё njёjtёn mёnyrё si pёr tё parin, por pёr vlerёn e Name
vendos lstVitet.     
 
Fig.5. 9 Forma e aplikimit pёr dy list box.
 Page 137 of 239
 
Etapa e dytё: Vendos nё forёm njё buton dhe vendos vlerёn pёr Name: btnOk
dhe vlerёn pёr Text: OK. Kliko dy herё mbi butonin dhe type kodin e mёposhtёm.
        'Mban muajt qe jane zgjedhur
        Dim strInput As String
        If lstMuajt.SelectedIndex = -1 Then
            'Nuk eshte zgjedhur asnje muaj
            MessageBox.Show("Zgjidh nje muaj.")
        ElseIf lstVitet.SelectedIndex = -1 Then
            'Nuk eshte zgjedhur asnje vite
            MessageBox.Show("Zgjidh nje vite.")
        Else
            'Merr muajin dhe vitin qe jane zgjedhur
            strInput = lstMuajt.SelectedItem.ToString() & " " _
            & lstVitet.SelectedItem.ToString()
            MessageBox.Show("Ju zgjodhet " & strInput)
        End If
Le ta analizojmё me kujdes kodin. Nё pjesёn e parё tё fjalisё If po themi se nёse
pёrdorusi nuk zgjeth asnjё prej emrave, nё MessageBox do tё shfaqet mesazhi:  
Zgjidh nje muaj.
Nёse pёrdorusi zgjeth njё emёr por nuk zgjeth datёlindjen e personit, atёherё nё
MessageBox do tё shfaqet mesazhi:
Zgjidh nje vite.
Kuptohet se nёse zgjidhet njё datёlindje por nuk zgjidhet njё emёr mesazhi i parё
do tё shfaqet. Nёse zgjidhet njё emёr dhe datёlindja pёrkatёse nё MessageBox do
tё shfaqet mesazhi ku do tё tregohet emri dhe ditёlindja e tij. Pёr shembull nё
Fig.5. 10 pёrdorusi ka zgjedhur Vrano dhe datёlindjen e tij.  
 
 
 
 
 
 
 Page 138 of 239
 
Fig.5. 10 Pёrdorusi zgjodhi Vrano dhe 3-4-2003.
 
 
Etapa e tretё: Vendos dhe njё buton tjetёr i cili nёse pёrdorusi bёnё njё zgjedhje
gabim dhe kёrkon si emri ashtu dhe datёlindja tё mos jenё tё zgjedhura, kjo
arrihet duke klikuar butonin pastron. Kliko dy herё mbi butonin dhe type kodin e
mёposhtёm. Ajo çfarё ne po themi nё kёto dy fjali ёshtё se vlera e SelectedIndex
vendoset nё -1, qё do tё thotё se asnjё prej objekteve tё tyre nuk ёshtё i zgjedhur.
Kini parasysh se vlera e objektit tё parё ёshtё 0 dhe vazhdon me radhё 1, 2, 3 . . .
deri nё objektin e fundit qё ёshtё n – 1.   
        'Pastron list boxes duke mos qene e zgjedhur ndonje prej tyre
        lstMuajt.SelectedIndex = -1
        lstVitet.SelectedIndex = -1
Etapa e katёrt: Testo programin sipas tё gjitha mundёsive dhe sigurohu se tё
gjitha funksionet e tij janё tё sakta. Pas kёsaj ruaj programin dhe mbylle atё.  
List Box shumё kolonёshe
List box ka njё opsion MultiColumn nё windows Properties. Opsioni i saj
fillimisht shfaqet nё False por ne mund ta kthejmё nё True duke klikuar dy herё
mbi tё. Krijoni njё forёm dhe shtoni nё tё njё list box, vendosni vlerёn pёr Name:
lstKollonat, ktheni Multicolumn nё True dhe ColumnWidth nё 50 (numri i
elementёve). Shtoni njё buton dhe type kodin e mёposhtёm pёr tё. Nё Fig.5. 11
tregohet kjo List Box. Vini re se nё kёtё forёm shfaqet njё horizontal scroll bar tё Page 139 of 239
 
cilёn pёrdorusi mund ta lёvizi djathtas dhe majtas dhe tё zgjedhi ndonjёrin prej
elementёve.  
        Dim intNumer As Integer
        For intNumer = 0 To 50
            lstKollonat.Items.Add(intNumer)
  Next  
Fig.5. 11 List Box me Multicolumn.
 
 
Combo Boxes
Combo Boxes janё tё ngjashme me List Boxes dhe kryejnё tё gjitha funksionet qё
kryejnё List Boxes, por shfaqin dhe njё drejtёkёndёsh me funksionin si Text
Boxes. Pёrdorusi i ka tё dyja opsionet: tё zgjedhi njё objekt nga lista ose tё type
emrin e objektit nё tekstin e combo box. Nё tё dyja rastet teksti do tё ruhet nё
Text property. Emri standart pёr combo box ёshtё cbo dhe gjenden tre tipe combo
boxes: drop-down combo box, simple combo box dhe drop-down list combo
box.  
Drop-down combo box mund tё pёrdoret si text box ose si list box. Pёrdorusi
mund tё type emrin e objektit nё tekstin e shfaqur dhe ky tekst do tё ruhet nё Text
property, ose mund tё zgjedhi objektin nga lista dhe objekti kopjohet nё Text Page 140 of 239
 
property dhe shfaqet nё hapёsirёn e text box. Fillimisht lista kёtu nuk ёshtё e
shfaqur, por njё shigjetё djathtas mund tё klikohet dhe lista shfaqet.   
Simple combo box ёshtё i ngjashёm me drop-down combo box dhe i ka tё gjitha
funksionet e tyre. Ndryshimi ёshtё se lista nuk shfaqet si nё rastin e parё me njё
shigjetё, por ajo shfaqet e gjitha qё nё fillim.
Drop-down list combo box i ofron pёrdorusit opsionin e zgjedhjes nga lista por,
pёrdorusi nuk mund tё zgjedhi njё objekt duke e typur atё. Kur pёrdorusi zgjeth
objektin nga lista, objekti kopjohet nё tekstin nё krye tё como box dhe Text
property.  
Le tё krijojmё tani njё projekt pёr krijimin e combo boxes.
Duam tё krijojmё njё projekt ku pёrdorusi tё pёrdori combo boxes pёr tё shfaqur
nё label: Skuadrёn, Shetin dhe kategorin.
Etapa 1: Pasi tё keni krijuar njё projekt vendosni emrin e formёs Combo Box,
kini kujdes pёr tё bёrё kёtё duhet tё keni klikuar mё parё mbi forёm dhe pastaj
ndryshoni vlerёn pёr Text nё Combo Box. Krijoni formёn si nё Fig.5. 12.
Emёroini kontrollet duke u bazuar nё kodin qё ne do tё japim pёr secilin buton,
ose sipas dёshirёs suaj dhe pёrshtasni kodin. Ju tashmё jeni familjarizuar si me
krijimin e formёs ashtu dhe me shkruajtjen e kodit.    
Fig.5. 12 Forma pёr Combo Box.
 Page 141 of 239
 
Etapa 2: Kliko dy herё mbi butonin Trego dhe type kodin:
        'Shfaq zgjedhjen prej combo boxes
        lblSkuadrat.Text = cboSkuadrat.Text
        lblShtetet.Text = cboShtetet.Text
  lblKategoria.Text = cboKategoria.Text
Etapa 3: Kliko dy herё mbi butonin Pastron dhe type kodin:
        'Pastron combo boxes nga zgjedhjet e meparshme
        cboSkuadrat.SelectedIndex = -1
        cboSkuadrat.Text = String.Empty
        cboShtetet.SelectedIndex = -1
        cboShtetet.Text = String.Empty
        cboKategoria.SelectedIndex = -1    'Nuk mund te shkruhet ne cboArtist
 
        'Pastron label
        lblSkuadrat.Text = String.Empty
        lblShtetet.Text = String.Empty
  lblKategoria.Text = String.Empty
Etapa 3: Shkruani kodin pёr butonin Mbyll. Start Debugging dhe testoje
programin deri sa tё siguroheni se ai funksionon nё rregull.   
 
Pёrdorimi i fjalive With . . . End With
Kjo metodё pёrdoret pёr tё shkurtuar punёn e programusit. Vёreni kodin nё
vazhdim.
  txtEmri.Clear()
txtEmri.ForeColor = Color.Red
txtEmri.BackColor = Color.Blue
txtEmri.BorderStyle = BorderStyle.Fixed3D
Vini re se si emri txtName shfaqet katёr herё. Shikoni se si kjo mёnjanohet duke
pёrdorur fjalinё With . . . End With
With txtEmri
.Clear()
.ForeColor = Color.Red
.BackColor = Color.Blue Page 142 of 239
 
.BorderStyle = BorderStyle.Fixed3D
  End With
 
5.5 PROJEKTI KREDIA PËR VETURËN  
 
Nё kёtё projekt ne do tё ndёrtojmё njё aplikim, tё cilin na e kёrkon njё prej
bankave e cila ka shumё kёrkesa nga qytetarёt pёr kredi pёr vetura tё reja dhe tё
pёrdorura. Banka ofron kredi me interes mё tё ulёt pёr veturat e reja dhe nuk
ofron kredi mё pak se 6 muaj dhe mё shumё se 48 muaj. Nё Fig.5. 13 tregohet
forma e kёtij aplikimi dhe nё vazhdim jepen vlerat e disa prej controleve mё tё
rёndёsishёm.    
Fig.5. 13 Forma e aplikimit Kredia per Veturёn.
 
 
Control Name    Property     Property Value
txtKostua    Causes Validation  True
      Tabndex    1
      Tool Tip on ToolTip1 Fusni koston e veturёs. Page 143 of 239
 
Vini re se fjalia e tretё pёr property ёshtё Tool Tip on ToolTip1 tё cilёn ёshtё
hera e parё qё ne e pёrdorim. Pёrdorimi i saj krijon njё mёnyrё mё komode pёr
pёrdorusin, pasi kur pёrdorusi e vendos kursorin mbi kёtё text box, do tё shfaqet
mesazhi “Fusni koston e veturёs.” Kjo bёnё qё pёrdorusi ta ketё mё tё thjeshtё pёr
tё kuptuar funksionin e kёtyre kontrol. Pёr tё vendosur kёtё vlerё nё Properties
klikoni mbi Tool Tip on ToolTip1 dhe type mesazhin e treguar mё sipёr.  
Control Name    Property     Property Value
txtPagesaFillestare  Causes Validation  True
      Tabndex    3
      Tool Tip on ToolTip1 Fusni sasin e parave te paguara.
txtMuajt    Causes Validation  True
      Tabndex    5
      Tool Tip on ToolTip1 Fusni muajt qe do te merret kredia.
radRe      Causes Validation  True
      Tabndex    0
      Tool Tip on ToolTip1 Nese vetura eshte e re kliko ketu.
radPerdorur    Causes Validation  True
      Tabndex    1
      Tool Tip on ToolTip1 Nese vetura eshte e perdorur kliko.
lblPerqindVjetore  BorderStyle    Fixed3D
      Tabndex    1
      Tool Tip on ToolTip1 Perqindja vjetore.
lblOutput    TabIndex    2
btnLlogarit    Text      Llogarit
      Causes Validation  True
      Tabndex    3
      Tool Tip on ToolTip1 Kliko per te llogaritur pagesen. Page 144 of 239
 
btnPastron    Text      Pastron
      Causes Validation  False
      Tabndex    4
      Tool Tip on ToolTip1 Kliko per te pastruar formen.
btnMbyll    Text      Mbyll
      Causes Validation  False
      Tabndex    5
      Tool Tip on ToolTip1 Kliko per te mbyllur windows.
Nё vazhdim po japim proçedurat pёr aplikimin Kredia per Veturёn.  
Metoda        Pёrshkrimi                     
btnCalculate_Click       Llogarit dhe shfaq listёn me interesin dhe principal pёr
kredin
btnClear_Click        Pastron list box dhe text boxes
btnExit_Click        Mbyll windows
radNew_CheckedChanged    Tregon interesin nёse pёrdorusi zgjedh veturё e re
radUsed_CheckedChanged    Tregon interesin nёse pёrdorusi zgjedh veturё e vjeter
txtCost_Validating      Vlerёson nёse njё numёr futet nё text box
txtDownPayment_Validating   Vlerёson nёse njё numёr futet nё text box
txtMonths_Validating     Vlerёson nёse njё numёr futet nё text box Page 145 of 239
 
 
Fig.5. 14 Flowchart pёr butonin Llogarit.
 
Fig.5. 15 Flowchart pёr radRe.
 Page 146 of 239
 
 
Fig.5. 16 Flowchart pёr radPerdorur.
Pseudocode pёr radRe ёshtё dhёnё nё vazhdim dhe nё mёnyrё tё ngjashme jepet
dhe pseudocode pёr radVjeter.  
  If radRe zgjidhet Then
      Pёrqindja vjetore = 0.05
      Shfaq Perqindjen Vjetore nё label lblPerqindjaVjetore
  End If
 
Fig.5. 17 Flowchart pёr txtKostua. Page 147 of 239
 
 
 
Fig.5. 18 Flowchart pёr txtPagesaFillestare.
 
Fig.5. 19 Flowchart pёr txtMuajt. Page 148 of 239
 
Para se tё fillojmё tё shkruajmё kodin le tё shtojmё dhe njё ToolTip nё forёm. Pёr
kёtё nё Toolbox klikoni mbi ToolTip dhe vini re se si ajo shfaqet me njё
drejtёkёndёsh nё fund tё windows.  
 
Etapa 1: Le tё fillojmё tё shkruajmё kodin duke filluar me deklarimin e
variablave class-level. Nё Solution Explorer kliko mbi View Code dhe shkruaj
kodin e mёposhtёm. Ky kod nuk duhet tё jetё brenda ndonjё proçedure.
    Const intMIN_MUAJ As Integer = 6
    Const intMAX_MUAJ As Integer = 48
    Const sngMUAJ_VITE As Integer = 12     'Muaj ne vit
 
    'Percakton perqindjen mujore per veturat e reja dhe te perdorura
    Const dblRE_PERQIND As Double = 0.05
    Const dblPERDOR_PERQIND As Double = 0.06
    Dim dblPerqindVjetore As Double = dblRE_PERQIND    
Nё fjalin dblPerqindVjetore kjo variabёl deklarohet si class-level pasi ajo do tё
pёrdoret nga disa metoda. Ajo gjithashtu vendoset nё vlerёn dblRE_PERQIND
pёr arsyen se njё veturё e re do tё zgjidhet fillimisht.  
 
Etapa 2: Kliko dy herё mbi butonin Llogarit dhe shkruaj kodin e mёposhtёm.   
        'Llogarit dhe shfaq informacionin per kredin
        Dim intNumero As Integer    'Numeron lloop
        Dim intMuaj As Integer      'Muajt per kredi
        Dim dblKredia As Double     'Sasia e kredis
        Dim dblPagesa As Double     'Pagesa mujore
        Dim dblInteresi As Double   'Intersti i paguar per perioden
        Dim dblPrincipal As Double  'Pagesa fillestare
 
        'Merr muajt dhe llogarit kredin
        intMuaj = CInt(txtMuajt.Text)
        dblKredia = CDec(txtKostua.Text) - CDec(txtPagesaFillestare.Text)
 
        'Llogarit pagesen mujore
        dblPagesa = Pmt(dblPerqindVjetore / sngMUAJ_VITE, intMuaj,-dblKredia)
 
        'Pastron list box
        lstOutput.Items.Clear()
 
        For intNumero = 1 To intMuaj Page 149 of 239
 
            Dim strOut As String = String.Empty
 
            'Llogarit interesin
            dblPrincipal = PPmt(dblPerqindVjetore / sngMUAJ_VITE, intNumero, intMuaj, -
dblKredia)
 
            'Shton muajt ne output
            strOut &= " Muajt: " & intNumero.ToString
            'Shton pagesen ne output  
            strOut &= " Pagesa: " & FormatCurrency(dblPagesa)
            'Shton interesin ne output
            strOut &= " Interesi: " & FormatCurrency(dblInteresi)
            'Shton pagesen fillestare
            strOut &= " Principali: " & FormatCurrency(dblPrincipal)
            'Shton output ne list box
            lstOutput.Items.Add(strOut)
        Next intNumero
Nё variablёn dblKredia vendoset vlera e cila do tё llogaritet nga banka pёr
kredin, nёse do e thoshim me fjalё tё tjera borxhi. Kjo vlerё llogaritet duke zbitur
nga kostua e veturёs pagesёn fillestare. Nёse do tё blinim supozojmё njё veturё qё
kushtonte 30 mijё dollarё dhe ne kishim 2 mijё dollarё atёherё kredia qё do tё
merrnim nga banka do tё ishte 28 mijё dollarё.
Mё poshtё programi vazhdon me llogaritjen e pagesёs mujore.
dblPagesa = Pmt(dblPerqindVjetore / sngMUAJ_VITE, intMuaj, -dblKredia)  
Siç e shihni funksioni Pmt e lehtёson shumё punёn tuaj dhe ju nuk duhet tё
shqetёsoheni se si ai ёshtё krijuar, pasi prandaj dhe thamё qё nё kapitullin e parё
qё Visual Basic ёshtё njё gjuhё e nivelit tё lartё. Ajo qё ju duhet tё kuptoni ёshtё
funksioni i tij.  
Nё pjesёn e parё tё kёtij funksioni dblPerqindVjetore / sngMUAJ_VITE do tё
pjesёtoj pёrqindjen e ofruar nga banka me 12 muaj. Nё rastin tonё pёrqindja pёr
veturat e reja ёshtё 5%, atёherё 0.05 do tё pjesёtohet me 12 muaj dhe tё na japi
0.042 interesin periodik. Nё pjesёn e dytё variabla intMuaj do tё jetё vlera e
kohёs pёr tё cilin ne do tё marrim kredin. Pёr shembull nёse kredia do tё jetё pёr
dy vjetё kjo vlerё ёshtё 24. Nё pjesёn e tretё tё funksionit kemi kredin ose borxhin
e marrё nga banka. Kjo vlerё do tё jetё gjithmonё negative.  
Njё tjetёr funksion qё pёrdoret brenda for loop ёshtё funksioni PPmt:
dblPrincipal = PPmt(dblPerqindVjetore / sngMUAJ_VITE, intNumero, intMuaj, -dblKredia) Page 150 of 239
 
Siç e shihni tё gjitha pjesёt e kёtij funksioni janё tё ngjashme me funksionin Pmt,
pёveç intNumero nё pjesёn e dytё. Kjo pёrdoret pёr tё pёrcaktuar periodёn pёr tё
cilёn ju dёshironi tё llogarisni pagesёn e interesit.  
 
Etapa 3: Kliko dy herё mbi butonin Pastron dhe shkruaj kodin e mёposhtёm:
        'Pastron text box dhe list box
        radRe.Checked = True       'E kthen te klikuar
        'dblAnnualRate = dblNEW_RATE
        lblPerqindVjetore.Text = CStr(dblRE_PERQIND)
        txtKostua.Clear()
        txtPagesaFillestare.Clear()
        txtMuajt.Clear()
        lstOutput.Items.Clear()
 
        'Kthen kursorin
  txtKostua.Focus()
Çdo pjesё e kёtij kodi ёshtё e kuptushme dhe ju nuk duhet tё keni problem me tё.
Kliko dy herё mbi butonin Mbyll dhe shkruaj kodin pёr tё.  
 
Etapa 4: Kliko dy herё mbi radRe dhe type kodin:  
        'Nese butoni vetur e re eshte i zgjedhur  
        If radRe.Checked = True Then
            dblPerqindVjetore = dblRE_PERQIND
            lblPerqindVjetore.Text = FormatPercent(dblRE_PERQIND)
  End If
Mos u ngatёrroni me fjalinё e fundit pasi nё tё thjeshtё po vendoset nё label vlera
e pёrqindjes, 5%.  
 
Etapa 5: Kliko dy herё mbi radVjeter dhe type kodin:  
        'Perdorusi zgjedh butonin veture e vjeter
        If radVjeter.Checked = True Then
            dblPerqindVjetore = dblPERDOR_PERQIND
            lblPerqindVjetore.Text = FormatPercent(dblPERDOR_PERQIND)
  End If Page 151 of 239
 
Etapa 6: Klikoni shigjetёn qё gjendet nё kry tё kodit dhe klikoni mbi txtKostua.
Nё krahun e djathtё me atё qё klikuat mё parё klikoni shigetёn dhe nё listёn e
shfaqur klikoni nё Validating. Shkruani kodin si mё poshtё.  
        'Vlereson nese nje numer futet ne txtCost
        If Not IsNumeric(txtKostua.Text) Then
            MessageBox.Show("Kostua duhet te jete nje numer.")
            'Zgjedh tekstin e zgjedhur ne text box
            txtKostua.SelectAll()
            'Vendos kursorin  
            e.Cancel = True
        Else
            e.Cancel = False
  End If  
 
Etapa 7: Kryeni tё njёjtat veprime me etapёn 6, por tani kliko mbi
txtPagesaFillestare dhe type kodin:  
        'Vlereso se nje numer eshte ne text box
        If Not IsNumeric(txtPagesaFillestare.Text) Then
            MessageBox.Show("Pagesa fillestare duhet te jete nje numer.")
            'Zgjedh tekstin e zgjedhur ne text box
            txtPagesaFillestare.SelectAll()
            'Vendos kursorin  
            e.Cancel = True
        Else
            e.Cancel = False
        End If
 
Etapa 8: Kryeni tё njёjtat veprime me etapёn 6, por tani kliko mbi txtMuajt dhe
type kodin:
        'Vlereson nese eshte nje numer
        If Not IsNumeric(txtMuajt.Text) Then
            MessageBox.Show("Muajt duhet te jete nje numer.")
            'Zgjedh tekstin e zgjedhur ne text box
            txtMuajt.SelectAll()
            'Vendos kursorin  
            e.Cancel = True
        Else
            Dim intMonths As Integer = CInt(txtMuajt.Text)
 
            If intMonths < intMIN_MUAJ Or intMonths > intMAX_MUAJ Then Page 152 of 239
 
                MessageBox.Show("Muajt duhet te jene ne kufit e percaktuar")
                'Zgjedh tekstin e zgjedhur ne text box
                txtMuajt.SelectAll()
                'Vendos kursorin  
                e.Cancel = True
            Else
                e.Cancel = False
            End If
    End If
 
Etapa 9: Start Debugging dhe nёse ka gabime krahasojeni me kujdes me kodin
ton. Ruaj projektin dhe mbylleni atё. Ju kryet me sukses njё projekt jo dhe aq tё
leht i cili ёshtё gjerёsisht i pёrdorshёm.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Page 153 of 239
 
Ushtrime dhe Problema
 
5.1  Sa herё do tё shfaqet emri Vlora nё kodin nё vazhdim?
Dim intNumero As Integer = 0
Do While intNumero < 10
       MessageBox.Show(“Vlora”)
Loop
5.2  Sa herё do tё shfaqet emri Vlora nё kodin nё vazhdim?
Dim intNumero As Integer = 0
Do While intNumero < 10
       MessageBox.Show(“Vlora”)
       intNumero += 2
Loop
5.3  Sa herё do tё shfaqet emri Vlora nё kodin nё vazhdim?
Dim intNumero As Integer = 0
Do  
       MessageBox.Show(“Vlora”)
       intNumero += 1
Loop While intNumero < 10
5.4  Sa herё do tё shfaqet emri Vlora nё kodin nё vazhdim?
Dim intNumero As Integer = 10
Do  
       MessageBox.Show(“Vlora”)
       intNumero += 1
Loop While intNumero < 5 Page 154 of 239
 
5.5  Sa herё do tё shfaqet emri Vlora nё kodin nё vazhdim?
Dim intNumero As Integer = 0
Do While intNumero < 100
       MessageBox.Show(“Vlora”)
       intNumero += 1
Loop
5.6         Krijoni njё aplikim ku pёrdorusi tё ketё mundёsinё tё zgjedhi qytetin dhe ekipin
e futbollit tё kёtij qyteti. Lista duhet tё jetё e gjatё me tё paktёn dhjetё qytete.  
5.7         Ju duhet tё zgjidhni                        metodёn pёr tё vendosur tekstin e
zgjedhur nё text box.
a)  SetSelection
b)  GetSelection
c)  SelectAll
d)  SelectTex
5.8         Pёr projektin pёr kredin e veturёs banka ka vendosur tё rrisi minimumin e
muajve tё dhёnies sё kredisё nё 12 muaj dhe maximumin nё 60 muaj.  Gjithashtu
pёrqindja pёr veturat e reja do tё ndryshojё nё 7.25% dhe pёr veturat e vjetra nё
9%. Ç’farё duhet tё ndryshojё nё kodin e mёparshёm?  
 
 Page 155 of 239
 
 
KAPITULLI 6
 
ARRAYS
 
Gjatё programimit ne shpesh duam ti organizojmё objektet nё mёnyrё tё
tillё qё mund tё kemi akses dhe ti modifikojmё ato. Kjo ide ёshtё shumё e
rёndёsishme kur ne duam tё menaxhojmё njё numёr tё math vlerash, le tё
themi pёr shembull se kemi 1000 apo mё shumё tё dhёna. Nё kёtё kapitull
ne do tё flasim pёr arrays tё cilat janё komponent bazё jo vetёm pёr gjuhёn
Visual Basic por pёr shumicёn e gjuhёve tё nivelit tё lart. Arrays janё dy
llojёshe: njё dimensionale dhe shumё dimensionale. Nё kёtё kapitull ne do
tё trajtojmё disa teknika programimi si: shumёn dhe mesataren e
elementёve nё njё array, shumёn e tё gjitha kolonave nё njё array me dy
dimensione, kёrkimin nё njё array pёr njё vlerё specifike dhe pёrdorimin e
arrays paralele.   
 
6.1 ARRAY ME NJË DIMENSION
 
Njё array ёshtё njё grup variablash qё janё tё lidhura nё mёnyrё llogjike me
njёra – tjetrёn. Array u lejon ju tu referoheni kёtyre variablave me tё njёjtin
emёr dhe me njё numёr tё quajtur index. Secila prej kёtyre vlerave quhet element
i array, tё cilat fillojnё me index 0 dhe shkojnё deri nё indexin n – 1, ku n ёshtё
numri i elementёve. Nё fjalin e mёposhtёme po deklarojmё njё array me 10
element, pёr tё cilёt elementi i parё ёshtё 0 dhe elementi i dhjetё ёshtё 9.
Imagjinojeni se sa deklarime duhet tё bёnim nёse nuk do tё pёrdornim njё array,
do tё na duhej tё deklaronim çdo element tё saj.  
  Dim emri(10) As Integer  
Siç dhe e vini re ne e deklarojmё njё variabёl array nё tё njёjtёn mёnyrё si kemi
deklaruar variablat dhe mё parё, duke pёrdorur Dim. Emri i array ndiqet me njё
ose disa kllapa  dhe pas saj vjen lloji i tё dhёnave. Nё rastin tonё vlera brenda
kllapave ёshtё njё numёr, por ajo mund tё jetё dhe njё variabёl. Page 156 of 239
 
Njё tjetёr mёnyrё deklarimi ёshtё duke i deklaruar tё gjitha vlerat si nё njё listё.
Deklarimi i njё array nё kёtё mёnyrё quhet initialization list dhe jepet si mё poshtё:
  Dim emri() As Integer = { 10, 15, 20, 25, 30}   
Vlera 10 ёshtё ruajtur nё indexin 0, vlera 15 nё index 1 dhe vazhdon nё tё njёjtёn mёnyrё
deri nё fund tё listёs ku 30 ruhet me index 4. Siç thamё dhe mё sipёr elementёt e array
nuk ёshtё e thёnё tё jenё vetёm numra, ata mund tё deklarohen dhe si njё string array.  
  Dim emri() As String = { “Lanti”, “Liri”, “Vrano”, “Lajdi”}   
Ju mund tё ruani njё vlerё nё njё element tё array duke pёrdorur njё assignment
statement. Nё krahun e majtё tё operatorit = pёrdoret emri i array sё bashku me index.  
  intEmri(0) = 15
  intEmri(1) = 20
  intEmri(2) = 25
Referohuni Error! Reference source not found. pёr tё kuptuar mё mirё
idenё dhe pёrbёrёsit e array. Nё kёtё array emri i saj ёshtё numer,
elementёt e array janё 37, 23, . . . 79 dhe index pёr array janё 0, 1, . . . 9.
Vini re numrin pёr indexin e parё i cili ёshtё 0 dhe numrin pёr indexin e
fundit i cili ёshtё 9, pra njё mё pak nga numri i elementёve tё array i cili
ёshtё 10. Pёr ta pёrgjithsuar kёtё ide themi se indexi pёr çdo array fillon
me 0 dhe mbaron me n-1, ku n ёshtё numri i elementeve tё array. Vini re
kodin e mёposhtёm se si shkruhet pёr elementin e dytё tё array tё quajtur
numer.  
  numr (1) = 23;    
      vlera                         
numer  37  23  56  36  54  13  21  89  65  79
   0  1  2  3  4  5  6  7  8  9
      index                         
Fig. 6. 1 Njё array e quajtur numer.
6.1.1 Pёrdorimi i elementёve tё array me njё loop  
Pёrdorimi i loop nё array ёshtё shumё i vlefshёm kur kemi tё bёjmё me njё array
me shumё elementё, pasi shkruajtja e fjalive pёr secilin element do tё kёrkonte njё
kohё tё gjatё. Pёr shembullin e mёposhtёm intElement ёshtё njё array me 10
elementё. Pёrdorimi i For . . . Next loop ruan vlerёn 50 nё çdo element duke
filluar nga index 0 dhe pёrfunduar index 9.  Page 157 of 239
 
  Dim intNumero As Integer = 0
  For intNumero = 0 To 9
       intElement(intNumero) = 50   
  Next intNumero
Variabla intNumero merr vlerat nga 0 nё 9, kur loop pёrsёritet. Herёn e parё qё
loop ekzekutohet intNumero ёshtё i barabartё me 0 dhe fjalia
intElement(intNumero) = 50 do tё ruajё vlerёn 50. Herёn e dytё intNumero do tё
jetё i barabart me 1 dhe pёrsёri e njёjta fjali do tё vendosi vlerёn 50, nё tё njёjtёn
mёnyrё do tё vazhdojё deri nё indexin e 9. Pra vlera 50 do tё vendoset nё tё gjitha
elementёt e array duke filluar nga index 0 nё index 9.
 
6.1.2 Fjalia For Each
Fjalia For Each ёshtё njё rast special i fjalisё loop. Formati i saj ёshtё si mё
poshtё.
For Each variabёl In Array
     Fjali (mё shumё fjali mund tё ketё)
Next variabёl
•  variabёl ёshtё emri i variablёs qё prezanton njё element tё arry gjatё secilit
ekzekutim tё loop.
•  Array ёshtё emri i array pёr tё cilin loop po operon
Le tё shohim njё shembull mё konkret pёr tё kuptuar mё mirё pёrdorimin e kёsaj
fjalie.
Dim strUniversitet As String() = { “Miri”, “Tani”, “Eno” }
Dim strEmri As String
For Each strEmri In strUniversitet
     MessageBox.Show(strEmri)
Next strEmri   
Nё kodin nё vazhdim po japim tё njёjtin shembull por duke pёrdorur Do While
loop.
  Dim intNumero As Integer Page 158 of 239
 
  Do While intNumero < 10
       intElement(intNumero) = 50
       intNumero += 1
  Loop     
    
6.1.3 Pёrcaktimi i Elementёve nё Array
Ne e kemi shpjeguar dhe mё parё nё kёtё kapitull se index ёshtё i barabartё me
numrin e elementёve minus 1. Nё fjalin e mёposhtёme kemi 11 elementё.
  Dim intElement(10) As Integer
Le tё shohim tani se si mund tё pёrdorim gjatёsinё e array nё njё loop. Nё kodin e
mёposhtёm shprehja intElement.Length - 1 pёrcakton vlerёn maksimale qё loop
mund tё marri.
For intNumero = 0 To (intElement.Length – 1)
     MessageBox.Show(intElement(intNumero).ToString())
Next intNumero  
Nё kodin nё vazhdim pёrdorimi i For . . . Next loop pёrdoret me njё tjetёr
funksion, mbleth tё gjitha vlerat e elementёve me njёri - tjetrin. Variabla intTotali
pёrdoret si njё akumulator, ku vlera fillestare e saj ёshtё 0.  
Dim intElement(10) As Integer
Dim intTotali As Integer
Dim intNumero As Integer
For intNumero = 0 To (intElement.Length – 1)
     intTotali += intElement(intNumero)
Next intNumero
 
6.1.4 Llogaritja e Mesatares nё Array
Pёr tё llogaritur mesataren nё njё array fillimisht duhet tё mblidhen tё gjitha vlerat
dhe kjo vlerё duhet tё pjesёtohet me numrin e elementёve tё array.  
Dim intElement(10) As Integer Page 159 of 239
 
Dim intTotali As Integer
Dim dblMesatarja As Double
Dim intNumero As Integer
For intNumero = 0 To (intElement.Length – 1)
    intTotali += intElement(intNumero)
Next intNumero
‘Llogarit mesataren
dblMesatarja = intTotali / intElement.Length  
Tregoni kujdes nё fjalin e fundit e cila duhet tё ekzekutohet pasi loop tё ketё
pёrfunduar ekzekutimin e saj.  
 
6.1.5 Gjetja e vlerёs mё tё madhe dhe mё tё vogёl nё array.  
Algoritmet pёr gjetjen e vlerёs mё tё madhe ose mё tё vogёl janё shumё tё
ngjashёm. Le tё shohim fillimisht algoritmin pёr gjetjen e vlerёs mё tё madhe.  
Dim intElement(10) As Integer
Dim intNumero As Integer
Dim intMax As Integer = intElement(0)
For intNumero = 1 To (intNumero.Length – 1)
    If intElement(intNumero) > intMax Then
        intMax = intElements(intNumero)
    End If
Next intNumero
 Kodi fillon duke ruajtur vlerёn e elementit tё parё tё array nё varablёn intMax.
Nё vazhdim For . . . Next loop krahason tё gjitha vlerat e tjera tё elementёve tё
array me vlerёn qё ndodhet nё pozicionin e parё, ose me vlerёn qё ka index 0.
Nёse gjendet njё vlerё e tillё ajo ruhet nё varablёn intMax. Pasi tё gjitha vlerat
janё krahasuar, vlera nё variablёn intMax do tё jetё mё e madhja.  Page 160 of 239
 
Mё poshtё jepet kodi pёr gjetjen e vlerave mё tё vogla, i cili ёshtё shumё i
ngjashёm me kodin e mёsipёrm.  
Dim intElement(10) As Integer
Dim intNumero As Integer
Dim intMin As Integer = intElement(0)
For intNumero = 1 To (intNumero.Length – 1)
    If intElement(intNumero) < intMin Then
        intMin = intElements(intNumero)
    End If
Next intNumero
 
   6.1.6 Kopjimi i njё array nё njё tjetёr
 
Vёreni kodin nё vazhdim.
Dim intVlereRe(2) As Integer
Dim intVlereVjeter(2) As Integer
intVlereVjeter(0) = 50
intVlereVjeter(1) = 60
intVlereVjeter(2) = 70
Nёse ne dёshirojmё tё kopjojmё pёrmbajtjen e intVlereVjeter nё intVlereRe ne
nuk mund ta bёjmё atё si me kodin nё vazhdim.
  intVlereRe = intVlereVjeter  
Kjo fjali nuk kopjon vlerat e njё array tek tjetra, por ajo vetёm sa emrat
intVlereRe dhe  intVlereVjeter i referohen tё njёjtёs array nё memorie. Pёr tё
arritur kopjimin e vlerave tё njё array nё njё tjetёr duhet pёrdorur loop, me anёn e
sё cilёs çdo vlerё e elementёve tё intVlereVjeter kopjohet nё intVlereRe array.   
For intNumero = 0 To (intVlereVjeter.Length–1) Page 161 of 239
 
     intVlereRe(intNumero) = intVlereVjeter(intNumero)
Next intNumero  
 
6.1.7 Array paralele
Paralel arrays janё dy ose mё shumё arrays qё mbajnё tё dhёna qё kanё lidhje
ndёrmjet tyre. Ndonjёherё ёshtё e nevojshme pёr te ruajtur tё dhёnat nё dy ose mё
shumё arrays.  
Dim strEmri(4) As String
Dim strAdresa(4) As String
Array strEmri ruan emrat e pesё njerёzve dhe array strAdresa ruan adresat e tyre
pёrkatёse. Informacioni pёr personin e parё ruhet nё: emri nё strEmri(0) dhe
adresa nё strAdresa(0). Nё mёnyrё tё ngjashme ruhet informacioni pёr tё gjithё
personat.    
Loop nё vazhdim shfaq emrin dhe adresёn e çdo personi nё njё list box tё quajtur
lstNjerёz.  
For intNumero = 0 To 4  
      lstNjerez.Items.Add( “Emri:” & strEmri(intNumero) & “Adresa:” &  
strAdresa(intNumero)
Next intNumero  
Shikoni se si nё fjalitё nё vazhdim ruhen emrat nё list box. Kur kёto fjali
ekzekutohen “Gjergji Shaska” ruhet nё index 0, “Dritan Lena” nё index 1 dhe
“Erion Kisi” nё index 2.    
lstNjerez.Items.Add(“Gjergji Shaska”)
lstNjerez.Items.Add(“Dritan Lena”)
lstNjerez.Items.Add(“Erion Kisi”)
Gjithashtu supozojmё se aplikimi ka njё string array tё quajtur strTelefon, e cila
mban numrat e telefonit tё tre personave qё emrat e tyre janё ruajtur nё lstbox.  
strTelefon(0) = “20-235-1398”
strTelefon(1) = “20-245-1398”  Page 162 of 239
 
strTelefon(2) = “20-255-1398”  
Numri i telefonit i ruajtur nё index 0 (“20-235-1398”) i pёrket personit qё emri i
tij ёshtё ruajtur nё index 0 (“Gjergji Shaska”). Nё tё njёjtёn mёnyrё lidhen dhe
elementёt e tjerё tё array. Kur pёrdorusi zgjedh njё emёr nga list box, numri i
telefonit tё kёtij personi do tё shfaqet.  
 
 6.1.8 Searching Arrays
Shpesh lind nevoja pёr tё kёrkuar objekte tё veçantё nё njё array, ku metoda mё e
pёrdorshme ёshtё sequantial search. Ajo pёrdor njё loop pёr ekzaminimin e
elementёve nё njё array, njёri pas tjetrit, duke filluar me tё parin dhe duke
vazhduar deri sa ta gjejё atё.
Kodi pёr sequantial search ёshtё si mё poshtё, ku kodi kёrkon pёr njё element me vlerёn 100.
Kjo vlerё kёrkohet nё njё array tё quajtur mesatarja e cila nёse e gjen vlerёn 100 nё array shfaq
mesazhin: "Urime, mesatarja juaj eshte 100" dhe nёse nuk e gjen vlerёn 100 shfaq mesazhin:
"Mesatarja juaj nuk eshte 100". Krijoni njё projekt me njё forёm e cila tё ketё njё buton me
emrin Searching dhe fusni kodin e mёposhtёm pёr tё.     
        Dim mesatarja() As Integer = {87, 70, 99, 100, 80}
        'Kerkon pёr 100 ne array
        Dim gjen As Boolean = False
        Dim intNumero As Integer = 0
 
        Do While Not gjen And intNumero < mesatarja.Length
            If mesatarja(intNumero) = 100 Then
                gjen = True
                'position = intNumero
            End If
            intNumero += 1
        Loop
 
        '100 eshte ne array?
        If gjen Then
            MessageBox.Show("Urime, mesatarja juaj eshte 100", "Resultatet")
        Else
            MessageBox.Show("Mesatarja juaj nuk eshte 100", "Resultatet")
        End If
 Page 163 of 239
 
6.1.9 Sorting array
Shpesh herё vlerat nё njё array janё tё ruajtura duke filluar nga vlera mё e vogёl
tek vlera mё e madhe. Vlera mё e vogёl ёshtё ruajtur nё index 0 dhe vlera mё e
madhe ёshtё ruajtur nё indexin mё tё madh. Pёr tё realizuar kёtё pёrdoret metoda
Array.Sort.
Supozojmё se kemi tё deklaruar array:
Dim intNumra() As Integer = {11, 7, 35, 23, 26}
Fjalia nё vazhdim do ti vendosi vlerat sipas radhёs nё rritje.
Array.Sort(intNumra)  
Pasi kjo fjali tё ekzekutohet vlerat e array do tё jenё si:
  {7, 11, 23, 26, 35}
E njёjta ide funksionon dhe pёr string array. Krahasimi kёtu bёhet sipas Unicode tё cilin
ne e kemi diskutuar mё parё, por sa pёr ta kujtuar raditja e tyre ёshtё: numёrat,
shkronjat e mёdha dhe sё fundi vinё shkronjat e vogla.
Pёr shembull nё deklarimin e mёposhtёm kemi:
Dim strEmra() As String = {"Vlora", "arritje", "345", "Altin"}  
Array.Sort(strEmra)  
Pasi fjalia tё ekzekutohet kemi: “345”, “Altin”, “Vlora” dhe “arritje”    
 
Make a Free Website with Yola.