Algoritmi i strukture podataka
Predavanja - 1
Način polaganja
Literatura
Programiranje
Programiranje
Dva pristupa
Podaci
Tipovi podataka
Primitivni tipovi podataka
Celobrojni tip podataka
Realni tip podataka
Logički tip podataka
Znakovni tip podataka
Vežba
Vežba
Apstraktni tip podataka (ATP)
Proceduralna apstrakcija
Apstrakcija podataka
Apstrakcija podataka
Apstrakcija podataka
LMP
LMP
Šta su podaci i kako se obrađuju?
LMP
Kako su podaci implementirani?
LMP
Apstraktni tipovi podataka
LMP
Strukture podataka
ATP i strukture podataka
Algoritmi
Primeri računarskih problema
Formalna specifikacija problema
Primer
Primer
Primer
Primer
Primer
Primer
Primer
Formalna specifikacija problema
Algoritam
Algoritam
Osobine algoritma
Osobine algoritma
Osobine algoritma
Operacije nad algoritmima
Dobar algoritam
Dobar algoritam
Dobar algoritam
Dobar algoritam
Dobar algoritam
Dobar algoritam
Dobar algoritam
Vežba
Računarski model
Operacije u računarskom modelu
Operacije u računarskom modelu
Izmišljeni računar RAM
Brojevi u RAM
Realni brojevi
Realni brojevi
Jedinični model složenosti
Načini zapisa algoritma
Pseudokod
Primer
Dijagram toka
Osnovne algoritamske strukture
Primer
Selekcija
Prethodni primer
Selekcija
Uslov je izraz koji ima vrednost logičkog tipa
Selekcija
a>3
x<2
ime=“Petar”
Selekcija
if uslov then
proces1
else proces 2
Iteracija
Iterativna struktura
Vrste iterativnih struktura
Iterativna struktura sa definisanim brojem iteracija
Komentar primera
Selekcija
for i=1 to n do
write i;
Primer
Iterativna struktura sa selekcijom na početku (bez definisanog broja iteracija)
Iterativna struktura sa selekcijom na početku (bez definisanog broja iteracija)
SELEKCIJA
REZULTAT
Iterativna struktura sa selekcijom na početku (bez definisanog broja iteracija)
Iteracija sa sa selekcijom na početku (bez definisanog broja iteracija)
while n!=0 do
read n;
write n;
Komentar primera
Iteracija sa sa selekcijom na kraju(bez definisanog broja iteracija)
Iteracija sa sa selekcijom na kraju(bez definisanog broja iteracija)
Iteracija sa sa selekcijom na kraju(bez definisanog broja iteracija)
SELEKCIJA
REZULTAT
Iterativna struktura sa selekcijom na kraju (bez definisanog broja iteracija)
Iteracija sa sa selekcijom na kraju(bez definisanog broja iteracija)
repeat
read n;
write n;
until n=0
Komentar primera
WHILE i REPEAT - UNTIL
Poređenje
while n!=0 do
read n;
write n;
repeat
read n;
write n;
until n=0
Unosimo brojeve 1,2,3,0
Ispisuje se
1
2
3
Unosimo brojeve 1,2,3,0
Ispisuje se
1
2
3
0
Poređenje
while n!=0 do
read n;
write n;
repeat
read n;
write n;
until n=0
Unosimo broj 0
Ispisuje se
Unosimo broj 0
Ispisuje se
0
Zaključak
Ponavljanje
Sekvenca
Selekcija
Iterativna struktura bez poznatog broja iteracija
Iteracija sa selekcijom na početku
Iteracija sa selekcijom na kraju
Primer projektovanja algoritma
Analiza
Narativni opis algoritma
Dijagram toka
Pseudokod
read tZelj;
repeat
tSobe=senzor.ocitaj;
D=tZelj-tSobe;
if (D>0) then grejac.ukljuci;
else grejac.iskljuci;
until false
Analiza
Profinjenje rezultata
read tZelj;
repeat
tSobe=senzor.ocitaj;
D=tZelj-tSobe;
if (D>0) then grejac.ukljuci;
else grejac.iskljuci;
until prekidac.iskljucen=true
grejac.iskljuci
Zadatak
Profinjenje rezultata
repeat
tSobe=senzor.ocitaj;
tZelj=termostat.ocitaj;
D=tZelj-tSobe;
if (D>0) then grejac.ukljuci;
else grejac.iskljuci;
until prekidac.iskljucen=true
grejac.iskljuci
Zadatak
Profinjenje rezultata
read tCekanja;
repeat
tSobe=senzor.ocitaj;
tZelj=termostat.ocitaj;
D=tZelj-tSobe;
if (D>0) then grejac.ukljuci;
else grejac.iskljuci;
cekaj(tCekanja);
until prekidac.iskljucen=true
grejac.iskljuci
Modul
Realizacija
//cekaj(n)
read n
for i=1 to n do
;
Modul: grafički simbol
Primer
Primer-zadatak
Pseudokod
read (x,y);
if (x=0) then m=0;
else if y=0 then m=0;
else m=x*y;
write (m);