3. Urdhëratë për kontroll të rrjedhës në C++
-
Upload
ismail-dashi -
Category
Documents
-
view
231 -
download
0
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