Programe të shkurtra

Le të kthehemi në programin e fundit të mësimit të mëparshëm. Ne kishim nevojë për Karel që të merrnim pesë topa nga secila nga tre sheshet në para të tij.

../_images/nested_for_3x5.png

Programi që zgjidh detyrën mund të duket si ky:

Ne shohim që, në këtë program, grupi i mëposhtëm i deklaratave përsëritet tri herë:

Kjo na lejon të shkurtojmë programin më tej. Në shpjegimin e thënies for, ne përmendëm se sythe të tjerë mund të gjenden në trupin e lakut. Tani kemi mundësinë që ta përdorim.

Sythe fole for

Kur ka një loop të dytë në trupin e njërit loop, atëherë lak i parë quhet një lak i jashtëm dhe tjetri quhet një loop i brendshëm. Së bashku ne i quajmë ata sythe të loop ose të futur. Në shembullin vijues, do të shohim sesi shkruhen sythe for.

Kap 5 topa tre herë

Ka tre sheshe përpara Karelit, dhe ka secila prej tyre 5 topa. Karel duhet të marr të gjitha topat.

Detyra përsëritet, por tani ne do ta zgjidhim atë në një mënyrë tjetër.

Ne përmendëm se i në shembujt e mëparshëm të deklaratave for është një emër për banakun e përsëritjes. Tani, për herë të parë duhet të numërojmë gjëra të tjera (topa) gjatë llogaritjes së një gjëje (kutie). Kjo do të thotë, për shembull, që do të na duhet ta dimë saktësisht kur jemi në kutinë e tretë, duke marrë topin e dytë. Prandaj, ne nuk mund të përdorim të njëjtin emër për të dy sportelet, kështu që kemi futur emra të rinj për sportelet në vend të `` i`` të mëparshëm. Në programin vijues, ne e quajmë banak katror i_square, dhe emri për banakun e topit është i_ball.

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_for_TakeMxN)

Në zgjidhjen e dhënë, thënia pick_ball () është e theksuar gjithashtu, sepse ekzekutohet ato për secilin i_ball nga diapazoni [0, 1, 2, 3, 4]. Për më tepër, e gjithë deklarim për i_ball varg (5): (së bashku me trupin e saj dhe thënia move() mbi të), përsëritet 3 herë, ato për secilin i_square nga diapazoni [0, 1, 2]. Kjo do të thotë që komanda pick_ball() ekzekuton gjithsej 3 x 5 = 15 herë (në secilën nga tre sheshet pesë herë).

    Me sythe të loops, është e nevojshme t’i kushtohet vëmendje shtesë theksit të saktë të deklaratave, sepse bëhet disi më e ndërlikuar. Shënimi i gabuar i disa komandave mund të çojë në rezultatin e gabuar, ose në një program që nuk funksionon fare.

Ushtrime

Evito

Përpara Karelit, ka një top në çdo kuti të tretë, dhe Kareli duhet t’i marrë të dy.

Karl duhet të përsërisë një grup veprimesh “Leviz tre herë, dhe pastaj të marrë topin” 2 herë.

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_for_every_nth_square)

5 topa në çdo kuti të tretë

Ka pesë topa në çdo shesh të tretë përballë Karelit, dhe ai duhet t’i mbledhë të gjitha.

Detyra është e ngjashme me të mëparshmën, thjesht duhet të përsërisësh marrjen e topit. Sigurohuni që loop për të marrë topa është nën loop për të ecur përpara, jo në të.

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_for_every_nth_square_5)

Dil

Kap edhe një herë duhet të marr të gjitha topat.

Loop i jashtëm duhet të ekzekutohet 3 herë, dhe në të Karel duhet të bëjë si më poshtë:

  • Përsëritni dy herë dy veprimet: “lëviz përpara” dhe “merr topin”

  • Kthehu majtas

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_for_ring)

Ne kemi bërë udhëzime verbale pak më të ngjashme me programin, provoni t’i ktheni ato në deklarim. Nëse ende dëshironi të shihni vetë programin, klikoni në butonin “Solution”.

Dil dhe kap 3 topa çdo herë

Shkruaj një program me të cilin Karel do të marr të gjitha 18 topat.

Kjo detyrë ndryshon nga ajo e mëparshmja në vetëm një gjë: tani marrja e topave duhet të jetë në një loop shtesë. Kjo do të thotë se do të kemi tre sythe loops: një që numëron anët e labirint, një që numëron sheshet përgjatë njërës anë, dhe të tretën që numëron topat në një katror.

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_for_ring_3)

Përsëri, ne japim udhëzime që duken si program (këtë herë pa programin vetë).