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.
| 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.
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])
Ovo bih proglasio jednim od ključnih algoritamskih obrazaca državne razine.