3. Urdhëratë për kontroll të rrjedhës në C++

download 3. Urdhëratë për kontroll të rrjedhës në C++

of 24

Transcript of 3. Urdhëratë për kontroll të rrjedhës në C++

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    1/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 1

    3. Urdhrat pr kontroll t rrjedhs

    Prmbajtja:

    Blloqet e me urdhra

    Degzimi me kusht urdhri if

    Operatori i kushtit ?:

    Urdhri switch

    Unaza for

    Urdhri while

    Do-while

    Urdhri break

    Urdhri continue

    3.1 Strukturat degzuese n program

    Pr zgjidhjen e shumics s detyrave t nevojshme jan struktura t programit tek t cilat radha

    e ekzekutimit t urdhrove varet n vlerat e t dhnave q prpunohenDegzimi sht struktur e programit e cila mundson rrjedh t ndryshme t programit,

    varsisht prej kushtit t parashtruar Shembull i strukturs degzuese n program:

    o Shfrytzuesi jep numr t plot, m pas llogaritet vlera absolute e ktij numri dheshtypet rezultati

    Strukturat degzuese n program mund t realizohen me urdhrat if ifelse ifelse if - else switchcase

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    2/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 2

    3.1.1 Blloqet me urdhra

    Rrjedha e programit nuk sht lineare dhe varet prej kushteve t ndryshme.Pjes t programeve t cilt ekzekutohen me kusht ose q prsriten, grupohen n blloqe(trsi logjike).

    Blloku i urdhrove futet n brenda kllapave gjarprushe, dhe pr shkak t lejueshmris mt mir t programit shkruhen pak t shtyra brenda.

    #include

    using namespace std;int main() {

    int a;{

    cin>>a; ;

    int b=a-3;

    cout

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    3/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 3

    system ("PAUSE");

    return 0;

    }

    Nse prpiqemi ta shtypin vlern e saj nga funksioni kryesor main. N Dev C++, Nseprpiqeni t prkthehet ndodh gabimi shih rreshti 12.

    Kllapat mund t mos prdoren nse blloku prbhet vetm prej nj komande

    Urdhrat prkontroll t rrjedhs s programitkushtzojn ekzekutimin e blokut (urdhri if-else), prsrisin ekzekutimin numr t caktuar hersh(unaza for) ose prsrisin ekzekutimin

    deri te ndonj kushtt mos plotsohet(while-do, do-while)

    3.1. 2 Degzimi i kushtzuar me nj degurdhri if

    Pr degzim t kushtzuar me nj deg prdoret urdhri if.

    If(kushti)

    {blloku i urdhrave

    }Urdhr pas bllokut

    Kushti sht shprehje logjike, shkruhet brenda kllapave t rrumbullakta.

    N fund t urdhrit ifnuk vendoset shenja ;Shembull:

    Duhet dhn numr t plot t ndryshm prej 0, t testohet se a sht negativ ose pozitiv. Prt dyja rastet shtypet vlera absolute e numrit.

    Shtypja le t jet e forms :o Jep numr te plote te ndryshm prej 0:

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    4/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 4

    Numri ... sht .... Vlera absolute e tij sht Nse sht (a0).

    Nse nuk plotsohet edhe kushti i (pr a=0), blloku i dyt i urdhrove kaprcehet dheekzekutimi kalon prej urdhritreturn 0.

    Pr a0

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    5/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 5

    3.1. 3 Degzimi i kushtzuar me dy deg

    Pr degzim t kushtzuar me dy deg prdoret urdhri if-else

    If(kushti)

    {blloku i par i urdhrave}

    else{blloku i dyt i urdhrave

    }Urdhri pas bllokut

    Nse vlera e kushtit sht logjika e vrtet ekzekutohet blloku i par. Pas ekzekutimit t tijekzekutimi vazhdon prej urdhrit t par pas bllokut t dyt.

    Nse vlera e kushtit sht logjika e pa vrtet, kalohet blloku i par dhe ekzekutohet blloku idyt(pas urdhrit else). Pas ekzekutimit t saj ekzekutimi fillon prej urdhrit t par pas bllokut

    t dyt.

    Shembull: Detyra e kaluar duhet t zgjidhet me prdorimin e kushtit t dyfisht t degzimitShkrimi l ta ket formn:

    Jep numr te plote te ndryshm prej 0: Numri ... sht .... Vlera absolute e tij sht

    Shembulli tani sht zgjidhur m ndihmn e urdhrit if-else Nse sht (a0), kaprcehet blloku i par dhe ekzekutohet blloku i dyt

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    6/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 6

    Pr a

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    7/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 7

    3.1.5. Degzimi i shumfisht me kusht if-else if-else

    Pr degzim t shumfisht me kusht prdoret urdhri if-else if-else Numri i kushteve t parashtruar nuk sht i kufizuar Nse vlera e kushtit t par sht logjika e vrtet(1), ekzekutohet blloku i par i urdhrove.

    Pas prfundimit t tij ekzekutimi vazhdon prej urdhrit t par pas bllokut t fundit tkomands

    Nse vlera e kushtit t par sht logjika e pavrtet (0), testohet kushti i dyt Nse ky sht logjik e vrtet(1), ekzekutohet blloku i dyt, e m pas urdhri i par pas

    bllokut t fundit t urdhrit

    Nse vlera e kushtit t dyt logjika e pa vrtet, testohet kushti i tret, etj Testimi vazhdon kshtu me radh deri te urdhri else. Nse deri ktu asnjri prej kushteve nuk ka pas vler t logjiks s vrtet(1) ekzekutohet

    blloku i fundit i urdhrove q ndodhet pas urdhrit else.

    if(kushti1)

    {blloku1}

    else if(kushti2){bllok2}

    else if (kushti3)

    {bllok3}

    .

    .

    else

    { bllok n}

    Kushtetshprehje logjike (5-6 > 0, a == b)Shembull:shembulli i kaluar mundet t zgjidhet me prdorimin e degzimit t shumfisht me kusht

    Shtypja le ta ket formn :Jep numr te plote :

    Numri . . . sht negativ... Vlera absolute e e tij shtNumri . . . sht pozitiv... Vlera absolute e tij sht

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    8/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 8

    keni dhn 0. Vlera absolute e 0 sht 0

    3.1.6 Urdhri switch

    Nse shpreha e cila testohet mund t marr shum vlera t ndryshme, pr shkak t dukshmris nvend t urdhrit ifprdoret urdhri switch

    Switch(shprehja_numr iplot)

    {

    Caseshprehja_1_konstant://blloku i par i urdhrave

    break;

    Caseshprehja_2_konstant:

    //blloku i dyt i urdhravebreak;

    .

    .default:

    // blloku i n-t i urdhrave}

    True

    blloku i n-t

    i urdhrave

    False

    False

    blloku i par

    i urdhrave

    blloku i dyt

    i urdhrave

    .

    .

    .

    Kushti1: shprehja_numri plot= =

    shprehja_1_konstant

    Kushti2: shprehja_numri plot= =

    shprehja_2_konstant

    True

    Kushti1

    Kushti2

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    9/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 9

    Hapi i par sht n llogaritjen e vlersshprehja_numriplot Barazia e kushtit me ndonjrn shprehje testohet sipas radhs s shkruara n program. Nse

    barazia plotsohet ekzekutohen sekuencat me komanda t shkruara pas :(nuk pr prdoren

    simbolet {} e bllokut!) Pas ekzekutimit t bllokut prkats kalohet testimin e barazis t kushtit tjetr Sigurin pr ndrprerjen e testimit t mtutjeshmurdhri breakn fund t bllokut

    shkakton ndrprerjen e ekzekutimit t komandsswitch

    Nseshprehja_numr iplotnuk sht e barabart me asnjrin nga kushte, ekzekutohetblloku me komanda mbas urdhrit defaul.

    Shembull: Duhet llogaritet rezistenca ekuivalente pr rezistencat R1 dhe R2, varsisht se se a jan tlidhura n seri ose paralel. Pr przgjedhje t lidhjes serike shfrytzuesi jep 1 ndrsa pr rastin

    paralele jep 2. Bashk veprimi le t jet i forms:Rezistenca R1 (ne om):Rezistenca R2 (ne om):

    Pr lidhje te rezistencave ne seri shkruaj 1, \Ndrsa pr paralel 2:Nse rezistencat prej ...om dhe .... om lidhen ne ..... rezistenca totale sht ...om.

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    10/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 10

    3.2 Struktura unaz

    Shpesh n program nevojitet t prsritet ndonj pun shum her(iterirohet). Strukturat e

    tilla t programit quhen Unaza

    Prsritja mundet t jet :

    o numr t paracaktuar her,

    o prderisa nuk plotsohet ndonj kusht i dhn

    Si p.sh struktur e programit

    unaz mund t shrben detyra:

    Shfrytzuesi duhet dhn 100

    numra t plot, para do dhnie?

    Numri i tekstit t shtypur? "Jepnumrin".

    Struktura unaz mund t realizohet me urdhrat :

    o for,

    o while

    o do-while

    Prsritjaeu

    nazs

    100h

    er

    fillimi

    x

    Jep Numrin

    Fund

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    11/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 11

    3.2.1 Unaza forUrdhri form s shpeshti prdoret kur pjes t

    programit duhet t prsriten n numr tparacaktuar her. Pra dihet numri i herve t

    prsritjes s bllokut.

    Forma baz e unazs forsht :

    for(shprehja_fillestare; kushti_ekzekutimit;

    shprehja_rritjes){//blloku i urdhrave

    }

    Secila unaz forka variabln e vet t kontrollit.Vlera e saj pr do kalim npr unaz ndryshon

    varsisht nga vlera e rritjes s shprehja_rritjes;Variabln e kontrollit t unazs duhet para hyrjes

    n unaz t deklarohet.N unaz jepet m s pari vlera e gjendjesfillestare e variablit t kontrollit t unazs

    (gjendja fillestare=shprehja_fillestare)

    shprehja_fillestare m s shpeshti shtshoqrimi i vlers fillestare numruesit.

    Pas gjendja fillestare= shprehja_fillestareshkruhet kushti_ekzekutimit; Rezultati i testimit

    kushti_ekzekutimitduhet t jet boolNse rezultati i testimit i vrtet(true)

    ekzekutohet blloku i urdhrave dhe llogaritetshprehja_rritjes

    shprehja_rritjes sht vlera me t cilnndryshon vlera e variablit t kontrollit t unazs;

    shprehja_rritjes ndryshim i vlers s variabls skontrollit pr vlern e rritjes

    Nse rezultati i testimit i jo i vrtet(false) dilet

    nga unaza

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    12/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 12

    Shembull: Duhet shtypur numrat prej 1 deri 10. Duhet dhn vlern fillestar t variablit t kontrollit (numrues=1, t vendoset kushti

    kushti_ekzekutimit (numrues

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    13/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 13

    Kujdes: unaz pa kufi

    Duhet ndryshur programin e m siprm kshtu:

    for(numerues=m; numerues

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    14/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 14

    Shembull:

    Duhet shtypur numrat ift n intervalin 100 deri 50

    Numrat ift prej intervalit100 deri 50 jan:

    100 98 96 94 . . . . 52 50

    Vrejtje:shprehja_rritjes mund t jet edhe negative dhe n kt rast vlera e variablit t kontrollit t

    unazs zvoglohet. N kt rast vlera fillestare e variblit t kontrollit t unazs duhet t jet m emadhe se ajo prfundimtare.

    p.shshprehja_rritjes mund t jet

    numrues= numrues -2 ( numrues-=2)

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    15/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 15

    Shembull:Duhet mbledh 100 numrat e par natyral ashtu q te jepet edhe mesazhi kshtu:

    Shuma e 100 numrave te pare natyral sht: .....

    Me rastin e hyrjes n unaz duhet:

    - deklaruar varibln q do t prmban vlerat e astit t variablit t kontrollit t unazs(p.sh.

    shuma) pr do kalim npr unaz

    -Varibls shuma duhet shoqruar vlern zero

    Urdhri n bllok mundson rritjen e vlers s variabls shuma pr vlern aktuale t variabls s

    kontrollit (numrues)

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    16/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 16

    Unaza for t ndrthurura Unaza for mund t vendoset brenda nj tjetre

    N hyrje t unazs s jashtme, variabla e kontrollit t saj vendoset n vlern fillestare. Me kt vler hyjet n unazn e brendshme

    N hyrje t unazs s brendshme, variabla e kontrollit t unazs s brendshme vendoset

    n vler fillestare dhe derisa kusht sht plotsuar, ekzekutohet blloku i urdhrave t

    unazs s brendshme.

    Pas prfundimit t unazs e brendshme, variabla e kontrollit unazs jashtme ndryshon pr

    vlern shprehja e rritjes 1 dhe kontrollon(teston) kushtin e unazs s jashtme.

    Pr do vler t variablit t kontrollit t unazs s jashtme ekzekutohet e tr unaza ebrendshme.

    Shembull duhet shtypur tabeln e shumzimit pr numrat prej 1 deri 10

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    17/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 17

    Shnime:

    Unaza e jashtme do t mundson krijimin e 10 rreshtave.

    Unaza e brendshme secilit rresht i krijon 10 shtylla

    Urdhri q prfundon n brendi t unazs sht shtypja e shumzimit t vlerave t astit t

    variablit t kontrollit t unazs s jashtme dhe asaj t brendshme

    Me shtypjen e secilit rresht, indeksi kalon n fillim t rreshtit t ri.

    Printimi sht mjaft i pa qart , ashtu q duhet rreguallar sh shtyllat t jen t shkruara drejt.

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    18/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 18

    Manipulatort Shkrimi mund t formatizohet me ndimn e manipulatorve( operator pr manipulim me

    printimin) Q shkrimi t jet n shtylla t drejta, prdoret manipulatori

    setw(int)

    Setw(int) prcakton se sa hapsir parashihet pr printimin e t dhnave q pasojn n

    rrjedhn dals

    setw(int)t gjith manipulatort pr manipulim me printim jan t definuar n bibliotekn iomanip e cila n

    fajllin e kodit burim duhet prfshihet me urdhrin include.

    Set(int0 prdoret brenda urdhrit t rrjedhs dalse, psh.

    Cout

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    19/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 19

    3.2.2 Urdhri whilePrdoret pr prsritjen e bllokut numri i

    prsritjeve t t cilit nuk dihet.Kushti i ekzekutimit testohet para ekzekutimit t

    bllokut.While(kushti_ekzekutimit){

    //blloku i urdhrave}

    Nse rezultati i llogaritjes kushti_ekzekutimitsht logjika e vrtete-ekzekutohet blloku iurdhrave. Prsritet testimi kushtit

    logjika e pavrtet- kalohet blloku i urdhravedhe vazhdon ekzekutimi nga urdhri i par mbasbllokut

    Blloku i urdhrave ndikon nkushti_ekzekutimit( prndryshe unaza pakufi)

    Shembull: Me prdorimin e unazs while duhet shtypur numrat prej 1 deri 10 kshtu:

    Shtypja e numrave prej 1 deri 10 1,2,....10

    Pr zgjidhjen e ktij problemi duhet q para hyrjes n unaz:

    o T jepet vlera fillestare e variables e cila prdoret n kusht(numrues=1)

    o T jepet kushti(numrues

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    20/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 20

    Shembull:

    Duhet dhn N (N nuk dihet prpara!) numra real dhe llogarit vlern e tyre mesatare.

    Futja e numrave zgjat derisa shfrytzuesit t mos shkruan 0.

    Para hyrjes n unaz duhet dhn vlern fillestare t variables e cila prdoret n kusht.

    N kt rast jepet numri i par (N)

    Kushti krahason prmbajtjen e variables ku ruhet numri i dhn me 0 (N= =0)

    Nse kushti plotsohet, ekzekutohet blloku i urdhrave n unaz

    N bllok nevojitet:

    o Dhn numrin N dhe shtuar varibals shuma

    o Variabln numruesi me rrit pr 1( numrimi)

    o Dhn numrin e tjetr N

    Dhnia vazhdon prderisa kushti sht i plotsuar, d.m.th prderisa t mos jepet 0.

    Kur shfrytzuesit jep 0, kushti m tutje nuk sht plotsuar, program vazhdon prej

    urdhrit t pare pas unazs

    Pas unazs duhet llogarit dhe shtyp vlern mesatare t numrave t future

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    21/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 21

    3.2.3 Unaza do-whileUrdhri do-while gjithashtu prdoren nse mpar nuri i ekzekutimit t bllokut t urdhrave

    nuk dihet.Ndryshe nga unazat e m siprme te unaza do-

    while kushti testohet pas ekzekutimit t bllokutt urdhrove.

    forma themelore :

    do{//blloku i urdhrave

    } while(kushti_ekzekutimit)

    Blloku i urdhrove ekzekutohet s paku nj herpa marr parasysh se a sht plotsuar

    kushti_ekzekutimit apo jo

    N kt sht edhe ndryshimi kryesor ndrmjetunazs do-while n raport me unazn for dhe

    while tek t cilat sht e mundshme q blloku i

    urdhrove t mos t ekzekutohet asnjher nsekushti i unazs nuk plotsohet

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    22/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 22

    Shembull:

    Detyrn e m siprme duhet zgjidh me do-whileduhet dhn N numra real dhe llogarit

    vlern e tyre mesatare. Futja e numrave zgjat derisa shfrytzuesit t mos shkruan 0.

    Kur prdoret unaza do-while nuk sht e nevojshme me dhn numrin para fillimit t

    unazs pasi kushti testohet tek pas ekzekutimit t urdhrit t fundit n bllok t unazs

    N bllok nevojitet me :

    o Dhn numrin

    o Numrin e dhn me ia shtuar vaibals shuma

    o Variabilen numrues me rrit pr 1( numrimi)

    N kt shembull do t numrohet edhe 0 si numr i dhn, dhe me daljen nga unaza variabla

    numrues duhet zvogluar pr nj.

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    23/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars .Ismail Dashi 23

    3.3.1 Urdhri break

    Prdoret vetm n urdhrat e

    unazave dhe switch. shkaktonndrprerjen e ekzekutimit ttrupit t unazs dhekaprcim n

    urdhrin tjetr t e par jasht

    unazs

    unaza {

    urdhri_1

    urdhri_2. . .

    break;

    urdhri_n}

    //urdhri pas bllokut

    3.3.2 Urdhri continuePrdoret n t njjtat kushte si dhe urdhri break, shkakton nj krcim t nj pjese t bllokut turdhrove n fund t unazs dhe pas tyre unaza prsri ekzekutohet ;

    unaza {

    urdhri_1urdhri_2. . .

    continue;urdhri_n

    }

  • 8/13/2019 3. Urdhrat pr kontroll t rrjedhs n C++

    24/24

    Gjuh programueseShkolla mesme profesionale

    "Feriz Guri dhe Vllezrit aka"

    Kaanik

    Ars Ismail Dashi 24

    Prdorimi i urdhrit breakdhe continuenuk jan t rekomandueshme( pos n rastin e urdhrit

    switch), pasi m kto prishet struktura e programit

    M mir sht q n vend t urdhrit continuet prdoret urdhri pr degzim if bashk me

    continuepasi prdorimi i pakujdesshm i urdhrit continuemund t shpie n ekzekutim pakufit unazs.

    Shembull: duhet dhn 10 numra natyral dhe m pas t mblidhen. N rast se jepet numri 0

    shtypet mesazhi pr dhnien e numrit 0, kalohen pjes t bllokut deri n fund t unazs dhe pasksaj unaza vazhdon t ekzekutohet.

    N fund shkruhet numri i numrave t dhn drejt dhe shuma e tyre