primjenjivati jednostavne tipove podataka te argumentirati njihov odabir, primjenjivati različite vrste izraza, operacija, relacija i standardnih funkcija za modeliranje jednostavnoga problema u odabranome programskom jeziku
Prije nego li krenemo s rješavanjem jednostavnijih zadataka uz pomoć algoritama, prisjetimo se sljedećim video primjerom kako izgleda algoritam:
Algoritam
Prisjetimo se gradiva petog i šestog razreda. Algoritam je uputa kako riješiti neki problem. Pri tome se problem rastavi na manje dijelove - korake. Rješavanjem algoritma korak po korak dolazimo do rješenja problema. U prethodnom video primjeru, Karlo je koristio algoritam za sastavljanje robota te je uz pomno praćenje koraka došao do rješenja problema, odnosno sastavio je robota.
Primjer algoritma
Kako bi smanjili broj pogrešnih poteza i skratiti potrebno vrijeme, prilikom slaganja Rubikove kocke dobro se voditi provjerenim algoritmom. Prethodna slika prikazuje algoritam za slaganje Rubikove kocke.
Algoritamsko razmišljanje ključno je za rješavanje zadataka programiranjem. U informatici se algoritmi zapisuju pseudojezikom, crtaju pomoću dijagrama toka ili pišu u nekom programskom jeziku. Bez obzira na način zapisa, prilikom algoritamskog rješavanja zadataka koriste se strukture (algoritamski konstrukti) poput slijeda naredbi (sekvenca), programskog grananja (odluke) i ponavljanja naredbi (programske petlje).
Algoritamske strukture
Petar želi pokrenuti program Bojanje na računalu. Pomogni Petru ispravno poredati algoritamske korake koji će ga dovesti do rješenja.
Klikni lijevom tipkom miša na izbornik Windows (Start).
Upali računalo.
Klikni lijevom tipkom miša na program Bojanje.
Pronađi u izborniku mapu Pomagala sustava windows.
Klikni lijevom tipkom miša na mapu da se proširi u izborniku.
null
null
Slijed naredbi ili sekvenca
Svaki algoritam je slijed, budući da uvijek upute slijede jedna iza druge. Najjednostavniji problemski zadaci mogu se riješiti samo pomoću slijeda ili niza naredbi, pri čemu je bitno kojim se redoslijedom izvršavaju.
Primjer 1.
ZADATAK:
Napiši algoritam koji će na temelju unesene stranice izračunati opseg i površinu kvadrata.
Kvadrat
ALGORITAMSKI OPIS RJEŠENJA:
Na početku programa treba unijeti vrijednost za varijablu
Zatim treba izračunati opseg i površinu.
Na kraju treba ispisati rješenje.
RJEŠENJE PSEUDOJEZIKOM:
Napiši prethodni zadatak u Pythonu!
Pomoć:
Nakon unosa duljine stranice, u varijable o i p smjesti opseg i površinu.
Ispiši vrijednosti unutar jedne funkcije print() tako da prvo ispišeš opseg pa površinu, odvojene zarezom.
Postupak:
o = 4*a
p = a*a
print(o, p)
Što misliš, kako bismo ispravno poredali naredbe pseudojezika za algoritam koji unosi duljine stranice pravokutnika te računa i ispisuje njegov opseg i površinu?
null
null
Programsko grananje
Programsko grananje je struktura kod koje ovisno o istinitosti logičkog uvjeta usmjeravamo tok programa u jednom od dva moguća smjera. Pri tome će se neke naredbe izvršiti ili preskočiti, ovisno o uvjetu.
PSEUDOJEZIK
PYTHON
C/C++
Primjer 2.
ZADATAK:
Napiši program u koji se unosi cijeli brojte ispisuje taj broj s porukom je li paran ili neparan!
ALGORITAMSKI OPIS RJEŠENJA:
Unos broja u varijablu
provjera logičkog uvjeta iz zadatka:
ako je a djeljiv s dva ipisuje se da je paran
ako a nije djeljiv s dva ispisuje se da je neparan
kraj programa
RJEŠENJE PSEUDOJEZIKOM:
ako je
onda
inače
Napiši prethodni zadatak u Pytonu!
Pomoć:
Za rješenje ovog zadatka koristimo grananje koje se u Pythonu zapisuje kao:
if uvjet:
naredba1
else:
naredba2
Uvjet jest provjera je li ostatak pri dijeljenju varijable a s dva jednak nuli.
Pripazi da ispis izgleda jednako kao u prethodnom zadatku!
Postupak:
if a % 2 == 0:
print(a, 'je paran')
else:
print(a, 'je neparan')
Što misliš, kako treba poredati naredbe pseudojezika za algoritam koji unosi brzinu automobila u
a ispisuje kreće li se auto prebrzo u naselju?
ako je onda
inače
null
null
Ponavljanje naredbi
Ponavljanje (petlja) je algoritamski konstrukt koji koristimo kada je neku radnju potrebno ponoviti više puta. Postoje dvije vrste petlji:
petlja s unaprijed poznatim brojem ponavljanja
petlja s uvjetom
OPIS
Petlja s unaprijed poznatim brojem ponavljanja
Petlja kod koje nije unaprijed poznat broj ponavljanja, a uvjet se provjerava na početku petlje.
PSEUDOJEZIK
PYTHON
C/C++
Primjer 3.
ZADATAK:
Napiši program u koji se unosi neki prirodni broj i zatim izračuna i ispisuje zbroj prvih prirodnih brojeva.
OPIS ALGORITAMSKOG RJEŠENJA:
unos vrijednosti u varijablu
vrijednost varijable zbroj postavimo na nulu
iz zadatka se vidi da je broj ponavljanja konačan i unaprijed poznat, pa koristimo petlju s unaprijed poznatim brojem ponavljanja, ponavljamo tako da kontrolnu varijablu mijenjamo od do
.
svaki put vrijednost kontrolne varijable dodajemo varijabli zbroj
nakon završetka petlje ispišemo rezultat
RJEŠENJE PSEUDOJEZIKOM:
zbroj zado
činiti zbroj
Napiši prethodni zadatak u Pythonu!
Pomoć:
Za rješenje zadatka potrebna nam je akumulacijska varijabla zbroj koju najprije postavljamo na vrijednost nula.
For petljom koja kreće od 1 i završava s n + 1, u kontrolnu vrijablu i spremit ćemo sve prirodne brojeve od 1 do n, uključujući n.
Unutar petlje treba akumulator zbroj uvećati za i.
Na samom kraju programa potrebno je ispisati varijablu zbroj.
Postupak:
zbroj = 0
for i in range(1, n + 1):
zbroj += i
print(broj)
Primjer 4.
ZADATAK:
Napiši program u koji se unosi neki n-teroznamenksati prirodni broj i ispisuje zbroj njegovih znamenki.
OPIS ALGORITAMSKOG RJEŠENJA:
unos broja
vrijednost varijable zbroj postavimo na
ne znamo koliko znamenki ima broj, koristimo petlju kod koje nije unaprijed poznat broj ponavljanja, ispitujemo je li broj različit od nule te ako je uvjet zadovoljen:
zadnju znamenku dodajemo zbroju (zadnju znamenku dobivamo računanjem ostatka pri dijeljenju s deset -
)
broj podijelimo cjelobrojno
s deset kako bismo uklonili zadnju znamenku iz broja
ispišemo rezultat
RJEŠENJE PSEUDOJEZIKOM:
zbroj
dok je
Napiši prethodni zadatak u Pythonu!
Pomoć:
Najprije moramo u akumulacijsku varijablu zbroj pohraniti vijednost nula. Zatim napraviti petlju koja se izvršava dok god je a različito od nule. Unutar petlje akumulator zbroj uvećavamo za posljednju znamenku broja a, koju dobivamo tako da izračunamo ostatak cjelobrojnog dijeljenja a s deset. Isto tako, unutar petlje iz varijable a moramo izbaciti posljednju znamenku, a to činimo tako da a cjelobrojno podijelimo s deset.
Postupak:
zbroj = 0
while a != 0:
zbroj = zbroj + a % 10
a = a // 10
print(zbroj)
Zadatak je napisati program koji će na ekranu ispisati sve parne brojeve do nekog broja kojeg je unio korisnik.
Poredajte ispravno naredbe pseudojezika kojima se riješava ovaj zadatak.
ako je onda
za do činiti
null
null
Zadatak 1.
LightBot je besplatna obrazovna igrica za mobilne uređaje (Android i iOS) koja pomaže u učenju programske logike i razmišljanja. Zadatak je provesti robota kroz poligon na način da se napišu naredbe za kretanje i usmjeravanje, a pri tome koriste algoritamski konstrukti slijeda, grananja i ponavljanja.
Instalirajte ovu edukativnu igricu na pametni telefon ili tablet i isprobajte ju!
Zadatak 2.
Otvorite mrežnu stranicu code.org i riješite zadatke iz programiranja u Minecraft svijetu. Blok programiranje koje se koristi u ovakvim zadacima slično je pseudojeziku i lako možete prepoznati strukture grananja i ponavljanja koje smo koristili u ovoj jedinici.
...i na kraju
Algoritam je uputa za rješavanje nekog zadatka tako da se problem zadatka razdijeli na manje dijelove - korake. Algoritmi se u informatici prikazuju pseudojezikom, dijagramom toka i naredbama nekog programskog jezika.
Osnovne algoritamske strukture pomoću kojih se pišu programi su slijed naredbi, grananje i ponavljanje.
Naredbe čije izvršenje ovisi o istinitosti nekog logičkog uvjeta.
Naredbe koje se ponavljaju.
null
null
Zadatak je napisati program koji će zbrojiti sve znamenke nekog višeznamenkastog prirodnog broja. Poredaj ispravno naredbe pseudojezika koje rješavaju ovaj problem.
zbroj
dok je ponavljaj
null
null
Koje su algoritamske strukture korištene u prethodnom zadatku?
null
null
Zadatak je napisati program koji će učitati dva prirodna broja i od većeg oduzeti manji. Koju algoritamsku strukturu trebamo u rješenju osim slijeda naredbi?
null
null
Koji od primjera provjerava je li neki broj paran?
null
null
Zadatak je napisati program u kojem će korisnik upisati prosječnu temperaturu za svaki od 12 mjeseci u godini. Koja je programska petlja primjerenija za rješenje zadatka?
null
null
Povucite operatore kako bi varijabla na kraju programa imala vrijednost