Professional Documents
Culture Documents
Algoritmi I Programiranje
Algoritmi I Programiranje
Algoritmi I Programiranje
PROGRAMIRANJE
RAUNALA
4 sata
SADRAJ PREDAVANJA
ALGORITMI
2,5 sati
Operativni ciljevi
Upoznati se s algoritmima, njihovom formom,
radom, svrhovitou, te uoiti vezu izmeu
algoritama i programiranja
PROGRAMIRANJE I
PROGRAMSKI JEZICI
1,5 sati
Operativni ciljevi
Upoznati se s programiranjem, vezom strojprogram, programskim jezicima, generacijama,
evolucijom programskih jezika, te
trendovima u razvitku programskih jezika
ALGORITMI
ki
fo rmacijs
Ure dsk i in
su stav
po drk u
Su stav za u
nj
odlu i va
ki
rm acijs
ki in fo
U pr avlja
su stav
...
POJAM ALGORITAM
Za pojam zasluan arapski matematiar iz IX.
stoljea: Muhamed ibn Musa Al Horezmi
(u prijevodu: Muhamed sin Muse iz Horezma)
Napisao knjigu u kojoj je razradio postupke i
pravila za provoenje aritmetikih operacija s
brojevima zapisanim u dekadskom obliku.
736
TKO TO PROCESUIRA?!*
Algoritam
Program
* proces od lat.
processus napredak, rastanje
ALGORITMI - KARAKTERISTIKE
Algoritam je:
Recept u kuharici,
Upute za uporabu,
Proces spajanja gena,
Itd.
to su bitne karakteristike algoritma?
Orijentiranost k cilju (rezultatu),
Konanost (upotrebljivost),
Ponovljivost uz iste ulazne uvijete,
Razumljivost procesnoj jedinici,
Instruktivnost (formira se u obliku naredbi)
ALGORITMI
3. Generacije
programskih jezika
(Basic)
STRUKTURA ALGORITAMA
Algoritam grade(algoritmi koje emo izuavati su
algoritmi za obradu numerikih podataka)
Predmeti i sredstva obrade (objekti - podaci):
Varijable
Konstante
Matematiki i logiki operatori
Algoritamske strukture
Pravila sintakse
gr. syntaxis sastavljam, sreujem; gram.
Skladnja, u ovom sluaju algoritma/programa
VARIJABLE
franc. varijable, mat. promjenjiva veliina,
promjenljiva vrijednost
Oznaavaju se simbolima kao i u matematici
(postoje za pojedine programske jezike pravila
oznaavanja, tzv. pravila notacije)
Primjeri varijabli:
X, y, z, broj, ime, god, nIznos,
KONSTANTE
lat. constans mat. stalan, nepromjenljiva veliina
Pi, e, p, g, nGravit,
OPERATORI
mat. znak (predznak) kojim se obiljeava nain
izvoenja operacije
Oznaavaju se matematikim simbolima:
=, +, -, *, /, ^, (, ), <, >
Koriste se u aritmetikim i logikim operacijama
Operacije se izvode od lijeva na desno pritom
potujui pravila:
Komutacije
Asocijacije
Stupnjevanja
10
ALGORITAMSKE STRUKTURE
Slijedna (linearne ili sekvencijalne)
Poetak i kraj
Definiranje varijabli i konstanti
Ulaz
Izlaz
Aritmetike i logike operacije
Struktura bezuvjetnog skoka
Struktura grananja (sadri logike operacije), a
kombinira se sa:
Slijednom strukturom
Strukturom bezuvjetnog skoka
Struktura iteracije (ponavljanja ili petlje)
11
SLIJEDNA STRUKTURA
PSEUDO JEZIK
BLOK DIJAGRAM
Poetak
Definiranje varijabli i konstanti
1. X=0, Y=0, S=0
Ulaz
2. Uitaj x
3. Uitaj y
Aritmetika operacija
4. S=X+Y
Izlaz
5. Ispii S
Kraj
6. Kraj
Kod pisanja algoritma u pseudo jeziku (kodu)
linije se obino oznaavaju rednim brojevima
12
TESTIRANJE ALGORITMA
Izvodi se kao i u matematici uvrtavanjem
vrijednosti u algoritam
Algoritam se testira sekvencialno praenjem
svakog reda (instrukcije) algoritma od poetka do
kraja, uz zapisivanje vrijednosti koje varijable
usput poprimaju, da bi se u konanici saznala
konana vrijednost izlaznih varijabli
TESTIRANJE ALGORITMA
Greke u algoritmu (Bug-ovi: eng. bug stjenica,
kukac, buba u glavi, kvar, zaraza):
Sintaksne greke (gr. syntaxis sastavljam,
sreujem; gram. Skladnja)
Formalne greke su pravopisne greke i
tipfeler
npr. 10. Iskii S
isp. 10. Ispii S
23. A-A+1
isp. 23. A=A+1
Logike greke najee nastaju zbog:
Nerazumijevanja problema
Nepoznavanja logike rada stroja
Niskog programerskog iskustva
Greke se ispravljaju tzv. debugiranjem
13
BEZUVJETNI SKOK
Struktura bezuvjetnog skoka omoguava
naruavanje linearnosti
PSEUDO JEZIK
BLOK DIJAGRAM
x. Idi na y
Gdje su x i y brojevi linija algoritma bez obzira
na smjer (gore/dolje)
Koristi se za testiranje algoritma (preskae dio
algoritma)
Izaziva greku bezuvjetnog ponavljanja (tzv.
beskonana petlja ili iteracija)
Kombinira se s strukturom grananja radi
naruavanja linearnosti / uspostavljanja
ponavljanja (dijela) algoritma
14
1. X=100, S=0
2. Idi na 5
3. Uitaj Y
4. S=X/Y
5. Ispii S
6. Kraj
1. X=100, S=0
2. Uitaj Y
3. S=X/Y
4. Idi na 3
5. Ispii S
6. Kraj
15
GRANANJE
Struktura grananja koristi se za naruavanje
linearnosti
PSEUDO JEZIK
x. Ako je ### onda $$$ [u protivnom $$$]
BLOK DIJAGRAM
Gdje su
x
broj linije algoritma
### logika operacija
$$$ slijedna operacija i/ili operacija bezuvjetnog
skoka (tzv. uvjetni skok)
GRNANJE
LOGIKE OPERACIJE (###)
Usporeivanje:
varijable s varijablom (x s y, z s k, i sl.)
varijable s brojem (x s 0, y s -9999, i sl.)
Logiki operatori:
=
jednako
>
vee od
<
manje od
>= vee ili jednako
<= manje ili jednako
<> razliito od
16
GRANANJE
u kombinaciji sa strukturom bezuvjetnog skoka
(sprijeavanje unosa nule kao djelitelja)
1. X=100, S=0, Y=0
2. Uitaj Y
3. Ako je Y=0 Idi na 6
4. S=X/Y
5. Ispii S
6. Kraj
GRANANJE
u kombinaciji sa slijednom strukturom
(sprijeavanje unosa nule kao djelitelja?!)
1. X=100, S=0, Y=0
2. Uitaj Y
3. Ako je Y=0 onda Y=1
4. S=X/Y
5. Ispii S
6. Kraj
17
GRANANJE
u kombinaciji sa strukturom bezuvjetnog skoka
(ponavljanje - sprijeavanje unosa nule kao
djelitelja)
1. X=100, S=0, Y=0
2. Uitaj Y
3. Ako je Y=0 onda idi na 2
4. S=X/Y
5. Ispii S
6. Kraj
18
ITERACIJA (PONAVLJANJE)
Evoluirala iz kombinacije slijedne strukture i
strukture uvjetnog skoka
Vie vrsta iteracija - bavit emo se samo
iteracijama s unaprijed definiranim konanim
brojem koraka
x. Za I=1 do K
z. Poveaj I
ITERACIJA (PONAVLJANJE)
Omoguava uitavanje konanog broja brojeva, te
rauna kumulativ
1. S=0, X=0, I=0
2. Za I=1 do 4
3. Uitaj X
4. S=S+X
5. Poveaj I
6. Ispii S
7. Kraj
19
ITERACIJA (PONAVLJANJE)
Izraun Faktorijela (X!)
PITANJA!
20
PROGRAMIRANJE
TEMELJNI POJMOVI
PROGRAMIRANJE
postupak kreiranja programa
PROGRAM
skup instrukcija (uputa) raunalu kako da radi
PROGRAMSKI JEZK
skup pravila* (sintaksa) za pisanje programa
STROJNI JEZIK
instrukcije ugraene u procesor temeljem koji
procesor manipulira s podacima
* Zapisan algoritam prema tim pravilima i pohranjen u
raunalu u obliku teksta posebnim programima mogue je
prevesti u stroju razumljiv kod (strojni jezik)
21
A,2
LD
B,3
ADD A,B
10 bodova
22
..
23
TIPOVI PROGRAMIRANJA
Jednostavno programiranje
Strukturirano programiranje (uvoenje reda u
jednostavno programiranje)
Modularno programiranje (moduli po naelu crne kutije)
Objektno programiranje (objektu se mijenjaju
svojstva)
Makro programiranje (integracija izvodljivih
programa procesa)
Markup programiranje (HTML)
..
24
TIPOVI PROGRAMIRANJA
Izrada Algoritma:
Iterativni proces
BUG-ovi
Zapisala Grace Murray Hopper
Harvard University
Raunalo Mark II
Aiken Relay Calculator
(a primitive computer).
25
PRIA O BUG-u
ALGORITAM2PROGRAMSKI JEZIK
Algoritam
Basic
UITAJ
INPUT
ISPII
KRAJ
END
IDI NA
GOTO
AKO JE
ONDA
U PROTIVNOM
IF
THEN
ELSE
ZA
FOR
DO
POVEAJ
Struktura
Slijedna
TO
Bezuvjetni skok
Uvjet (grananje)
Iteracija
NEXT
26
(nastavak 3 slova)
27
PROGRAMI PREVODITELJI
Binarni program (kao datoteka smjeten na ureaju
vanjske memorije) koji nakon startanja simultano ita
datoteku u kojoj je smjeten izvorni program, prevodi
instrukciju po instrukciju u procesoru razumljiv niz
instrukcija strojnog koda,
(ako je interpreter)
a procesor te instrukcije
izvrava i tako izvodi program
(ako je compiler)
28
29
PITANJA!
30