Loading [MathJax]/jax/output/CommonHTML/jax.js

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.

Naredba if - vežbanje

U ovom delu ćemo samo uvežbavati upotrebu if naredbe i njeno kombinovanje sa petljama.

Zadaci za vežbu

Idi do kraja i uzmi samo jednu

Karel treba da stigne do kraja hodnika, a da usput uzme samo prvu lopticu na koju naiđe. Polje sa koga Karel polazi nikad nema lopticu, a i Karel je na početku bez loptica.

1
 
1
from karel import *
2
# dopunite
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_if__take_first_ball_only)

Uzmi lopticu na susednom polju

Na tabli se nalazi samo jedna loptica. Karel i loptica se nalaze na dva susedna polja, između kojih nema zida (Karela od loptice deli samo jedan korak, ako se pre toga okrene ka loptici). Između ostalih polja može a ne mora biti zidova. Karel treba da uzme lopticu i pri tome nije bitno na kojem polju će da ostane kada se program završi.

Kao i obično, pokrenite program više puta da biste ga testirali na različitim primerima.

Jedna od ideja je da u svakom od 4 smera pokušamo Karelom korak napred i uzimanje loptice. Pri svakom od 4 pokušaja mogu da nastupe razni slučajevi:

  • moguće je da u tom smeru nema polja napred

  • moguće je da postoji polje ispred Karela, ali da na njemu nema loptice

  • moguće je da postoji polje i da je na njemu loptica

Pri pokušaju u sledećem smeru nam je mnogo jednostavnije ako ne moramo da vodimo računa o tome da li je Karel u prethodnom smeru našao polje bez loptice, ili nije našao ni polje. Radi toga je potrebno da Karel, kada završi pokušaj u jednom smeru, stane na isti način kada je bio na praznom polju, kao i kada polja nije ni bilo. Kada polja u datom smeru nema, Karel će ostati na početnom polju, okrenut u tom smeru. Najjednostavnije za nastavak traganja je da Karela ostavimo na istom polju i u istom položaju i kada se vrati sa praznog susednog polja. U stvari, neće smetati ako to uradimo i kada Karel uzme lopticu (može da dogoditi da Karel nepotrebno nastavi da traži, ali neće doći do greške).

Zahvaljujući ovom dovođenju Karela na isto stanje (pozicija i orijentacija) posle bilo kog od tri gore nabrojana slučaja, za svaki sledeći pokušaj tačno znamo od kog Karelovog stanja počinjemo. Ostaje da nakon svakog pokušaja okrenemo Karela ka sledećem smeru u kojem ćemo pokušati da dođemo do loptice (na levo ili na desno).

1
10
 
1
from karel import *
2
for i in range(4):
3
    if moze_napred():
4
        napred()
5
        # recite Karelu da pokusa da uzme lopticu
6
        # recite Karelu da se vrati na pocetno polje
7
        # i okrene se ka polju na kome je upravo pokusao
8
        # (kao da nije ni isao na to polje)
9
    # recite Karelu da se pripremi za sledeci pokusaj
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__take_neighboring_ball)

Prati put

Postoji samo jedna loptica i Karel treba da je uzme. Put do loptice je krivudav, ali nema raskrsnica (uvek postoji samo jedan nastavak puta, čak i sa polaznog polja).

1
 
1
from karel import *
2
... # dopunite
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_if__take_ball_no_branches)

Skreći

Postoji samo jedna loptica i Karel treba da je uzme. Da bi stigao do loptice, Karel treba da ide pravo samo kad ne može da skrene ni levo ni desno (neće se pojaviti raskrsnice na kojima se može skrenuti i levo i desno).

1
 
1
from karel import *
2
... # dopunite
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_if__p1_left_p2_right_p3_forward)

Levo kad god može

Postoji samo jedna loptica i Karel treba da je uzme. Karel će do loptice uvek stići tako što skrene levo kad god može, a inače ide pravo (kad ne može ni levo ni pravo, znači da je stigao). Karel je na početku okrenut kako treba i prvi korak mu je uvek pravo.

1
 
1
from karel import *
2
... # dopunite
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_if_p1_left_p2_forward)