You are on page 1of 40

Programski jezik

Python
separat uz udžbenik za 5. – 6. razred

SysPrint • 2014.
Programski jezik
Python
separat uz udžbenik za 5. – 6. razred

SysPrint • 2014.
2

6.C. 5. razred
Osim što pomoću računala crtamo i pišemo, možemo načiniti upute koje računalo
razumije i izvršava baš kako smo mi zamislili. Tome služe programski jezici. Kao
Programiranje – Python

što se ljudi služe jezicima u međusobnom razgovoru, tako računalo razumije pro-
gramske jezike. Primjerice, svaka igrica na računalu ili vašem mobitelu zapravo je
program napisan u programskom jeziku.

Ključni pojmovi print, input, int, float, import, math, turtle, forward, back, left,
right, reset, penup, pendown, hideturtle, showturtle, write

1. Upoznajmo Python

Pokrenimo Python
Kliknite na gumb Start, pa na Svi programi te u
mapi Python 3.3 kliknite na IDLE (Python GUI).

Pokazivač teksta postavljen je iza znaka >>>.


Ovdje možemo pisati naredbe koje će Python
izvršiti. Slika 1. Pokretanje Pythona.

Slika 2. Prozor Pythona.

Zašto Python pokrećemo klikom na IDLE (Python GUI), a nema jednostavno Python? IDLE
je kratica od Integrated DeveLopment Environment (integrirano razvojno okruženje), a GUI je kratica od
Graphics User Interface (grafičko korisničko sučelje).
Inače, sučelje IDLE dobilo je naziv po prezimenu komičara Erica Idlea iz grupe Monty Python, od kuda
izvire i ime programskog jezika (a ne po zmiji pitonu, engl. python).

Slika 3. Osnovne računske operacije u Pythonu.


6. Programiranje – Python 3

Promotrite sliku 3. Koji se znakovi koriste za pojedine računske Primjer


operacije? Računska operacija Znak
Operacija Rezultat
Primijetite da znak za dijeljenje / uvijek daje rezultat u obliku zbrajanje + 2+3 5
decimalnog broja. Iako je 45 : 5 = 9, Pyhon ispisuje 45 / 5 = 9.0, oduzimanje - 13 - 6 7
dakle kao decimalni broj s jednom decimalom (u našem primje- množenje * 7*5 35
ru 0). Želimo li brojeve podijeliti kao prirodne brojeve moramo 45 / 5 9.0
dijeljenje /
pisati //. Sada će rezultat biti prirodan broj, ali ako brojevi nisu 17 / 5 3.4
djeljivi, znak // daje nam djelomični količnik. 45 // 5 9
djelomični količnik //
Osim računanja, možemo jednostavno i ispisivati tekst. 17 // 5 3
ostatak pri dijeljenju % 14 % 3 2
Promotrite sliku 4.
Tablica 1. Primjeri računskih
1 Sigurno ste zaključili da tekst koji želimo ispisati pišemo pod navodnicima (‘ ‘). operacija.
2 Ako ih zaboravimo Python će javiti
poruku o greški.
3 Želimo li pisati tekst pod navodnici-
ma, možemo ih koristiti unutar jed- 1
nostrukih navodnika.
2
4 Tekst možemo umnožiti pomoću
znaka *. Želimo li razmak između ri-
ječi, moramo ostaviti jedan razmak 3
na kraju teksta koji umnažamo. 4
Primijetite da se ispisuju i navodnici koji 4
Pythonu govore da se unutar njih nalazi
tekst koji treba ispisati. Ako želimo da Slika 4. Ispis teksta u Pythonu.
Python nešto ispiše, ne želimo vidjeti navodnike.

Vježba 1.
Upišite sljedeću naredbu:

Pritisni tipku
>>> print('Učimo programski jezik Python.') Enter
Učimo programski jezik Python.

Rješenje:
Tekst koji želite ispisati treba napisati pod navodnicima, u okrugloj zagradi i
ispred zagrade napisati naredbu print.
Međutim, mogli smo istu rečenicu napisati i s dvostrukim navodnicima:

Pritisni tipku
>>> print("Učimo programski jezik Python.") Enter
Učimo programski jezik Python.

Rješenje u datotekama 56Cvje1.py i 56Cvje1_1.py.


4 6. Programiranje – Python

Naredba print služi za ispis teksta. Ono što želimo ispisati pišemo u
okruglim zagradama. Tekst koji želimo ispisati pišemo pod navodnicima.

Vježba 2.
Upišite sljedeću naredbu:

Pritisni tipku
>>> print('Čitali smo "Paunaša" Tite Bilopavlovića.')
Enter
Čitali smo "Paunaša" Tite Bilopavlovića.

Kada je u udžbeniku program napisan u plavom okviru, kao ovaj u


vježbi 2, u stvarnosti ćete ga upisivati u glavnom prozoru Python Shell,
što će izgledati ovako:

Rješenje:
Želimo li ispisati tekst pod navodnicima, kao što je naslov bajke, navodnike
navodimo unutar teksta. Čitav tekst koji ispisujemo sada mora biti pod jedno-
strukim navodnicima. Naime ako napišete:

>>> print("Čitali smo "Paunuša" Tite Bilopavlovića.")


SyntaxError: invalid syntax

Python će javiti pogrešku jer je prepoznao da treba ispisati samo "Čitali smo
" tj. spario je najbliže navodnike, a ostatak nije prepoznao kao tekst.

Rješenje u datoteci 56Cvje2.py.

Vježba 3.
Upišite sljedeću naredbu:

>>> print('Tekst možemo \n ispisivati u \n više redaka.') Pritisni tipku


Enter
Tekst možemo
ispisivati u
više redaka.

Rješenje:
\n - prelazak u novi red Želimo li neki tekst ispisati u više redova, za prelazak u novi red pišemo \n.

Rješenje u datoteci 56Cvje3.py.


Znak \ piše se pomoću
AltGr+Q.
6. Programiranje – Python 5

2. Moj prvi program


Na prošlom satu naučili smo ispisivati tekst i izvoditi osnovne računske opera- Podsjetite se (poglavlje 6B.1):
cije. Međutim, naredbe koje smo pisali nismo mogli spremiti i kasnije ponovno Što je naredba?
koristiti. Kao što smo svoje crteže i tekstove mogli spremiti i nastaviti kasnije, Što je algoritam?
tako i naredbe u Pythonu možemo spremiti, ako ih napišemo u obliku programa. Što je program?
Program pišemo u uređivaču teksta koji otvaramo tako da iz izbornika File
odaberemo naredbu New Window…(slika 5.) Nakon toga otvori se prozor kao
na slici 6. u kojem pišemo program.

Slika 5. Otvaranje uređivača teksta. Slika 6. Uređivač teksta.

Vježba 4.
Napišite sljedeći program u uređivaču teksta:

print('Rijeka \t Duljina u Hrvatskoj')


print('Sava \t \t 940 km')
print('Drava \t \t 725 km')
print('Kupa\t \t 296 km')
print('Odra \t \t 83 km')

Kada je u udžbeniku program napisan u žutom okviru, kao ovaj u vježbi


4, u stvarnosti ćete ga upisivati u uređivaču teksta, što će izgledati ovako:

print('Rijeka \t Duljina u Hrvatskoj')


print('Sava \t \t 940 km')
print('Drava \t \t 725 km')
print('Kupa\t \t 296 km')
print('Odra \t \t 83 km')

Nakon što ste prepisali program, treba ga izvršiti. Python se brine da ne izgubite
svoj uradak, pa zahtjeva da program prvo spremite.
Iz izbornika File odaberite Save (ako spremate prvi puta ili je već od ranije upi-
sano ime programa). Ako želite promijeniti ime programa ili mjesto spremanja
programa odabrat ćete Save As ili Save Copy As..
6 6. Programiranje – Python

Slika 7. Spremanje programa. Slika 8. U polje Naziv datoteke: upišite ime programa.
Sada program možete pokrenuti. Iz izbornika Run odaberite Run Module ili
jednostavno pritisnite tipku F5.

Slika 9. Pokretanje programa. Slika 10. Rezultat programa.

Pišući program sigurno ste primijetili neobičnu oznaku \t. Ona omogućuje pre-
skok za više praznih mjesta – sljedeći znak ispisuje se iza bloka praznih mjesta.
Budući da smo kod ispisa duljine rijeka trebali više razmaka, oznaku \t upotri-
jebili smo dvaput.

Rješenje u datoteci 56Cvje4.py.

Ispis podataka
Za ispis koristimo naredbu print(). U okruglim zagradama slijede podaci
koje treba ispisati i to:
• tekst pišemo pod navodnicima
• želimo li navoditi tekst koristimo se dvostrukim navodnicima
• za prelazak u novi red koristimo \n
• želimo li ostaviti više mjesta razmaka (kao tabulatorom) koristimo \t

Vježba 5.
Napišimo program za zbrajanje brojeva a = 80 i b = 30. .
6. Programiranje – Python 7

Rješenje:
Algoritam: Program: Dijagram toka:

a=80 a=80
b=30 b=30
zbroj = a +b zbroj=a+b
ispiši a print('a=',a)
ispiši b print('b=',b)
ispiši zbroj print('zbroj=',zbroj)

Prve naredbe programa(a=80 i b=30) zovemo naredbe Mali rječnik


pridruživanja. Ako u varijablu a želimo staviti vrijednost File - datoteka
80, tada jednostavno pišemo a=80. Znak jednakosti sada Open – otvori
je operator pridruživanja, jer varijabli a pridružuje broj 80. Save - spremi
Save As – spremi kao
Save Copy As – spremi kopiju kao
Naredba oblika a=80 zove se naredba pridruživanja. Njome kažemo Recent Files – prethodne datoteke
programu da u varijabli a zapamti broj 80. Varijabla a označava mjesto u
memoriji u kojem je pohranjen broj 80.

Želimo li ovim programom zbrojiti


neka druga dva broja, moramo se vra-
titi u uređivač teksta i izmijeniti brojeve Želite li biti brži u sprema-
pridružene varijablama a i b. To ćemo nju i pokretanju programa
najlakše učiniti tako da iz izbornika File prilikom njihovog mije-
njanja, možete to učiniti
odaberemo Recent Files.
pomoću tipkovnice kom-
Izmijenite sada brojeve tako da bude binacijom tipki CTRL+S
za spremanje programa
a = 180 i b = 100. Ne zaboravite da
i tipkom F5 pokrenuti
program prije pokretanja morate Slika 11. Otvaranje ranije napisanih programa. program.
prvo spremiti(File > Save), pa onda
pokrenuti(Run > Run Module ili tipka F5.)

Rješenje u datoteci 56Cvje5.py.

Vježba 6.
Dijagram toka:
Napišimo program koji računa umnožak i količnik brojeva a = 12 i b =
3. Rezultat ispisati u obliku jednakosti: 12 * 3 = 36 i 12 : 3 = 4.

Rješenje:
Algoritam: Program:

a=12 a=12 Aritmetičke


b=3 b=3 operacije
umnozak = a*b umnozak=a*b množenje - *
kolicnik = a // b kolicnik=a//b dijeljenje - /
ispiši umnozak print(a,'*',b,'=',umnozak) djelomični količnik - //
ispiši kolicnik print(a,':',b,'=',kolicnik)
ostatak - %
8 6. Programiranje – Python

Promotrite print naredbu. One podatke koje smo ispisivali iz varijabli a, b, umno-
zak i kolicnik napisali smo bez navodnika, a znakove računskih operacija (koje
program ovdje vidi kao tekst) pod navodnicima.

Rješenje u datoteci 56Cvje6.py.


Dijagram toka:

Vježba 7.
Napišimo program koji računa umnožak i količnik brojeva a
= 15 i b = 4.

Rješenje:

Algoritam: Program:

a=15 a=15
b=4 b=4
umnozak = a*b umnozak=a*b
kolicnik = a / b kolicnik=a/b
djelomicni=a//b djelomicni=a//b
ostatak= a % b ostatak= a % b
print(a,'*',b,'=',umnozak)
ispiši umnozak
print(a,':',b,'=',kolicnik)
ispiši kolicnik
print(a,':',b,'=',djelomicni,'(',ostatak,')')
ispiši djelomicni, ostatak

Rješenje u datoteci 56Cvje7.py.

3. Upis podataka s tipkovnice


Pomoću naredbe pridruživanja u programu prvo zadajemo brojeve, a zatim s
njima možemo izvoditi npr. računske operacije. Međutim, u svakom program-
skom jeziku postoji naredba koja nam omogućuje upis podataka s tipkovnice.

Vježba 8.
Napišite program za izračunavanje zbroja dva broja i ispisivanje dobivenog
zbroja.

Dijagram toka: Rješenje:


Algoritam: Program:

upiši a print('Upiši prvi pribrojnik:')


upiši b a=input()
zbroj=a+b print('Upiši drugi pribrojnik:')
ispiši zbroj b=input()
zbroj=a+b
print('Zbroj je', zbroj)

Naredba a=input() omogućuje da nakon pokretanja programa upišete neki


broj koji se pamti u varijabli a. Sada ne moramo mijenjati program ako želimo
računati s različitim brojevima. Kada program naiđe na naredbu input stat će
6. Programiranje – Python 9

i čekati podatak s tipkovnice sve dok ga ne upišemo i pritisnemo tipku Enter. Pozor: nakon upisa broja morate
pritisnuti tipku Enter.
Zato je uvijek dobro ispisati poruku kakav podatak program očekuje.
Zato smo u ovom primjeru ispred naredbe input napisali naredbu print koja
ispisuje poruku o tome što treba upisati.

Da li program točno zbra-


ja dva broja? Pokrenimo
ga (F5) i provjerimo:

Znamo da 12+22 nije


1222. Možete li se do-
sjetiti što je napravio
program? Pogledajte sli-
ku 13. Umjesto brojeva
Slika 12. Izvršenje programa za zbrajanje za a=12 i b= 22. Slika 13. Izvršenje programa za
upisali smo riječi Marica, zbrajanje za a=’Ivica’ i b= ‘Marica’.
Ivica. Program ih je jednostavno “slijepio”, odnosno združio. Sada je jasno da
upravo to radi i s brojevima: ne zbraja ih, već ih sljepljuje jer ih prihvaća kao
riječi, a ne kao brojeve.
Zato prije zbrajanja moramo od riječi napraviti broj. To print('Upiši prvi pribrojnik:')
radi naredba int. Najlakše je samo izmijeniti naredbu za a=input()
zbrajanje: zbroj=int(a)+int(b). print('Upiši drugi pribrojnik:')
b=input()
Program možemo još malo poboljšati tako da poruku o zbroj=int(a)+int(b)
tome koji podatak upisujemo napišemo u input naredbi. print('Zbroj je', zbroj)

a=input('Upiši prvi pribrojnik:')


b=input('Upiši drugi pribrojnik:') input - naredba za upis podataka
zbroj=int(a)+int(b)
print('Zbroj je', zbroj)

Naredba za upis podataka je input. Najčešće je koristimo u obliku


x=input(‘poruka’), gdje je x mjesto u memoriji na kojem pamtimo po-
datak, a poruka opis podatka koji učitavamo.
Naredba učitani podatak shvaća kao tekst, pa ga prije računanja moramo
pretvoriti u broj.

Pravila za imenovanje varijabli:


1. Ime varijable sastoji se od slova, znamenki i podvlake _
2. Python razlikuje velika i mala slova. Dakle, zbroj, Zbroj i ZBROJ ozna-
čavaju tri različite varijable.
3. Primjeri nedozvoljenih imena:
a) a$, x.7, 7€ - sadrže nedozvoljene znakove
b) 7as, 90a – počinju znamenkom
c) if, else, and, or – ključne riječi koje imaju već svoju namjenu u Pythonu

Rješenja u datotekama 56Cvje8.py, 56Cvje8_1.py, 56Cvje8_2.py.


10 6. Programiranje – Python

Vježba 9.
Napišite program za računanje opsega trokuta kome su zadane duljine stranica
trokuta a, b i c.

Rješenje:
Dijagram toka: Algoritam: Program:

upiši a a=input('a=')
upiši b b=input('b=')
upiši c c=input('c=')
opseg=a+b+c opseg=int(a)+int(b)+int(c)
ispiši opseg print('Opseg je', opseg)

Rješenje u datoteci 56Cvje9.py.

Vježba 10.
Često puta se u programiranju pojavljuje potreba zamjene vrijednosti dvije va-
rijable. Ako imamo niz brojeva koje treba poredati po veličini tada moramo moći
zamijeniti vrijednosti dviju varijabli. Napišite program koji upisuje dva broja prvi
i drugi i zamjenjuje njihove vrijednosti.

Rješenje:
Promotrite algoritam i program:
Prikažimo što se događa u memoriji:
prvi
prvi=input('prvi=')
65

drugi
drugi=input('drugi=')
72

65
prvi drugi prvi drugi
prvi,drugi=drugi,prvi
72 65
72
prvi
print('prvi=',prvi)
72

drugi
print('drugi=',drugi)
65

Rješenje u datoteci 56Cvje10.py.

Vježba 11.
Napišite program koji traži da upišete svoje ime, a zatim vas pozdravi.
6. Programiranje – Python 11

Rješenje:
Algoritam:

upiši ime
ispiši Drago mi je ime da smo se upoznali!

Program: Slika 15. Primjer izvršenja


programa za pozdravljanje.

ime=input('Kako se zoveš?')
print('Drago mi je', ime,'da smo se upoznali!')

Rješenje u datoteci 56Cvje11.py.

Decimalni brojevi

Vježba 12.
Napišite program koji upisuje decimalan broj, pa:
a) ispisuje njegov cijeli dio.
b) zaokružuje ga na prirodan broj.

Rješenje:
Promotrite algoritam i program:
Algoritam: Program: Slika 16. Primjer ispisa
programa u vježbi 12.
upiši a a=input ('Upiši decimalan broj:')
a= decimalni(a) a=float(a)
cijeli = cijeli(a) cijeli=int(a)
zaokruži= zaokruži(a) zaokruži=round(a)
ispiši cijeli print ('Cijeli dio od',a, 'je',cijeli)
ispiši zaokruži print (a,' je približno',zaokruži)

Ulazni podatak a sada je decimalan, a ne prirodan broj, pa ga iz teksta moramo Mali rječnik:
pretvoriti u decimalan broj naredbom: a=float(a). Cijeli dio decimalnog round – zaokruži
broja dobit ćemo naredbom int(a). Naredba za zaokruživanje decimalnog integer – cijeli broj
broja je round (a).

Rješenje u datoteci 56Cvje12.py.

4. Crtanje pomoću kornjače


Osim računanja, u Pythonu možete i jednostavno crtati. Pogledate sliku na
početku poglavlja o Pythonu. Kućice u bojama nacrtao je jedan mali trokutić
kojeg ćemo u Pythonu zvati kornjača (engl. turtle).

Python raspolaže naredbama koje možemo koristiti odmah prilikom njegovog


pokretanja. Međutim, postoje i skupine naredbi koje prije korištenja moramo
učitati, odnosno unijeti u Python.
12 6. Programiranje – Python

Modul – skupina programa Takve skupine programa zovu se moduli. Svaki modul ima svoje ime. Na primjer,
određene namjene želimo li crtati, unijeti ćemo modul za crtanje. Budući ćemo crtati pomoću malog
trokutića koji ćemo zvati “kornjača”, modul za crtanje zove se turtle.
Import – naredba za Module unosimo u glavni program pomoću naredbe import.
unošenje modula
engl. turtle - kornjača Modul je skupina naredbi i programa koji imaju zajednička svojstva i
namjenu.
Modul unosimo naredbom import.

Da biste mogli početi crtati, slijedite ove korake:


1. Na lijevu polovicu zaslona smanjite prozor Python Shell.
2. Unesite modul s naredbama za crtanje: from turtle import *
3. Imenujte prozor u kojem ćemo crtati: title('Kornjača') – pojavit će
se prozor Kornjača. Kliknite na njega i smjestite ga na desnu polovicu za-
slona
4. Pokažite kornjaču naredbom st()(kratica od showturtle – pokaži kor-
njaču).

Slika 17. Prve naredbe za crtanje


pomoću kornjače.

Kornjača je okrenuta prema desnom rubu prozora. Želimo li je okrenuti prema


gore pisat ćemo:
lt(90)

Kornjača se okrenula ulijevo za 90. Naredba lt je kratica od engleske riječi left


Pozor: iza svake naredbe što znači lijevo. Pomaknimo je sada naprijed za 100 točaka naredbom fd (engl.
pritisni Enter. forward – naprijed):
fd(100)

Sada je lako pogoditi da ćemo kornjaču udesno za pravi kut okrenuti naredbom
rt (engl. right – desno) i opet pomaknuti naprijed za 60.

rt(90)
Pomaknimo se još ovako:
fd(60)
6. Programiranje – Python 13

Sada je lako zaključiti da je naredba bk(120) pomakla kornjaču unazad, a crta


je dulja od već nacrtanih, jer smo napisali veći broj pokraj naredbe (engl. back -
nazad). Prozor u kojem crta kornjača brišemo naredbom:
bk(120)

Nakon te naredbe kornjača se ponovno nalazi u središtu prozora.

reset()

Vježba 13.
Nacrtajte dva kvadrata jedan unutar drugog. Veći kvadrat neka
ima duljinu stranice 80, a manji kvadrat duljinu stranice 30.

Rješenje:
1. Nacrtajte kvadrat sa stranicom duljine 80. Kvadrat ima 4 jed-
naka kuta, a puni okret kornjače je 360°, pa se u svakom Slika 18. Dva kvadrata.
vrhu kvadrata okrećemo za 360°: 4 = 90°. Možete pisati dvi-
je naredbe u istom redu ako između stavite znak
;(točka-zarez).

>>> lt(90)
>>> fd(80);rt(90)
>>> fd(80);rt(90)
>>> fd(80);rt(90)
>>> fd(80);rt(90)

Želite li napisati dvije naredbe u istom retku, između njih stavite točku-zarez(znak ;).
Iste naredbe ne morate prepisivati četiri puta . Pomoću kursorske strelice prema
gore(na tipkovnici) pomaknite se u gornji redak i pritisnite Enter. Naredbe iz
tog retka dopisat će se u novom retku. Sada još samo pritisnite Enter i napisane
naredbe će se izvršiti.

2. Pomaknite kornjaču unutar kvadrata, ali tako da kornjača ne ostavi trag. Da


biste to postigni, dignite pero kornjače naredbom pu() (pen up, što znači
“pero gore”) . Budući da je stranica manjeg kvadrata duljine 30, onda ćete se
pomaknuti gore i desno za(80-30): 2 = 50: 2=25 i zatim spustiti pero naredbom
pd() (pen down, što znači “pero dolje”)

>>> pu()
>>> fd(25);rt(90)
>>> fd(25);lt(90)
>>> pd()
14 6. Programiranje – Python

3. Nacrtajte unutarnji kvadrat duljine stranice 30.

>>> fd(30);rt(90)
>>> fd(30);rt(90)
>>> fd(30);rt(90)
>>> fd(30);rt(90)

Primijetite da se kornjača, crtajući kvadrat, okrenula za ukupno 3600, odnosno


učinila je okret za puni kut.

Rješenje u datoteci 56Cvje13.py.

Osnovne naredbe za crtanje Naredba Puni naziv Opis


pomoću kornjače fd(50) forward(50) pomiče kornjaču naprijed za 50 točaka
Priprema za crtanje: rt(40) right(40) okreće kornjaču udesno za 40 stupnjeva
lt(40) left(40) okreće kornjaču ulijevo za 40 stupnjeva
>>> from turtle import *
>>> title('Ime prozora') bk(100) back(100) pomiče kornjaču unazad za 100 točaka
>>> st() pu() penup() diže pero kornjače
pd() pendown() spušta pero kornjače
st() showturtle() pokazuje kornjaču
ht() hideturtle() skriva kornjaču
Tablica 2. Osnovne kornjačine naredbe. reset() reset() briše crtež i postavlja kornjaču u sredinu prozora

Vježba 14.
Napišite program koji crta jednakostraničan
trokut stranice duljine 50.

Rješenje:

Puni okret kornjače je 360°. Puni okret kornjače iznosi 360°. Trokut ima
3 jednake stranice i 3 jednaka kuta. Znači,
da biste nacrtali trokut morate se ukupno
okrenuti za 360°, odnosno u svakom vrhu
trokuta morate se okrenuti za 360°: 3 = 120° Slika 19. Trokut.
(vidi sliku 19.) Duljina stranice trokuta je 50, pa treba tri puta ponoviti naredbe
fd(50) i rt(120).
from turtle import *
Napišimo program u uređivaču teksta st(); lt(90)
koji crta trokut. fd(50); rt(120)
fd(50); rt(120)
Uočite da je sada priprema kornjače fd(50); rt(120)
malo jednostavnija: ne moramo davati
ime prozora da bi nam se otvorio. Kornjačin prozor otvara se samim pokreta-
njem kornjače.

Pisanje programa u uređivaču teksta omogućuje nam njegovo lagano mijenjanje.


Ako želite pomoću ovog programa nacrtati trokut stranice duljine 70, ponov-
no ćete otvoriti uređivač teksta, izmijeniti duljinu stranice, spremiti program i
pokrenuti ga tipkom F5.

Rješenje u datoteci 56Cvje14.py.


6. Programiranje – Python 15

Vježba 15.
Napišite program koji crta 3 šesterokuta sa za-
jedničkim vrhom. Duljina stranice šesterokuta
je 50, a debljina linije neka je 5.

Rješenje:
Budući da je puni okret kornjače 360° a šeste-
rokut ima 6 vrhova, u svakom vrhu okrenut
ćete se za 360°:6 = 60°. Da biste nacrtali šeste-
Slika 20. Tri šesterokuta. Slika 21. Shema crtanja šesterokuta.
rokut trebate napisati 6 puta naredbe fd(50)
i rt(60). Ali, treba nacrtati 3 šesterokuta. Mo-
ramo li toliko puta ponavljati iste naredbe? Možemo li nekako “naučiti
from turtle import *
program” da crta šesterokut, pa mu kasnije samo zadati da ga nacrta, title('Šesterokut')
svaki put pod drugim kutom? I to je moguće. Pogledajte program:
Promotrite dio označen crvenom vitičastom zagradom. Započinje def sesterokut():
fd(50); rt(60)
riječju def, slijedi ime sesterokut(): Zatim slijede naredbe koje
fd(50); rt(60)
crtaju šesterokut duljine stranice 50. fd(50); rt(60)
Nakon toga jednostavno smo pokazali kornjaču, okrenuli je prema fd(50); rt(60)
gore i tri puta nacrtali šesterokut, te okrenuli kornjaču udesno za fd(50); rt(60)
120°(jer je 360° : 3 = 120°, pa smo opet napravili puni okret u točki u fd(50); rt(60)
kojoj se dodiruju sva 3 šesterokuta).
st(); lt(90)
width(5)
Naredba width(5)postavlja debljinu pera na 5 točaka.
sesterokut(); rt(120)
Dio programa kojim smo crtali šesterokut predstavlja potprogram. sesterokut(); rt(120)
sesterokut(); rt(120)
Kako svaki potprogram mora imati svoje ime, imenovali smo ga
sesterokut.

Rješenje u datoteci 56Cvje15.py.</CD>

Svaki potprogram ima svoje ime. Zadavanje potprograma započinje


riječju def, slijedi ime potprograma i dvotočka : . Potprogram pišemo
uvučeno 4 mjesta. Kad završimo pisanje potprograma radi preglednosti
dobro je ostaviti jedan prazan redak. Potprogram pozivamo navodeći
njegovo ime.

Vježba 16.
Pomozimo Ivici nacrtati kućice i izračunati
ukupnu duljinu linije koju će kornjača nacrtati.

Rub kućice je debljine 5 točaka. Svaka kućica


sastoji se od kvadrata i trokuta koji imaju du-
ljinu stranice 80.

Slika 22. Kućice se sastoje od kvadrata i


trokuta.
16 6. Programiranje – Python

Rješenje:
Ovo je već malo složeniji zadatak pa ga prvo
rastavimo na dijelove:
potprogram – dio programa
koji pozivamo unutar glavnog Potrebno je napisati tri potprograma: kvadrat trokut
programa
• Potprogram kvadrat() crta kvadrat duljine
stranice 80
• Potprogram trokut() crta trokut duljine stranice 80
• Potprogram kuca() crta kućicu koja se sastoji od
kvadrata(crta ga kvadrat()) i trokuta (crta ga tro-
kut()) i pomiče kornjaču uz desni donji vrh kuca
kućice(od
te točke
crta se
sljedeća
kućica).
Kućicu že-
limo obojiti, pa ćemo na po-
četku potprograma zadati
begin_fill() (što znači
“počni bojati”), a na kraju pot-
programa end_fill() (što
znači “završi bojati”)

Ostatak programa zvat ćemo


glavni program. U njemu poka-
zujemo kornjaču st() i pomiče-
mo je uz lijevi rub prozora pu(); bk(200); pd(); lt(90), te namještamo
debljinu linije width(5).
Preostaje nacrtati pojedinu kućicu. Prvo zadajemo boju crtanja i boju bojenja
naredbom color, npr. color('red','yellow') ako želimo crveni rub i
žutu ispunu (engl. red – crveno, yellow - žuto) i nacrtamo kuću pomoću kuca().
Te dvije naredbe ponovimo još 3 puta, svaki puta s drugim bojama.

Program treba ispisati ukupnu duljinu linije koju je kornjača nacrtala. Ako je dulji-
na jedne stranice trokuta ili kvadrata 80, onda je na jednoj kući duljina linije 6*80,
a budući imamo 4 kućice to treba pomnožiti s 4, dakle: duljina= 6*80*4.
Budući možemo ispisati samo jedan podatak, pretvorit ćemo broj pohranjen u
varijabli duljina u tekst i dodati tekst koji treba ispisati: duljina='Duljina
linija:'+ str(duljina)
Sada još moramo ispisati poruku kao na slici 25. U kornjačinom prozoru ispisu-
jemo pomoću naredbe write koja ima 3 ulazne vrijednosti:
1. podatak koji se ispisuje: duljina
2. položaj teksta(ovdje je ulijevo u odnosu na trenutni položaj kornjače):
align='left'
3. vrsta, veličina i oblikovanje pisma: font=("Arial",18,"bold")
6. Programiranje – Python 17

Naredba za ispis u cijelosti izgleda ovako:


write(duljina,align='left', font=("Arial",18,"bold"))

from turtle import * st(); pu(); bk(200); pd(); lt(90)


title('Kućice') width(5)
color('red','yellow')
def kvadrat(): kuca()
fd(80); rt(90) color('blue','skyblue')
fd(80); rt(90) kuca()
fd(80); rt(90) color('grey','violet')
fd(80); rt(90) kuca()
def trokut(): color('green','brown')
fd(80); rt(120) kuca()
fd(80); rt(120) duljina= 6*80*4
fd(80); rt(120) duljina='Duljina linija:'+str(duljina)
def kuca(): pu(); lt(90); fd(300); rt(90); bk(40); pd()
begin_fill() color('black')
kvadrat(); fd(80) write(duljina, align='left',
rt(30); trokut() font=("Arial",18,"bold"))
lt(30); bk(80)
rt(90); fd(83); lt(90)
end_fill()

Rješenje u datoteci 56Cvje16.py.

Boja Naziv Boja Naziv Boja Naziv Boja Naziv Naredba za boju: color(boja
pera, boja ispune)
Aquamarine Chocolate Gray Sienna

Black Cyan Green SkyBlue

Blue DarkBlue Peru Yellow

BlueViolet DarkCyan Red Violet

Brown DarkGreen Salmon White

Tablica 3. Nazivi nekih boja.

Naredbe za pretvorbe tipova


int(a) – pretvara podatak iz varijable a u prirodan broj
float(a) – pretvara podatak iz varijable a u decimalan broj
str(a) – pretvara podatak iz varijable a u tekst

Vježba 17.
Napišite program koji crta kvadrat čiju duljinu stranice a upisu-
jemo preko tipkovnice.

Slika 23. Kvadrat zadane


duljine stranice.
18 6. Programiranje – Python

Rješenje:
Najprije odgovorimo na pitanje zašto su pokraj imena potprograma do sada
stajale prazne zagrade. To je zato jer unutar zagrada možemo upisati ime va-
rijable čiju vrijednost ćemo koristiti u potprogramu. Promotrite potprogram
kvadrat(a) koji crta kvadrat čija je duljina stranice a.
Duljinu stranice kvadrata upisat ćemo u prozorčiću
from turtle import *
title('Kvadrat') koji nam daje naredba
def kvadrat(a): a=textinput('Duljina stranice','a=').
fd(a); rt(90)
fd(a); rt(90) Naredba textinput ima dvije ulazne vrijednosti:
fd(a); rt(90) • naslov prozora (to je ‘Duljina stranice')
fd(a); rt(90) • tekst koji se ispisuje u prozoru koji nam govori što
treba upisati (to je ‘a=’).
a=textinput('Duljina stranice','a=')
a=int(a)
lt(90); st() Na taj način možemo crtati crteže različitih veličina.
kvadrat(a)
Rješenje u datoteci 56Cvje17.py.

Vježba 18.
Napišite program koji crta 8 kvadrata sa zajedničkim vr-
hom, ako je duljina stranice kvadrata a. Kvadrati su tako
raspoređeni da ravnomjerno popunjavaju puni kut u za-
jedničkoj točki.
Slika 24. Osam kvadrata sa
zajedničkom točkom. Rješenje:
Kvadrat ćete nacrtati pomoću istog potprograma kvadrat(a), kao u prošloj
vježbi. Osam kvadrata sa zajedničkom točkom nacrtat ćete tako da se nakon
crtanja jednog kvadrata okrenete udesno za 45, jer je 3600 : 8 = 450. Dakle,
puni okret kornjače podijelimo s 8 i kvadrati će biti ravnomjerno raspoređeni.

Rješenje u datoteci 56Cvje18.py.


from turtle import *
title ('Kvadrati')
def kvadrat (a): Naredba za upis podataka u modulu turtle
fd(a); rt(90) Za upisivanje podatka pri crtanju pomoću kornjače,
fd(a); rt(90)
upotrebljava se naredba textinput koja ima dvije
fd(a); rt(90)
fd(a); rt(90) ulazne vrijednosti:
• naslov prozora
a=textinput('Duljina stranice','a=')
a=int(a) • tekst koji se ispisuje u prozoru
lt(90); st() Npr. želite li u varijablu a upisati duljinu stranice, pisat
for k in range(8): ćete:
kvadrat(a)
rt(45) a=textinput('Duljina stranice','a=')
6. Programiranje – Python 19

Sova zna
Ispis podataka – naredba print()
U okruglim zagradama slijede podaci koje treba ispisati.
Upis podataka – naredba input
Najčešće je koristimo u obliku x=input('poruka')
Naredba učitani podatak shvaća kao tekst, pa ga prije računanja moramo
pretvoriti u broj.

Moduli – zbirke naredbi


Modul je skupina naredbi i programa koji imaju zajednička svojstva i
namjenu. Unosimo ga naredbom import.

Osnovne naredbe za crtanje pomoću kornjače


Priprema za crtanje:
>>> from turtle import *
>>> title('Ime prozora')
>>> st()

Za upisivanje podatka koji se koristiti pri crtanju pomoću kornjače, upotrebljava se


naredba textinput koja ima dvije ulazne vrijednosti: naslov prozora i tekst koji se ispisuje.
Potprogrami
Zadavanje potprograma započinje riječju def, slijedi ime potprograma i dvotočka : .
Potprogram pišemo uvučeno 4 mjesta. Potprogram pozivamo navodeći njegovo ime.
def ime():
naredbe

Naredbe za pretvorbe tipova


int(a) – pretvara podatak iz varijable a u prirodan broj
float(a) – pretvara podatak iz varijable a u decimalan broj
str(a) – pretvara podatak iz varijable a u tekst
20

3.C. 6. razred
U petom razredu prvi puta ste se susreli s programiranjem u Pythonu. Upoznali ste
Programiranje – Python

naredbe za upis i ispis podataka i osnovne naredbe za crtanje pomoću kornjače.


Ove godine naučit ćete kako se ponavljaju zadane naredbe. Također, programira-
njem ćete naučiti jednostavno i brzo riješiti neke računske i geometrijske zadatke,
kao na primjer:
• Koliko iznosi zbroj svih četveroznamenkastih brojeva?
• Kako nacrtati 12 rombova sa zajedničkim vrhom?
• Kako nacrtati kocke nad stranicama osmerokuta?

Ključni pojmovi odluka, petlja, petlja s korakom, lista, if, else, elif, for, in, range,
colormode, color, append, extend, insert, remove, index, sort

1. Kako donosimo odluke


U petom razredu upoznali ste algoritam grananja, crtali ste dijagrame toka za te
algoritme, ali nismo napisali niti jedan program u kojem se donose odluke. Prisjetite
se da je simbol za odluku u dijagramu toka:
Program može donijeti odluku koje naredbe će izvršiti ako
mu postavimo njemu razumljivo „pitanje“. Program razumije
samo ona pitanja na koja može dati odgovor istina ili laž.
Takva pitanja koja razumije računalo zovemo logički uvjeti.
Evo nekoliko primjera „pitanja“ u programu i odgovora jesu li to logički uvjeti:

Primjer Je li logički uvjet? Objašnjenje


13>7 DA 13>7 je istinit logički uvjet.
69<17 DA 69<17 je lažan logički uvjet
a+b nije logički uvjet(ako su a i b varijable u programu, njihov zbroj je
a+b NE
jedan broj, a za jedan broj ne možemo reći je li istinit ili lažan)
c=a+b je logički uvjet, ako su a, b i c varijable u programu, pa je
c=a+b DA moguće provjeriti je li zbroj brojeva na varijablama a i b jednak broju
na varijabli c.
Tablica 1. Što može biti logički
uvjet u programu
Matematika Python
Ako se pitate zašto matematički Tablica 2. Pri pisanju < <
logičkih uvjeta koristimo > >
znak jednakosti u Pythonu piše- matematičke znakove za = ==
mo s „==“, a ne jednostavno s „=“ uspoređivanje. Postoje male
³ >=
to je zato što se znak „=“ u Pyt- razlike u pisanju nekih
znakova u matematici i ≤ <=
honu koristi za pridruživanje vri- ≠ !=
Pythonu
jednosti varijabli, pa ako želimo u
varijablu a staviti broj 5 pišemo: a
= 5, a ako želimo provjeriti je li u varijabli a pohranjen broj 5 pišemo uvjet a == 5.
3. Programiranje – Python 21

Razlikujemo:
Naredba odluke: Naredba pridruživanja:
a==5 a = 5
a

Navedite nekoliko primjera


Vježba 1. donošenja odluka u
Napišite algoritam i program koji će pro- svakodnevnom životu. Uvjet
postavite tako da na njega možete
vjeriti jesu li dva broja a i b jednaka ili ne. odgovoriti s DA(ako je uvjet istinit)
ili s NE(ako je uvjet lažan).
Rješenje:

upiši a,b
ako je a=b:
ispiši Brojevi su jednaki.
inače
ispiši Brojevi su različiti.
Slika 1. Provjera jesu li brojevi
a=input('a=') jednaki ili različiti.
b=input('b=')
a=int(a)
b=int(b)
if a==b:
print('Brojevi su jednaki.')
else: Rješenje u da-
print('Brojevi su različiti.') toteci 63Cvje1.py.

Vježba 2.
Napišite program koji za dva zadana broja n i k ispi-
suje poruku ako je broj n djeljiv s brojem k. Ako n
nije djeljiv s k ne ispisuje se ništa.

Rješenje:
Dva broja su djeljiva ako im je ostatak jednak 0. Znači
Slika 2. Primjer različitih
ako je n % k == 0, onda treba ispisati poruku ispisa vježbe 2.
oblika: n je djeljiv s k. U zadatku piše da se
poruka ispisuje samo ako su brojevi djeljivi, znači ako brojevi nisu djeljivi nećete
ispisati ništa. Koristit ćete if naredbu bez else.

upiši n, k n=input('n=')
ako je ostatak(n,k)=0: k=input('k=')
ispiši n je djeljiv s k n=int(n)
k=int(k)
if n % k==0:
print(n,'je djeljiv s',k)
Rješenje u datoteci
63Cvje2.py.
22 3. Programiranje – Python

Vježba 3.
Napišite program koji uspoređuje dva broja a i b.

Rješenje:
Ako imamo neka dva broja a i b, kakvi oni mogu biti me-
đusobno? Iz matematike znamo da mora biti jedna od
ove tri mogućnosti:
1. prvi broj može biti manji od drugog(a<b)
2. prvi broj može biti veći od drugog(a>b)
3. brojevi su jednaki(a = b).
Tu imamo 3 mogućnosti, pa nam jedna naredba odluke
neće biti dovoljna. Pogledajmo algoritam:

upiši a,b Slika 3. Program za


ako je a>b: uspoređivanje brojeva
ispiši a je veći od b
Ako je a>b, ispisujemo poruku „a>b“. Inače
inače ako je a<b:
moramo provjeriti ako je a<b, pa ispisati
ispiši a je manji od b
inače: „a<b“, a inače ispisujemo „a=b“.
ispiši a je jednak b. Evo programa:

a=input('a=')
b=input('b=')
a=int(a)
b=int(b)
if a<b:
Rješenje u datoteci 63Cvje3.py. print(a,'<',b)
elif a>b:
print(a,'>',b)
Vježba 4.
else:
Napišite program koji upisuje tri broja a, b print(a,'=',b)
i c i ispisuje ih u rastućem redoslijedu, od
manjeg prema većem.

Rješenje:
Razmišljat ćemo ovako:
1. Ako je a>b, onda zamijenimo vrijednosti od a i b. Sada je
sigurno a<b. Zatim,
2. Ako je a>c, onda zamijenimo vrijednosti od a i c. Sada je
sigurno a<c. I na kraju,
3. Ako je b>c, onda zamijenimo vrijednosti od b i c. Sada je
sigurno b<c.
Nakon ovih zamjena, sigurno je a< b <c.
Kako zamjenjujemo vrijednosti dviju varijabli? Prisjetimo se
da smo u 5. razredu učili da se vrijednosti varijabli a i b jed-
nostavno zamijene naredbom: a, b = b, a. Slika 5. Primjer
ispisa vježbe 4.
3. Programiranje – Python 23

Evo programa i dijagrama tijeka:


a=input("a=") Izbrišite nared-
b=input("b=") be a=int(a),
c=input("c=") b=int(b) u vježbi 3. i
a=int(a);b=int(b);c=int(c) ponovno je pokrenite. Sada su
if a>b: podaci u varijablama a i b u
a,b = b,a obliku teksta, pa osim brojeva
if a>c: možemo “uspoređivati” riječi
a,c = c,a (slika 4.). U prvom primjeru čini
if b>c: nam se da Python uspoređuje
b,c = c,b riječi abecednim redom. Među-
print(a,b,c) tim, pogledajte drugi primjer:
riječ mama veća je od riječi
Mama. To je zato jer Python
zapravo
Rješenje u datoteci 63Cvje4.py. uspoređuje
slova po
njihovu
ASCII kodu.
Budući da
Oblici naredbe odluke je ASCII kod
if uvjet: if uvjet: od M 77, a
naredbe koje se naredbe koje se izvršavaju od m 109,
izvršavaju ako je ako je uvjet istinit Mama <
uvjet istinit else: mama. Ali,
naredbe koje se izvršavaju kako će pro-
ako je uvjet lažan gram sada Slika 4. „Uspo-
usporediti ređivanje“ riječi
11 i9? Ispisat
će 11 < 9 jer
uspoređuje redom znamenke,
a 1 < 9.
Rješenje u datoteci
63Cvje3_1.py.
if uvjet:
naredbe koje se izvršavaju ako
je uvjet istinit
elif uvjet1:
naredbe koje se izvršavaju
ako je uvjet lažan, a uvjet1
istinit
else:
naredbe koje se izvršavaju ako
su uvjet i uvjet1 lažni

Vježba 5.
Napišite program koji upisuje broj dana u mjesecu u varijablu dani, pa ispisuje
koji mjeseci u godini imaju toliko dana.
Uputa:
Siječanj, ožujak, svibanj, srpanj,kolovoz, listopad ili prosinac imaju 31 dan. Tra-
vanj, lipanj, rujan ili studeni imaju 30 dana. Veljača u prestupnoj godini ima 29
dana, a inače 28 dana.
24 3. Programiranje – Python

Rješenje:
Ako upišete dani=31, tada ispisujete nazive mjeseca s 31 dan, inače ako upišete
dani=30, tada ispisujete nazive mjeseca s 30 dan, inače ako upišete dani=29,
tada ispisujete poruku: Mjesec veljača u prestupnoj godini, inače ako upišete
dani=28, tada ispisujete poruku: Mjesec veljača, inače (upisan je broj koji nije broj
dana u mjesecu) ispisujete poruku: Niti jedan mjesec u godini nema toliko dana.

dani=input('Upiši broj dana u mjesecu')


dani=int(dani)
if dani=31:
print ('Mjesec: siječanj, ožujak, svibanj, srpanj,kolovoz, listopad ili prosinac .')
elif dani=30:
print ('Mjesec: travanj, lipanj, rujan ili studeni')
elif dani = 29:
print ('Mjesec veljača u prestupnoj godini')
elif dani=28:
print ('Mjesec veljača')
else:
print ('Niti jedan mjesec u godini nema toliko dana.')

Rješenje u datoteci 63Cvje5.py.

2. Kako ponavljati naredbe?


U svakom programskom jeziku postoje naredbe koje nam omogućuju ponav-
ljanje određenih naredbi. Štoviše, možemo ponavljati i cijele skupine naredbi.

Prepišite ove naredbe:

engl. range - domet for k in range(10):


print(k)

Pritisnite dva puta tipku Enter.

Program ispisuje brojeve od 0 do 9 (vidi sliku 9 ).


Naredbu oblika for k in range(10):
zovemo petlja. Varijablu k zvat ćemo kon-
trolna varijabla petlje. Nakon dvotočke(:) Slika 6. Ispis brojeva od 0 do 9
Python zna da ćemo pisati naredbe koje će se
izvršavati „unutar petlje“, pa je odmah uvukao početak retka 4 znaka.
U ovom primjeru jedina naredba koja se izvršava unutar petlje je print(k),
pa možemo zaključiti sljedeće:
1. Na početku varijabla petlje (k) ima vrijednost 0.
2. Pri svakom prolazu petljom varijabla petlje se povećala za 1.
3. Naredbe unutar petlje izvršile su se 10 puta , jer smo zadali range(10).

Ova naredba omogućila je jednostavan ispis brojeva manjih od 10. Jasno je da


pomoću ove petlje lako možemo ispisati i jako puno brojeva, npr. sve brojeve
3. Programiranje – Python 25

manje od 1000. No, budući da se svaki broj ispisuje na zaslonu u zasebnom


retku, vidjet ćemo samo nekoliko posljednjih brojeva. Zato dopunimo naredbu Pišući for petlju sigurno ste
print ovako: print(k, end=' '), što znači da nakon ispisa vrijednosti primijetili sljedeće. Nakon što
ste napisali redak for k
sljedeći ispis neće biti u novom redu već će se nakon znaka ‘ ‘ nastaviti u istom
in range (10): i
redu ostavivši jedno prazno mjesto. pritisnuli tipku Enter, pokazivač
je prešao u novi redak, ali ne na
Sljedećom naredbom lako ćemo ispisati brojeve od 0 do 999 početak već se pomaknuo četiri
mjesta udesno. Zašto baš četiri
mjesta?
for k in range(1000): U izborniku Options kliknite na
print(k, end=' ') naredbu Configure IDLE. Otvorit
će se dijaloški okvir:
U okviru Indentation Width
Vježba 6. zadano je Python standard: 4
Napišite program koji upisuje prirodan broj
n i ispisuje sve prirodne brojeve od 1 do n,
uključujući i n.
Slika 7. Ispravan ispis prvih 10 prirodnih
brojeva
Rješenje:
Ako upišemo vrijednost od n, i u petlji umjesto broja 10 stavimo n, dobit ćemo
sljedeći program:

n=input('n=')
n=int(n) Spaces!. To znači da će naredbe
for k in range(n): unutar petlje ili unutar jedne
print(k, end=' ') procedure biti uvučene 4 mje-
Slika 8. U ispisu nedostaje 10, a viška je 0. sta udesno, što možete povećati
ili smanjiti.
To nije ono što smo željeli. Ispisala se 0, a posljednji broj je 10. Želimo li da Uvlačenjem pojedinih redaka
varijabla petlje počne od 1, to ćemo zadati ovako: program će biti pregledniji, od-
nosno lakše ćete uočiti koje se
n=input('n=') naredbe nalaze unutar petlje.
n=int(n) Pozor! Ako naredbe unutar
for k in range(1, n): petlje ne uvučete točno onoliko
print(k, end=' ') mjesta koliko je ovdje zadano,
te se naredbe neće izvršiti ona-
Ali sad se nije ispisao posljednji broj, pa ko kako ste očekivali.
ćemo n povećati za 1: Slika 9. Sada u ispisu nedostaje 10.

Ovaj program konačno ispisuje bro-


n=input('n=') jeve od 1 do n.
n=int(n)
for k in range(1, n+1): Rješenje u datotekama
print(k, end=' ')
63Cvje6.py, 63Cvje6_1.py,
63Cvje6_2.py.

Vježba 7.
Napišite program koji računa zbroj prvih n prirodnih brojeva, ako se n upisuje
na početku programa.
26 3. Programiranje – Python

Rješenje:
Prije nego promotrite algoritam i dijagram toka, razmislite kako bi zbrojili prvih
10 prirodnih brojeva. Krenuli bi od 1 i računali: 1+2=3, 3 + 3 = 6, 6+ 4 = 10, 10
+ 5 = 15, 15 + 6 = 21. Ako je broj 21 zbroj prvih
6 brojeva, onda zbroj prvih 7 brojeva dobijemo upiši n
tako da zbroju prvih 6 brojeva dodamo 7. Postu- zbroj=0
pak ponavljamo dok ne dođemo do posljednjeg za k ide(1, n+1):
zadanog broja. zbroj = zbroj + k
ispiši zbroj

n=input('n=')
n=int(n)
zbroj=0
for k in range(1, n+1):
zbroj=zbroj + k
print('Zbroj prvih',n,'prirodnih brojeva je',zbroj,'.')

Rješenje u datoteci 63Cvje7.py.

Vježba 8.
U naredbeni prozor upišite sljedeće for petlje i pronađite niz brojeva koji ispisuju.
Razmislite zašto se ispisuju baš ti nizovi brojeva.

for k in range(1,21,5):
1 print(k, end=' ')
a

for k in range(10,100,11):
2 print(k, end=' ')
b

for k in range(10,0,-2):
3 print(k, end=' ')
c

for k in range(1,40,-10):
4 print(k, end=' ')
d

Rješenje:
Obratite pažnju na brojeve u zagradi iza riječi range:
1. c) Brojevi u zagradi su:(1,21,5) što znači da k počinje s 1, završava s 20, a
pri svakom prolazu k se povećao za 5: 1 + 5 = 6, 6+ 5 = 11, 1 + 5 = 16.
2. d) Brojevi u zagradi su:(10,100,11) što znači da k počinje s 110, završava
s 99, a pri svakom prolazu k se povećao za 11: 10 + 11 = 21, 21+ 11 = 32, 32
+ 11 = 43, …..
3. b) Brojevi u zagradi su:(10,0,-2) što znači da k počinje s 10, završava s 1, a
pri svakom prolazu k se smanjio za 2: 10 +(-2) =10 – 2 = 8, 8+(-2) = 8 – 2 = 6,
6 +(-2) = 6 – 2 = 4, 4 +(-2) = 4 – 2 = 2.
3. Programiranje – Python 27

4. a) Brojevi u zagradi su:(1,40,-10) što znači da k počinje s 1, završava s 40,


a pri svakom prolazu k se treba smanjiti za 10 i pritom doći do 40: program
je prepoznao da je to nemoguće, pa nije ispisao ništa.
Petlju oblika for k in range(1,21,5): zovemo petlja s korakom.
Posljednji broj u zagradi zovemo korak petlje.

Vježba 9.
Napišimo program koji ispisuje prvih n višekratnika broja
k. Brojeve n i k upisati na početku programa.

Rješenje:
Npr. Višekratnici broja 10 počinju brojem 10 i zatim se
Slika 10. Deset višekratnika broja 4 i
ispisuje svaki deseti broj. Ako ispisujemo niz od n brojeva, onda je zadnji broj dvanaest višekratnika broja 45
koji treba ispisati 10*n. Znači, želimo li ispisati prvih n višekratnika broja k mo-
žemo koristiti petlju s korakom oblika:
for m in range(k, n*k+1,k):
Ispis prvih n više-
n=input('n=') kratnika broja k može se na-
n=int(n) praviti i bez petlje s korakom
Rješenje u datoteci k=input('k=') ovako:
63Cvje9.py. k=int(k)
n=input('n=')
for m in range(k, n*k+1,k):
n=int(n)
print(m, end=' ') k=input('k=')
k=int(k)
for m in range (1, n+1):
Naredba print (m*k, end=' ')

for k in range(n):
print(k, end=' ') Rješenje u datoteci
63Cvje9_1.py.
zove se programska petlja ili jednostavno petlja. Ona nam omogućuje
ponavljanje naredbi zadani broj puta.
Varijabla k zove se varijabla petlje i ona mijenja vrijednost pri svakom
pr olazu petljom.

Tri osnovna oblika for naredbe:


1. Naredba for k in range(20):
print(k, end=' ')
Varijabla k počinje s 0 i završava s brojem 19. Pri svakom prolazu petljom
se povećava za 1.

2. Naredba for k in range(1, 20):


print(k, end=' ')
Varijabla k počinje s 1 i završava s brojem 19. Pri svakom prolazu petljom
povećava se za 1.

3. Naredba for k in range(2, 20,2):


print(k, end=' ')
Varijabla k počinje s 2 i završava s brojem 18. Pri svakom prolazu petljom
povećava se za 2.
28 3. Programiranje – Python

Vježba 10.
Leonardo Fibonacci ili Le-
onardo od Pise (oko 1170. – Napišite program koji ispisuje prvih n članova niza: 1, 1, 2, 3, 5, 8, 13, 21, … i
oko 1250.), također poznat računa njihov zbroj. Prva dva člana niza su 1, a svaki sljedeći član niza jednak je
kao Leonardo Bonacci, bio zbroju prethodna dva člana niza. Pretpostavite da je n>2.
je talijanski matematičar,
kojeg su neki uzimali za
najtalentiranijeg matemati-
čara srednjeg vijeka. Danas
je najpoznatiji po tome što
je raširio uporabu arapskih
brojaka u Europi i po nizu
Fibonaccijevih brojeva, koje Slika 11. Vježba 10.
nije on izmislio, nego ih Rješenje:
spominje u svojoj knjizi Liber
Neka je a=1 i b= 1. To su prva dva člana niza. Prvo ih ispišemo. Zatim ih zbro-
Abaci (Knjiga računanja)
jimo: neka je zbroj = a + b. Prva dva člana smo riješili. Sada preostaje pro-
naći preostala n-2 člana niza
# Pretpostavimo da je n veći od 3. i dodati ih u varijablu zbroj.
n=input('n=')
Ako je sljedeći član niza c=
n=int(n)
a=1 a + b, onda ga ispišemo
b=1 i dodamo u zbroj pomoću
print('Prvih', n, 'Fibonaccijevih brojeva:') zbroj=zbroj + c. Sada
print(a,b, end=' ') drugi član niza(b) postaje prvi
zbroj= a+b član: a=b i treći član niza
for k in range (n-2):
postaje drugi član: b=c. Na
c=a+b
print(c, end=' ') kraju se samo ispiše rezultat,
zbroj=zbroj+c vrijednost varijable zbroj.
a=b
b=c Rješenje u datoteci
print(' ') 63Cvje10.py.
print ('Zbroj prvih',n,'članova niza je', zbroj, '.')

3. Kornjača u petlji

Ponovimo

Osnovne naredbe za crtanje pomoću kornjače


Priprema za crtanje: Naredba Puni naziv Opis
from turtle import * fd(50) forward(50) pomiče kornjaču naprijed za 50 točaka
title('Ime prozora') rt(40) right(40) okreće kornjaču udesno za 40 stupnjeva
st() lt(40) left(40) okreće kornjaču ulijevo za 40 stupnjeva
bk(100) back(100) pomiče kornjaču unazad za 100 točaka
pu() penup() diže pero kornjače
pd() pendown() spušta pero kornjače
st() showturtle() pokazuje kornjaču
Puni okret kornjače je 360°. ht() hideturtle() skriva kornjaču
reset() reset() briše crtež i postavlja kornjaču u sredinu prozora
Tablica 3. Osnovne kornjačine naredbe
3. Programiranje – Python 29

Vježba 11.
Napišite program koji crta jedrilicu kao na slici:

Slika 12. Jedrilica. Slika 13. Shema jedrilice.


Rješenje:
from turtle import *
Slijedeći duljine linija i veličine kutova kao title('Jedrilica')
na slici 13. lagano sastavimo program za cr- st(); lt(90)
tanje jedrilice:
lt(45); fd(60); rt(135); fd(180); rt(135)
fd(60); rt(45); fd(96); rt(45);
Rješenje u datoteci 63Cvje11.py.
fd(60); rt(135); fd(60); lt(90); fd(60);
rt(135); fd(86)
Vježba 12.
Napišite program koji crta pravokutnik duljine a i širine b. Duljinu i širinu pra-
vokutnika upisati na početku programa.
Uputa: duljinu stranice pravokutnika upisujemo u posebnom prozorčiću, na-
redbom textinput.

Slika 14. Pravokutnik duljine 100 i širine 50. Slika 15. Shema pravokutnika.

Rješenje:
from turtle import *
Promotrite shemu na slici 15. Pravokut- title('Pravokutnik')
nik ima sve kutove prave, a nasuprotne st(); lt(90)
stranice jednake duljine. Ako krećemo a=textinput('Duljina','a=')
b=textinput('Duljina','b=')
od točke označene kornjačom, onda dva
a=int(a)
puta ponavljamo iste naredbe(jednom za b= int(b)
plave, drugi put za zelene stranice), pa pra- for k in range(2):
vokutnik možemo nacrtati for petljom fd(b); rt(90)
koju ponavljamo dvaput. fd(a); rt(90)

Rješenje u datoteci 63Cvje12.py.


30 3. Programiranje – Python

Vježba 13.
Napišite program za crtanje paralelograma kome su duljine stranica a i b, a
kut među njima kut. Potrebne veličine upisati na početku programa. Napisati
potprogram za crtanje paralelograma.

Slika 16. Paralelogram duljine Slika 17. Shema paralelograma.


100, širine 50 i kuta 45°.
Rješenje:
from turtle import *
def paralelogram(a,b,kut): Potprogram za paralelogram pišemo na početku programa, navo-
rt(90-kut) deći riječ def, pa ime potprograma – paralelogram i popis varijabli
for k in range(2): koje se koriste u potprogramu: a, b, kut.
fd(b); rt(kut)
fd(a); rt(180-kut) Želite li nacrtati paralelogram kome je stranica a vodoravna, potreb-
lt(90-kut) no je kornjaču prvo okrenuti udesno za 90–kut. Zatim ponavljamo
crtanje 2 puta, slično kao kod pravokutnika, samo su ovdje 2 različita
title('Paralelogram') kuta (vidi sliku 17.).
st(); lt(90)
a=textinput('Duljina','a=') U glavnom programu upisujemo ulazne vrijednosti i crtamo
b=textinput('Duljina','b=') paralelogram.
kut=textinput('Kut','kut=')
a=int(a) Rješenje u datoteci 63Cvje13.py.
b=int(b)
kut=int(kut) U sljedećoj vježbi upoznat ćemo kako zadati boju kornjače.
paralelogram(a,b,kut)
Slika 18. Neke
od 16 milijuna
boja koje možete
odabrati

Python omogućuje nekoliko načina za-


boja crvena zelena plava boja crvena zelena plava
davanja boje. Jedan od njih je zadava-
0 0 0 0 127 127
nje boje riječima, npr. color('red',
255 0 0 127 0 127 'blue') – sada je boja linije crvena(red),
0 255 0 127 127 127 a boja ispune plava(blue). Ovaj način je
0 0 255 255 255 0 nespretan jer moramo znati imena boja.
Međutim, svaka boja na zaslonu, od crne
255 255 255 0 255 255
do bijele nastaje kao kombinacija triju
127 127 0 255 0 255 boja: crvene, zelene i plave.
Tablica 4. Primjeri miješanja boja Svaka boja određena je jednim brojem od 0 do 255. Na taj način možemo dobiti
ukupno 256 · 256 · 256 = 16 777 216 boja.

Želimo li boju kornjače opisivati kao kombinaciju triju boja: crvene, ze-
lene i plave, naredbom colormode(255) najavljujemo Pythonu takvo
zadavanje boja.
3. Programiranje – Python 31

Vježba 14.
from turtle import *
Napišite program koji crta obojani kvadrat stranice du- def kvadrat(a):
ljine 100. Upisati količinu crvene boje c, zelene boje z begin_fill()
i plave boje p. Kvadrat crtamo pomoću potprograma. for n in range(4):
fd(a);rt(90)
end_fill()
Rješenje:
Potprogram crta kvadrat ispunjen bojom. Naredbe title('Boja')
c=textinput('Crvena','c=')
begin_fill()i end_fill() kažu kornjači da sve
z=textinput('Zelena','z=')
što nacrta između tih naredbi treba obojiti trenutnom p=textinput('Plava','p=')
bojom ispune. c=int(c); z=int(z); p=int(p)
U glavnom programu upisujemo količine crvene boje colormode(255)
color(c,z,p)
c, zelene boje z i plave boje p. Uključujemo color-
kvadrat(100)
mode(255), zadajemo boju kornjače
color(c,z,p)i crtamo kvadrat naredbom
kvadrat(100).

Rješenje u datoteci 63Cvje14.py.

Može li boje zadavati sam program, ali tako da svaki


puta bira neku drugu, nasumično neku boju? To
je moguće, ako na početku programa učitate još
jedan modul: from random import * koji
ima naredbu randrange za zadavanje nekog na-
sumičnog broja.
Onda će naredba randrange(0,256) dati neki
broj između 0 i 255.
Slika 19. Dvadeset pet upisanih kvadrata

Vježba 15.
from turtle import *
Napišite program koji crta kvadrat stra- from random import *
nice 250 i kvadrate unutar njega, tako def kvadrat(a):
da svaki sljedeći kvadrat ima za 10 kraću c=randrange(0,256)
stranicu. Svi kvadrati imaju jednu zajed- z=randrange(0,256)
ničku točku – njihovo sjecište dijagonala. p=randrange(0,256)
color(c,z,p)
begin_fill()
Rješenje: for n in range(4):
Sada i određivanje boje kvadrata mo- fd(a);rt(90)
end_fill()
žete staviti u potprogram kvadrat(a). U
glavnom programu treba pozvati pot- title('Kvadrati');
program koji crta kvadrate, ali tako da pu(); bk(50); lt(90)
se crta prvo najveći kvadrat, pa redom bk(50); pd()
smanjivati stranicu petljom oblika: for colormode(255)
a in range(250,0,-10):
for a in range(250,0,-10):
Rješenje u datoteci 63Cvje15.py. kvadrat(a)
pu(); fd(5); rt(90); fd(5); lt(90)
32 3. Programiranje – Python

Vježba 16.
Napišite program koji crta cvijet od n
rombova, ako je duljina stranice romba
a. Svi rombovi imaju zajedničku točku u
početnom položaju kornjače i obojani
su nasumično određenim bojama.

Rješenje:
Romb je paralelogram koji ima sve
stranice jednake duljine, a. Kut romba
Slika 20. Cvijet od deset rombova Slika 21. Cvijet od trideset šest rombova
from turtle import *
from random import * određuje se iz uvjeta da svih n rombova ima jednu
def romb(a,kut): zajedničku točku, a ispunjavaju puni kut. Dakle, kut
c=randrange(0,256) romba je 360/n.
z=randrange(0,256)
p=randrange(0,256) Romb crtamo i bojimo u potprogramu romb(a,kut).
color(c,z,p) Kut romba ovisi o broju latica, pa je kut = 360/n.
begin_fill() Cvijet crtamo u glavnom programu jednostavnom
for x in range(2): petljom:
fd(a);rt(kut)
fd(a);rt(180-kut) for br in range(n):
end_fill() romb(a,kut); rt(kut)

title ('Cvijet') Rješenje u datoteci 63Cvje16.py.


a=textinput ('Duljina stranice','a=')
n=textinput ('Broj cvjetova','n=')
a=int(a); n=int(n)
colormode(255); lt(90)
kut=360/n 4. Crtanje kocke i kvadra
for br in range (n):
romb(a,kut); rt (kut) Vježba 17.
Napišite program koji crta kocku duljine brida a, pre-
from turtle import * ma shemi na slici 22.
def paralelogram(a,b,kut):
rt(90-kut)
for k in range(2):
fd(b); rt(kut) Rješenje:
fd(a); rt(180-kut) Uočite da se crtež
lt(90-kut) kocke sastoji od
4 paralelograma:
title('Kocka')
st(); lt(90) prednji i stražnji
a=textinput('Duljina brida','a=') paralelogram su
a=int(a) zapravo kvadra-
paralelogram(a,a,90) ti stranice a, a
paralelogram(a,a/2,45) gornji i donji su Slika 22. Kocka
fd(a)
paralelogrami sa
paralelogram(a,a/2,45)
bk(a); rt(45), fd(a/2); lt(45) stranicama a i a/2 i kutom 45°.
paralelogram(a,a,90)
rt(45), bk(a/2); lt(45) Rješenje u datoteci 63Cvje17.py.
3. Programiranje – Python 33

Vježba 18.
from turtle import *
def paralelogram(a,b,kut): Napišite program
rt(90-kut) koji crta kvadar s
for k in range(2): duljinama bridova
fd(b); rt(kut)
a,b i c prema she-
fd(a); rt(180-kut)
lt(90-kut) mi na slici 23.

title('Kvadar')
st(); lt(90)
Rješenje:
a=textinput('Duljina brida','a=')
b=textinput('Duljina brida','b=') Kvadar također Slika 23. Kvadar
c=textinput('Duljina brida','c=') crtamo pomoću četiri
a=int(a); b=int(b);c=int(c); paralelograma. Umjesto
paralelogram(a,c,90)
a/2 pišemo b, a umjesto
paralelogram(a,b,45)
fd(c) vertikalnih crta duljine a
paralelogram(a,b,45) pišemo c.
bk(c); rt(45), fd(b); lt(45)
paralelogram(a,c,90) Rješenje u datote-
rt(45), bk(b); lt(45) ci 63Cvje18.py.

Vježba 19.
Napišite program koji crta 8 raznobojnih kocaka nad stranicama osmerokuta.
Duljina brida kocke a upisuje se u programu, a boje se bi-
raju nasumično. Vidi from turtle import *
sliku 24. from random import *
def paralelogram(a,b,kut):
Rješenje: rt(90-kut)
for k in range(2):
U ovom progra- fd(b); rt(kut)
mu koristimo dva fd(a); rt(180-kut)
potprograma: lt(90-kut)
def kocka(a):
• paralelogram - za c=randrange(0,256)
crtanje paralelo- z=randrange(0,256)
grama (to su stra- p=randrange(0,256)
ne kocke) color(c,z,p)
Slika 24. Kocke nad stranicama paralelogram(a,a,90)
• kocka – za crtanje paralelogram(a,a/2,45)
osmerokuta
obojene kocke. fd(a)
Opet je glavni program jednostavan: u petlji koju ponavlja- paralelogram(a,a/2,45)
mo 8 puta: for n in range(8): bk(a); rt(45), fd(a/2); lt(45)
paralelogram(a,a,90)
crtamo kocku kocka(a), pomičemo se naprijed za duljinu rt(45), bk(a/2); lt(45)
brida kocke fd(a) i okrećemo se ulijevo za 360° : 8 = 45°,
tj. lt(45). title('Kocke')
st(); lt(90); colormode(255)
a=textinput('Duljina brida','a=')
a=int(a)
Rješenje u datoteci 63Cvje19.py. for n in range(8):
kocka(a); fd(a);lt(45)
34 3. Programiranje – Python

5. Liste
Problem 1.
Radi se anketa o zdravoj prehrani i učiteljica želi doznati koje voće djeca vole.
Ona zadaje popis voća, a svaki učenik treba upisati koje voće iz tog popisa ne
voli, a može u popis dodavati i voće koje voli. Učiteljica želi popis voća koje voli
pojedini učenik ispisan abecednim redom.

Problem 2.
Promotrite sljedeće crteže nacrtane pomoću kornjače. Obratite pažnju na boje:

Slika 25. Spirale nacrtane pomoću sedam boja


Spirale na slici zadane su pomoću 7 boja koje su zadane njihovim nazivima: ‘Sk
yBlue’,’Black’,’Green’,’Yellow’,’Blue’,’Red’,’Violet’. Želimo da se boje redom mijenjaju,
od ‘SkyBlue’ do ‘Violet’, a zatim sljedeća crta bude opet boje ‘SkyBlue’.
Primijetili ste da smo, zadajući boje nasumično, često dobili presvijetle ili vrlo
slične boje jednu za drugom. Na ovaj način možemo navesti točno koje boje
želimo koristiti u zadatku.

U oba problema susrećemo se s popisom: popis voće i popis boja. Do sada smo
u Pythonu programirali koristeći brojeve (prirodne i decimalne) i riječi, odnosno
tekst (npr. podaci koje upisujemo u input ili textinput naredbi) .

Tip podataka koji omogućuje pohranjivanje više podataka različitog


tipa (brojeva, riječi…) zove se lista. Podaci koji čine listu pišu se unutar
uglatih zagrada odvojeni zarezom.

Primjeri lista su:


>>> brojevi=[1,3,5,7,9]
>>> print(brojevi) broj_dana_u_mjesecu=[28, 29, 30, 31]
[1, 3, 5, 7, 9] boje=['SkyBlue','Black','Green','Yellow','Blue','R
>>> print (brojevi [2]) ed','Violet']
5
>>> print (brojevi [0]) samoglasnici=['a', 'e', 'i', 'o', 'u']
1
>>> brojevi.append(11) Naredbe za rad s listama najbolje ćete upoznati upisujući naredbe u na-
>>> print(brojevi) redbenom prozoru Python Shell. Upisujte naredbe koje počinju s >>> i
[1, 3, 5, 7, 9, 11] nakon svakog retka pritisnite Enter.
>>> brojevi.append(13)
>>> print(brojevi) Naredba print(brojevi[2]) ispisala je treći član liste, a naredba
[1, 3, 5, 7, 9, 11, 13] print(brojevi[0]) prvi član liste. Članovi u listi označeni su svojim
rednim brojem počevši od 0.
3. Programiranje – Python 35

Naredba brojevi.append(11) dodala


>>> brojevi.extend([2,4,6,8,10,12])
je broj 11 na kraj liste brojevi. >>> print(brojevi)
Naredba brojevi.extend([2,4,6,8, [1, 3, 5, 7, 9, 11, 2, 4, 6, 8, 10, 12]
10,12])dodala je listu [2,4,6,8,10,12] >>> brojevi.sort()
>>> print(brojevi)
na kraj liste brojevi.
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

Naredba brojevi.sort()razvrstala je listu brojevi >>> brojevi.remove(10)


od najmanjeg prema najvećem broju. >>> print(brojevi)
Naredba brojevi.remove(10) izbrisala je 10 iz [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13]
>>> print len (brojevi)
liste brojevi.
12
Naredba len (brojevi)vratila je broj članova liste
brojevi.
Liste brojeva možemo brzo kreirati
pomoću for petlje na sljedeći način:
Ispis svih članova liste možemo dobiti uporabom
>>> jednoznamenkasti=[k for k in range(10)]
jednostavne for petlje: >>> print(jednoznamenkasti)
for k in range (0, len(lista)): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> neparni_manji_20=[k for k in range(1,20,2)]
print (lista[k])
>>> print(neparni_manji_20)
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
Neke od najčešćih naredbi za rad s listama nave- >>> djeljivi_15=[k for k in range(15,100,15)]
dene su u tablici 5. >>> print(djeljivi_15)
[15, 30, 45, 60, 75, 90]

Naredba Primjer upotrebe Rezultat Opis


lista=[1, 2, 3,
append lista.append(7)
4, 5, 7]
Dodaje broj 7 na kraj liste.
lista=[1, 2, 3,
extend lista.extend([6,8])
4, 5, 7, 6, 8]
Dodaje članove liste [6,8] na kraj liste.
lista=[1, 3, 4,
remove lista.remove(2)
9, 5, 7, 6, 8]
Izostavlja broj 2 iz liste.
lista=[1, 3, 4, Razvrstava članove liste od najmanjeg
sort lista.sort()
5, 7, 6, 8, 9] do najvećeg.
len len (lista) 8 Vraća broj članova liste.
Tablica 5. Naredbe za rad s listama

Vježba 20.
Radi se anketa o zdravoj prehrani i učiteljica želi
doznati koje voće djeca vole. Ona zadaje popis
voća, a svaki učenik treba upisati koje voće iz
tog popisa ne voli, a može u popis dodavati i
voće koje voli. Učiteljica želi popis voća koje
voli pojedini učenik ispisan abecednim redom.
Na početku programa zadana je lista: Slika 26. Vježba 20.
voće=['ananas', 'jabuka', 'naranča','šljiva', 'avokado',
'mango'] Program treba ispisati tu listu i zatim tražiti od učenika da napiše
koliko voća (upisati n) iz te liste ne voli, pa treba upisati koje je to voće i izostaviti
upisano voće iz liste voće. Zatim treba upitati koliko voća koje učenik voli treba
upisati u popis (opet upisati n), pa upisati voće koje učenik voli i dodati ga u
listu voće. Na kraju ispišite tako dobivenu listu voće.
36 3. Programiranje – Python

Rješenje:
voće=['ananas', 'jabuka', 'naranča','šljiva', 'avokado', 'mango']
print('Ja volim ovo voće:',voće) Naredbe za rad s li-
#Upis koliko voća ne voliš stama ste upoznali, a
n=input('Koliko voća iz ovog popisa ti ne voliš?')
n=int(n) unutar programa upi-
for k in range(n): sani su komentari koji
ne_voli=input ('Voće koje ne volim:') vam olakšavaju razu-
voće.remove(ne_voli) mijevanje programa.
#Upis koliko voća voliš
n=input('Koliko želiš vrsta voća dodati u popis?') To su reci crvene boje
n=int(n) koji počinju znakom #.
for k in range(n):
upis=input ('Upiši voće koje voliš:') Rješenje u dato-
voće.append(upis)
teci 63Cvje20.py.
#Poredaj učenike po abecedi
voće.sort()
#Popis voća koje voliš
print ('Znači ti voliš ovo voće:')
for k in range(0, len(voće)):
print (voće[k])

Vježba 21.
Napišite program koji crta spirale linija kao na sli-
kama 27-29.
Linije su crtane naizmjenično sa 7 boja: popis=
['SkyBlue','Black','Green','Yellow
','Blue','Red','Violet' ].
Duljina prve linije je a=5, a svaka sljedeća linija je
Slika 28. Spirala crtana s
Slika 27. Spirala crtana s za korak dulja. Upisuju se sljedeći podaci: n=15, kut=92, korak=1,5
n=10, kut=20, korak=3 n – broj ponavljanja iste boje, prirodan broj
kut – kut okreta udesno iza svake linije, priro-
dan broj
korak – broj za koji se poveća duljina sljedeće
linije, decimalan broj

Rješenje:
Evo programa: Slika 29. Spirala crtana s
n=20, kut=63, korak=1

from turtle import *


title('Spirala')
popis=['SkyBlue','Black','Green','Yellow','Blue','Red','Violet']
n=textinput('Broj ponavljanja','n='); n= int(n)
kut=textinput('Broj ponavljanja','kut='); kut= int(kut)
korak=textinput('Stanica a','Za koliko će se povećati duljina crte=')
korak= float(korak)
a=5; width(2); lt(90)
for k in range (n*len(popis)):
boja= popis [k%len(popis)]
color(boja); fd(a); rt(kut)
a +=korak
3. Programiranje – Python 37

Promotrite for petlje koje crtaju linije. Petlja for k in range(n*len(popis)):se


izvršava n puta više nego ima boja u listi popis.
for k in range (n*len(popis)):
boja= popis [k%len(popis)]
color(boja); fd(a); rt(kut)
a +=korak
Boje se mijenjaju redom, jer ih dobijete kao ostatak pri dijeljenju varijable petlje
k s brojem boja u listi popis. Tako uvijek dobijete neki broj od 0 do len(popis)-1
, tj. redni broj člana liste popis.

Ova petlja izvršava se onoliko puta koliko ima članova u listi popis, tj. koliko
smo boja naveli. Osim crtanja jedne linije u toj petlji vrijednost varijable a po-
većavamo za korak naredbom a +=korak.

Rješenje u datoteci 63Cvje21.py.

Sova zna
Naredba odluke Liste
Naredba odluke omogućuje nam donošenje odlu- Lista je tip podataka koji omogućuje
ka u programu. Uvjet koji slijedi iza if mora biti pohranjivanje više podataka
istinit ili lažan. Osnovni oblik naredbe je: različitog tipa (broje-
if uvjet: va, riječi…). Podaci
koji čine listu pišu
naredbe koje se izvršavaju ako je uvjet istinit
se unutar uglatih
else: zagrada odvojeni
naredbe koje se izvršavaju ako je uvjet lažan zarezom.
Petlja Primjer liste:
a=[1, 2, 3, 4, 5].
Naredba
for k in range(n):
print(k, end=' ')
zove se programska petlja ili jednostavno petlja.
Ona nam omogućuje ponavljanje naredbi zadani
broj puta.
Varijabla k zove se varijabla petlje i ona mijenja
vrijednost pri svakom prolazu petljom.

POJMOVNIK

Naredba odluke – omogućuje donošenje odluka u programu. Kažemo da se program “gra-


na”, tj. neke naredbe izvršavaju se ako je uvjet istinit,a neke druge naredbe se izvršavaju ako
je uvjet lažan.
Petlja – naredba koja omogućuje ponavljanje određenih naredbi zadani broj puta
Lista – vrsta podataka koja može sadržavati brojeve, riječi ili druge liste. Podaci koji čine listu
pišu se unutar uglatih zagrada.

You might also like