Nova znanja prikazuju naredbe i algoritme koje treba upoznati kroz kratku teoriju i općenite primjere.

Pravo razumijevanje i primjena novih znanja razvijaju se kroz riješene primjere, a usvojenost znanja provjerava se zadatcima za samostalni rad.

PRIMJERI

ZADATCI

Nova znanja

Novo znanje Zašto ga sada trebamo
Liste spremanje većeg broja podataka koji se kasnije ponovno koriste
append(), len(), in dodavanje, broj elemenata, provjera pojavljivanja elementa u listi
mijenjanje elemenata liste simulacije u kojima se stanje podataka mijenja
boolean lista – označavanje viđenih/korištenih prvi dolazak, iskorištena kategorija, postojeća karta...
frekvencijska lista koliko se puta pojavila pojedina vrijednost
dvodimenzionalne liste / matrice ploče, tablice, vrijednost × kategorija
sorted() usporedba skupova podataka i lakše prepoznavanje uzoraka
sustavna potpuna pretraga (brute force) isprobavanje svih mogućih rješenja kada ih nema mnogo
permutacije malog broja elemenata raspoređivanje različitih kategorija bez ponavljanja
pretraga odgovora pokušaj kandidata → provjera zadovoljava li uvjet
intervali i njihov presjek vozila, trake, preklapanja
simulacija s listom koja se mijenja brisanje, preslagivanje, pomicanje
ubrzavanje velikog broja ponavljanja pomoću // i % kada je broj koraka i do 10910^9
usporedba po više kriterija / tie-break najbolji rezultat, a kod izjednačenja manja oznaka
stanja i zastavice (flag) algoritam prelazi kroz različite faze
realni brojevi – float() zadaci s decimalnim vrijednostima
mali graf i najkraći put povezane točke i minimalni broj prijelaza
kumulativne pozicije/zbrojevi pretvaranje nejednakih mjeseci, položaji objekata

Najveća novost su liste.


1. Liste

Na županijskoj razini nam je često bilo dovoljno zapamtiti trenutačni i prethodni podatak. Na državnoj to više nije dovoljno.

Primjer:

brojevi= []
for i in range(n):
	x=int(input())
	brojevi.append(x)

Kasnije možemo ponovno pristupati svim podacima:

print(brojevi[0])
print(brojevi[3])
brojevi[2]=10

i prolaziti kroz njih:

for x in brojevi:
	print(x)

ili pomoću indeksa:

for i in range(len(brojevi)):
	print(i,brojevi[i])

2. Boolean lista – jesmo li nešto već vidjeli?

Ovo bih proglasio jednim od ključnih algoritamskih obrazaca državne razine.