Dragi učenici,

krećemo s učenjem Pythona – našeg drugog programskog jezika! Znam da ste možda već čuli kako je Python težak, da se tu puno piše, da nije kao Scratch i da “to nije za svakoga”. Ali vjerujte mi – Python nije strašan. Samo je nov i drugačiji. A sve što je novo ponekad nas malo prestraši.

Python je kao učenje nove abecede za pisanje priča. Umjesto slaganja blokova kao u Scratchu, sada ćemo naučiti “pisati” svoje ideje riječima i znakovima. To znači da ćete uskoro moći:

  • sami napisati program koji nešto izračuna,

  • stvoriti crtež pomoću koda,

  • tražiti od računala da nešto upita, odgovori ili ponovi,

  • riješiti problem koristeći petlje, uvjete i ideje koje sami osmislite.

Hoće li biti trenutaka kad neće odmah uspjeti? Hoće.
Znači li to da je nemoguće? Ne!

Python postaje težak samo ako odustanemo i ne vježbamo. Ako mislite da ćete sve naučiti samo slušajući na satu, bez da sami pokušate – onda će stvarno biti teško. Ali ako probate, pogriješite, ispravite i nastavite – bit će vam sve jasnije i jasnije. I najvažnije – počinje postajati zabavno!

Zapamtite:

  • Nitko ne mora znati sve odmah.

  • Greške nisu neuspjeh, nego dio učenja.

  • Svaki mali korak naprijed znači da ste bolji nego jučer.

  • Vi to možete – samo trebate pokušati.

Vjerujem u vas, i veselim se svakoj vašoj liniji koda, svakoj ideji i svakom “Aha!” trenutku.

Možda vam se čini da je Python nešto potpuno novo, teško i nepoznato, ali zapravo se iza njega krije nešto što već jako dobro poznajete. Sjetite se programiranja u Scratchu – tamo ste slagali blokove redom: napravi ovo, zatim ono, ponovi nešto, ili ako se dogodi ovo, onda napravi ono. Upravo tako „razmišlja“ i Python, samo umjesto šarenih blokova koristimo riječi i znakove koje pišemo tipkovnicom.

Računalo ne razumije hrvatski ili engleski jezik kao mi. Ono razumije samo programski jezik – to je jezik kojim mu govorimo što treba napraviti. Python je jedan od tih jezika, baš kao što je i Scratch, samo bez blokova.

A ono što računalo zapravo čita i izvršava zove se algoritam – to je niz jasnih i točnih uputa koje vode do rješenja nekog zadatka. Algoritme ne koristimo samo u računalima – koristimo ih svaki dan! Kad kuhaš čaj, pereš zube, prelaziš cestu, rješavaš domaću zadaću – sve to radiš po određenom redoslijedu. Tako je i u programiranju. Ili kao recept za kolače: ako promijeniš redoslijed ili nešto preskočiš, rezultat neće ispasti kako treba. To je algoritam u svakodnevnom životu.

Svaki program, bez obzira pišemo li ga u Scratchu, u Pythonu ili nekom drugom jeziku, sastoji se od algoritma – uputa koje se izvršavaju točno onim redom kako su napisane. Računalo ne može pogađati što mi mislimo, nego radi samo ono što mu napišemo.

Postoje tri osnovna načina (oblika) kako se ti algoritmi mogu izvoditi:

VRSTA ALGORITMA
OBJAŠNJENJE
PRIMJER
algoritam slijeda
Koraci se izvršavaju red po red, slijedno, bez preskakanja
KUHANJE ČAJA:
u posudu ulij vodu
uključi kuhalo
pričekaj da voda prokuha
stavi vrećicu s čajem u šalicu
kad voda prokuha
vruću vodu ulij u šalicu s čajem
poklopi šalicu i ostavi čaj da odstoji 3 minute
algoritam ponavljanja
Neki korak se ponavlja više puta
MIJENJAMO KOTAČ NA AUTU:
postavi dizalicu ispod automobila,
odvij vijeke jedan po jedan (4x),
podigni automobil,
zamijeni kotače,
zategni vijke jedan po jedan (4x)
spusti automobil i izvadi dizalicu
algoritam grananja
Odabir koraka za rješavanje ovisi o nekom uvjetu.
Ako je uvjet ispunjen - odabire se jedan put rješavanja, a drugi ako uvjet nije ispunjen.
PRELAZAK PREKO CESTE:
Ako postoji semafor na cesti
   Ako je zeleno svjetlo na semaforu
    Pažljivo prijeđi ulicu
   Inače
    Pričekaj da se upali zeleno svjetlo i pažljivo prijeđi ulicu.
Inače
 Prvo pogledaj lijevo, pa desno
 Ako nema automobila
   Prijeđi ulicu

Zato je važno razumjeti što je algoritam, jer tek kada znamo dati jasne i pravilno poredane upute, računalo može ispravno izvršiti program.

Kasnije, na kraju lekcije, kroz igre i zadatke ponovit ćemo ove vrste algoritama i provjeriti koliko dobro razumijete redoslijed naredbi, grananje i ponavljanje.
A Python? Python samo piše te upute na malo drugačiji način – riječima, zagradama i znakovima, umjesto blokovima.

Zato se nemojte bojati. Vi već znate razmišljati kao programeri. Sad samo učimo novi „jezik“ kojim to računalu možemo reći.

PREPOZNAJ ALGORITME – SCRATCH

algoritam slijeda
algoritam ponavljanja
algoritam grananja

Što je uopće Python?

Python je vrsta programskog jezika – to znači da pomoću njega možemo pričati s računalom i reći mu što da radi. U Scratchu smo to radili pomoću blokova, a sada ćemo isto to raditi pisanjem riječi i znakova.

Kako instalirati Python na svoje računalo?

  • Otvori stranicu: https://www.python.org/
  • Klikni na Downloads → Python 3.x.x (preuzmi najnoviju verziju).
  • Klikni na preuzetu datoteku (.exe).
  • VAŽNO! Označi kvačicu “Add Python to PATH” prije nego klikneš Install Now.
  • Pričekaj da instalacija završi i klikni Close.
  • Klikni na tipku Start (Windows).
  • Potraži mapu Python
  • Unutra ćeš vidjeti IDLE Python – to je program u kojem pišemo Python kod.
  • Povuci IDLE na radnu površinu (Desktop) da ti bude lako dostupan.

Kako pokrenuti Python?

Nakon što se Python instalira na računalo, pojavi se program koji se zove IDLE.
Kada ga otvorimo, vidimo bijeli prozor s ovakvim znakom: >>> 

To su tri strelice i znače: “Spreman sam! Napiši mi nešto! Tu možemo odmah pisati naredbe i računalo ih odmah izvrši nakon što kliknemo Enter.

Primjer:

>>> 5 + 3
8
Računalo izračuna i odgovori.
 
Taj prozor (sučelje) nazivamo INTERAKTIVNO SUČELJE.

Interaktivno sučelje (Python Shell)

U to mjesto s tri strelice možemo pisati:

  • brojeve
  • matematičke izraze (5+2, 10-3, 6*7, 15/4…)
  • tekst (znakovni niz) ali mora biti u polunavodnicima ili navodnicima, npr.  ‘Pozdrav’ ili “Pozdrav”
  • i kasnije – naredbe, varijable, funkcije…

Ako nešto pogriješimo, pojavit će se poruka o pogrešci (BUG). To nije “katastrofa”, nego samo “Ej, nešto si krivo napisao/la, pokušaj opet.”

OPERATOR
ZNAČENJE
PRIMJER
REZULTAT
+
zbrajanje
5 + 2
7
-
oduzimanje
9 - 4
5
*
množenje
6 * 3
18
/
decimalno dijeljenje
11 / 4
2.75
//
cjelobrojno dijeljenje
11 // 4
2
%
ostatak dijeljenja (modulo)
11 % 4
3

U Pythonu je, kao i u matematici, definiran redoslijed izvršavanja matematičkih operatora.

PRIORITET
OPERATOR
REDOSLIJED IZVRŠAVANJA
1.
( )
od unutarnjih zadgrada prema vanjskim zagradama
2.
// * / %
slijeva nadesno u izrazu
3.
+ -
slijeva nadesno u izrazu

Kako radi interaktivno sučelje? – kao kalkulator

  • Sve što napišemo izvrši se odmah (pritisnemo Enter → gotov rezultat).
  • Ne možemo se vratiti unatrag i promijeniti kod – ako pogriješimo, ne ispravljamo ono što smo napisali, nego jednostavno napišemo novu liniju ispod.
  • Python svaki red izvršava kao zasebnu naredbu i pamti što smo već izračunali, ali kod vizualno ostaje iza nas i ne uređuje se.

 

Zato kažemo da je interaktivno sučelje dobro za:

  • brzo računanje,
  • isprobavanje naredbi,
  • igranje i testiranje.

 

Ali nije dobro za:

  • pisanje dužih programa,
  • spremanje programa da ih kasnije pokrenemo,
  • uređivanje i mijenjanje starog koda.

Uređivačko sučelje (prazan prozor)

Da ne moramo stalno sve pisati ispočetka, Python ima i drugi način rada.

    • Kliknemo File → New File.

Otvori se prazan bijeli prozor (izgleda kao blok za pisanje).

Tu pišemo program, red po red i uvijek ga možemo uređivati. Izvršava se tek kad ga mi pokrenemo i to ovako:

    • Run → Run Module ili tipka F5
    • Python će te prije toga pitati da spremiš program i da mu daš smisleno ime, npr. prvi_program.py

Zašto je tekst u Pythonu različitih boja?

Python različitim bojama prikazuje različite vrste sadržaja. To nam pomaže da lakše razumijemo kod.

BOJA
ZNAČENJE
PRIMJER
⚫ Crna
Ono što mi upišemo – najčešće matematički izraz
5 + 3
🔵 Plava
Rezultat koji Python izračuna, ispiše
8
🔴 Crvena
Pogreška ili upozorenje, komentar
NameError: name 'x' is not defined
🟢 Zelena
Znakovni nizovi (tekst u navodnicima)
"Bok!" ili 'Python'
🟣 Ljubičasta
Naredbe
print ( ), int ( ), input ( ) ...
🟠 Narančasta
Funkcije
def ...

Što je naredba print() u Pythonu?

Da bi računalo nešto ispisalo na ekran, moramo mu to jasno reći. Za to postoji naredba: print()

Možeš to zamisliti kao da računalu kažeš: “Hej, Python, ispiši mi ovo!”

 

Kako se koristi print()?

U zagradu stavljamo ono što želimo da se ispiše. To može biti broj, tekst, račun ili više vrijednosti odjednom.

Primjeri:

>>> print(10)
10
 
>>> print(10, 20, 30)
10 20 30

Ako u zagradu stavimo više stvari odjednom, moramo ih odvojiti zarezom.

Zašto je print() važan?

Jer bez njega ne vidimo što program radi.

To je kao ekran računala koji “priča s nama”.

Kako ispisati riječi ili rečenice u Pythonu?

Do sada smo print() koristili za brojeve i račune. Ali Python može ispisivati i riječi, imena, rečenice – sve što unesemo kao tekst. Takve tekstualne vrijednosti u Pythonu zovu se znakovni nizovi ili (engl.) stringovi.

 

Kako ih pišemo?

Tekst uvijek mora biti u navodnicima – ovako:

>>> print('Fran')
Fran
>>> print ("Bok svima")
Bok svima

Možemo napisati i više riječi odjednom, odvojene zarezom:

>>> print('Fran', 'Krsto', 'Frankopan')
Fran Krsto Frankopan

Kad u naredbi print() pišemo više riječi ili vrijednosti i odvojimo ih zarezom, Python ih ispiše sa razmakom između njih.

Spajanje riječi (tekst + tekst)

U znakovnim nizovima mogu se upotrebljavati matematički operatori, ali samo operatori zbrajanja i množenja 

Pa tako možemo “zalijepiti” dva teksta pomoću znaka +.

>>> print('Fran' + 'Krsto')
FranKrsto

Ako želimo razmak između riječi, moramo ga sami dodati:

>>> print('Fran' + ' ' + 'Krsto')
Fran Krsto

Ponavljanje teksta (tekst * broj)

Ako stavimo tekst i pomnožimo ga brojem, Python ga ponovi više puta:

>>> print('Fran' * 3)
FranFranFran

Možemo miješati tekst i brojeve u print()!

Primjer:

>>> print(2, 3, 4)

2 3 4

 

>>> print('Zbroj je', 2 + 3 + 4)
Zbroj je 9

Razdjelnik (sep) – biramo što stavljamo između vrijednosti

Normalno, Python između podataka stavi razmak. Ali mi to možemo promijeniti pomoću sep (separator).

>>> print(2, 3, 4, sep=', ')
2, 3, 4

 

>>> print(2, 3, 4, sep=':')
2:3:4

Python između vrijednosti stavi baš onaj znak koji napišemo u sep=''.

ZANIMLJIVOST

Zašto se računalna pogreška zove “BUG”?

Danas kad u programu nešto ne radi, kažemo da u kodu postoji “bug” – greška. Ali zašto baš “bug”? Zašto ne “mistake”, “error”, “problem”?

E pa… tu dolazi zanimljiva priča iz prošlosti. 😊

Istinita priča

Davne 1947. godine, kada računala nisu bila mala i moderna kao danas, nego su bila velika kao cijela soba, programeri i znanstvenici radili su na jednom računalu koje se zvalo Harvard Mark II. Jednog dana, računalo je prestalo raditi ispravno. Svi su tražili gdje je greška – i našli su je! Ali nije bila u programu… nego u računalu se stvarno zaglavio mali kukac – moljac! Zabilježili su to u svoj radni dnevnik i napisali: “Pronađen pravi bug (kukac).” Zalijepili su mrtvog kukca u dnevnik i od tada je riječ BUG postala naziv za svaku računalnu pogrešku.

Zašto se to i danas koristi?

Jer kao što kukac može pokvariti stroj, tako i mala greškica u kodu može pokvariti program. Danas, naravno, nema kukaca u računalima – ali “bug” znači greška u programu. A kad tu grešku ispravimo, kažemo da smo napravili “debugging” – izbacivanje buba iz programa.

Osoba koja je zapisala prvog bug-a bila je Grace Hopper, jedna od prvih programerki u povijesti. Taj originalni dnevnik s kukcem još uvijek se čuva u Smithsonian muzeju u SAD-u.

DOMAĆI RAD

  • Instaliraj Python na svoje računalo (uz pomoć roditelja ili neke starije osobe ako je potrebno).
    • Nakon instalacije, pronađi IDLE (Python) i pokušaj ga pokrenuti.
    • Ako ne ide – nema panike! Samo mi javi na satu ili pošalji poruku.

Prepiši u bilježnicu ILI dokument ispiši na papir i uredno zalijepi u bilježnicu (odreži višak papira!) i riješi, naravno 😀

ZADATCI ZA VJEŽBU.  ← klikni i preuzmi

PITANJA ZA PONAVLJANJE

  1. Što je Python?
  2. Što je algoritam?
  3. Koja su 3 osnovna tipa algoritma? Objasni.
  4. Kako se zove program u kojem pišemo Python kod (radno okruženje)?
  5. Gdje se pojavljuje znak >>> i što znači?
  6. Čemu služi interaktivno sučelje (Shell), a čemu uređivačko sučelje (File → New File)?
  7. Zašto u interaktivnom sučelju ne možemo ispravljati već napisani red?
  8. Nabroji i objasni operatore.
  9. Objasni prioritete izvršavanja matematičkih operatora.
  10. Što radi naredba print()?
  11. Kako ispisujemo broj 10 pomoću naredbe print?
  12. Kako ispisujemo tekst Bok svima! pomoću naredbe print?
  13. Zašto moramo koristiti navodnike kad pišemo tekst?
  14. Napiši razliku između:
    print('Ana','Marko')
    print('Ana' + 'Marko')
  15. Kako Python “zna” da je nešto tekst?
  16. Napiši tri načina za ispis riječi „Python je fora“ u jednom retku.
  17. Što će ispisati:
    print('Hello' * 3)
    print('Ana' + ' ' + 'Marko')
  18. Kako se zove proces traženja i ispravljanja grešaka u programu?
  19. Je li pogreška u kodu nešto loše ili dio učenja? Objasni.
  20. Zašto je dobro koristiti uređivačko sučelje (File ->New File) kad pišemo duži program?

Kad pišemo računalne programe, često moramo zapamtiti neke podatke koje ćemo kasnije koristiti. Zamislite da radimo program koji računa rezultat utakmice, ili program koji pamti vaše ime, ili program koji treba izračunati koliko je 5 + 7. Da računalo ne bi svaki put ponovno pitalo korisnika, ono te podatke treba negdje spremiti. Za to nam služe varijable.

Varijablu možemo zamisliti kao malu kutijicu u računalu. Svaka kutijica ima svoje ime i u nju možemo spremiti neku vrijednost. Ta vrijednost može biti broj, može biti tekst, ili bilo što drugo što računalo može zapamtiti. Kada kasnije trebamo tu vrijednost, samo se pozovemo na ime te “kutijice” i računalo nam ju vrati.

Znači, varijabla je spremnik s imenom u koji spremamo vrijednost, a ta se vrijednost može koristiti i mijenjati tijekom izvođenja programa.

Kako ispravno napisati nazive varijabli?

  • u nazivu se mogu koristiti sve znamenke (0 – 9) i slova

  • naziv varijable ne može početi znamenkom

  • u nazivu se ne mogu koristiti simboli kao što su – / # @

  • razmak se ne može koristiti, ali se za povezivanje riječi koje čine naziv varijable može koristiti znak _ npr.: p_znak, p_broj

  • ne smiju se koristiti riječi koje Python upotrebljava za naredbe, npr. print, int, min, max, True itd.

Također, Python razlikuje mala i velika slova, pa varijabla ime nije ista kao Ime ili IME.

U programskom jeziku Python varijablama dajemo vrijednosti pomoću znaka =. Važno je razumjeti da ovaj znak ovdje ne znači jednako kao u matematici, nego znači “stavi u varijablu lijevo ono što piše desno”. Npr., ako napišemo:

a = 5

to znači da je varijabla a sada kutijica u kojoj stoji broj 5. Kasnije možemo koristiti tu vrijednost u računu, promijeniti ju, ispisati ili kombinirati s drugim podacima. Slično možemo napisati:

b = 2

i sada varijabla b čuva broj 2. Ako kasnije napišemo a + b, Python zbroji vrijednosti iz tih kutijica i dobije 7.

Varijable ne koristimo samo u matematičkim zadacima. One su svuda oko nas. Zamislite semafor za rezultat utakmice: jedna kutija pamti koliko bodova imaju domaći, druga koliko imaju gosti. Svaki put kad netko postigne poen, vrijednost u varijabli se promijeni. To je upravo ono što radimo u programiranju: spremamo podatke i mijenjamo ih kad je potrebno.

Da bi računalo znalo koja varijabla je koja, moramo im dati logična i smislena imena.

Kad spremamo tekst u varijable, koristimo navodnike, npr.:

ime = “August”
prezime = “Cesarec”

Python nam dopušta i da tekst u varijablama spajamo. Ako napišemo ime + prezime, Python će spojiti dva niza znakova i dobiti “AugustCesarec”. Možemo ga čak i ponoviti više puta, kao da smo ga umnožili:

ime * 4

što bi ispisalo “August” četiri puta za redom.

Ponekad želimo da više varijabli ima istu vrijednost. Umjesto da svaku posebno zapisujemo, Python nam omogućuje tzv. višestruko pridruživanje. Ako napišemo:

a = b = c = 2018

onda sve tri varijable odjednom dobiju vrijednost 2018. To je zgodno kada više “kutijica” treba sadržavati isti podatak.

ZADATAK: Izračunaj opseg pravokutnika ako mu je duljina 12, a širina 5.

Ako si pravilno pristupio rješavanju zadatka, vjerojatno si najprije zapisao duljinu i širinu, a zatim ih uvrstio u formulu za opseg pravokutnika.

>>> duljina = 12
>>> sirina = 5
>>> opseg = 2 * (duljina + sirina)
>>> print (opseg)

Nazivi duljina, sirina i opseg su varijable kojima smo pridružili vrijednosti.
Varijable računalu pomažu da zapamti podatke i kasnije njima upravlja.

Ako si pravilno pristupio rješavanju zadatka, vjerojatno si najprije zapisao duljinu i širinu, a zatim ih uvrstio u formulu za opseg pravokutnika.

>>> d = 12
>>> s = 5
>>> o = 2 * (d + s)
>>> print (o)

Nazivi d, s i o su varijable kojima smo pridružili vrijednosti.
Varijable računalu pomažu da zapamti podatke i kasnije njima upravlja.

Kad želimo ljepše ispisati tekst, Python nam nudi posebne znakove kao što su \n za novi red i \t za tabulator, koji stvaraju pregledniji ispis.

Tako možemo, primjerice, tekst prelomiti u novi red ili poravnati određene podatke tako da budu ljepši za čitanje.

Primjer za novi red (\n):

>>> print (‘Pozdrav’, ‘svima’, sep=’\n’)

Pozdrav
svima

Primjer za tabulator/razmak (\t):

>>> print (‘Ime\tPrezime\tRazred’)

Ime               Prezime               Razred

Dijakritički znakovi (č, ć, ž, š, đ) mogu se koristiti u Python nazivima varijabli, ali se ne preporučuju iz nekoliko važnih razloga:

  • programi se često dijele s drugima – Ako tvoj program otvori netko tko koristi računalo postavljeno na drugi jezik ili tipkovnicu bez hrvatskih znakova, neće moći lako napisati te varijable. To može dovesti do pogrešaka ili frustracije.

 

  • neki editori i alati ne prikazuju dijakritiku ispravno – U većini modernih sustava sve radi dobro, ali neki stariji editori, terminali ili posebni programski alati mogu krivo prikazati slova poput č/ć/ž/š/đ. To ponekad uzrokuje da program ne radi kako treba.

 

  • teže se tipkaju u programerskom radu – Većina programera koristi englesku tipkovnicu jer je programerski orijentirana. Na takvoj tipkovnici nema dijakritike, pa su nazivi s dijakritikom sporiji za pisanje i skloni greškama.

 

  • programski jezici i dokumentacija gotovo uvijek su na engleskom – Standardi u programiranju preporučuju nazive varijabli bez razmaka, bez dijakritike, na engleskom kad god je moguće. Tako kod postaje lakši za čitanje.

Ukratko, varijable su osnovni alat svakog programera. Bez njih programi ne bi mogli pamtiti ništa – ni rezultate, ni imena, ni brojeve, ni bilo koje druge informacije. Zato je važno naučiti kako im dati imena, kako im pridružiti vrijednosti i kako te vrijednosti kasnije koristiti. Kad to savladamo, možemo početi raditi mnogo složenije i zanimljivije programe.

Prepiši u bilježnicu ILI dokument ispiši na papir i uredno zalijepi u bilježnicu (odreži višak papira!) i riješi, naravno 😀

ZADATCI ZA VJEŽBU.  ← klikni i preuzmi

PITANJA ZA PONAVLJANJE

  1. Što je varijabla?
  2. Navedi pravila za ispravne nazive varijabli.
  3. Je li Python razlikuje mala i velika slova?
  4. Što znači naredba \n ?
  5. Što znači naredba \t ?
  6. Mogu li se kod pisanja programa koristiti dijakritički znakovi? Zašto DA ili zašto NE?

Svaki početak je poseban.
Kao kada prvi put sjednete na bicikl, naučite plivati ili pokušate složiti tešku slagalicu. Tako je i s programiranjem – u trenutku kad napišete svoj prvi program, otvarate vrata potpuno novom svijetu. Svijetu u kojem vi govorite računalu što da radi, a ono vas posluša.

Možda vam se sada sve to čini kao čarolija. I u jednom malom dijelu – i jest. Ali to je čarolija koju svatko od vas može naučiti, korak po korak, polako i s puno strpljenja. Hajdemo zajedno otkriti kako nastaje jedan računalni program.

Zašto trebamo programe?

Kad u Pythonu upišemo jednu naredbu, računalo je odmah izvrši.
To je kao da mu kažete jednu kratku uputu — i on odmah posluša.
Ali što ako želimo napraviti nešto veće?

Zamislite primjerice da želite:

  • izračunati opseg trokuta,

  • riješiti matematički zadatak,

  • nacrtati lik na ekranu,

  • ili jednog dana napraviti vlastitu igricu.

Za takve zadatke trebamo više naredbi, posloženih u pravom redu. Te naredbe želimo spremiti tako da ne nestanu kada zatvorimo program. Upravo zato nastaje ono što zovemo računalni program – mala datoteka koja čuva sve naše korake.

Računalni program je datoteka u kojoj je zapisano više naredbi. Računalo ih izvršava točno onim redoslijedom kojim su napisane. Program je kao recept: da bismo dobili pravo jelo, moramo slijediti korake, jedan po jedan. Ako je neki korak pogrešan – rezultat neće biti dobar.

IDLE

Kada radimo u Pythonu, koristimo uređivač koji se zove IDLE.
To je jednostavan program koji vam omogućuje da pišete naredbe, spremate ih i pokrećete.

Kad ga otvorimo, najprije vidimo tzv. interaktivni prozor, u kojem možemo upisati jednu po jednu naredbu. Međutim, za pravi program to nije dosta. Zato idemo u izbornik File → New File.

Pred nama se otvara prazan bijeli prozor. To je poput prazne bilježnice u koju ćete ispisati svoju ideju.

U njemu nema znaka >>> koji inače vidimo u interaktivnom sučelju, jer ovdje pišemo cijeli program, a ne samo jednu naredbu.

I upravo tu počinje prava avantura.

Pisanje prvog programa

Sada u prazni prozor možemo zapisati nekoliko naredbi koje će zajedno napraviti nešto korisno. Primjerice, izračunati opseg trokuta. Trokut ima tri stranice, pa računalo mora znati njihove duljine.

 

U naš program možemo napisati:

a = 10
b = 20
c = 15
print (“Opseg trokuta je”, a + b + c)

 

Na ovaj način računalu govorimo:

  • stvori 3 varijable (a, b, c)
  • spremi broj 10 pod imenom a,
  • spremi broj 20 pod imenom b,
  • spremi broj 15 pod imenom c,
  • izračunaj njihov zbroj
  • i zatim mi ispiši poruku i zbroj ta tri broja.

 

To više nije samo jedna uputa — to je mali sustav koji radi posao umjesto vas.

U tom trenutku postali ste programer. Možda mali, ali pravi. 

Zašto je važno spremiti program?

Prije nego što program pokrenemo, moramo ga spremiti.
Kao da pišemo sastavak u bilježnicu – ako ne spremimo, sav trud može nestati.

U izborniku odaberemo File → Save As…, upišemo ime datoteke (npr. opseg.py) i spremimo je.

Python će datoteci automatski dodati nastavak .py.
To znači da je datoteka napisana u Pythonu i računalo će je tako prepoznati.

Pokretanje programa

Sada dolazi najuzbudljiviji trenutak: pokretanje programa.

Kliknemo na Run → Run Module ili jednostavno pritisnemo tipku F5.
Tada će se program pokrenuti i rezultat će se prikazati u interaktivnom sučelju. Na ekranu se pojavi prozor s rezultatom:

 

Opseg trokuta je 45

 

To je trenutak u kojem vidimo da naš program radi.
Sve što smo napisali – sve naše naredbe i ideje – pretvorilo se u konkretan odgovor.

A što ako pogriješimo?

Ponekad program ne daje očekivani rezultat. To znači da smo negdje pogriješili – možda u računu, možda u pisanju naredbi. To nije ništa strašno! Programeri stalno ispravljaju i mijenjaju svoje programe.

Ako rezultat nije točan, nemojte se brinuti.
Programiranje je baš kao istraživanje – tragamo za greškom, nađemo je i ispravimo.

Koraci koje programer slijedi su:

  1. napisati program,

  2. spremiti program,

  3. pokrenuti program,

  4. provjeriti daje li program točno rješenje,

  5. ako je potrebno – ispraviti program i ponovno ga pokrenuti.

To je normalan i svakodnevni dio programiranja.

Naučiti čitati i razumjeti te poruke važan je dio programerskog puta.

Što sve učimo iz prvog programa?

Iz tako jednostavnog primjera naučimo jako puno:

  • kako nastaju varijable (a, b, c)

  • kako Python zbraja brojeve

  • kako se ispisuje rezultat

  • kako spremaju datoteke

  • kako se program pokreće

  • i najvažnije – kako se razmišlja kao pravi programer

To su temelji. A na dobrim temeljima može se graditi sve: od jednostavnih izračuna do velikih igara i aplikacija.

Još nekoliko korisnih savjeta

  • Python u uređivaču boja određene riječi (npr. naredbe) kako bi vam bilo lakše čitati program.

  • Za uvlačenje redaka (što pomaže programu da bude pregledniji) koristi se tipka TAB.

  • U izborniku File možeš otvoriti i popis zadnjih datoteka koje si koristio – to je korisno kad želiš nastaviti raditi na prethodnim programima.

Za kraj

Programiranje nije natjecanje. Nije nešto što se mora savršeno znati odmah na početku. To je putovanje – ponekad lako, ponekad izazovno – ali uvijek zanimljivo.

Svaki put kada napišete novu naredbu, kada pokrenete program ili ispravite grešku, postajete sve bolji. Vaš prvi program je kao prvi korak u dugačkoj šetnji koja vodi prema maštovitom i kreativnom svijetu tehnologije.

Budite znatiželjni.
Igrajte se.
I nikad se ne bojte pokušati ponovo.

Jer svaki veliki programer na svijetu počeo je upravo ovako – jednim malim, jednostavnim programom.

PITANJA ZA PONAVLJANJE

  1. Što je računalni program?
  2. Koji su osnovni postupci izrade računalnog rješenja nekog problema?
  3. Zašto je potrebno spremiti program prije pokretanja? Što se dogodi ako to ne učinimo?
  4. Koja je razlika između interaktivnog u uređivačkog sučelja?
  5. Koji se koraci slijede pri rješavanju zadatka računalnim programom?
  6. Što ispisuje naredba print( ) ?
  7. Što znači kada program ne ispiše očekivani rezultat?
  8. Zamisli da program računa opseg trokuta, ali daje pogrešan rezultat. Navedi tri moguća razloga zašto se to dogodilo.

Rad s ulaznim vrijednostima u Pythonu

Kada izrađujemo računalne programe, često želimo da se program ne ponaša uvijek isto, nego da može raditi s različitim podacima. Primjerice, možda želimo izračunati opseg trokuta, ali ne uvijek s istim stranicama. Ponekad želimo izračunati opseg kvadrata, ali za različite duljine stranica. Kako to omogućiti?

U tome nam pomažu ulazne vrijednosti.

Što su ulazne vrijednosti?

Ulazne vrijednosti su podaci koje korisnik (to jeste vi!) unosi u program tijekom njegova izvođenja. Umjesto da vrijednosti unaprijed pišemo u programu, možemo ih zatražiti od osobe koja program koristi.

Zamislite program kao dijalog između vas i računala. Računalo pita: „Koju duljinu stranice želiš?”,
a vi unesete broj. Taj broj postaje ulazna vrijednost.

Kako zatražiti ulaz od korisnika?

U Pythonu se za to koristi naredba:

input()

Ona prepoznaje što korisnik upisuje i tu vrijednost sprema kao tekst (znakovni niz). Zato često, kada želimo da unos bude broj, moramo dodatno pretvoriti taj tekst u broj uz pomoć naredbe:

int()

 

Primjer:

a = int (input (‘Unesi duljinu stranice a:  ‘))

 

Ovdje se događaju tri stvari:

  1. Računalo ispisuje poruku korisniku.

  2. Korisnik unosi vrijednost.

  3. int() tu vrijednost pretvara u cijeli broj, koji se sprema u varijablu a.

Zašto pretvaramo tekst u broj?

Naredba input() uvijek vraća tekst. Ali ako želimo nešto računati – zbrajati, množiti ili dijeliti – potrebni su nam brojevi.
Ako pokušamo računati s tekstom, Python će javiti pogrešku.

Primjer pogreške:

Ako korisnik upiše „petnaest“, a program očekuje broj, Python ne zna kako s tom riječju izračunati, primjerice, godine + 1.

Zato je važno da u programe koji očekuju brojeve upisujemo brojčane vrijednosti.

Kako računalo pohranjuje ulazne vrijednosti?

Ulazne vrijednosti spremaju se u varijable – posebne spremnike u memoriji računala.

Primjer:

a = int(input('Prvi broj: '))
b = int(input('Drugi broj: '))
c = a + b
print('Njihov zbroj je', c)

 

Ako korisnik upiše 7 i 9, računalo „pamti“:

  • a = 7

  • b = 9

  • c = 16

Zatim ispisuje rezultat.

Korištenje ulaza u rješavanju zadataka

Ulazne vrijednosti omogućuju da jedan te isti program rješava mnogo različitih problema. Na primjer, možemo izračunati opseg kvadrata s bilo kojom stranicom:

a = int(input('Upiši stranicu kvadrata: '))
o = 4 * a
p = a * a
print('Opseg kvadrata je', o, ', a površina', p)

 

Ovaj program nikad ne radi s „gotovim“ vrijednostima – sve dolazi od korisnika.

Unos više vrijednosti odjednom

Ponekad nam je praktično unijeti više podataka u jednom retku. Python to omogućuje uz pomoć split():

ime, prezime, mjesto = input('Upiši ime, prezime i mjesto rođenja: ').split()
print('Zovem se', ime, prezime)
print('Mjesto rođenja je', mjesto)

Ovdje se vrijednosti odvajaju razmakom. Naredba split() dijeli jedan ulaz (jednu varijablu) na više dijelova.

Najčešće pogreške pri unosu podataka

  1. Upisivanje teksta umjesto broja
    (npr. „deset“ umjesto 10)

  2. Upisivanje broja koji program ne očekuje
    (npr. ako tražimo cijeli broj, a unesemo decimalni)

  3. Zaboravljanje pretvorbe tekst → broj
    ako se koristi samo input() bez int()

Ako razumijemo što program očekuje – broj, riječ ili više vrijednosti – pogrešaka će biti mnogo manje.

Zaključak

Ulazne vrijednosti su izuzetno važne jer omogućuju da programi budu fleksibilni, korisni i interaktivni. Umjesto da stalno mijenjamo program, korisnik jednostavno unosi podatke koji su mu potrebni.

Zahvaljujući tome, Python programi mogu rješavati brojne probleme, poput izračunavanja opsega likova, zbrajanja brojeva ili prikupljanja osobnih podataka – sve na temelju onoga što korisnik unese.

Pitanja za ponavljanje

  1. Što su ulazne vrijednosti u računalnom programu?
  2. Koja se Python naredba koristi za unos vrijednosti s tipkovnice?
  3. Kada je pri pisanju naredbe input() obvezno navođenje i naredbe int()?
  4. Je li moguće upisivati znakovne nizove input() naredbom?
  5. Što će se dogoditi ako u program koji očekuje broj upišemo riječ (npr. „petnaest“)?
  6. Zašto program mora pretvarati unos uz pomoć int()? Objasni vlastitim riječima.
  7. Gdje računalo pohranjuje ulazne vrijednosti koje korisnik unese?
  8. Zašto je korisno koristiti ulazne vrijednosti u programu?
  9. Što radi naredba split() u primjeru s imenom, prezimenom i mjestom?
  10. Napiši kako bi izgledao kȏd koji traži od korisnika duljinu stranice kvadrata.

Prepiši u bilježnicu ILI dokument ispiši na papir i uredno zalijepi u bilježnicu (odreži višak papira!) i riješi, naravno 😀

ZADATCI ZA VJEŽBU.  ← klikni i preuzmi

Kako radi moj program?

Kada prvi put krenemo učiti programiranje, može nam se činiti kao da računalo “magično” radi stvari koje napišemo. No, iza toga nema nikakve magije – program radi točno onako kako smo mu rekli, korak po korak. Da bismo to bolje razumjeli, važno je znati što se događa kada računalo izvršava naš program.

Zamisli da pred sobom imaš zadatak: izračunati opseg i površinu pravokutnika. Da bi to mogao učiniti, moraš znati njegove stranice, moraš primijeniti formulu, i na kraju moraš napisati rezultat. Program radi isto to, samo brže.

Zato svaki program možemo zamisliti kao putovanje kroz tri važna koraka:

  1. Ulaz (unos podataka) – unosimo informacije koje su programu potrebne.

  2. Obrada (računanje, uspoređivanje, izračuni) – program koristi podatke i obavlja neki posao.

  3. Izlaz (prikaz rezultata) – program ispisuje odgovor.

Npr., kada u Pythonu napišemo program koji izračunava opseg i površinu, prvo moramo upisati dužine stranica. To je ulaz. Zatim program izračuna vrijednosti prema formulama – to je obrada. Nakon toga nam ispiše rezultat – to je izlaz.

Zašto je važno pratiti kako program radi?

Ponekad, iako program izgleda dobro, rezultat nije točan. To se može dogoditi ako smo pogriješili u pisanju naredbi ili u načinu na koji smo nešto izračunali. Kada se to dogodi, moramo prekontrolirati red po red i pronaći gdje se potkrao problem.


Ako želimo otkriti pogrešku, moramo pratiti što program radi – od unosa, preko obrade, do izlaza.

Vrste pogrešaka u programiranju

Postoje dvije važne vrste pogrešaka koje učenici često rade:

1. Sintaktičke pogreške

To su pogreške u pisanju samog programa, kao kada u hrvatskom jeziku pogrešno napišemo riječ.
Primjeri su:

  • zaboravljen zarez

  • krivo napisan naziv varijable

  • nedostaje zagrada

Kada se takva pogreška dogodi, program se neće ni pokrenuti.

2. Logičke pogreške

Ovo su posebne pogreške – program se pokrene, ali rezultat nije točan.
To se događa kad je formula pogrešna ili kad smo krivim redoslijedom napisali naredbe.

Takve pogreške su najčešće i zahtijevaju da promatramo što program radi svaki korak.

Kako pratimo izvršavanje programa?

Zamislimo jednostavan program koji pretvara kilometre u metre.
Program prvo traži od korisnika da upiše broj kilometara. To sprema kao ulaz.
Zatim množimo kilometre s 1000 i to spremamo u drugu varijablu – to je obrada.
Na kraju ispisujemo rezultat – to je izlaz.

Ako znamo kako idu ti koraci, lakše ćemo razumjeti program, ali i lakše otkriti gdje se pojavila pogreška.

Zašto je sve ovo važno?

U programiranju je najvažnije razumjeti kako razmišljati.
Računalo radi samo ono što mu kažemo.
Ako mi želimo da program rješava probleme – matematičke, logičke ili bilo koje druge – moramo znati:

  • koje podatke unosimo,

  • kako ih program treba obraditi,

  • i kako treba izgledati rezultat.

Kada to razumijemo, sve postaje jednostavnije, a programiranje postaje zabava.

ZANIMLJIVOST: Tko je bila Ada Lovelace?

Ada Lovelace bila je engleska matematičarka koja je živjela prije više od 200 godina, u vrijeme kada računala još nisu postojala. Iako tada nije bilo ni struje ni ekrana, Ada je uspjela napraviti nešto nevjerojatno – opisala je kako bi jedan stroj mogao izvoditi izračune ako ga se pravilno “naprogramira”. Zbog toga je mnogi danas nazivaju prvom programerkom na svijetu.

Ada je bila kći poznatog pjesnika Lorda Byrona, ali je više voljela znanost nego poeziju. Studirala je matematiku kod slavnog Augusta De Morgana. Kada je upoznala Charlesa Babbagea, izumitelja analitičkog stroja – preteče današnjih računala – shvatila je da taj stroj može biti puno više od običnog kalkulatora.

Napisala je upute koje bi taj stroj mogle navesti da izračuna određene brojeve. Te upute smatraju se prvim računalnim programom u povijesti!

Zbog njezinog otkrića, jedan suvremeni programski jezik nazvan je upravo po njoj – ADA.

ZADATCI ZA VJEŽBU – S RJEŠENJIMA

1. Napiši program koji će ispisati tvoje ime u jednom retku, a prezime u drugom retku.

NEKA OD MOGUĆIH RJEŠENJA:

2. Napiši program koji varijabli ime pridružuje tvoje ime i ispisuje poruku: Zovem se ime

3. Varijabli ime pridruži svoje ime, a varijabli god broj svojih godina te ispisi poruku: Zovem se ime i imam god godina.

4. Varijabli a pridruži broj 2, a varijabli b broj 7. Ispiši umnožak tih brojeva.

5. U varijablu n će korisnik unijeti neki parni broj. Neka program ispiše sljedeći po redu parni broj.

6. Neka korisnik varijabli x pridruži neki broj po želji pa program ispiše trostruko veći od njega.

7. Lucija je za rođendan dobila 50€ od bake i djeda. Potrošila je 7€ na kekse i 9€ na čokoladu. Napiši program koji će izračunati koliko je novaca Luciji ostalo.

8. Napiši program u koji će korisnik upisati godinu rođenja svog roditelja, a zatim će se ispisati koliko roditelj ima godina.

9. Petar i Luka brali su jabuke u voćnjaku. Petar je nabrao k kilograma jabuka, a Luka dvostruko više od Petra.
Napiši program koji će, na temelju ulaznih podataka, izračunati i ispisati koliko je kilograma jabuka nabrao Luka.

10. Tena i Ema kupuju bombone. Za 5 bombona Tena je platila nekoliko €.
Napiši program koji će, na temelju ulaznih podataka, izračunati i ispisati koliko € košta jedan bombon.
Program mora imati sva 3 dijela programa: ulaz, obradu i izlaz.

Prepiši u bilježnicu ILI dokument ispiši na papir i uredno zalijepi u bilježnicu (odreži višak papira!) i riješi, naravno 😀

ZADATCI ZA VJEŽBU.  ← klikni i preuzmi

Evo i Kahootića za rješavanje!  <- klikni i zaigraj

Budući da se u jedan Kahoot može uključiti najviše 40 učenika, pripremila sam vam više poveznica na istu igru.
Ako neka poveznica istekne ili je previše igrača u njoj – samo prijeđite na sljedeću.
Sve poveznice vode na isti kviz, samo su otvorene u različitim sesijama.

Kahoot2

Kahoot3

Kahoot4

Kahoot5

PITANJA ZA PONAVLJANJE

  1. Koja su tri osnovna dijela svakog računalnog programa? Objasni ih svojim riječima.
  2. Što nazivamo obradom u programu? Što se tijekom obrade događa s podacima?
  3. Zašto je važno pratiti redoslijed kojim program izvršava naredbe?
  4. Što je sintaktička pogreška? Navedi primjer.
  5. Što je logička pogreška? Zašto je ponekad teže otkriti logičku nego sintaktičku pogrešku?
  6. Zašto program ponekad ispravno radi, ali ispisuje pogrešne rezultate?
  7. Tko je bila Ada Lovelace i zašto je važna u povijesti programiranja?

Crtanje u Pythonu – učenje kroz kornjaču 🐢

Do sada smo u programiranju već crtali i stvarali slike. To smo radili u Scratchu, gdje smo koristili likove koji su se kretali po pozornici i za sobom ostavljali trag. Iako sada prelazimo na novi programski jezik, ideja crtanja ostaje ista.

U Pythonu za crtanje koristimo kornjaču. Kornjača je zamišljeni lik koji se pojavljuje na ekranu i u ruci drži olovku. Ona sluša sve naše naredbe i radi točno ono što joj kažemo. Kada joj naredimo da ide naprijed, ona se pomiče i crta crtu. Kada joj naredimo da se okrene, ona se samo okrene, ali ostane na istom mjestu. Na taj način možemo crtati razne oblike, baš kao što smo to radili u Scratchu.

Razlika je u tome što u Scratchu naredbe slažemo pomoću blokova, a u Pythonu ih pišemo kao tekst.

Redoslijed naredbi u programu

Kao i u svim programima koje smo do sada pisali, i u programu za kornjaču vrijedi isto pravilo:
računalo izvršava naredbe redom, točno onako kako smo ih napisali.

To znači da će kornjača prvo napraviti prvu naredbu, zatim drugu, pa treću i tako dalje. Ako promijenimo redoslijed naredbi, promijenit će se i crtež. Zato je važno pažljivo razmišljati o tome kojim redom pišemo naredbe.

Gdje pišemo program za kornjaču?

Program za kornjaču pisat ćemo u uređivačkom sučelju. To je prozor u kojem možemo napisati cijeli program, spremiti ga i po potrebi ispraviti pogreške.

Iako je moguće pisati naredbe i u interaktivnom sučelju, mi to nećemo raditi. Razlog je jednostavan: kada program postane malo dulji, u interaktivnom sučelju se lako izgubimo, a pogreške je teže pronaći. U uređivačkom sučelju sve imamo pregledno zapisano i možemo se lako vratiti na bilo koji dio programa.

Naredba bez koje nema crtanja

Da bi kornjača uopće mogla crtati, moramo na početku programa napisati jednu jako važnu naredbufrom turtle import*

Ova naredba govori Pythonu da želimo koristiti modul za crtanje koji se zove turtle. Ako ovu naredbu zaboravimo napisati, kornjača se neće pojaviti i crtanje neće biti moguće. Zato je važno zapamtiti: bez ove naredbe nema crtanja.

Tri prozora koja koristimo

Kada pokrenemo program za kornjaču, koristimo tri različita prozora.
Prvi je uređivačko sučelje u kojem pišemo program.
Drugi je interaktivno sučelje, koje u ovom slučaju ne koristimo za crtanje, ali će se automatski otvoriti kad pokrenemo program.
Treći je prozor za crtanje, u kojem se pojavljuje kornjača i u kojem nastaje naš crtež.

U tom prozoru vidimo sve što kornjača radi.

Naredbe za upravljanje kornjačom

Kornjaču možemo pomicati, okretati, skrivati, ubrzavati i bojati. Za to koristimo različite naredbe.

NAREDBA
OBJAŠNJENJE
NAREDBA
OBJAŠNJENJE
from turtle import*
naredba za aktiviranje kornjačinog modula
pu()
olovka se podiže i ne ostavlja trag (penup)
fd(broj_koraka)
pomiče olovku za neki broj koraka unaprijed (forward)
pd()
olovka se spušta i ostavlja trag (pendown)
bk(broj_koraka)
pomiče olovku za neki broj koraka unatrag (backward)
pensize(broj)
debljina crte (veći broj = deblja crta)
lt(kut)
okretanje kornjače ulijevo (left)
pencolor('boja_na_engleskom')
boja crte
rt(kut)
okretanje kornjače udesno (right)
color('boja_crte' , 'boja_ispune')
bojanje crte i unutrašnjosti oblika
speed(broj)
brzina kretanja kornjače (1-10)
begin_fill()
započni bojanje unutrašnjosti oblika
shape('oblik_na_engleskom')
mijenja izgled kornjače (olovke) na ekranu
end_fill()
završi bojanje unutrašnjosti oblika
undo()
poništava posljednju radnju olovke
može se koristiti više puta
st()
olovka postaje vidljiva na grafičkom zaslonu (showturtle)
home()
postavlja olovku u početni položaj
ht()
olovka postaje nevidljiva na grafičkom zaslonu (hideturtle)
reset()
postavlja olovku u početni položaj i briše crteže u grafičkom zaslonu
clear()
briše crteže u grafičkom zaslonu, a olovka ostaje u nepromijenjenom položaju
title('naziv prozora')
imenovanje prozora

Razlika između pencolor i color je u tome što pencolor mijenja samo boju crte, dok color može mijenjati dvije boje odjednom.

Za bojanje unutrašnjosti oblika obavezno koristimo begin_fill() i end_fill().

Crtanje pravilnih oblika i kutovi

Kod crtanja u Pythonu koristit ćemo samo pravilne oblike. Kod pravilnih oblika vrijedi važno pravilo: puni krug iznosi 360 stupnjeva.

Da bismo znali za koliko se kornjača mora okrenuti, puni krug dijelimo s brojem stranica oblika.
Na primjer, kvadrat ima četiri stranice, pa je okret 360 podijeljeno s 4 = 90 stupnjeva.
Trokut ima tri stranice, pa je okret 360 podijeljeno s 3 = 120 stupnjeva.

Ako nam je računanje teško, ne moramo izračunavati sami. Python može računati umjesto nas. Zato je potpuno isto napišemo li:

lt(90)
ili
lt(360/4)

Pisanje urednog koda i često pokretanje programa

Naredbe možemo pisati jednu ispod druge ili u istom redu. Ako ih pišemo u istom redu, moramo ih razdvojiti znakom ;

Preporučuje se da kod bude uredno napisan, jer se tako lakše snalazimo u njemu i brže pronalazimo pogreške.

Također je vrlo važno često pokretati program. Preporučuje se pokretati program tipkom F5 nakon nekoliko naredbi. Na taj način odmah vidimo gdje smo stali s crtežom i lakše uočimo pogreške. Ako napišemo puno redova odjednom, kasnije je puno teže pronaći gdje smo pogriješili.

Podsjetnik! Kada program prvi put pokrećemo, moramo ga i spremiti.

U ovoj lekciji naučili smo da bez prve naredbe ne možemo crtati, da se kod pravilnih oblika puni krug dijeli s brojem stranica i da je važno često pokretati program kako bismo lakše ispravljali pogreške.

Sada smo spremni crtati sve zanimljivije oblike i slike pomoću kornjače u Pythonu.

POKRETANJE KORNJAČE I IMENOVANJE PROZORA
CRTANJE KVADRATA - naredbe u istom redu
CRTANJE KVADRATA - naredbe jedna ispod druge
CRTANJE TROKUTA - boja olovke, ispuna bojom, debljina crte, brzina crtanja
CRTANJE TROKUTA
1. zadana je samo boja olovke, bez ispune
2. ako nema zadane boje ispune obojit će se crno
CRTANJE ŠESTEROKUTA
1. crtanje šesterokuta zadanim oblikom olovke
2. crtanje šesterokuta uz mijenjanje oblika na olovci
CRTANJE KRUGA
CRTANJE KUĆICE
CRTANJE CVIJETA
'classic'
'arrow'
'turtle'
'circle'
'square'
'triangle'

PITANJA ZA PONAVLJANJE

  1. Kako se zove modul u Pythonu koji koristimo za crtanje?
  2. Koju naredbu moramo napisati na početku programa da bi se kornjača pojavila?
  3. Što radi kornjača kada koristimo naredbu fd(100)?
  4. Što se događa kada kornjača dobije naredbu lt(90)?
  5. Crta li kornjača uvijek kada se pomiče?
  6. Koja naredba podiže olovku, a koja je ponovno spušta?
  7. Čemu služe naredbe begin_fill() i end_fill()?
  8. Koja je razlika između naredbi pencolor() i color()?
  9. Što radi naredba home()?
  10. Zašto je dobro često pokretati program dok crtamo?
  11. Koliko stupnjeva ima puni krug kod crtanja pravilnog oblika?
  12. Kako ćemo izračunati kut okretanja za pravilni lik?
  13. Možemo li umjesto broja kuta napisati račun, npr. 360/4? Objasni.
  14. Što trebaš napraviti ako se crtež ne boja, iako si odabrao boju?

Korak po korak do rješenja

Do sada smo u nastavi informatike već puno toga naučili. Pisali smo jednostavne programe, unosili podatke, računali vrijednosti i ispisivali rezultate. U Pythonu smo čak i crtali, pa smo mogli vidjeti kako se naše naredbe odmah pretvaraju u crteže na ekranu.

Kada rješavamo neki zadatak, vrlo je važno ne krenuti odmah pisati program, nego prvo razmisliti što zapravo želimo napraviti. Moramo odlučiti koje ćemo korake napraviti i kojim redom. Upravo taj redoslijed koraka naziva se algoritam.

Što je algoritam?

Algoritam je točan i jasan postupak kojim rješavamo neki problem ili dolazimo do željenog cilja. Algoritme ne koristimo samo u računalima – koristimo ih i u svakodnevnom životu.

Na primjer, kada kuhamo čaj, ne radimo to nasumično. Znamo da prvo moramo uliti vodu u posudu, zatim je zagrijati, staviti čaj u šalicu i na kraju pričekati da čaj odstoji. Ako promijenimo redoslijed tih koraka, čaj nećemo pravilno skuhati.

Isto vrijedi i za računalo. Računalo ne razmišlja samo, nego izvršava točno one upute koje mu damo – redom.

Algoritam kao niz koraka

Jednostavan algoritam sastoji se od koraka koji se izvršavaju jedan za drugim. Takav način rješavanja problema nazivamo algoritamska struktura slijeda.

To znači da se svaka naredba izvršava tek nakon što je prethodna završena. Većina programa koje smo do sada pisali upravo je takva – naredbe se izvršavaju redom, od prve do zadnje.

Ponavljanje radnji u algoritmu

Ponekad u algoritmu neku radnju moramo ponoviti više puta. Na primjer, kada mijenjamo kotač na automobilu, vijke ne odvrćemo samo jednom, nego više puta – jedan po jedan. Isto vrijedi i za njihovo ponovno zatezanje.

Kada se neka radnja u algoritmu ponavlja više puta, govorimo o algoritamskoj strukturi ponavljanja.

U programiranju smo se s tim već susreli kada smo koristili petlje.

Algoritmi u stvarnom životu

Algoritme koristimo i u situacijama u kojima moramo donositi odluke. Na primjer, kada prelazimo cestu, ne činimo uvijek isto. Ako postoji semafor, gledamo boju svjetla. Ako nema semafora, gledamo lijevo i desno i provjeravamo dolaze li automobili.

U takvim slučajevima ne slijedimo uvijek isti put, nego ovisno o odgovoru biramo što ćemo dalje učiniti. To nazivamo algoritamska struktura grananja.

3 osnovne strukture algoritama:

  • algoritam slijeda
  • algoritam ponavljanja
  • algoritam grananja

Kako možemo prikazati algoritam?

Algoritam možemo zapisati na različite načine. Možemo ga opisati riječima, kao postupak u svakodnevnom životu. Možemo ga zapisati i pseudokodom, koji izgleda poput programa, ali nije napisan u pravom programskom jeziku (nego nama, na hrvatskom, govornom jeziku).

Još jedan vrlo važan način prikaza algoritma je dijagram tijeka. Dijagram tijeka je grafički prikaz algoritma pomoću posebnih simbola. Svaki simbol ima svoje značenje, a strelice pokazuju kojim redom se radnje izvršavaju.

Dijagrami tijeka su korisni jer nam pomažu da lakše razumijemo problem i vidimo cijeli postupak rješavanja na jednom mjestu.

POČETAK I KRAJ PROGRAMA
ULAZ (unos podataka)
OBRADA PODATAKA (formula)
ODLUKA / PETLJA
IZLAZ (ispis rezultata)
POVEZNICE
pokazuju smjer kojim teče radnja

PRIMJER: Program koji zbraja dva broja

Vježba 1.

Marija je odlučila iznenaditi mamu te joj ispeći rođendansku tortu. Potražila je jednostavan recept i otišla u nabavu namirnica. Već je na samom početku naišla n aproblem. Mase svih potrebnih namirnica, npr. šećer, brašno i maslac izražene su u gramima, a u receptu su sve vrijednosti izražene u dekagramima. Pomozimo Mariji i napišimo program koji će izračunati koliko vrijednost mase neke namirnice, izražena u gramima, iznosi u dekagramima.

Napišite računalni program prema algoritmu i dijagramu tijeka definiranom na slici.

RJEŠENJE

Vježba 2.

Napiši algoritam prema zadanom dijagramu tijeka kojim se računa prosjek triju upisanih ocjena iz predmeta Informatika.

Vježba 3.

Napiši računalni program prema zadanom dijagramu tijeka kojim se računa opseg pravokutnika kojem je duljina jedne stranice dvostuko veća od druge. Duljinu stranice je potrebno unijeti pomoću tipkovnice.

PITANJA ZA PONAVLJANJE

  1. Što je algoritam?
  2. Zašto prije pisanja programa moramo razmisliti o algoritmu?
  3. Navedi jedan primjer algoritma iz svakodnevnog života.
  4. Izvršava li računalo naredbe redom kako su napisane?
  5. Što bi se moglo dogoditi ako u algoritmu promijenimo redoslijed koraka?
  6. Kako se zove algoritamska struktura u kojoj se naredbe izvršavaju jedna za drugom?
  7. U kojoj se situaciji koristi algoritamska struktura grananja?
  8. Koju algoritamsku strukturu koristimo kada se neka radnja mora izvršiti više puta?
  9. Na koje sve načine možemo prikazati algoritam?
  10. Što je dijagram tijeka?
  11. Zašto su dijagrami tijeka korisni?
  12. Što pokazuju strelice u dijagramu tijeka?
  13. Po čemu se algoritam razlikuje od računalnog programa?
  14. Zašto je važno da algoritam bude jasan i točan?
  15. Što misliš – je li lakše pisati program s unaprijed smišljenim algoritmom ili bez njega? Zašto?
  16. Osmisli jednostavan algoritam za neku svakodnevnu radnju (npr. spremanje za školu, pranje zubi, pisanje zadaće).

Petljamo petlju

Do sada smo u programiranju naučili kako se naredbe izvršavaju redom, jedna za drugom. Takav način rada naziva se algoritamska struktura slijeda. Vidjeli smo da računalo točno slijedi naše upute i da je redoslijed naredbi jako važan.

Sada idemo korak dalje. Upoznat ćemo se s naredbom koja nam omogućuje da neke naredbe ponovimo više puta, bez da ih moramo stalno iznova pisati. Ta naredba naziva se petlja.

Zašto nam trebaju petlje?

Prisjetimo se kako smo ranije crtali kvadrat pomoću kornjače. Da bismo nacrtali kvadrat, morali smo četiri puta ponoviti iste dvije naredbe:
idi naprijed i okreni se ulijevo.

from turtle import*
fd(100);lt(360/4)
fd(100);lt(360/4)
fd(100);lt(360/4)
fd(100);lt(360/4)

Pisati iste naredbe više puta nije praktično. Program postaje dulji, nepregledniji i lakše se potkrade pogreška. Zato u programiranju koristimo petlje, koje nam omogućuju da isto ponavljanje napišemo samo jednom.

Što je petlja?

Petlja je naredba za ponavljanje. Ona govori računalu koliko puta treba izvršiti određene naredbe. Umjesto da iste naredbe pišemo više puta, mi kažemo računalu:
“Ove naredbe ponovi nekoliko puta.”

Petlje pripadaju algoritamskoj strukturi ponavljanja.

Petlja for

U ovoj lekciji upoznajemo petlju for. Petlja for koristi se kada točno znamo koliko puta želimo ponoviti neke naredbe.

Pogledajmo primjer crtanja kvadrata pomoću petlje:

from turtle import*
for i in range(4):
fd(100);lt(90)

Ovdje kornjača četiri puta ponavlja iste naredbe i crta kvadrat.

Kako radi petlja for?

Petlja for koristi varijablu brojač. U našem primjeru to je varijabla i.
Brojač služi za praćenje koliko se puta petlja izvršila.

Petlja radi ovako:

  • brojač dobije početnu vrijednost

  • izvrše se naredbe unutar petlje

  • brojač se poveća

  • provjerava se treba li petlju još izvršavati

  • kada se dosegne granica, petlja završava s radom

Važno je znati da u mnogim primjerima ne koristimo vrijednost brojača, nego ga koristimo samo da bismo kontrolirali koliko se puta petlja ponavlja.

Naredba range()

U petlji for koristimo naredbu range(). Ona određuje:

  • od koje vrijednosti brojač počinje

  • do koje vrijednosti ide

  • za koliko se povećava

 

U naredbi range() neke vrijednosti možemo izostaviti.
Ako ne napišemo početni broj, Python počinje od 0.
Ako ne napišemo za koliko se broj povećava, Python povećava broj za 1.

 

Najčešći oblik je:

range(4)

To znači da će se petlja izvršiti četiri puta, a brojač će imati vrijednosti 0, 1, 2 i 3.

Ako napišemo:

range(1, 4)

 

brojač počinje od 1 i završava na 3. (1, 2, 3)

Ako napišemo:

range(1, 10, 2)

 

brojač se povećava za 2 i poprima vrijednosti 1, 3, 5, 7 i 9. (od  1  do  10,  za  2)

Petlja for i crtanje likova

Petlja for jako je korisna za crtanje pravilnih geometrijskih likova.
Kod svakog pravilnog lika ponavljamo iste radnje, samo određeni broj puta.

Npr.:

  • kvadrat → 4 ponavljanja

  • trokut → 3 ponavljanja

  • pravokutnik → 2 ponavljanja dužih i kraćih stranica

Kut okretanja uvijek dobivamo tako da puni krug (360°) podijelimo s brojem stranica.

Petlja for i ispis brojeva

Petlju for ne koristimo samo za crtanje, nego i za ispis brojeva.

Na primjer, ako želimo ispisati sve prirodne brojeve manje od nekog broja n, možemo koristiti petlju for. Brojač tada poprima vrijednosti brojeva koje želimo ispisati, a mi ih ispisujemo pomoću naredbe print().

Kada u petlji for ispisujemo brojeve, važno je znati kako Python ispisuje rezultat na zaslonu. Isti brojevi mogu se ispisati okomito ili vodoravno, ovisno o načinu na koji koristimo naredbu print().

 

Naredba print() na kraju ispisa po zadanim postavkama dodaje novi red.
Kada napišemo end=' ', mi to mijenjamo i kažemo Pythonu:

“Nakon ispisa nemoj ići u novi red, nego ostani u istom retku i dodaj razmak.”

Ako bismo napisali end='-', brojevi bi se ispisivali s crticom između.

Razlika između okomitog i vodoravnog ispisa nije u petlji, nego u načinu korištenja naredbe print().

Česte pogreške pri radu s petljom for

Najčešća pogreška pri radu s petljom for je pogrešno zadana početna ili granična vrijednost brojača.
Ako početna vrijednost nije manja od granične, petlja se neće izvršiti nijednom.

Zato je važno pažljivo razmisliti:

  • od kojeg broja počinjemo

  • do kojeg broja idemo

  • koliko puta želimo ponoviti naredbe

ZADATCI ZA VJEŽBU – preuzmi i riješi

VJEŽBA 1

VJEŽBA 2

VJEŽBA 3

PITANJA ZA PONAVLJANJE

  1. Što je petlja u programiranju?
  2. Zašto u programiranju koristimo petlje?
  3. Koju petlju smo upoznali u ovoj lekciji?
  4. Kada koristimo petlju for?
  5. Što predstavlja varijabla i u petlji for?
  6. Kako se mijenja vrijednost brojača tijekom izvođenja petlje?
  7. Čemu služi naredba range()?
  8. Koje vrijednosti ima brojač u naredbi range(4)?
  9. Koja je početna vrijednost brojača ako početni broj nije naveden?
  10. Hoće li se zadnji broj iz range() ikada ispisati?
  11. Što znači treći broj u naredbi range(2, 10, 2)?
  12. Zašto je petlja for korisna pri crtanju kvadrata i trokuta?
  13. Kako računamo kut okretanja kod pravilnih geometrijskih likova?
  14. Koja se naredba koristi za ispis rezultata na zaslon?
  15. Kako će se brojevi ispisati ako koristimo samo print(i)?
  16. Kako će se brojevi ispisati ako koristimo print(i, end=’ ‘)?
  17. Što znači dio end=’ ‘ u naredbi print()?
  18. Što se može dogoditi ako pogrešno postavimo početnu ili graničnu vrijednost u range()?

Ova stranica služi kao priprema za provjeru znanja. 

U ovoj lekciji ponovit ćemo gradivo iz programiranja koje smo učili posljednjih sati. Prisjetit ćemo se crtanja u Pythonu, algoritama i petlji.

Riješi zadatke redom i provjeri svoje razumijevanje.

Za provjeru znanja možeš koristiti službeni šalabahter s naredbama za crtanje. Ako si izgubio/la papir, ovdje ga možeš preuzeti i ispisati.

ZADATCI ZA PRIPREMU

CRTANJE U PYTHONU

Zadatak 1 – Ravna crta

Napiši program koji će pomoću kornjače nacrtati ravnu crtu duljine 100 koraka.

Program spremi u mapu UČITELJICA na radnoj površini. Preimenuj datoteku pod nazivom: tvoje ime i prezime, npr. Stipe Stipić – zadatak 1

Zadatak 2 – Kvadrat bez petlje

Napiši program koji će nacrtati kvadrat stranice duljine 80.

Program spremi u mapu UČITELJICA na radnoj površini. Preimenuj datoteku pod nazivom: tvoje ime i prezime, npr. Stipe Stipić – zadatak 2

Zadatak 3 – Kvadrat pomoću petlje

Napiši program koji će nacrtati kvadrat pomoću petlje for.
Duljina stranice neka bude 100.

Program spremi u mapu UČITELJICA na radnoj površini. Preimenuj datoteku pod nazivom: tvoje ime i prezime, npr. Stipe Stipić – zadatak 3

Zadatak 4 – Trokut u boji

Napiši program koji će nacrtati jednakostranični trokut:

  • stranica duljine 100
  • crta neka bude plave boje
  • unutrašnjost trokuta neka bude žute boje

 

Program spremi u mapu UČITELJICA na radnoj površini. Preimenuj datoteku pod nazivom: tvoje ime i prezime, npr. Stipe Stipić – zadatak 4

Zadatak 5 – Pravokutnik

Napiši program koji će nacrtati pravokutnik:

  • jedna stranica duljine 120
  • druga stranica duljine 60

 

Program spremi u mapu UČITELJICA na radnoj površini. Preimenuj datoteku pod nazivom: tvoje ime i prezime, npr. Stipe Stipić – zadatak 5

Zadatak 6 – Peterokut

Pomoću for petlje napiši program da nacrta peterokut.

  • duljina stranice: nepoznata
  • debljina crte olovke: 5
  • boja olovke: cyan
  • boja ispune: magenta

 

Program spremi u mapu UČITELJICA na radnoj površini. Preimenuj datoteku pod nazivom: tvoje ime i prezime, npr. Stipe Stipić – zadatak 6

Zadatak 7 – Kućica

Napiši program koji će nacrtati jednostavnu kućicu:

  • tijelo kuće je pravokutnik
  • krov je trokut
  • koristi barem jednu boju

Program spremi u mapu UČITELJICA na radnoj površini. Preimenuj datoteku pod nazivom: tvoje ime i prezime, npr. Stipe Stipić – zadatak 7

Zadatak 8 – Olimpijski znak

Napiši program koji će nacrtati olimpijski znak pomoću kornjače.

Olimpijski znak sastoji se od pet krugova:

  • plavi, crni i crveni u gornjem redu
  • žuti i zeleni u donjem redu

Program spremi u mapu UČITELJICA na radnoj površini. Preimenuj datoteku pod nazivom: tvoje ime i prezime, npr. Stipe Stipić – zadatak 8

KORAK PO KORAK DO RJEŠENJA

ZADATAK 9

PSEUDOJEZIK → DIJAGRAM → PROGRAM

Zadatak: Zadan je algoritam zapisan pseudojezikom.

 

Pseudojezik:

  1. Početak
  2. Upiši jedan broj
  3. Izračunaj trostruku vrijednost tog broja
  4. Ispiši rezultat
  5. Kraj

 

Zadatak:

  • nacrtaj dijagram tijeka
  • napiši računalni program

ZADATAK 10

DIJAGRAM → PSEUDOJEZIK → PROGRAM

Zadatak: Zadan je dijagram tijeka.

Zadatak:

  • napiši algoritam pseudojezikom
  • napiši računalni program

ZADATAK 11

PROGRAM → PSEUDOJEZIK → DIJAGRAM

Zadatak: Zadan je računalni program koji povećava uneseni broj za 10.

 

x = int(input("Upiši broj: "))
y = x + 10
print(y)

 

Zadatak: 

  • napiši algoritam pseudojezikom 
  • nacrtaj dijagram tijeka

PETLJAMO PETLJU

ZADATAK 12

Što će se ispisati nakon izvršavanja sljedećih programa?

ZADATAK 13

Nadopuni program prema zadanom ispisu.

ZADATAK 14

Nadopuni program. Pomoću for petlje ispiši 5 puta riječ Karlovac.

ZADATAK 15

Nadopuni program. Vodoravno ispiši sve prirodne brojeve od prirodnog broja a do prirodnog broja c, uključujući i broj c. Testiraj program te prema potrebi preuredi svoje rješenje.

ZADATAK 16

Nadopuni program. Ispiši sve prirodne brojeve manje od prirodnog broja a. Testiraj program te prema potrebi preuredi svoje rješenje.

U ovim lekcijama ponovili smo crtanje u Pythonu pomoću kornjače, upoznali algoritam kao niz koraka za rješavanje problema te naučili kako algoritam možemo zapisati riječima, dijagramom tijeka i programom. Također smo naučili koristiti petlju for za ponavljanje naredbi.

Razumijevanje ovih pojmova pomaže nam lakše rješavati zadatke i pisati pravilne programe.

Vježbom učimo prepoznati obrasce i logiku programa, a ne učiti naredbe napamet.

Programiranje nije samo pisanje koda, nego razmišljanje o rješenju.

Pogreške su sastavni dio učenja.
Ako nešto ne uspije iz prve, pokušaj ponovno.