You are on page 1of 12

Progrmaske strukture i tipovi podataka

Tablica sadržaja

Tablica sadržaja....................................................................1

Uvod u Programske strukture i tipove podataka...................2

Struktura grananja u Pythonu...............................................2

Struktura grananja u Pythonu zadatci..........................4

Struktura ponavljanja u Pythonu...........................................5

Struktura ponavljanja u Pythonu zadatci......................6

Problemski zadatak..............................................................7

Zaključak..............................................................................8

E-portfolio............................................................................8

Popis korištene literature......................................................9


Progrmaske strukture i tipovi podataka

Uvod u programske strukture i tipove podataka

Sigurno ste se zapitali kakve sve podatke jedan čovjek pronalazi. Pogledajmo samo podatke
koje pronalazimo u e-dnevniku. Za pojedinog učenika možemo pronaći: ime, prezime,
adresu, datum rođenja, OIB, i ono svima najdraže ocjene. Iz samog primjera e-dnevnika
primjećujemo da postoje različite vrste podataka – postoje oni tekstualni (ime i prezime), i
brojčani (datum rođenja, OIB, ocjene)

Osnovni tipovi podataka koje smo upoznali u Programskom jeziku Python su: cijeli brojevi,
realni brojevi, logički tip podataka, te niz znakova.

Cjelobrojni tip podataka (int) omogućuje spremanje cijelih brojeva proizvoljne


veličine.

Tip podataka float omogućuje zapisivanje realnih brojeva, tj. brojeva s decimalnom
točkom.

Logički tip podataka (bool) može poprimiti samo dvije vrijednosti: True(istina) ili False
(laž). To su vrijednosti logičkih izraza.

String koji radi s znakovnim tipovima podataka


Programske strukture su načini i redoslijedi izvođenja pojedinih manjih radnji da bi se došlo
do konačnog rješenja zadatka. Programske strukture koje smo upoznali tijekom ove školske
godine su: Linijska programska struktura, grananje te petlja.

Linijska programska struktura je serijska i program se uvijek izvršava isitim slijedom naredbi.
To su programi u kojima se, obično javljaju naredbe ulaza, obrade i izlaza. Linijska
programska struktura bi bila unos dva broja, njihovo zbrajanje te ispis zbroja.

Grananje je programska struktura koja sadrži korak u kojem se ispituje je li neki uvjet
zadovoljen ili nije
Struktura grananja u Pythonu
Vjerojatno ste, tijekom igranja video igrica ili, bolje, u stvarnom svijetu, uočili kako ste prvo
morali ispuniti neki uvjet da biste ostvarili neki cilj. Na primjer, da biste se mogli cijelo ljeto
odmarati prvo ste morali proći razred, ako kojim slučajem ne biste prošli, morali biste cijelo
ljeto ponavljati gradivo.
S ovakvom situacijom susrećemo se i u svijetu programiranja. Kada u algoritmu moramo
odlučiti koji ćemo dio koda izvesti ovisno o nekom zadanom uvjetu, moramo upotrijebiti
odlučivanje. To je postupak razdvajanja izvođenja koda na dvije različite putanje ili više njih.
Računalu sigurno ne možemo postaviti uvjet - „Prođi razred“- već to moramo u obliku
logičkog izraza čija vrijednost može biti samo istina ili laž
Osnovni oblik naredbe odlučivanja u Pythonu zapisujemo:
Progrmaske strukture i tipovi podataka

if uvjet:
naredba

Točnije, ako je zadani uvjet istinit, izvodi se navedena naredba. No ako uvjet nije istinit ne
izvršava se naredba, a izvođenje programa izvršit će se naredbama koje slijede. No što ako
se određeni uvjet ne ispuni, u tom slučaju osnovnom obliku naredbe odlučivanja dodajemo
funkciju else. Time naredba odlučivanja poprima svoj potpuni oblik:
If uvjet:
Naredba_1
Else:
Naredba_2
Postoji situacija, iako vrlo rijetka, da se struktura odlučivanja nalazi unutar druge strukture
odlučivanja kada je potrebno ispitati više od jednog uvjeta. Kada se dogodi da jedna
struktura grananja bude unutar druge strukture grananja tada to nazivamo ugniježđenom,
if-else strukturom, koja ima oblik:
If uvjet_1:
Naredba_1
if uvjet_2:
naredba_2
else:
naredba_3
else:
naredba_4

Sama ugniježđena struktura odlučivanja može postati kompleksna čak i za jednostavan


primjere. Zato Pyython raspolaže sa posebnom verzijom strukture odlučivanja. Naredbama
if i if – else, možemo još pridodati i if-elif-else uvjet. Time dolazimo do
najčeščeg oblika naredbe:
If uvjet_1:
Naredba_1
Elif uvjet_2:
Naredba_2
...
Elif uvjet_n:
Naredba_n
Else:
Naredba

Pri ovakvom skupu naredbi, izvršava se samo tijelo onog uvjeta koji će prvi biti zadovoljen.
Nakon zadovoljavanja jednog uvjeta i njegovo tijelo odluke se izvrši, ostali uvjeti se
„zanemaruju“, to jest ostali uvjeti se više ne provjeravaju. U slučaju ne zadovoljavanja ni
jednog od uvjeta, izvršava se skup naredbi koji pripadaju else dijelu if-elif-else.
Progrmaske strukture i tipovi podataka

Zadatci za ponavljanje strukture grananja

Slika. 1 Struktura grananja 1. zadatak Slika 2. Struktura grananja 2. zadatak

Slika 3. struktura grananja 3. zadatak Slika 4. struktura grananja 4. zadatak


Progrmaske strukture i tipovi podataka

Slika 5. Struktur grananja 5. zadatak

Struktura ponavljanja u Pythonu


U Pythonu, za razliku od drugih programskih jezika kao što su C, C++, Java i tako dalje, petlju
for koristimo na drugačiji način. Petlja for nema početnu ni završnu vrijednost, također ne
posjeduje ni aritmetčki faktor uvećanja. Upravo zato pri rješavanju zadataka s naredbom
ponavljanja koristiti ćemo se funkcijom range ()
Funkcija range () kreira slijed brojeva, te ju možemo upotrijebiti na tri osnovna načina:
Range (z) – kreira slijed brojeva koji započinje nulom a završava brojem z-1;

Range (x, z)- kreira slijed brojeva koji započinjem brojem x, a završava brojem z-1

Range (x, y, z) – Kreira slijed brojeva koji započinje brojem x, a završava brojem
z-1, s time da je svaki slijedeći broj od prethodnog veći za vrijednost y. Slijed završava
brojem koji je strogo manji od broja z.
Petlja for i funkcija range () zajedno tvore funkcionalnu cijelinu. Funkcija range() na osnovi
zadanih ulaznih parametara određuje slijed brojeva, tako da svaki put kada for petlja dođe
na početak novog ponavljanja ona kontrolnoj varijbli pridruži broj iz slijeda:
For i in range (10, 20):
Print (i, end = „xx“)

>>> 10 11 12 13 14 15 16 17 18 19
Za razliku od naredbe for, koja omogućuje onavčjanje nekoga bloka naredbi unaprijed zadan
broj puta, naredba while ispunjava uvjet dokle god zadani logički uvjet istinit to jest dok isti
taj uvjet ne postane lažan.
Progrmaske strukture i tipovi podataka

while uvjet_izvrsenja:
blok_naredbi

Prilikom pisanja bloka naredbi treba paziti da se u nekom trenutku zaustavi ponavljanje
while petlje, kako ne bi ušli u takozvanu „Beskonačnu petlju“. To postižemo tako što uvjet
postaje lažan ili pomoću naredbe break, o kojoj ćemo malo više kasnije. Ako je sam uvjet i
na početku lažan, blok naredbi se neće izvesti ni jednom.
Broj ponavljanja same petlje while ovisi o ispunjenosti zadanog uvjeta, kada uvjet postane
lažan prekida se izvođenje petlje. Zbog toga što se uvjet provjerava na samom ulasku u
petlju, postoji mogućnost da se blok naredbi ni jednom ne ispiše. Vašno je reći da svaki
program koji se može riješiti for naredbom može se riješiti i while naredbom. Obrat ne
vrijedi.
Kako bi mogli izači iz for ili while petlje koristiomo naredbu break. Nju najčešće koristimo
prilikom sprječavanja beskonačnih petlji. Ako je uvijet while postavljen tako da bude
beskonačno točan, onda unutar tijela while petlje naredbom if provjeravamo ako je neki
uvjet zadovoljen. U slučaju u kojem je uvjet zadovoljen, naredbom break izlazimo iz petlje.
Za bolje shvaćanje kako radi naredba break za primjer pogledajte ponuđeni video.
Na drugom kraju spektra nalazi se naredba continue, koja omogućuje preskakanje dijela
bloka naredbi unutar petlje. Kada se nalazi unutar bloka naredbi petlje, naredbe nakon nje
se preskaču te se program vraća na provjeravanje uveta koji omogućuju nastavak
izvršavanja naredbi u petlji.

Zadatci za ponavljanje struktura ponavljanja

Slika 6. Struktura ponavljanja 1. zadatak


Slika 7. Struktura ponavljanja 2. zadatak
Progrmaske strukture i tipovi podataka

Slika 8. Struktura ponavljanja zadatak 3. Slika 9. Struktura ponavljanja zadatak 4.

Slika 10. Struktura ponavljanja zadatak 5.

Problemski zadatak
Mali Perica je na satu matematike učio o faktorijelima. Njegova profesorica je za zadaću
zadala da izračuna faktorijale određenih brojeva. Na žalost malog Perice njegov kalkulator
nije sposoban da računa faktorijale. Pošto je Perica prelijen da ručno računa faktorijele tebe
Progrmaske strukture i tipovi podataka

je zamolio da mu pomogneš napisati program koji bi to radio za njega. Objasnio ti je da


faktorijeli imaju neka poseban pravila, kao to da je faktorijel od nula jednak jedinici, a
faktorijal od decimalnih i negativnih brojeva ne postoji. Pomozi malom Perici da napiše
zadaću.

Primjer testnih podataka


Ulaz Ulaz Ulaz
4 9 0
Izlaz Izlaz Izlaz
24 362880 1
Zaključak
Na samom kraju ovoga rada, htio bi se još jednom osvrnuti na razloge zbog kojeg koristimo
strukture grananja odnosno strukture ponavljanja. Linearna struktura naredbe vrši po redu,
odnosno linearno, to u slučaju strukture grananja nije istina. Struktura grananja prolazi kroz
uvjete linerano, no kada dođe do uvijeta koji zadovoljava naredbu, ostatak koda se, laički
rečeno zanemaruje, to skraćuje vrijeme koje potrebno da se izvrši kod, pošto kod više ne
treba prolaziti kroz sve uvjete, kako bi to činio kod linearne strukture. Struktura ponavljanja
nam je korisna u slučajevima kada neku radnju želimo ponoviti nekoliko puta. Naredba
ponavljanja nas rješava muka pisanja jednog te istog koda bezbroj puta. Kako bi lakše sve
ovo zapamtili napravio sam jednu umnu mapu u kojoj sam objasnio u kojim slučajevima
koristimo navedene strukture. Umnu mapu možete pogledati na navedenoj poveznici:
https://coggle.it/diagram/ZINaqulidps3TOtV/t/programske-strukture/
7c5af32a4db865384f1ee3947828b980b25bfba1b0e20c292cd1b34a29f5358e

Slika 11. Umna mapa


Progrmaske strukture i tipovi podataka

E-portfolio
Prilikom pravljenja e – portfolia nisam imao većih problema. Jedna prednost koju sam imao
je ta što sam većinu zadataka koje smo radili tijekom ove školske godine sam spremao
(pohranjivao). Razlog činjenja toga je taj da jednog dana, možda u sljedećem razredu,
možda u daljoj budućnosti, će mi ti zadaci biti osnova za rješavanje novih programskih
problema, tako da mislim da će se ovaj e-portfolio sigurno isplatiti. Mom e-portfoliju
možete pristupiti na navedenoj poveznici:
https://carnet-my.sharepoint.com/:f:/g/personal/matko_devcic_skole_hr/
EnaL51hvXhJGpNfzeZVXRVIBqiqXHR0INumkU1wRntm40A?e=kSN9nv
Progrmaske strukture i tipovi podataka

Popis korištene literature

Programske strukture strukturiranog programiranja dostupno 6.6.2023 na


http://www.lecad.unze.ba/nastava/OP-PDF/OP6Prezen.pdf

Osnove programiranja (Python) : priručnik za polaznike dostupno 6.6.2023 na


file:///C:/Users/MD/Downloads/d450_polaznik_20190517.pdf

Strukture odlučivanja dostupno 6.6.2023 na


http://msslukavac.edu.ba/materijali/informatika/python03.pdf

Hercigonja, Z Programiranje u pythonu Zbirka riješenih i pojašnjenih zadatka u


programskom jeziku Python za učenike drugog razreda srednje škole dostupno 6.6.2023 na
file:///C:/Users/MD/Downloads/884671.foi-programiranje-u-pythonu%20(1).pdf
Progrmaske strukture i tipovi podataka

You might also like