Kako rešiti programerski zadatak

08.06.2025.

Jedna od najvažnijih veština u učenju programiranja je sposobnost da pravilno rešimo zadatak. Međutim, to ne znači samo da napišemo kod koji „radi”, već i da razumemo proces rešavanja problema. U ovom blogu ćemo prikazati kako da pristupimo rešavanju zadataka korak po korak, a zatim ćemo dati konkretne primere u programskom jeziku Python.

Kada dobijemo zadatak, ne treba odmah da počnemo da pišemo kod. Prvo treba da zastanemo i razmislimo:

  • Šta se tačno traži? – Koji je krajnji cilj zadatka?
  • Koji su ulazni podaci? – Da li korisnik nešto unosi, da li se koristi neka slučajna vrednost?
  • Koji je željeni izlaz? – Kako treba da izgleda ispis na ekranu?
  • Da li ima nekih posebnih pravila? – Da li treba proveravati unos, ponavljati radnju, ograničiti opseg?

Kada sve ovo razložimo, možemo krenuti da osmišljavamo algoritam – niz koraka koje treba da sprovedemo da bismo došli do rešenja. Zatim, taj algoritam prevodimo u programski jezik.


Primer 1: Generisanje 10 slučajnih brojeva između 3 i 6

Zadatak: Napisati program koji ispisuje 10 nasumičnih brojeva iz opsega od 3 do 6.

Pristup rešavanju:

  1. Znamo da želimo 10 brojeva, dakle potrebna nam je petlja koja se izvršava 10 puta.
  2. U svakom prolazu petlje želimo da dobijemo slučajan broj između 3 i 6.
  3. Za generisanje slučajnih brojeva koristićemo funkciju random.randint.
import random

for i in range(10):
  print(random.randint(3, 6))

Ova petlja će deset puta ispisati po jedan broj koji može biti 3, 4, 5 ili 6.


Primer 2: Računanje proizvoda dva slučajna broja

Zadatak: Generisati dva slučajna broja: jedan od 1 do 50, drugi od 2 do 5. Ispisati njihov proizvod.

Pristup rešavanju:

  1. Potreban nam je modul random.
  2. Izračunavamo proizvod dva broja.
  3. Koristimo f-string da formatiramo ispis.
import random

x = random.randint(1, 50)
y = random.randint(2, 5)
print(f"{x} * {y} = {x * y}")

Ovaj zadatak nas uči osnovnoj manipulaciji brojevima i upotrebi operatora množenja.


Primer 3: Kvadrati brojeva od 1 do 20

Zadatak: Ispisati brojeve od 1 do 20 i njihove kvadrate u formatu broj --- kvadrat.

Pristup rešavanju:

  1. Koristimo for petlju koja ide od 1 do 20.
  2. Za svaki broj računamo kvadrat koristeći operator **.
  3. Ispisujemo oba broja formatirano.
for i in range(1, 21):
  print(f"{i} --- {i ** 2}")

Ovakav zadatak je odličan za vežbu petlji i rada sa matematičkim operacijama.


Primer 4: Provera unosa težine

Zadatak: Korisnik unosi težinu u kilogramima. Ako unese negativnu vrednost, program traži ponovni unos. Kada je unos validan, program konvertuje kg u funte (1kg = 2.2 lbs).

Pristup rešavanju:

  1. Koristimo while petlju jer ne znamo koliko puta će korisnik pogrešno uneti podatke.
  2. U petlji proveravamo da li je unesena vrednost manja od nule.
  3. Ako jeste, ispisujemo poruku i tražimo ponovni unos. Ako nije, računamo konverziju i prekidamo petlju.
while True:
  kg = float(input("Unesite težinu u kilogramima: "))
  if kg < 0:
      print("Težina ne može biti negativna. Pokušajte ponovo.")
  else:
      lbs = kg * 2.2
      print(f"{kg} kg = {lbs} lbs")
      break

Ovaj primer ilustruje važnost validacije korisničkog unosa.


Primer 5: Zamena brojeva većih od 10 u listi

Zadatak: Korisnik unosi listu brojeva (odvojenih razmacima). Program menja sve brojeve veće od 10 u broj 10.

Pristup rešavanju:

  1. Unos pretvaramo u listu celih brojeva pomoću map() i split().
  2. Prolazimo kroz listu pomoću for petlje i indeksa.
  3. Za svaki broj proveravamo da li je veći od 10 – ako jeste, zamenjujemo ga sa 10.
lista = list(map(int, input("Unesite brojeve razdvojene razmakom: ").split()))

for i in range(len(lista)):
  if lista[i] > 10:
      lista[i] = 10

print("Izmenjena lista:", lista)

Ovaj primer je koristan za rad sa listama i osnovnom obradom korisničkog unosa.


Kao što vidiš, svaki zadatak možemo rešiti ako ga razložimo na manje, razumljive korake. Važno je da ne paničimo kada vidimo tekst zadatka – već da ga „prevedemo“ u male zadatke koje znamo da rešimo.

Ako si početnik, pokušaj da svaki novi zadatak rešiš ovim pristupom. Vremenom ćeš sve brže uočavati obrasce i razmišljati kao programer.

Zanimljivosti

📷 Moderna kamera na mobilnom telefonu koristi veštačku inteligenciju da automatski prilagodi svetlo, kontrast, pa čak i prepozna objekte u kadru.

Teme