Programske Strukture I Tipovi Podataka

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 10

Programske strukture i tipovi

podataka
Matko Devčić, 3. razred prirodoslovno-matematičko usmjerenje, 2022./2023.
Programske 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

1
Uvod u programske strukture i tipove podataka

Sigurno ste se zapitali kakve sve podatke jedan čovjek prolaze. 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 one tekstualne (ime i prezime),
zatim 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 vriejdnosti: 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 progrmska struktura, grananje i 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 koa sadrži korak u koje se ispituje je li neki uslov
zadovoljen ili nije
Struktura grananja u Pythonu
Vjerojatno ste, tijekom igranja videoigrica ili čak i u stvarnom svijetu, uočili kako ste prvo
morali ispuniti neki uvjet kako biste ostvarili neki cilj. Na primjer kako biste se mogli cijelo
ljeto odmarati prvo ste morali proći razred, ako kojim slučajem nebiste 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 uvijetu, moramo upotrijebiti
odlučivanje. To je postupak razdvajanja izvođenja koda na dvije različite putaje ili više njih.
Kompjuteru sigurno ne možemo postaviti uvjet „Prođi razred“ već moramo u obliku
logičkog izraza čija vrijednost može biti samo istina ili laž
Osnovni oblik naredbe odlučivanja u Pythonu zapisujemo
if uvjet:
naredba

2
Programske strukture i tipovi podataka

Točnije, ako je zadani uvjet istinit, izvodi se navedena naredba. No ako uvijet nije istinit ne
izvršava se naredba a izvođenje programa izvršiti ć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 uslova. Kada se dogodi da jedna
struktura grananja bude unutar druge strukture grananja tada to nazivamo ugnježđ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 postat kompleksan čak i za jednostaven


primjere. Zato Pyython raspolaže sa posebnom verzijom strukture odlučivanja. Naredbama
if i if – else, možemo još pridodati i if-elif-else uvijet. 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 uvijeta koji će prvi biti zadovoljen.
Nakon zadovoljavanja jednog uvieta i njegovo tijelo odluke se izvrši, otali uvijeti se
„zanemaruju“, to jest ostali uvjeti se više ne provjeravaju. U slučaju ne zadovoljavanja ni
jednog od uvijeta, izvršava se skup naredbi koji pripadaju else dijelu if-elif-else.

3
Programske 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

3
Programske 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četu ni završnu vrijednost, također ne
posjeduje ni aritmetčki faktor uvećanja. Upravo zato pri rješenju 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 brjeva 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 pnavljanja 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 uvijet dokle god zadani logički uvijet istinit to jest dok
isti taj uvijet ne postane lažan.
while uvjet_izvrsenja:
blok_naredbi

3
Programske strukture i tipovi podataka

Prilikom pisanja bloka naredbi treba paziti da se u nekom trenutku zaustavi ponavljanje
while petlje, kako nebi ušli u takozvanu „Beskonačnu petlju“. To postižemo tako što uvijet
postaje lažan ili pomoću naredbe break, o kojoj ćemo malo više kasnije. Ako je sam uvijet i
na početku lažan, blok naredbi se neće izvesti ni jednom.
Broj ponavljanja same petlje while ovisi o ispunjenosti zadanog uvijeta, kada uvijet postane
lažan prekida se izvođenje petlje. Zbog toga što se uvet provjerava na samom ulasku u
petlju, postoji mogućnost da se blok naredbi ni jednom ne ispiše. Vašno je reći no svaki
progrm 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 naječešće
korisitomo prilikom spriječavanja beskonačnih petlji. Ako je uvijet while postavljen tako da
bude beskonačno točan, a 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 na primjeru pogledajte ponuđeni video:
Na drugom kraju spektra nalazi se naredba continue, koja omogućuje preskakanje diejla
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

3
Programske 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 na satu matematike učio je o faktorijelima, njihova profesorica im je za zadaću
zadala da izračunaju 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
je zamolio da mu pomogneš napisati program koji bi to radio za njega. Objasnio ti je da
faktorijeli imaju neka poseban pravila, kao ta da je faktorijel od nula jednak jedinici, a

3
Programske strukture i tipovi podataka

faktorijal od decimalnih i negativnih brojeva ne postoji. Pomozite 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 uvijete, 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 riješ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
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.
Razlog zbo kojeg sam to radio je taj da jednog dana, možda u slijedećem razredu, možda u
daljoj budućnosti, mi bude trebala inspiracija za problem, tako da mislim da će se u
međuvremenu ovaj e-portfolio sigurno isplatiti. Mojem e-portfoliju možete pristupiti na
navedenoj poveznici:
https://carnet-my.sharepoint.com/:f:/g/personal/matko_devcic_skole_hr/
EnaL51hvXhJGpNfzeZVXRVIBqiqXHR0INumkU1wRntm40A?e=kSN9nv

3
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

10

You might also like