Informatika

Državna matura 2024./2025. — INF D-S064 — Rješenja s objašnjenjima

I. Zadatci višestrukog izbora
Zadatak 11 bod

Koja od navedenih skupina uređaja sadrži samo izlazne jedinice?

A. slušalice, pisač, skener
B. pisač, slušalice, monitor ✓
C. 3D pisač, senzor, zvučnik
D. zvučnik, senzor, web-kamera
OdgovorB — pisač, slušalice, monitor
Objašnjenje

Izlazne jedinice prenose podatke iz računala prema korisniku. Pisač, slušalice i monitor primaju podatke iz računala i prikazuju ih korisniku.

Skener (A) je ULAZNI uređaj — skenira papir i šalje sliku u računalo.

Senzor (C, D) je ULAZNI uređaj — mjeri fizikalne veličine i šalje ih u računalo.

Web-kamera (D) je ULAZNI uređaj — snima video i šalje ga u računalo.

Zadatak 21 bod

Koja se vrsta memorije koristi za privremeno pohranjivanje podataka i instrukcija koje računalo trenutačno obrađuje, a podatci u njoj ostaju samo dok je računalo uključeno?

A. RAM ✓
B. ROM
C. SSD
D. HDD
OdgovorA — RAM
Objašnjenje

RAM (Random Access Memory) je radna memorija računala. Karakteristike: privremena pohrana (briše se kad se računalo isključi), brz pristup podacima, koristi se za podatke koje procesor trenutačno obrađuje.

ROM (B) je trajna memorija koja zadržava sadržaj i bez napajanja (sadrži BIOS/firmware).

SSD (C) i HDD (D) su trajni mediji za pohranu koji zadržavaju podatke i bez napajanja — ali puno su sporiji od RAM-a.

Zadatak 31 bod

Ivan je organizirao radne materijale koristeci se složenom strukturom mapa. Na disku D, unutar mape Projekti, kreirao je mape Projekt_X i Projekt_Y. Mapa Projekt_Y sadrži podmape Dokumentacija i Testiranje. Unutar mape Testiranje postoji mapa Elaborat. Kako bi izgledala apsolutna putanja do datoteke izvjestaj.pdf u podmapi Elaborat?

A. D:\Projekti_Y\Testiranje\Elaborat\izvjestaj.pdf
B. D:\Projekti\Projekt_Y\Testiranje\Elaborat\izvjestaj.pdf ✓
C. D:\Projekti\Projekt_Y\Dokumentacija\Elaborat\izvjestaj.pdf
D. D:\Projekti\Projekt_Y\Dokumentacija\Testiranje\Elaborat\izvjestaj.pdf
OdgovorB — D:\Projekti\Projekt_Y\Testiranje\Elaborat\izvjestaj.pdf
Objašnjenje

Apsolutna putanja opisuje cijeli put od korijena diska do datoteke:

D: → Projekti → Projekt_Y → Testiranje → Elaborat → izvjestaj.pdf

A — pogrešno: piše Projekti_Y umjesto Projekti\Projekt_Y.

C — pogrešno: uključuje Dokumentacija koja nije na putu do Elaborat.

D — pogrešno: navodi i Dokumentaciju i Testiranje zajedno, ali Elaborat je samo u Testiranju.

Zadatak 41 bod

Tena je odlučila primijeniti RLE (Run-Length Encoding) algoritam na sljedeći niz znakova:

Red 1: A A A A B B C C C C C D D D A A A
Red 2: B B B B B B B C C C A A A A D D D
Red 3: A A B B C C C C D D D D E E F F F
Red 4: G G G H H I I I I I J J J J J J J
A. A4 B2 C5 D3 A3 B7 C3 A4 D3 A2 B2 C4 D4 E2 F3 G3 H2 I5 J6
B. A4 B2 C5 D3 A3 B7 C3 A4 D3 A2 B2 C4 D4 E2 F3 G3 H2 I5 J7
C. A4 B3 C5 D4 A2 B7 C3 A4 D3 A3 B2 C4 D3 E2 F3 G4 H3 I5 J6
D. A4 B3 C5 D4 A2 B6 C4 A4 D3 A2 B3 C3 D4 E2 F3 G3 H3 I4 J7
OdgovorB — A4 B2 C5 D3 A3 B7 C3 A4 D3 A2 B2 C4 D4 E2 F3 G3 H2 I5 J7
Objašnjenje

RLE broji uzastopna ponavljanja i zamjenjuje ih znakom + brojem:

Red 1: A(4) B(2) C(5) D(3) A(3)  →  A4 B2 C5 D3 A3
Red 2: B(7) C(3) A(4) D(3)       →  B7 C3 A4 D3
Red 3: A(2) B(2) C(4) D(4) E(2) F(3)  →  A2 B2 C4 D4 E2 F3
Red 4: G(3) H(2) I(5) J(7)       →  G3 H2 I5 J7

Ključna razlika: J se pojavljuje 7 puta (J J J J J J J) → J7, ne J6. Odgovor A griješi upravo tu.

Zadatak 51 bod

U RAM nekog računala može se pohraniti najviše 32 GiB. Koliko najmanje bitova treba za adresiranje svakog bajta RAM-a?

A. 34
B. 35 ✓
C. 234
D. 235
OdgovorB — 35 bitova
Objašnjenje

32 GiB = 32 × 230 B = 25 × 230 = 235 bajtova

Da bismo adresirali 235 lokacija, trebamo točno 35 bitova (s n bitova adresiramo 2n lokacija).

C i D su pogrešni jer predstavljaju broj adresa (235), a ne broj bitova za adresiranje.

Zadatak 61 bod

U pametnom automobilu dekadski broj 118 pohranjen u 8-bitnom registru predstavlja statuse sigurnosnih sustava (svaki bit: 0 = ne radi, 1 = aktivan). Koji binarni broj opisuje statuse?

A. 01110110 ✓
B. 01010110
C. 01101110
D. 01111101
OdgovorA — 01110110
Objašnjenje

Pretvaramo 118 u binarni dijeljenjem s 2 i čitamo ostatke odozdo prema gore:

118 ÷ 2 = 59, ostatak 0
 59 ÷ 2 = 29, ostatak 1
 29 ÷ 2 = 14, ostatak 1
 14 ÷ 2 =  7, ostatak 0
  7 ÷ 2 =  3, ostatak 1
  3 ÷ 2 =  1, ostatak 1
  1 ÷ 2 =  0, ostatak 1

Čitamo odozdo: 1110110 → dopunjeno na 8 bita: 01110110

Provjera: 64 + 32 + 16 + 4 + 2 = 118

Zadatak 71 bod

Neka je A logička varijabla. Što je ekvivalentno izrazu A + NOT(A)?

A. 0
B. 1 ✓
C. A
D. NOT(A)
OdgovorB — 1 (uvijek istinito)
Objašnjenje

Ovo je zakon komplementarnosti (zakon isključenja trećeg): A ILI (NE A).

Bez obzira na vrijednost A, uvijek jedan od uvjeta je istinit:

  • Ako A = 0: 0 + NOT(0) = 0 + 1 = 1
  • Ako A = 1: 1 + NOT(1) = 1 + 0 = 1

Rezultat je uvijek 1 — ovo je tautologija.

Zadatak 81 bod

Što je rješenje izraza: X > 2 I NE(X > 6) ILI X < 8 I X > 4?

A. X > 2
B. X > 6
C. 4 < X < 6
D. 2 < X < 8 ✓
OdgovorD — 2 < X < 8
Objašnjenje

Redoslijed prioriteta logičkih operatora: NE > I > ILI

Izraz se parsira kao: [X > 2 I NE(X > 6)] ILI [X < 8 I X > 4]

  • NE(X > 6) = X ≤ 6
  • 1. dio: X > 2 I X ≤ 62 < X ≤ 6
  • 2. dio: X < 8 I X > 44 < X < 8
  • Unija: (2 < X ≤ 6) ILI (4 < X < 8) = 2 < X < 8
Zadatak 91 bod

Ivana će ići na zabavu ako je subota i ako je zabava u gradu, odnosno ako je petak i ako je zabava u okolici grada. Koji logički izraz to opisuje? (A = dan u tjednu, B = lokacija)

A. A='subota' I B='grad' I A='petak' I B='okolica'
B. A='subota' I B='grad' I A='petak' ILI B='okolica'
C. A='subota' I B='grad' ILI A='petak' I B='okolica' ✓
D. A='subota' ILI B='grad' I A='petak' ILI B='okolica'
OdgovorC — (A='subota' I B='grad') ILI (A='petak' I B='okolica')
Objašnjenje

Uvjet iz teksta: (subota I grad) ILI (petak I okolica).

Operator I (AND) ima viši prioritet od ILI (OR). Izraz C parsira se upravo kao dva AND-para spojena OR-om.

A — nemoguće jer A ne može biti istovremeno 'subota' i 'petak'.

B — parsira se drugačije zbog prioriteta: ... I (A='petak' ILI B='okolica').

Zadatak 101 bod

Koji Python izraz odgovara matematičkom: p = 1/x + 1/(y+1) − 1/(z−1)?

A. p = 1 / x + 1 / y + 1 - 1 / z - 1
B. p = 1 / x + 1 / (y + 1) - 1 / (z - 1) ✓
C. p = 1 / (x + 1) + 1 / y - 1 / (z - 1)
D. p = (1 / x) + 1 / (y + 1) - 1 / z - 1
OdgovorB — p = 1 / x + 1 / (y + 1) - 1 / (z - 1)
Objašnjenje

Ključno je postavljanje zagrada jer operator dijeljenja ima prioritet s lijeva na desno.

Za 1/(y+1) moramo pisati 1 / (y + 1) — zagrade osiguravaju da se y+1 izračuna PRIJE dijeljenja. Bez zagrada, 1 / y + 1 = (1/y) + 1, što je pogrešno.

Isto vrijedi za 1/(z−1) → 1 / (z - 1).

Zadatak 111 bod

Što će ispisati ovaj program?

a = 47
b = 6
c = a // b * b
d = a % b
print(d + c)
A. 1
B. 6
C. 37
D. 47 ✓
OdgovorD — 47
Objašnjenje

Korak po korak:

a = 47, b = 6
c = 47 // 6 * 6 = 7 * 6 = 42   (cjelobrojno dijeljenje: 47÷6=7, zatim 7×6=42)
d = 47 % 6 = 5                  (ostatak: 47 = 7×6 + 5)
d + c = 5 + 42 = 47

Matematičko svojstvo: a = (a // b) * b + (a % b) → cjelobrojno dijeljenje i ostatak zajedno uvijek rekonstruiraju originalni broj.

Zadatak 121 bod

Što će ispisati ovaj program?

d = 10
e = 11
f = 1 + d * e
d = e - f
if d > f and f < e:
    print(d)
elif e != f or d > f:
    print(e)
else:
    print(f)
A. -100
B. 11 ✓
C. 111
D. 121
OdgovorB — 11
Objašnjenje
d=10, e=11
f = 1 + 10*11 = 1 + 110 = 111
d = 11 - 111 = -100
→ Stanje: d=-100, e=11, f=111

Provjera if:  d > f AND f < e  →  -100>111 AND 111<11  →  FALSE AND FALSE  →  FALSE
Provjera elif: e != f OR d > f  →  11≠111 OR -100>111  →  TRUE OR FALSE   →  TRUE
→ ispisuje se e = 11
Zadatak 131 bod

Što radi ovaj program?

a = 3726519
b = 0
while a > 0:
    c = a % 10
    if c <= 5:
        b = b + c
    a = a // 10
print(b)
A. Ispisuje zbroj znamenaka broja koje su manje od 5.
B. Ispisuje zbroj znamenaka broja koje su manje od 6. ✓
C. Ispisuje koliko je znamenaka manje od 5.
D. Ispisuje koliko je znamenaka manje od 6.
OdgovorB — zbroj znamenaka koje su manje od 6 (≤ 5)
Objašnjenje

c = a % 10 uzima zadnju znamenku, a = a // 10 uklanja je — petlja prolazi svaku znamenku.

Uvjet c <= 5 znači 0, 1, 2, 3, 4, 5 → "manje od 6", a ne "manje od 5".

b = b + c zbraja vrijednost znamenke (ne broji je), pa je odgovor B (ne D).

Broj 3726519 → znamenke: 3, 7, 2, 6, 5, 1, 9
Manje od 6 (≤ 5): 3, 2, 5, 1  →  zbroj = 3+2+5+1 = 11
Zadatak 141 bod

Koji redak koda treba napisati na praznu crtu ako program treba ispisati sve brojeve manje od n koji su djeljivi s 5 ili 7 ili s oba?

n = int(input())
for i in range(1, n):
    ___________________
    print(i)
A. if i % 5 == 0 or i % 7 == 0: ✓
B. if i // 5 == 0 or i // 7 == 0:
C. if i % 5 == 0 and i % 7 == 0:
D. if i // 5 == 0 and i // 7 == 0:
OdgovorA — if i % 5 == 0 or i % 7 == 0:
Objašnjenje

Operator % (modulo) daje ostatak pri dijeljenju. i % 5 == 0 znači da i nema ostatka → djeljivo je s 5.

Operator or — dovoljno da barem jedan uvjet bude ispunjen, što uključuje i slučaj djeljivosti s oba.

B// je cjelobrojno dijeljenje, ne modulo. i // 5 == 0 vrijedi samo za i < 5.

Cand zahtijeva djeljivost s OBA broja, ali zadatak traži s jednim ILI s oba.

Zadatak 151 bod

Za koji testni primjer će se while petlja izvesti samo jednom?

d = int(input())
while d < 3:
    if d % 3 == 1:
        d = d + 1
    else:
        d = d + 2
A. 0
B. 1
C. 2 ✓
D. 3
OdgovorC — d = 2
Objašnjenje
d=0: 0<3 → ulaz. 0%3=0 ≠ 1 → d=0+2=2. Provjera: 2<3 → ulaz DRUGI PUT ✗
d=1: 1<3 → ulaz. 1%3=1   → d=1+1=2. Provjera: 2<3 → ulaz DRUGI PUT ✗
d=2: 2<3 → ulaz. 2%3=2 ≠ 1 → d=2+2=4. Provjera: 4<3 → IZLAZ → točno jednom ✓
d=3: 3<3 → FALSE → petlja se ne izvodi ni jednom ✗
Zadatak 161 bod

Kako se naziva vrsta zlonamjernog programa koji autoru omogućuje da mijenja operacijski sustav i preuzima kontrolu nad računalom?

A. rootkit ✓
B. adware
C. keylogger
D. ransomware
OdgovorA — rootkit
Objašnjenje

Rootkit se duboko integrira u operacijski sustav, daje napadaču administratorske (root) ovlasti i skriva vlastito prisustvo.

Adware (B) — prikazuje neželjene oglase.

Keylogger (C) — bilježi pritiske tipki radi krađe lozinki.

Ransomware (D) — kriptira datoteke i traži otkupninu.

Zadatak 171 bod

Na temelju skupnog stupčastog grafikona (punoljetni i maloljetni turisti za mjesta A, B, C, D) odredite koja je tvrdnja točna.

A. Iz grafikona možemo točno iščitati udio punoljetnih turista u mjestu A.
B. Iz grafikona jasno možemo iščitati točan broj maloljetnih turista u nekom mjestu.
C. Iz grafikona jednoznačno možemo odrediti u kojemu je mjestu bilo najviše maloljetnih turista.
D. Iz grafikona možemo zaključiti u kojemu je mjestu bilo najviše prijavljenih turista. ✓
OdgovorD — možemo odrediti koje mjesto ima najviše turista ukupno
Objašnjenje

Skupni stupčasti grafikon ima stupce gdje svaki stupac = plavi (punoljetni) + narančasti (maloljetni) dio. Visina cijelog stupca = ukupan broj turista — Mjesto D ima najvisočiji stupac.

A — udio se ne može točno iščitati sa stupčastog grafikona (za udio treba tortni dijagram).

B — teško je točno očitati dijelove stupca sa skupnog grafikona.

C — maloljetni u mjestima B i D imaju slične narančaste dijelove — nije jednoznačno.

Zadatak 181 bod

U programu Word, točka umetanja (kursor) nalazi se na nekom mjestu u dokumentu. Ako kliknemo na ikonu za uvlačenje teksta (povećanje uvlake), na koji dio dokumenta djeluje naredba?

A. na cijeli dokument
B. na tekst trenutačne stranice
C. na redak u kojemu se nalazi točka umetanja
D. na cijeli odlomak u kojemu se nalazi točka umetanja ✓
OdgovorD — na cijeli odlomak
Objašnjenje

U Microsoft Wordu, sve naredbe za oblikovanje odlomaka (poravnanje, uvlake, prored) uvijek djeluju na cijeli odlomak u kojemu se nalazi kursor — čak i ako nije označen nijedan tekst.

Odlomak u Wordu je tekst između dva pritiska tipke Enter.

II. Zadatci kratkog odgovora i dopunjavanja
Zadatak 191 bod

Odredite tablicu istinitosti za logički izraz: Y = NOT(A) * NOT(B) + NOT(C) * B + A

OdgovorY vrijednosti: 1, 1, 1, 0, 1, 1, 1, 1
Objašnjenje

Izraz: Y = NOT(A)·NOT(B) + NOT(C)·B + A

ABCNOT(A)·NOT(B)NOT(C)·BAY
0001·1=11·0=001
0011·1=10·0=001
0101·0=01·1=101
0111·0=00·1=000
1000·1=01·0=011
1010·1=00·0=011
1100·0=01·1=111
1110·0=00·1=011

Jedini slučaj Y=0: A=0, B=1, C=1. Sva tri člana su 0.

Zadatak 201 bod

Na slici je prikazan Windows File Explorer otvoren u mapi Matura. Zaokružite ikonu koju treba odabrati za kreiranje mape Fizika u mapi Matura.

OdgovorIkona "Nova mapa" (New Folder) u alatnoj traci File Explorera
Objašnjenje

Kada smo u mapi Matura i želimo kreirati podmapu, koristimo ikonu "Nova mapa" (New Folder) u alatnoj traci File Explorera — izgleda kao mapa s plus simbolom (+).

Postupak: klik na "Nova mapa" → unosimo naziv "Fizika" → Enter.

Ne koristimo "Nova stavka" (za datoteke raznih vrsta) niti druge opcije.

Zadatak 211 bod

Broj 8AC zapisan je u heksadekadskom brojevnom sustavu. Koliko nula taj broj ima u binarnom zapisu?

Odgovor7 nula
Objašnjenje

Svaka hex znamenka pretvara se u 4 bita:

8 = 1000
A = 10₁₀ = 1010
C = 12₁₀ = 1100

8AC₁₆ = 1000 1010 1100 = 100010101100₂

Prebrojimo nule: 100010101100 → nule na pozicijama 2, 3, 4, 6, 8, 11, 12 = 7 nula.

Zadatak 221 bod

Što će ispisati ovaj program?

s = 0
for i in range(10):
    for j in range(4):
        s = s + 10
print(s)
Odgovor400
Objašnjenje

Vanjska petlja: 10 ponavljanja (i = 0…9)

Unutarnja petlja: 4 ponavljanja (j = 0…3)

Unutarnja petlja se ukupno izvodi: 10 × 4 = 40 puta. Svaki put s se povećava za 10.

Rezultat: s = 40 × 10 = 400

Zadatak 231 bod

Koju će vrijednost imati varijabla n ako se učita broj 343201?

a = int(input())
n = 0
p = -1
while a > 0:
    z = a % 10
    a = a // 10
    r = z - p
    if r == 1 or r == -1:
        n += 1
    p = z
Odgovorn = 4
Objašnjenje

Program čita znamenke s desna na lijevo (% 10 uzima zadnju, // 10 uklanja). Računa r = razlika uzastopnih znamenki. Ako je razlika ±1, n se povećava.

Redoslijed čitanja znamenki iz 343201: 1, 0, 2, 3, 4, 3

p=-1, z=1: r = 1-(-1) = 2   → nije ±1 → n=0, p=1
p= 1, z=0: r = 0-1   = -1  → jest -1  → n=1, p=0
p= 0, z=2: r = 2-0   =  2  → nije ±1 → n=1, p=2
p= 2, z=3: r = 3-2   =  1  → jest  1  → n=2, p=3
p= 3, z=4: r = 4-3   =  1  → jest  1  → n=3, p=4
p= 4, z=3: r = 3-4   = -1  → jest -1  → n=4, p=3

Krajnja vrijednost: n = 4
Zadatak 241 bod

Do kraja natjecanja ostalo je još 4096 sekundi. Svaka fotografija zauzima 512 KiB, a brzina prijenosa iznosi 2048 Mb/s. Koliko slika može poslati Tomo?

Odgovor2 fotografije
Objašnjenje

Pažnja: Mb/s su megabiti, a KiB su kibibajti — treba svesti na iste jedinice!

Ukupan kapacitet prijenosa:
  2048 Mb/s × 4096 s = 8 388 608 Mb

Veličina jedne fotografije:
  512 KiB = 512 × 1024 B = 524 288 B
  524 288 B × 8 bit/B = 4 194 304 bita
  4 194 304 bita / 1 000 000 = 4,194304 Mb

Broj fotografija:
  8 388 608 Mb / 4,194304 Mb ≈ 2 000 → 2 fotografije
Zadatak 251 bod

Marko želi omogućiti drugima da koriste njegov algoritam u vlastitim projektima, čak i u komercijalne svrhe, ali uz uvjet da se kod ne smije mijenjati ili prerađivati. Kojom CC licencom treba biti označen Markov algoritam?

OdgovorCC BY-ND
Objašnjenje

Creative Commons licence:

  • CC BY — slobodno korištenje uz navođenje autora
  • CC BY-SA — slobodno korištenje, dijeljenje pod istim uvjetima
  • CC BY-ND — slobodno korištenje uz navođenje, BEZ IZMJENA (ND = NoDerivatives)
  • CC BY-NC — nekomercijalno korištenje uz navođenje autora
  • CC BY-NC-ND — nekomercijalno, bez izmjena

Markov uvjet: komercijalno DA (nema NC), ali izmjene NE (ND). Dakle: CC BY-ND.

Zadatak 262 boda

Zadana su dva binarna broja: 1011101 i 101110.

26.1 — Dekadska vrijednost broja 1011101
Odgovor 26.193
Objašnjenje
Pozicija: 6    5    4    3    2    1    0
Bit:       1    0    1    1    1    0    1
Vrijednost: 64 + 0 + 16 + 8 + 4 + 0 + 1 = 93
26.2 — Zbroj u binarnom sustavu

Koliko iznosi zbroj binarnih brojeva 1011101 i 101110 u binarnom sustavu?

Odgovor 26.210001011
Objašnjenje
  1011101  (= 93)
+ 0101110  (= 46)
---------
Stupac 0: 1+0=1
Stupac 1: 0+1=1
Stupac 2: 1+1=10 → piše 0, prenosi 1
Stupac 3: 1+1+1=11 → piše 1, prenosi 1
Stupac 4: 1+0+1=10 → piše 0, prenosi 1
Stupac 5: 0+1+1=10 → piše 0, prenosi 1
Stupac 6: 1+0+1=10 → piše 0, prenosi 1
Prijenos: 1
= 10001011

Provjera: 93 + 46 = 139. Binarno 10001011 = 128+8+2+1 = 139

Zadatak 272 boda

Sadržaj registra duljine 8 bita je 11110011.

27.1 — Heksadekadski zapis
Odgovor 27.1F3
Objašnjenje

Grupiramo binarne znamenke u grupe od 4 s desna:

1111 | 0011
1111 = 15 = F
0011 =  3

Heksadekadski: F3
27.2 — Dvojni komplement: koji dekadski broj je zapisan?

Za zapis broja koristi se metoda dvojnog komplementa. Koji je dekadski broj zapisan u registru 11110011?

Odgovor 27.2−13
Objašnjenje

Ako je najznačajniji bit (MSB) = 1, broj je negativan.

Postupak:
1. Invertiramo sve bite:   11110011 → 00001100
2. Dodamo 1:               00001100 + 1 = 00001101
3. Pretvorimo u dekadski:  8 + 4 + 1 = 13
4. MSB=1 → negativan → rezultat je −13
Zadatak 282 boda

Slika veličine 1024 × 800 piksela pohranjena je u memoriji s 24 bita po pikselu.

28.1 — Koliko memorije u KiB zauzima slika?
Odgovor 28.12400 KiB
Objašnjenje
Broj piksela:  1024 × 800 = 819 200 piksela
Bajta po pikselu: 24 bita = 3 bajta
Ukupno: 819 200 × 3 = 2 457 600 bajta
U KiB: 2 457 600 / 1024 = 2400 KiB
28.2 — Koliko različitih boja može imati piksel ako se koristi 1 bajt?
Odgovor 28.2256 boja
Objašnjenje

1 bajt = 8 bitova. S 8 bitova možemo predstaviti 28 = 256 različitih vrijednosti (0–255). Ovo je npr. GIF format koji podržava paletu od 256 boja.

Zadatak 292 boda

Koji će biti vrijednosti varijabli x i y nakon izvođenja programa?

x = 23
y = 23
while x > y // 2:
    x = x - 12
    if y > 10:
        y = y // 2
Odgovor29.1: x = −1  |  29.2: y = 5
Objašnjenje
Početak: x=23, y=23

Iter. 1: uvjet 23 > 23//2=11 → TRUE
         x = 23-12 = 11
         y > 10 → y = 23//2 = 11

Iter. 2: uvjet 11 > 11//2=5 → TRUE
         x = 11-12 = -1
         y > 10 → y = 11//2 = 5

Iter. 3: uvjet -1 > 5//2=2 → FALSE → izlaz

Rezultat: x = -1, y = 5
Zadatak 302 boda

Koji će biti vrijednosti varijabli a i b nakon izvođenja programa?

a = 0
b = 5
for i in range(7, 10):
    a = a - b
    b = b - 2
    a = a + i
Odgovor30.1: a = 15  |  30.2: b = −1
Objašnjenje
range(7,10) daje: i = 7, 8, 9

i=7: a = 0-5=-5,   b = 5-2=3,  a = -5+7 = 2
i=8: a = 2-3=-1,   b = 3-2=1,  a = -1+8 = 7
i=9: a = 7-1= 6,   b = 1-2=-1, a =  6+9 = 15

Rezultat: a = 15, b = -1
Zadatak 312 boda

Koji će biti vrijednosti varijabli p i z nakon izvođenja programa?

p = 2
z = 2
while p <= 12:
    p = p * z
    z = z + 1
Odgovor31.1: p = 48  |  31.2: z = 5
Objašnjenje
Početak: p=2, z=2

Iter. 1: p=2≤12 → TRUE.  p = 2*2 = 4,  z = 2+1 = 3
Iter. 2: p=4≤12 → TRUE.  p = 4*3 = 12, z = 3+1 = 4
Iter. 3: p=12≤12 → TRUE. p = 12*4 = 48, z = 4+1 = 5
Iter. 4: p=48≤12 → FALSE → izlaz

Rezultat: p = 48, z = 5
Zadatak 322 boda

Program učitava redom prirodne brojeve: 3, 2, 4, 5, 1. Koji su vrijednosti n i z?

z = 0
for i in range(5):
    n = int(input())
    if n % 2 != 0:
        n = n + 1
    z = z + n
Odgovor32.1: n = 2  |  32.2: z = 18
Objašnjenje

Program svaki neparni broj povećava za 1 (čini ga parnim), pa zbraja:

n=3: 3%2=1 (neparno) → n=3+1=4,  z=0+4=4
n=2: 2%2=0 (parno)   → n ostaje 2, z=4+2=6
n=4: 4%2=0 (parno)   → n ostaje 4, z=6+4=10
n=5: 5%2=1 (neparno) → n=5+1=6,  z=10+6=16
n=1: 1%2=1 (neparno) → n=1+1=2,  z=16+2=18

n = 2 (zadnja vrijednost), z = 18
Zadatak 332 boda

Program bi trebao ispisati najmanju od tri učitane vrijednosti, ali sadrži grešku. Pronađi i ispravi je.

0  (deklaracije)
1  a = int(input())
2  b = int(input())
3  c = int(input())
4  if a > b:
5      a = b
6  if b > c:         ← GREŠKA
7      a = c
8  print(a)
Odgovor33.1: Redak 6  |  33.2: if a > c:
Objašnjenje

Nakon redaka 4–5, varijabla a sadrži min(originalni_a, b).

U retku 6 treba usporediti trenutni minimum (a) s c, ne b s c:

Primjer greške: a=3, b=7, c=5
  Ret.4-5: 3>7 → FALSE → a ostaje 3
  Ret.6 (pogrešno): b>c = 7>5 → TRUE → a = c = 5
  Ispisuje 5, ali minimum je 3!   ← GREŠKA

Ispravno (if a > c):
  Ret.4-5: 3>7 → FALSE → a ostaje 3
  Ret.6 (ispravno): a>c = 3>5 → FALSE → a ostaje 3
  Ispisuje 3   ✓
III. Zadatci produženog odgovora
Zadatak 343 boda

U programskom jeziku definiran je modul crtaj s funkcijama: naprijed(tocaka), zakreni_udesno(kut), zakreni_ulijevo(kut), sakrij_olovku(). Olovka počinje u sredini ekrana, spuštena i okrenuta udesno. Kućica se crta s kvadratom i jednakostraničnim trokutom na vrhu.

       /\
      /  \
     / △  \    ← jednakostraničan trokut
    /      \
   /________\
   |        |
   |   □    |  ← kvadrat
   |________|
34.1 — Za koliki se najmanji kut treba rotirati olovka da nacrta stranicu trokuta označenu brojem 1?
Odgovor 34.160 stupnjeva
Objašnjenje

Olovka počinje okrenuta udesno (0°). Stranica 1 je lijeva stranica trokuta koja ide gore-lijevo.

Jednakostraničan trokut ima sve kutove 60°. Da bi nacrtala stranicu 1, olovka mora biti usmjerena 60° od horizontale prema gore-lijevo.

Dakle: zakreni_ulijevo(60) → minimalni kut je 60 stupnjeva.

34.2 — Napiši program koji crta kućicu

Gornji lijevi kut kvadrata smješten je u središte ekrana. Linije se crtaju redom prema naznačenim brojevima (1 = lijeva stranica trokuta, 2 = desna, 3–6 = stranice kvadrata). Duljina stranice a se upisuje s tipkovnice.

Odgovor 34.2Program ispod
Objašnjenje
a = int(input())

zakreni_ulijevo(60)    # okrećemo za crtanje lijeve stranice trokuta (str. 1)
naprijed(a)            # crtamo stranicu 1 (lijeva str. trokuta)
zakreni_udesno(120)    # vanjski kut jednakostraničnog trokuta: 180-60=120°
naprijed(a)            # crtamo stranicu 2 (desna str. trokuta)
zakreni_udesno(120)    # okrenuti smo prema dolje-desno za početak kvadrata

for i in range(4):
    naprijed(a)        # str. 3 (gornja), 4 (lijeva), 5 (donja), 6 (desna)
    zakreni_ulijevo(90)

sakrij_olovku()

Logika rotacija: jednakostraničan trokut ima unutarnje kutove 60°, vanjski kutovi su 180°−60° = 120°. Kvadrat ima unutarnje kutove 90°, vanjski 90°.

Zadatak 353 boda

Katja bilježi koliko se sladoleda pojede u nekom vremenskom intervalu. Napiši program koji:

  • Učitava početni broj sladoleda u zamrzivaču
  • Učitava broj dana pokusa
  • Za svaki dan učitava: koliko je kupljeno i koliko je pojedeno
  • Ispisuje ukupno pojedeno i konačno stanje zamrzivača
OdgovorProgram ispod
Objašnjenje
z = int(input())     # početni broj sladoleda u zamrzivaču
n = int(input())     # broj dana pokusa
ukupno = 0

for i in range(n):
    k = int(input())     # kupljenih taj dan
    p = int(input())     # pojedenih taj dan
    ukupno += p
    z = z + k - p        # ažuriramo stanje zamrzivača

print(ukupno)        # ukupno pojedeno
print(z)             # konačno stanje zamrzivača

Logika: svaki dan zamrzivač se puni za k (kupljeno) i prazni za p (pojedeno). Ukupno pojedeno prati se zasebno.

Zadatak 363 boda

Martin svaki dan šutira 450 trica na koš. Napiši program koji učitava koliko je trica Martin pogodio svaki dan. Učitavanje završava kada Martin po drugi put pogodi najmanje 250 trica. Program treba ispisati broj dana koji su bili potrebni.

OdgovorProgram ispod
Objašnjenje
k = 0       # brojač uspješnih dana (≥ 250 trica)
dan = 0     # ukupan broj dana

while k != 2:
    pog = int(input())   # broj pogodaka tog dana
    if pog >= 250:
        k = k + 1        # uspješan dan
    dan = dan + 1        # svaki dan se broji (i neuspješni!)

print(dan)

Važno: dan se povećava za svaki dan, uključujući i one kad Martin nije pogodio ≥ 250. Pitanje traži ukupan broj dana, ne samo uspješnih.

Petlja se vrti dok k nije 2 (tj. sve do drugog uspješnog dana).