Mini zadaci: temperatura i kviz


U ovoj lekciji vežbaćeš grananje u Pythonu kroz praktične primere i mini zadatke. Cilj je da primeniš if, elif i else zajedno sa logičkim operatorima.


1. Provera temperature


Napiši program koji proverava temperaturu i ispisuje odgovarajuću poruku:



temperatura = float(input("Unesi temperaturu u °C: "))

if temperatura < 0:
    print("Vreme je ispod nule")
elif temperatura <= 20:
    print("Vreme je hladno")
elif temperatura <= 30:
    print("Vreme je prijatno")
else:
    print("Vreme je toplo")

Ovaj zadatak vežba višestruke uslove i logičke provere.


2. Jednostavan kviz


Napravite mini kviz sa jednim pitanjem. Ako korisnik unese tačan odgovor, čestitaj, inače napiši "pogrešno":



pitanje = input("Koliko je 5 + 7? ")

if pitanje == "12":
    print("Tačno! □")
else:
    print("Pogrešno, pokušaj ponovo.")

Ovaj zadatak uči kako se kombinuju uslovi sa unosom podataka od korisnika.


3. Dodatni izazov


  • Proširi kviz sa još 2 pitanja.
  • Koristi elif da proveriš više mogućih odgovora.
  • Prikaži različite poruke za tačan i netačan odgovor.

Vežbanje ovih mini zadataka priprema te za složenije projekte u Pythonu.


4. Izazovni zadaci sa slučajnim brojevima


U sledećim zadacima vežbaćeš kombinovanje if/elif/else grananja sa funkcijama iz modula random za generisanje slučajnih brojeva.


4.1. Pogađanje broja

Napravi igru gde računar nasumično bira broj između 1 i 20, a korisnik pokušava da pogodi broj. Program treba da ispiše:

  • "Preveliko" ako je korisnikov unos veći od slučajnog broja
  • "Premalo" ako je unos manji
  • "Tačno!" ako pogodi broj

import random

tajni_broj = random.randint(1, 20)
pogodak = int(input("Pogodi broj između 1 i 20: "))

if pogodak > tajni_broj:
    print("Preveliko")
elif pogodak < tajni_broj:
    print("Premalo")
else:
    print("Tačno! Čestitam!")
  

4.2. Simulacija bacanja kocke

Program treba da simulira bacanje standardne kocke (1-6) i ispiše poruku u zavisnosti od broja:

  • 1 ili 2 → "Loš rezultat"
  • 3 ili 4 → "Srednji rezultat"
  • 5 ili 6 → "Odličan rezultat"

import random

kocka = random.randint(1, 6)

if kocka <= 2:
    print("Loš rezultat:", kocka)
elif kocka <= 4:
    print("Srednji rezultat:", kocka)
else:
    print("Odličan rezultat:", kocka)
  

4.3. Mini kviz sa slučajnim pitanjem

Proširi prethodni kviz tako da program nasumično bira jedno od 3 pitanja, a korisnik unosi odgovor. Program proverava tačnost odgovora.


import random

pitanja = ["Koliko je 3 + 4?", "Koliko je 5 * 2?", "Koliko je 10 - 6?"]
odgovori = ["7", "10", "4"]

i = random.randint(0, 2)
unos = input(pitanja[i] + " ")

if unos == odgovori[i]:
    print("Tačno! ✅")
else:
    print("Pogrešno. □")
  

Ovi zadaci pomažu da se naučeno primeni u praktičnim scenarijima, kombinujući grananja, logičke provere i slučajnost. Možeš pokušati da dodatno proširiš igru sa više pokušaja ili nagradama za tačan odgovor.

Galerija ilustracija za Python zadatke — Grananje i slučajni brojevi

Pregled vizuelnih prikaza zadataka sa grananjem i slučajnim brojevima koje učenici koriste u vežbama i mini-projektima.

Teži zadaci za samostalan rad — priprema za kvalifikacije

Ovo su zahtevniji zadaci iz prve faze kvalifikacija za takmičenja iz informatike. Obuhvataju gradivo do grananja (bez petlji), a rešenja namerno nisu data — zadaci su namenjeni samostalnom radu.


Zadatak 8 — Stubići od kockica

Opis: Dva druga imaju već postojeće stubove visina A i B. Žele da naprave novi par stubova prema jednoj od dve ideje: (A1, B1) ili (A2, B2). Produžavanje ili skraćivanje stuba za 1 jedinicu zahteva vreme Tx za prvog druga i Ty za drugog.

Počinju istovremeno, svaki radi na po jednom stubu. Vreme završetka je trenutak kada su obojica gotova. Potrebno je izračunati minimalno moguće vreme koje im treba da od postojećih stubova dobiju jedan od parova (A1, B1) ili (A2, B2).

Ulaz:
1) A B
2) A1 B1
3) A2 B2
4) Tx Ty

Izlaz: Jedan broj — minimalno vreme.

Uputstvo: Izračunaj vreme za svaki predlog: - vreme1 = max(|A − A1|·Tx, |B − B1|·Ty) - vreme2 = max(|A − A2|·Tx, |B − B2|·Ty) Odgovor je min(vreme1, vreme2).

Test primer 1 (iz zadatka):

Ulaz:
10 20
18 28
21 31
1 10

Izlaz:
20

Test primer 2 (dodatni):

Ulaz:
7 4
9 13
14 12
3 2

Izlaz:
15

Zadatak 17 — Šljive

Opis: Janko uzima po 2 šljive, Nataša po 3, sve dok ima najmanje 5. Kada ostane manje od 5, ostatak uzima Marko.

Ulaz: N — početni broj šljiva.

Izlaz: Broj šljiva koje je uzeo Janko, Nataša, Marko, i koliko je osoba uzelo bar jednu šljivu.

Uputstvo: Nema petlji — zadatak se može rešiti analizom slučajeva (N = 0–4, 5–7, 8–10, …) i grananjem: proveri koliko „kompleta“ (2+3) može da se uzme, pa obradi ostatak.

Test primer 1:

Ulaz:
4

Izlaz:
0 0 4 1

Test primer 2:

Ulaz:
10

Izlaz:
4 6 0 2

Zadatak 19 — Fudbalska grupa (tabela)

Opis: Četiri tima (A, B, C, D) igraju 6 međusobnih utakmica. Za svaku utakmicu se učitava rezultat. Potrebno je izračunati poene i gol-razliku svakog tima.

Ulaz: 6 rezultata utakmica: AB, CD, AC, BD, AD, BC. Svaki rezultat je par brojeva: golovi prvog tima, pa drugog.

Izlaz: Za A, B, C i D redom — broj poena i gol-razlika.

Uputstvo: Za svaki meč: pobeda = 3 poena, nerešeno = 1 poen, poraz = 0. Takođe saberi datu i primljenu količinu golova da bi dobio gol-razliku (dati − primljeni) za svaki tim.

Test primer 1:

Ulaz:
2 1
0 0
1 1
3 0
0 2
2 2

Izlaz (format: poeni gol-razlika za A B C D):
5 0 1 -2 3 0 2 2

Zadatak 4 — Da li tri dužine formiraju trougao?

Ulaz: Tri broja a, b, c.

Zadatak: Proveri da li važi: a + b > c, a + c > b, b + c > a. Ako sve važi → ispisati “DA”, inače “NE”.

Uputstvo: Koristi kombinaciju logičkih operatora i više uslova (sve tri nejednakosti moraju biti istinite).

Test primer 1:

Ulaz:
3 4 5

Izlaz:
DA

Test primer 2:

Ulaz:
2 2 5

Izlaz:
NE

Zadatak 5 — Dominantna RGB komponenta

Ulaz: Tri broja R, G, B (0–255).

Zadatak: Odredi koja komponenta je najveća. Ako je više njih najveće — ispiši obe ili sve tri.

Uputstvo: Obradi sva tri slučaja: (1) sve različito, (2) dve jednake najveće, (3) sve tri jednake.

Test primer 1:

Ulaz:
120 200 80

Izlaz:
Zelena

Test primer 2:

Ulaz:
255 255 100

Izlaz:
Crvena i Zelena

Za više zadataka poseti: Kvalifikacije za okružna takmičenja — zadaci