Processing math: 100%

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

Робот Карел - Додатни задаци за вежбу

Задаци

Помери све лоптице уназад

Испред Карела је прав пут непознате дужине. На почетном пољу нема лоптица. Карел треба да сваку лоптицу премести за једно поље ка левој страни екрана.

Овај задатак можемо да решимо и без употребе наредбе if. На пример, можемо да док год има поља испред Карела, понављамо следеће кораке:

  • пређи на следеће поље

  • узми све лоптице са тог поља

  • иди корак назад (то јест, окрени се два пута и иди напред)

  • остави све лоптице

  • врати се на поље са којег си узео лоптице

Овакво решење је дато као почетно у прозору испод. Пратећи дати програм, Карел ће се чак и кад не узме ни једну лоптицу враћати на претходно поље. Можеш ли да убациш једну наредбу if у програм, тако да се Карел не враћа ако није узео ни једну лоптицу? Наравно, биће потребно да се неке дате наредбе увуку у тело наредбе if.

1
10
 
1
from karel import *
2
while moze_napred():             # dok ima polja ispred Karela, ponavljaj
3
    napred();                        # idi napred
4
    while ima_loptica_na_polju():    # pokupi sve loptice sa polja
5
        uzmi()
6
    levo(); levo(); napred()         # idi jedno polje nazad
7
    while ima_loptica_kod_sebe():    # ostavi sve loptice
8
        ostavi()
9
    levo(); levo(); napred()         # vrati se jedno polje napred
10

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

Три пута горе-доле

Карел се налази на правоугаоној табли од 5 редова и 7 колона и треба да стигне до доњег десног поља.

Карел треба три пута да понови једну сложену радњу, а то је: да пређе у следећу (десну) колону, оде до њеног врха, оде још једну колону десно, сиђе до првог реда и на крају да се окрене ка последњој колони да би се припремио за следеће понављање.

Допуни програм, водећи рачуна да се бројач у for наредбама које додајеш не зове i (то име је већ употребљено у спољној петљи).

1
10
 
1
from karel import *
2
for i in range(3):              # tri puta ponovi sve sto sledi
3
    napred(); levo()             #    udji u sledecu kolonu i okreni se na sever
4
    # upotrebite for naredbu da kazete Karelu da ode do gornje ivice
5
    
6
    desno(); napred(); desno()   #    predji u sledecu kolonu i okreni se na jug
7
    # upotrebite for naredbu da kazete Karelu da ode do donje ivice
8
    
9
    levo()                       #    okreni se na istok
10

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

Горе-доле

Карел се налази на правоугаоној табли непознате величине (број колона је увек непаран), без лоптица. Циљ је да Карел стигне до доњег десног поља, а да би то постигао, мораће да се креће кроз колоне наизменично горе-доле.

1
 
1
from karel import *
2
# dodajte naredbe 
3

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)

Донеси све са табле

Карел треба да донесе свих 12 лоптица на полазно поље.

Карел треба четири пута да пређе у следећу колону и испразни је, а на крају да дође на полазно поље и остави све лоптице. Карел ће испразнити колону ако три пута понови корак напред и узимање, а затим се врати на почетак колоне у исти положај.

Допуни програм.

1
19
 
1
from karel import *
2
for i_kolona in range(4):      # cetiri puta ponovi ciscenje kolone
3
    napred()                   #     udji u sledecu kolonu
4
    levo()                     #     okreni se na sever
5
    #for ...                   #     3 puta ponovi korak napred i uzimanje
6
7
    desno(); desno()           #     okreni se na jug
8
    #for ...                   #     3 koraka napred do donje ivice
9
10
    levo()                     #     okreni se na istok
11
    
12
                               # sada smo prosli sva polja
13
levo()                         #     okreni se na zapad
14
levo()
15
#for ...                       # vrati se na pocetno polje
16
    
17
for i_loptica in range(12):
18
    ostavi()
19

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

Донеси свих 60

Сада се на сваком од истих 12 поља као у претходном задатку налази по 5 лоптица. Карел треба да донесе свих 60 лоптица на полазно поље.

Овај програм се од претходног разликује по томе што наредба uzmi() треба да стоји у додатној петљи, трећој у дубину. Такође, разликује се и број лоптица које Карел на крају програма оставља на полазно поље. Покушај да ископираш претходни програм и преправиш га.

1
 
1
from karel import *
2
# dopunite program
3

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

Сакупи лоптице на степеницама

Карел поново треба да заврши у доњем десном углу, а успут треба да узме све лоптице.

Да би се решиo овај задатак, можеш у претходни програм да убациш петље за узимање лоптица. Покушај да ископираш и преправиш претходни програм.

1
 
1
from karel import *
2
# napisite program
3

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

Препоне

Помози роботу да прескочи препоне и покупи лоптицу.

1
 
1
from karel import *

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.

(Карел_препоне)