if - Praktikë

Në këtët seksion do të praktikojmë vëtëm përdorimin e deklarims if dhe kombinimin me loops.

Ushtrime

Shko në fund të rrugës dhe merr vetëm një top

Kareli duhet të arrijë në fund të korridorit, dhe të marrë vetëm topin e parë në rrugë. Kutia fillestarenuk ka asnjë top mbi të, dhe Karel fillimisht nuk mban topa.

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

Ne kemi filluar një zgjidhje këtu. Ju pritet të plotësoni deklarimet if me kushte të përshtatshme.

     Karel duhet të marrë topin vetëm nëse plotësohen dy kushte:

     - kushti i parë është ai që ne kontrollojmë sa herë që Karel përpiqet të marrë topin (pa këtë kusht programi mund të përfundojë për shkak të një operacioni të pakalueshëm).      - kushti i dytë është i imponuar nga kërkesat e kësaj detyre, që është se Karel merr topin vetëm nëse ai nuk e ka marrë një më parë.

     Rendi i kontrollit të këtyre dy kushteve nuk është i rëndësishëm, pasi që të dy duhet të përmbushen në mënyrë që të marrin topin sidoqoftë.

Dërgo topin në kutinë ngjitur

Ka vetëm një top në tabelë. Karel dhe topi janë të vendosura në dy shekutishe ngjitur pa mur ndërmjet tyre (Karel është vetëm një hap hap nga topi, nëse ai kthehet në top para). Mund të jetë ose nuk mund të ketë një mur midis kutive të tjera. Kareli duhet të marrë topin dhe ai mund të përfundojë në çdo kuti në fund.

   Si zakonisht, drejtojeni programin disa herë për ta provuar atë në shembuj të ndryshëm.

Një ide e mundshme është që në secilën nga katër drejtimet, ne përpiqemi ta bëjmë Karel të shkojë një hap përpara dhe të marr topin. Skenarë të ndryshëm mund të ndodhin në secilën nga katër përpjekjet:

  • është e mundur që nuk ka kuti para Karel në atë drejtim

  • është e mundur që të ketë një kuti para Karelit, por nuk ka topa mbi të

  • është e mundur që ka një kuti dhe se ka një top në të

Kur provoni drejtimin tjetër, është shumë më e thjeshtë nëse nuk duhet të marrim parasysh nëse Karel ka gjetur një kuti pa top në drejtimin e mëparshëm që ai provoi, ose nuk e gjeti fare një kuti. Për të thjeshtuar përpjekjen tjetër, është e përshtatshme për ne që Karel të përfundojë përpjekjen e mëparshme kur ai ishte në një kuti të zbrazët në të njëjtin gjëndje si kur nuk kishte kuti. Kur nuk ka kuti në drejtim të përpjekjes, Karel do të mbetet në kutinë fillestare, përballë drejtimit të tentuar. Për të lehtësuar vazhdimin e kërkimit, ne mund të lëmë Karel në të njëjt[n kuti përballë të njëjtit drejtim kur ai të kthehet nga një kuti e zbrazët ngjitur. Në fakt, nuk do të dëmtojë nëse e bëjmë edhe kur Karel merr topin (është e mundur që Karel pa nevojë të vazhdojë të kërkojë, por kjo nuk do të shkaktojë gabime). Për shkak se e kemi sjellë Karelin në të njëjtin gjëndje (pozicion dhe orientim) pas secilit prej tre rasteve më lart, ne e dimë saktësisht gjendjen tonë fillestare, për secilën përpjekje pasuese. Pas secilit drejtim të përpjekjes, ne vetëm duhet ta kthejmë Karel drejt drejtimit tjetër, ne do të përpiqemi të gjejmë topin në (ose në të majtë ose në të djathtë).

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

Ndiq rrugën

Ka vetëm një top në tryezë, dhe Karel duhet ta marrë atë. Rruga për në top nuk është e drejtë, por nuk ka kryqëzime (gjithmonë ekziston vetëm një mënyrë për të vazhduar lëvizjen, edhe nga kutia fillestare).

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

Ne japim intruksione për një zgjidhje të mundshme:

Devijim

Ka vetëm një top në tryezë dhe Karel duhet ta marrë atë. Për të arritur në top, Kareli duhet të shkojë drejt, vetëm kur ai nuk mund të kthehet majtas ose djathtas (nuk do të ketë një udhëkryq të paqartë ku ka një shteg në të majtë dhe të djathtë).

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

Instruksione për një zgjidhje të mundshme:

Shko majtas sa herë të mundesh

Ka vetëm një top në tryezë dhe Karel duhet ta marrë atë. Karel do ta arrijë gjithmonë topin duke u kthyer majtas kur të mundet, dhe të shkojë drejt, kur ai nuk mund të shkojë majtas (kur ai nuk mund të shkojë ose majtas ose drejt, kjo do të thotë se ai ka arritur). Karel fillimisht është kthyer ashtu siç duhet, dhe hapi i tij i parë është gjithmonë drejt përpara.

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

Instruksione për nje zgjidhje të mundshme: