You are on page 1of 8

NASTAVNA PRIPREMA ZA OGLEDNI SAT

Škola: Peta gimnazija, Zagreb


Predmet: Informatika
Ime i prezime nastavnika: Eduard Luka
Mudri
Ime i prezime mentora: Saida Deljac Razred: 1

Broj sata: 1
Naziv metodičke jedinice: Programiranje u
Pythonu
Nadnevak:

Nastavna jedinica: Naredbe ponavljanja

Predmetni ishodi:
B 1.3 Razvija algoritam i stvara program u odabranome programskom jeziku rješavajući
problem uporabom strukture grananja i ponavljanja.
Razrada predmetnih ishoda:
Razvija algoritam primjenjujući strukture grananja i ponavljanja. Prati izvođenje algoritma,
implementira u odabranom programskom jeziku, testira i vrednuje u suradnji s drugima,
koristi se različitim metodama ispravljanja pogrešaka. Vrednuje različita rješenja istoga
problema.
Očekivanja međupredmetnih tema:
MPT Uporaba IKT  
C 4.1. Učenik samostalno provodi složeno istraživanje radi rješenja problema u
digitalnome okružju.
Suodnos:
Matematika: A 1.1. Računa s realnim brojevima

Tip sata (odabrati):


Vježbe

Nastavne metode (odabrati):


Metoda razgovora – usmjerena rasprava, rješavanje zadataka na ploči

1
Oblici rada (odabrati):
Frontalni rad, individualni rad

Nastavna sredstva i pomagala:


Projektor, računalo, Python IDLE

Za učenike koji žele znati više:


Python Tutorial (1999.-2019.), W3Schools, dostupno na:
https://www.w3schools.com/python/

Za učenike s poteškoćama:

Literatura (za nastavnika i učenike):


P. Brođanac, L. Budin, Z. Markučić, S. Perić, Informatika 1, udžbenik za 1. razred gimnazija,
Školska knjiga Zagreb

2
Sadržaj rada
UVODNI DIO
Ukratko sa učenicima ponavljam gradivo vezano za for petlju.
U programima se često javlja potreba da se dio koda ponavlja. Kako ne bi pisali isti kod
mnogo puta upotrebljavaju se naredbe ponavljanja. Jedna od naredaba ponavljanja je i for
petlja koja se koristi kada je broj ponavljanja unaprijed poznat. Pri svakom prolasku kroz
petlju kontrolna varijabla poprima slijedeću vrijednost koju joj generira funkcija range().
Funkcija range ima tri atributa kojima se zadaju početna i konačna vrijednost te sam korak.
Korak je atribut koji kaže funkciji range za koliko 'skače' prilikom generiranja vrijednosti.
Konačna vrijednost koju daje funkcija range je za jedan manja od danog atributa, a kada je
korak različit od 1 tada je zadnja vrijednost na koju skoči unutar intervala. Korak može biti i
negativan, tada vrijednosti koje generira range() funkcija idu u obrnutom smjeru no
početna vrijednost mora biti veća od konačne.

Na projektoru u pythonu zajedno sa učenicima prolazim kroz tri jednostavnija zadatka


kako bi zorno predočio upotrebu for petlje. Na ploču pozivam nasumice učenika te
zajedno rješavamo zadatak. Prikupljam učenikove ideje kako konceptualno riješiti zadatak
pitanjima . Rješavamo zadatak konceptualno po koracima da bi ga na kraju riješili
programskim kodom u pythonu. Ne očekujem učeničke poteškoće
3. Napiši program koji unosi prirodan broj N i ispisuje:
b) sve neparne brojeve do N

Što prvo moramo uraditi?


Koja je početna vrijednost u range funkciji a koja je konačna?
Kako ćemo u programu provjeriti jeli broj neparan?
Gdje ćeš upotrijebiti naredbu if-else?
Zašto koristimo if-else unutar for petlje?

n = int(input("unesi broj:"))
for i in range(1,n+1):
if i % 2 != 0:
print(i)

Koja su početne i konačne vrijednosti u range funkciji?


Kakav mora biti korak range funkcije?
Kakav bi bio ispis da korak nije zadan?

n = int(input("unesi broj:"))
for i in range(1,n+1,2):
print(i)

c) prvih N parnih brojeva

Što prvo moramo učiniti?


3
Koje su početna i konačna vrijednost u range funkciji?
Ako imamo kontrolnu varijablu i koja je proizvoljna, što moramo uraditi s njome da bismo
bili sigurni da uvijek daje parne brojeve?

n = int(input("unesi broj:"))
for i in range(0, n):
print(2*i+2)

Ako rješavamo preko koraka, koje su početne i konačne vrijednosti u range funkciji ako
želimo ispis n parnih brojeva?
n = int(input("unesi broj:"))
for i in range(2,2*n+2,2):
print(i)

d) prvih N neparnih brojeva

Što prvo moramo učiniti?


Koje su početna i konačna vrijednost u range funkciji?
Ako imamo kontrolnu varijablu i koja je proizvoljna, što moramo uraditi s njome da bismo
bili sigurni da uvijek daje neparne brojeve?

n = int(input("unesi broj:"))
for i in range(0,n):
print(2*i+1)

Ako rješavamo korakom, koje su početna i konačna vrijednost range funkcije?


Kakav mora biti korak?
n = int(input("unesi broj:"))
for i in range(1,2*n+1,2):
print(i)
GLAVNI DIO
Učenici rade zadatke sa listića koji se nalazi na loomenu. Rade zasebno na računalima.
Prelazi se s frontalnog na individualni rad. Obilazim učenike i odgovaram na njihova pitanja
tražeći da mi konceptualno objasne kako bi riješili zadatak po koracima. Od učenika
očekujem da napišu programski kod u pythonu. Predviđam poteškoće kod ispravnog
zadavanja intervala for petlje sa „range“ funkcijom te kod inicijalizacije varijabli. Dajem
određeno vrijeme učenicima da riješe zadatak a zatim pozivam jednog od učenika koji su
ispravno riješili zadatak da ga riješi na projektoru pred razredom. Ako učenici nakon
dotičnog vremena ne uspijevaju riješiti zadatak, rješavam ga ja po koracima programskim
kodem.
Primjeri zadataka:
4.Napiši program koji će unositi prirodan broj N i ispisivati sve prirodne brojeve do N i
njihove kvadrate, i to u obliku broj – kvadrat. Brojeve treba ispisivati od većeg prema
manjemu.
Koje su početne i konačne vrijednosti u funkciji range?

4
Kakav mora biti korak?

n = int(input("unesi broj:"))
for i in range(n,0,-1):
print(i, "-",i**2)
14. Napiši program koji učitava broj n i ispisuje zbroj svih prirodnih brojeva do n.
Inicijalizacija je postupak davanja početne vrijednosti nekoj varijabli kako bi s njome mogli
raditi.
Prije izvođenja for petlje moramo inicijalizirati varijablu suma jer kod koraka suma = suma
+ i se ne bi znalo koja je početna suma. Koliko mora biti početna vrijednost sume?

n = int(input("unesi broj:"))
suma = 0
for i in range(1, n+1):
suma = suma + i
print(suma)
5. Napiši program koji unosi prirodan broj N i ispisuje vrijednost 𝑁! (𝑁! = 1 ∙ 2 ∙ … ∙ 𝑁).
n = int(input("unesi broj:"))
Koja mora biti početna vrijednost kod inicijalizacije varijable k?
k=1
for i in range(1,n+1):
k=k*i
print(k)
12. Napiši program koji učitava broj n i ispisuje sve njegove djelitelje.
Kakav mora biti ostatak dijeljenja nekog broja s njegovim djeliteljem?

n = int(input("unesi broj:"))
for i in range(1, n+1):
if n % i == 0:
print(i)

6. Napiši program koji će unositi prirodan broj N, a potom N prirodnih brojeva. Program
treba izračunati posebno zbroj parnih, a posebno neparnih unesenih.
Koliko varijabli moramo inicijalizirati?
Koje su početne vrijednosti inicijaliziranih varijabli?

n = int(input("unesi broj brojeva:"))


parni = 0
neparni = 0
for i in range(0,n):
a = int(input("unesi broj:"))
if a % 2 == 0:
parni = parni + a
else:
neparni = neparni + a
print("zbroj parnih:", parni)

5
print("zbroj neparnih:", neparni)

ZAVRŠNI DIO
Rješavaju se najteži zadatci. Očekujem poteškoće kod zadatka s autobusom, kod pravilne
inicijalizacije varijabli te kod zadatka s prostim brojevima. Nasumice odabirem učenika koji
je riješio zadatak da ga riješi pred učenicima na projektoru. Ako nakon određenog
vremena nitko ne riješi zadatak tada ga rješavam ja objašnjavajući korake zadatka.
9.Napiši program koji unosi prirodan broj n, a zatim n prirodnih brojeva. Program treba
ispisivati najveći i najmanji među unesenim brojevima.
Gdje se treba pisati kod koji traži unos prirodnih brojeva?
Koliko varijabla treba inicijalizirati?
Kada treba varijable inicijalizirati?
Što treba ispitati naredbom if ?

n = int(input("unesi broj brojeva:"))


for i in range(0,n):
a = int(input("unesi broj:"))
if i == 0:
najmanji = a
najveci = a
if a < najmanji :
najmanji = a
if a > najveci :
najveci = a
print("Najmanji:",najmanji)
print("Najveci:",najveci)
10. Autobus koji vozi na relaciji Gornji Donjani - Lijevi Desnjani ima N stajališta na kojima
izlaze i ulaze putnici. Kada na nekoj stanici autobus stane, prvo izađu svi putnici koji na
toj stanici žele izaći a potom ulaze putnici. Kako bi vlasnik poduzeća imao uvid jesu li mu
autobusi dovoljno veliki, da putnici ne bi stajali, naredio je vozačima da bilježe broj
putnika u autobusu. Kako je vozačima naporno nakon svake stanice brojati putnike, oni
broje samo koliko je putnika izašlo i koliko ušlo na pojedinoj stanici te mole tebe za
pomoć. Napiši program čiji će ulazni podaci biti broj stanica na relaciji Gornji Donjani i
Lijevi Desnjani i za svaku stanicu broj putnika koji su izašli i broj putnika koji su ušli na toj
stanici. Program treba ispisati koliko se najviše putnika vozilo u nekom trenutku u
autobusu.

Što treba napraviti kod prvog prolaska kroz for petlju?


Koje varijable treba inicijalizirati?
Koliko je u početnom trenutku trenutno putnika u autobusu?
Koliko je najviše putnika u autobusu u početnom trenutku?
Kako dobiti izraz za trenutno putnika u slijedećim trenutcima?
Što bi trebali provjeriti if naredbom?

n = int(input("broj stanica:"))
for i in range(0,n):

6
izaslo = int(input("izaslo je:"))
uslo = int(input("uslo je:"))
if i == 0:
trenutno = uslo - izaslo
najvise = trenutno
else:
trenutno = trenutno + uslo - izaslo
if najvise < trenutno:
najvise = trenutno
print(najvise)
13. Napiši program koji učitava broj n i provjerava jeli broj prost. Broj je prost ako je
djeljiv samo sa 1 i samim sobom. Program vraća riječ „prost broj“ ako je prost inače
vraća „nije prost broj“.
Kakav je ostatak cjelobrojnog dijeljenja broja njegovim djeliteljem?
Koliko djelitelja ima broj koji nije prost?
Koju varijablu moramo inicijalizirati na početku?
Koju vrijednost pridružujemo toj varijabli?
Koje su početne i konačne vrijednosti range funkcije ako želimo ispitati djeljivost sa
brojevima od 1 do tog broja?
Što provjeravamo naredbom if-else?

n = int(input("Unesi broj:"))
brojac = 0
for i in range(1, n + 1):
if n % i == 0:
brojac = brojac + 1
if brojac > 2:
print("nije prost broj")
else:
print("prost broj")
15. Napiši program koji učitava broj n i ispisuje n-ti Fibonaccijev broj. Fibonaccijev broj je
zbroj prethodna dva Fibonaccijeva broja s time da su prva dva definirana i jednaka 1.
prvih nekoliko Fibonaccijevih brojeva su: 1,1,2,3,5,8,13,21,34….
Koliko varijabla inicijaliziramo na početku?
Koje vrijednosti pridružujemo tim varijablama na početku?
Čemu je jednak treći broj?
Čemu je sad nakon izračuna trećeg broja jednak prvi broj?
Čemu je sad jednak drugi broj?
Koje su početne i konačne vrijednosti for petlje?

n = int(input("unesi broj:"))
prvi = 1
drugi = 1
for i in range(2, n):
treci = prvi + drugi
prvi = drugi

7
drugi = treci
print(treci)

PLAN PLOČE

For i in range(početna vrijednost, konačna vrijednost, korak)


I – kontrolna varijabla (mijenja vrijednost svakim prolaskom kroz petlju
Zadnja vrijednost koju i poprima je zadnja vrijednost na koju se 'skoči' zbog koraka a da je u
intervalu
for i in range(2,10):
print(i)
Izlaz:
2,3,4,5,6,7,8,9
for i in range(20,10,-3):
print(i)
Izlaz:
20,17,14,11

OSOBNA ZAPAŽANJA, KOMENTARI I NAPOMENE

You might also like