Kombinimi i loops

Ne kemi parë që në trupin e një deklarate for, ne mund të vendosim disa deklarime të ndryshme. Ngjashëm me deklarimn for, në fjalinë while ne gjithashtu (përveç komandave të tjera) mund të vendosim një deklarim të re të loop, dhe ajo mund të jetë ose një loop ose një loop for. Në atë mënyrë, ne mund të ndërtojmë kombinime të ndryshme të sytheve të futura.

Kur të dy sytloophe futen në njëra-tjetrën, ne i quajmë ato një loop të dyfishtë, ndërsa tre loop quhen një loop i trefishtë. Në mënyrë të ngjashme, ne mund të fole çdo numër loop/esh në njëri-tjetrin, thjesht rrallë kemi nevojë për një numër të madh të sythe të foleve.

Në këtë mësim do të praktikojmë shkrime të kombinimeve të sytheve while dhe for.

Rrathë të ndryshëm të dyfishtë dhe të shumëfishtë - detyra

Merrni 4 topa në çdo katror deri në fund të një rreshti

  Ka një ose më shumë sheshe përpara Karelit, dhe në secilën nga këto sheshe ka katër topa (nuk ka topa në sheshin fillestar). Kareli duhet t’i marrë të gjitha.

Tani, derisa të arrijë në mur, Kareli duhet të përsërisë duke ecur përpara dhe të marrë 4 topa. Provoni të plotësoni programin.

Kujtoni, si në shembujt e mëparshëm të sytheve loops, pohimi në trupin e lakit të brendshëm (këtu do të jetë pick_ball ()) duhet të indentifikohet më tej.

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

(Karel_while__many_squares_four_bals_per_square)

Kapni topat

Ka të paktën një kuti para Karelit, dhe mund të ketë ndonjë numër prej tyre. Në secilën nga katrorët përballë Karel ka zero ose më shumë topa (kutia fillestare është bosh). Karel duhet të marr të gjitha topat.

Kjo detyrë është përgjithësimi i një të mëparshmi, kështu që programi që zgjidh këtë detyrë mund të përdoret edhe në atë paraprak. Dallimi është se tani lak i brendshëm duhet të jetë një loop while, ndërsa në detyrën e mëparshme mund të ketë qenë një loop for gjithashtu.

Përsëri, thënia pick_ball () duhet të përfshihet më tej. Në këtë mënyrë, ajo do të përsëritet ndërsa gjendja e brendshme while mban deklarim, d.m.th., ndërsa ekziston një top në shesh Karel është në atë moment. Marrja e të gjitha topave, së bashku me fjalinë move përsëritet në lakin e jashtëm ndërsa për aq kohë sa ka sheshe para Karelit. Efekti i përgjithshëm i sytheve loops është se të gjitha topat nga çdo katror do të merren.

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

(Karel_while__many_squares_many_balls)

Sillni topat

Ka një shteg me gjatësi të panjohur para Karelit. Kareli duhet të mbledhë të gjitha topat nga të gjitha kutitë dhe t’i sjellë ato në sheshin fillestar.

Programi është ndarë në pjesë më të vogla nga komentet. Shtoni deklarim që mungojnë.

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

(Karel_while__bring_all_balls)

Lart dhe poshtë

Karel është në një tabelë drejtkëndëshe me madhësi të panjohur (numri i kolonave është gjithmonë i çuditshëm), pa asnjë top në kuti. Qëllimi është që Karel të arrijë në kutinë e djathtë të poshtëm. Për ta arritur këtë, Kareli do të duhet të lëvizë nëpër kolonat në mënyrë alternative lart e poshtë.

Këto janë disa nga pamjet e mundshme të labirintit:

../_images/While_UpDown.jpg

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

(Karel_while__up_col_down_col)

Shkallë

Kareli duhet të ngjitet në shkallët e para, pastaj të zbresë ato të tjera dhe të përfundojë në këndin e poshtëm të djathtë. Madhësia e tabelës nuk dihet, por numri i kolonave gjithmonë do të jetë i rastësishëm. Tabela mund të duket si kjo:

../_images/While_Stairs.jpg

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

(Karel_while__stairs)

Spirale në të majtë

Në të gjitha rastet e shfaqura, Kareli duhet të vijë në një kuti të shënuar me një rreth të kuq (nuk ka topa në këtë detyrë).

../_images/While_SpiralLeft.jpg

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

(Karel_while__spiral_left)