Kapitulli 5: Strukturat e kontrollit II (Përsëritje)

34  Download (0)

Full text

(1)

Kapitulli 5:

Strukturat e kontrollit II (Përsëritje)

(2)

Objektivat

• Në këtë kapitull, ju do të :

– Mësoni rreth strukturave të kontrollit të përsëritjes (cikliing)

– Mësoni si të përdorni while cikli në një program – Mësoni si të përdorni for cikli në një program

– Mësoni si të përdorni do…while cikli në një program

– Shqyrtoni deklaratat break dhe continue – Mësoni si të debugoni ciklis

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 2

(3)

Pse është Përsëritja e Nevojshme?

• Përsëritja lejon përdorimin efikas të variablave

• Mund të lexojë, të shtojë dhe apo të llogarisë mesataren e shumë numrave duke përdorur një numër të kufizuar variablash

• Shëmbull: Shtoni pesë numra. Shkruani në klasë algoritmin & kodin duke përdorur 2 mënyra :

1. Deklaroni nga një variabël për secilin numër, futni numrat dhe shtoni variablat së bashku

2. Krijoni një cikli që lexon një numër në një variabël dhe e shton atë në një variabël që përmban shumën e numrave

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 3

(4)

Struktura while cikliing (Përsëritje)

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 4

(5)

while cikliing

• Sintaksa e deklaratës while:

• deklaratë e vetme ose bllok udhëzimesh, quhet trupi i cikli-it

• shprehja vepron si vendimmarrës dhe zakonisht është një shprehje logjike

• Kllapat janë pjesë e sintaksës

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 5

(6)

while cikliing

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 6

(7)

while cikliing

• Variabla i në Shëmbullin 5-1 quhet variabla e kontrollit te ciklit

• Cila është vlera e i kur cikli mbaron?

• Cikli Infinit: vazhdon të ekzekutojë pafund. Mund të

ndodhë nëse vlera e kushtit që përfundon ciklin nuk arrihet kurrë.

– Kjo shmanget duke përfshirë deklaratat në trupin e ciklit që sigurojnë që do të arrihet një vlerë daljeje.

– Për shëmbull, çfarë ndodh nëse deklarata i=i+5 është hequr nga trupi i ciklit.

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 7

(8)

Struktura while cikliing (Përsëritje) (vazhdimi.)

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 8

(9)

4 tipet e while cikliing

• Counter controlled while loop

• Sentinel-Controlled while loop

• Flag-Controlled while loop

• EOF-Controlled while loop

9

C++ Programming: From Problem Analysis to Program Design, Seventh Edition

(10)

1: Counter-Controlled

• Kur e dini saktësisht se sa herë duhen ekzekutuar deklaratat

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 10

(11)

2: Sentinel-Controlled

• cikli mbaron kur sentineli haset (nuk e dimë sa herë do të përsëritet cikli)

• Sentinel – një numër ose karakter, i testuar në kushtet e ciklit, që do të bëjë që përseritja të ndalet

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 11

(12)

2. Shëmbull: Numrat e Telefonit

• Shëmbull : lexoni dhe nxirrni numrat derisa përdoruesi të arrijë në butonin ‘E’.

• Shëmbulli 5-5 (në libër) jep një rast të një cikli sentinel-controlled.

• Programi konverton shkronjat e mëdha në shifrën e tyre telefonike korresponduese

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 12

(13)

3: Flag-Controlled

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 13

• Flag-controlled while cikli: përdor një variabël bool për të

kontrolluar ciklin. Cikli përfundon kur variabla ndryshon vlerën e

saj të parë (nga false në e vërtetë, ose e anasjellta)

(14)

3. Shëmbull: Lojë me hamendsim numrash

• Shëmbulli 5-6 implementon një lojë me hamendje numrash duke përdorur një flag-controlled while loop

• Përdor funksionin rand të skedarit cstdlib për të gjeneruar një numër të rastit

– rand() kthen një vlerë int ndërmjet 0 dhe 32767 – Për të konvertuar në një numër të plotë >= 0 dhe < 100:

• rand() % 100

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 14

(15)

4: EOF-Controlled (End of File)

• End-of-file (EOF)-controlled while loop: kur është e vështirë të zgjedhësh një vlerë sentinel

• cikli-i vazhdon derisa të ketë input nga përdoruesi.

• Vlera logjike e kthyer nga cin mund të përcaktojë nëse nuk ka më input.

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 15

(16)

4.Shëmbull: EOF-Controlled

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 16

(17)

Struktura for loop (Përseritja) (vazhdimi.)

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 17

(18)

Struktura for loop (Përseritja)

• Sintaksa e deklaratës for:

• Deklarata iniciale, kushti i

ciklit dhe deklarata update quhen for loop control statements

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 18

(19)

Shëmbull for

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 19

(20)

Shëmbull for

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 20

(21)

Cikli for, erroret

• Më poshtë është një gabim semantik:

• Më poshtë është një cikël i saktë (por infinit) for :

for (;;)

cout << "Hello" << endl;

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 21

(22)

Shëmbull for

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 22

(23)

Shëmbull for

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 23

(24)

Struktura do…while (Përsëritje)

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 24

(25)

do…while

• Sintaksa e një cikli do...while

Deklarata ekzekutohet së pari, dhe më pas vlerësohet shprehja

– Për aq kohë sa shprehja është e vërtet, cikli vazhdon

• Për të shmangur një cikel infinit, trupi duhet të

përmbajë një deklaratë që e bën shprehjen false

• cikli gjithmonë përsëritet të paktën një herë

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 25

(26)

do…while

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 26

(27)

do…while

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 27

(28)

Zgjedhja e Strukturës së duhur të përsëritjes

• Të tre ciklet kanë vendin e tyre në C ++

– Nëse mund të përcaktoni paraprakisht numrin e

përsëritjeve të nevojshme, cikli for është zgjedhja e saktë

– Nëse nuk dini dhe nuk mund të përcaktoni paraprakisht numrin e përsëritjeve të nevojshme, dhe që mund të jetë zero, përdorni një cikël while

– Nëse nuk dini dhe nuk mund të përcaktoni paraprakisht numrin e përsëritjeve të nevojshme, dhe ka të paktën një, përdorni një do...while cikli

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 28

(29)

Deklaratat break dhe continue

• break dhe continue alternojnë rrjedhën e kontrollit

• Deklarata break përdoret për dy qëllime:

– Për të dalë herët nga një cikël: Mund të eliminojë përdorimin e disa variablave (flag)

– Për të anashkaluar pjesën e mbetur të një strukture switch

• Pasi break ekzekutohet, programi vazhdon me deklaratën e parë pas strukturës

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 29

(30)

Deklaratat break dhe continue

• continue përdoret në strukturat while, for, dhe do…while

• Kur ekzekutohet, ai i kapërcen të gjitha deklaratat pas deklaratës continue, dhe vazhdon me përsëritjen e cikli-it tjetër .

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 30

(31)

Nested Control Structures

• Për të krijuar modelin e mëposhtëm :

*

**

***

****

*****

• Mund të përdorim kodin vijues:

for (i = 1; i <= 5 ; i++) {

for (j = 1; j <= i; j++) cout << "*";

cout << endl;

}

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 31

(32)

Nested Control Structures (vazhdimi.)

• Cili është rezultati nëse e zëvendësojmë deklaratën e parë for me këtë?

for (i = 5; i >= 1; i--)

• Pergjigja:

*****

****

***

**

*

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 32

(33)

Përmbledhje

• C++ ka tre struktura përsëritje:

– while, for, dhe do…while

• while, for, dhe do janë fjalë kyç

• ciklet while dhe for quhen ciklie pre-test

• ciklii do...while quhet cikli post-test

• while and for mund të mos ekzekutohen fare, por do...while gjithmonë

ekzekutohet të paktën njëherë

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 33

(34)

Përmbledhje (vazhdimi.)

• Një cikël while mund të jetë:

– Counter-controlled – Sentinel-controlled – EOF-controlled

• Vendosja e një pikëpresje në fund të cikli-it for është një gabim semantik

• Ekzekutimi i një deklarate break në trupin e një cikli menjëherë përfundon ciklin

• Ekzekutimi i një deklarate continue në trupin e një cikli kalon në përsëritjen (iteracionin) tjetër

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 34

Figure

Updating...

References

Related subjects :