Робот Карел

🎯 Данас: пишеш низ наредби којима Карел стиже до циља. Радиш сам, својим темпом. Не мораш да урадиш све задатке — важно је да разумеш оно што урадиш.

1. Задаци

🤖 Робот Карел

  1. Задатак бираш горе лево. Ради их редом, од првог.
  2. Лево пишеш код, десно је Карелов свет. ▶ Покрени (или Ctrl+Enter) покреће програм.
  3. Корак извршава један по један ред — жуто је ред који је управо извршен.
  4. Ако нешто не ваља, испод света пише у ком реду и шта; тај ред је у коду црвен.
  5. Кад Карел реши задатак, кликни „Решио/ла сам“ — задатак се бележи код наставника и у списку добија ✔.

Како се решава задатак

  1. Погледај свет: где је Карел, куда гледа, где је циљ.
  2. Испланирај корак по корак — можеш прстом по екрану.
  3. Напиши, покрени, и гледај где је Карел скренуо погрешно — тај ред поправи.

Кад запнеш, питај се

⭐ Ако си решио све задатке

Реши „Степенице“ са што мање редова. Онда у Вежбалишту смисли свој пут за Карела, или помози другу — питањима, не куцањем уместо њега.

2. Наредбе

Сваки програм почиње редом from karel import * — без њега Пајтон не зна ни за једну наредбу.

НаредбаШта ради
napred()једно поље напред, куда гледа
levo()окрене се налево, у месту
desno()окрене се надесно, у месту
uzmi()узме лоптицу са поља на ком стоји
ostavi()остави лоптицу коју носи

Наредбе не мораш да куцаш: клик на њих испод кода их убаци тамо где је курсор.

Питања која Карел уме да одговори

Ово нису радње — Карел се од њих не помера. Одговор је да (True) или не (False), и користе се уз while и if.

ПитањеЗначи
moze_napred()Да ли испред мене нема зида?
ima_loptica_na_polju()Да ли на пољу на ком стојим има лоптица?
ima_loptica_kod_sebe()Да ли носим бар једну лоптицу?

Испред питања може not, па је одговор обрнут: not moze_napred() значи „испред је зид“.

Двотачка и увлачење

Код for, while и if важи исто правило: ред се завршава двотачком :, а наредбе које му припадају пишеш увучене (Tab или 4 размака). Први ред који није увучен више не припада петљи — он се изврши после ње.

for — понови тачно толико пута

for i in range(4):
    napred()

Карел четири пута иде напред — исто као четири реда napred(), само краће. Број у загради је колико пута. Увучено може да буде и више наредби: понављају се све, редом.

while — понављај док је одговор „да“

while moze_napred():
    napred()

Пре сваког круга Карел пита „могу ли напред?“. Док може — иде; кад стигне до зида, петља стаје. Користиш га кад не знаш колико пута треба, нпр. кад је пут сваки пут друге дужине.

У телу петље мора да се деси нешто што ће једног дана променити одговор. while moze_napred(): без napred() у телу никад не стаје — Карел ће рећи да програм ради предуго.

if — уради само ако је одговор „да“

if ima_loptica_na_polju():
    uzmi()

Ако на пољу има лоптица, Карел је узме; ако нема, прескочи увучени део и иде даље. Тако не удари у грешку „на овом пољу нема лоптице“.

Уз else кажеш шта да ради кад је одговор „не“:

if moze_napred():
    napred()
else:
    levo()

Петља и одлука заједно

Наредбе се могу слагати једна у другу — свака следећа увучена још мало више:

for i in range(5):
    napred()
    if ima_loptica_na_polju():
        uzmi()

Пет пута: корак напред, па узми лоптицу ако је има.

Провери да ли знаш

🛠️ Кад нешто не ради

ПроблемШта да урадиш
Не могу у кабинетнадимак без размака; лозинка малим словима; провери да не куцаш ћирилицом
Нема дугмета „Решио/ла сам“ниси пријављен (горе десно треба да буде твој аватар), или задатак још није решен
Нестао ми је кодкод се чува само на рачунару на ком си радио; на другом рачунару крећеш испочетка
Карел скрене на погрешну странулево и десно гледај из Кареловог смера, не из свог
Окренуо се, али се није помериотако и треба — после окрета додај napred
Ударио у зидједан napred вишка — изброј поља
„Пајтон не зна шта је …“наредба је погрешно откуцана или великим словом — Карел ти предложи праву
„Недостаје двотачка“ / „треба да буде увучен“ред са for, while, if или else завршава се са :, а редови испод њега су увучени
Петља се понавља само једном или ништапогледај увлачење — оно што није увучено није у петљи
„Недостају заграде“иза наредбе иду (): napred(), не napred
Карел узима где нема лоптиценије стигао на поље где мислиш — прођи програм ред по ред

← Назад на VI разред