Professional Documents
Culture Documents
Algoritmi PDF
Algoritmi PDF
Algoritmi PDF
2,5 sati
OPERATIVNI CILJEVI UPOZNATI SE S ALGORITMIMA, NJIHOVOM FORMOM, RADOM , SVRHOVITO#U, TE UO!ITI VEZU IZME$U ALGORITAMA I PROGRAMIRANJA
%,5 sati
UPOZNATI SE S PROGRAMIRANJEM, VEZOM STROJ-PROGRAM, PROGRAMSKIM JEZICIMA, GENERACIJAMA, EVOLUCIJOM PROGRAMSKIH JEZIKA, TE TRENDOVIMA U RAZVITKU PROGRAMSKIH JEZIKA
UPITNIK
Pojam algoritam je nastao od imena i prezimena &ovjeka kojega smatraju najzaslunijim za izgradnju informati&kog highwaya u USA. Taj &ovjek je
ALGORITMI
DA
NE
to je to zapravo algoritam?
Za pojam zasluan arapski matemati&ar iz IX. stolje"a:
U ru&noj (manualnoj) obradi podataka, skup postupaka koje treba u&initi da bi se rijeio zadatak npr. Algoritam je i nau&en postupak mnoena u osnovnoj koli
23* 32 69 46 736
+
IZAZOV PLUS
to je algoritam u ru&noj obradi to je u (polu)automatskoj i elektroni&koj obradi?
Tko to procesuira*
Algoritam
Program
to je program?
%0 bodova
* proces od lat. processus napredak, rastanje
. . .
Algoritmi - predmet naeg interesa su faza u procesu izrade programa za elektroni&ku obradu podataka Faze nastanka programa:
%. Definiranje problema 2. Razumijevanje problema 3. Izrada algoritma (iskusni programeri u glavi) 4. Prevo'enje algoritma u programski jezik 5. Strojno prevo'enje (interpretacija) i testiranje programa 6. Korekcija i prilagodba programa 7. Izrada popratne dokumentacije i uputa za rad
S obzirom da su algoritmi priprema za izradu programa, kreiraju se u duhu programskog jezika za koji su priprema. Prilikom kreiranja algoritama treba teiti da instruktivni odnos algoritam : program bude %:%
Algoritam se zapisuje u:
%. Obliku pseudo (meta) jezika (govornog jezika koji oponaa programski jezik) i/ili 2. Grafi&kom obliku, tzv. Blok dijagram ili dijagram tijeka programa
os dn O
ai m rit go al
a m ra og pr
Prevo'enje
Program se zapisuje u:
Programskom jeziku
Program se izvodi u:
Strojnom jeziku
Algoritam grade:*
Predmeti i sredstva obrade (objekti - podaci): Varijable Konstante Matemati&ki i logi&ki operatori Algoritamske strukture
PRAVILA SINTAKSE **
* Algoritmi koje "emo izu&avati su algoritmi za obradu numeri&kih podataka ** gr&. syntaxis sastavljam, sre'ujem; gram. Skladnja
Vrste podataka (objekata) Kompjuterom se obra'uje sve to se moe digitalizirati konvertirati u broj (u binarni brojevni sustav 0 i %) Izdvajamo: Numeri&ke podatke (brojevi) 0, %%%.00%, %0E23, Alfanumeri&ke podatke (brojevi i slova) Pero, 0, %%%.00%, OSIJEK, Ostali tipovi: logi&ki, datumski, memo,
Varijable* Ozna&avaju se simbolima kao i u matematici (postoje za pojedine programske jezike pravila ozna&avanja, tzv. pravila notacije) Primjeri varijabli: X, y, z, broj, ime, god, nIznos,
Konstante* Ozna&avaju se simbolima kao i u matematici (postoje za pojedine programske jezike pravila ozna&avanja, tzv. pravila notacije) Konstante tijekom izvo'enja algoritma ne mijenjaju po&etno pridruenu vrijednost (najpoznatije su e=2,7%8, Pi=3,%4%) Primjeri konstanti: Pi, e, p, g, nGravit,
lat. constans mat. stalan, nepromjenljiva veli&ina
Operatori* Ozna&avaju se matemati&kim simbolima =, +, -, *, /, ^, (, ), <, > Koriste se u aritmeti&kim i logi&kim operacijama Operacije se izvode od lijeva na desno pritom potuju"i pravila: Komutacije Asocijacije Stupnjevanja
mat. znak (predznak) kojim se obiljeava na&in izvo'enja operacije
IZAZOV PLUS
Kolika je vrijednost varijabli x, y, s i pi nakon sljede"ih operacija: x=4, y=2, s=2, pi=3,%4 s=4+x/y+%, x=x+e
Paradoks znaka jednakosti: U aritmeti&kim operacijama zna&i pridruivanja (u nekim programskim jezicima se ozna&ava s :=)
I=I+%
U logi&kim operacijama zna&i vaganje %0 bodova
to je 7,%4; 2; 7; 3,%4
Ako je i=%0
Algoritamske strukture:
Slijedna (linearne ili sekvencijalne) Po&etak i kraj Definiranje varijabli i konstanti Ulaz Izlaz Aritmeti&ke i logi&ke operacije Struktura bezuvjetnog skoka Struktura grananja (sadri logi&ke operacije) kombinira se sa: Slijednom strukturom Strukturom bezuvjetnog skoka Struktura iteracije (ponavljanja ili petlje)
PSEUDO JEZIK
BLOK DIJAGRAM
%. X=0, Y=0, S=0 Ulaz 2. U&itaj x 3. U&itaj y Aritmeti&ka operacija 4. S=X+Y Izlaz Kraj 5. Ispii S 6. Kraj
X Y S=X+Y S
Pozor!
STOP Kod pisanja algoritma u pseudo jeziku (kodu) linije se obi&no ozna&avaju rednim brojevima
Testiranje algoritma Izvodi se kao i u matematici uvrtavanjem vrijednosti u algoritam Algoritam se testira sekvencialno pra"enjem svakog reda (instrukcije) algoritma od po&etka do kraja, uz zapisivanje vrijednosti koje varijable usput poprimaju, da bi se u kona&nici saznala kona&na vrijednost izlaznih varijabli
IZAZOV PLUS
Kolika je vrijednost varijable s nakon izvo'enja algoritma, ako za x u&itamo 2, a za y u&itamo 5:
%. X=0, Y=0, S=0 2. U&itaj X 3. U&itaj Y 4. S=S+Y 5. Ispii S
to je 7
%0 bodova
Greke u algoritmu sintaksne* greke (Bug**-ovi) Formalne su pravopisne greke i tipfeler greke
npr. %0. Iskii S 23. A-A+% isp. isp. %0. Ispii S 23. A=A+%
Dijeljenje s nulom:
%. A=0, S=0 2. U&itaj B 3. S=B/A Koliki je S?
BLOK DIJAGRAM
PSEUDO JEZIK
BLOK DIJAGRAM
Struktura bezuvjetnog skoka Koristi se za testiranje algoritma (preska&e dio algoritma) Izaziva greku bezuvjetnog ponavljanja (tzv. Beskona&na petlja ili iteracija) Kombinira se s strukturom grananja radi naruavanja linearnosti / uspostavljanja ponavljanja (dijela) algoritma
X=%00, S=0
Y S=X/Y S STOP
IZAZOV PLUS
Kolika je vrijednost varijable s nakon izvo'enja algoritma, ako za x u&itamo 2, a za y u&itamo 3:
%. X=0, Y=0, S=0 2. U&itaj X 3. U&itaj Y 4. Idi na to&ku 6 5. S=S+Y 6. Ispii S
PSEUDO JEZIK
BLOK DIJAGRAM
Y S=X/Y S STOP
to je 0
%0 bodova
DA
$$$
$$$ NE
###
DA $$$
broj linije algoritma logi&ka operacija slijedna operacija i/ili operacija bezuvjetnog skoka (tzv. uvjetni skok)
Struktura grananja - naruavanje linearnosti) u kombinaciji sa strukturom bezuvjetnog skoka PSEUDO JEZIK
%. X=%00, S=0 2. U&itaj Y 3. Ako je Y=0 Idi na 6 4. S=X/Y 5. Ispii S 6. Kraj START
X=%00, S=0
Struktura grananja - naruavanje linearnosti) u kombinaciji sa slijednom strukturom PSEUDO JEZIK BLOK DIJAGRAM
%. X=%00, S=0 2. U&itaj Y 4. S=X/Y 5. Ispii S 6. Kraj START
X=%00, S=0
BLOK DIJAGRAM
Y Y=0 NE S=X/Y S DA
STOP
STOP
Struktura grananja uspostavljanje ponavljanja) u kombinaciji sa strukturom bezuvjetnog skoka PSEUDO JEZIK
%. X=%00, S=0 2. U&itaj Y 3. Ako je Y=0 onda idi na 2 4. S=X/Y 5. Ispii S 6. Kraj START
X=%00, S=0
Logi!ka greka u algoritamskoj strukturi grananja Skok na nepostoje"u adresu (kod pseudo koda) BLOK DIJAGRAM
%. X=%00, S=0 2. U&itaj Y 3. Ako je Y=0 onda idi na 7 4. S=X/Y 5. Ispii S 6. Kraj
Y Y=0 NE S=X/Y S DA
STOP
Nastaje zbog auriranja redova algoritma bez auriranja instrukcija koje sadre skok (savjet: numerirati svaki red s korakom %0 npr. %00, %%0, %20.)
IZAZOV PLUS
Ako se drugom instrukcijom u&ita broj -5, nakon izvo'enja algoritma "e ispisati?
START Y NE Pozitivan broj STOP Y>=0 DA Negativan broj
x. Za I=% do K
BLOK DIJAGRAM
PSEUDO JEZIK
I=%,K
BLOK DIJAGRAM
I=I+%
z. Pove"aj I
I<=K NE
DA
to je Pozitivan broj
IZAZOV PLUS
to "e ispisati algoritam ako iterativno u&itamo brojeve: 2,3,2
%. X=0, Y=0, S=0 2. Za I=% do 3 3. U&itaj X 4. S=S+X 5. Ispii S 6. Pove"aj I 7. Kraj
to je 2,5,7
PROGRAMIRANJE - postupak kreiranja programa PROGRAM skup instrukcija (uputa) ra!unalu kako da radi skup pravila* (sintaksa) za pisanje programa
PSEUDO JEZIK
BLOK DIJAGRAM
PSEUDO JEZIK
BLOK DIJAGRAM
X
I=%,X
X S=S+X
I
F=F*I
I
S STOP
F STOP
PROGRAMIRANJE
%0 bodova
* Zapisan algoritam prema tim pravilima i pohranjen u ra!unalu u obliku teksta posebnim programima mogu#e je prevesti u stroju razumljiv kod (strojni jezik)
IZAZOV PLUS
Prikazani kod programa napisan je u programskom jeziku.. LD LD A,2 B,3 U registar A upii broj 2 U registar B upii broj 3 U registar A upii vrijednost registra A uve"anog za registar B %0 bodova
Klasifikacija programskih jezika: prema generacijama I. generacija Strojni kod II. generacija Asembleri (jedna instrukcija strojnog koda = jedna asembler instrukcija) III. generacija Nastala objedinjavanjem vie asemblerskih instrukcija u jednu (Basic, Fortran, Cobol, Pascal, PL%, C, ) IV. generacija Ne proceduralni jezici (upitni jezici, generatori izvje"a, generatori aplikacija) V. generacija Prirodni govorni jezik
ADD A,B
to je Asembler?
Klasifikacija programskih jezika: prema namjeni Matemati&ki Primjer: Fortran (Formula+Translator) Poslovni Primjer: Cobol Konceptualni Primjer: C Orijentiran na baze podataka Primjer: dBase Univerzalni Primjer: PL%
Klasifikacija programskih jezika: prema orijentaciji Jezici orijentirani ka sistemskom* programiranju Zahtijeva dobro poznavanje gra'e stroja i procesa koji se u stroju odvijaju Jezici orijentirani ka korisni&kom programiranju Zahtijeva dobro poznavanje sustava obrade podataka za koji se pie program Kombinirani jezici
..
Danas svi programski jezici tee univerzalnosti (i sa stajalita namjene i sa stajalita platforme)
* Programiranje za potrebe operacijskog sustava (programa koji omogu#ava elementarnu komunikaciju izme"u stroja i !ovjeka)
Tipovi programiranja
Jednostavno programiranje Strukturirano programiranje (uvo'enje reda u jednostavno programiranje) Modularno programiranje (moduli po na&elu crne kutije) Objektno programiranje (objektu se mijenjaju svojstva) Makro programiranje (integracija izvodljivih programa procesa) Markup programiranje (HTML)
Prevo'enje Algoritma u programski jezik Zapisivanje programa u ra&unalu Prevo'enje programa u strojni jezik Testiranje programa Ispravljanje greaka Izrada dokumentacije (opisa programa i upute za rad) Iterativni proces
..
IZAZOV PLUS
to "e ispisati algoritam ako iterativno u&itamo brojeve: %,2,3
%. X=0, Y=0, S=0 2. For I=% to 3 3. Input X 4. S=S+X 5. Print S 6. Next I 7. End
to je %,3,6
%0 bodova
Prevo'enje Programskog jezika u Strojni jezik Program napisan u programskom jeziku (tekst)
Pomo#u programa prevoditelja koji moe biti
IZAZOV PLUS
Jezici orijentirani ka sistemskom programiranju u strojni jezik uglavnom se prevode pomo"u ..
Compiler
Program na strojnom jeziku (u binarnom obliku zapisane instrukcije koje razumije procesor)
Dok se instrukcije prevode one se i izvravaju (program radi), tako da rezultat interpretiranja nije binarna datoteka Prevedeni oblik pohranjuje se i !uva u binarnom obliku (datoteci) i po potrebi na zahtjev korisnika pokre#e i izvrava (datoteke tipa EXE i COM)
to je Compiler?
Na!elno:
%0 bodova
Programi u neprevedenom (izvornom) obliku su*: tekstovi koji se pohranjuju u datoteke na ure'ajima vanjske memorije (diskove, diskete,) Obi&no su te datoteke ozna&ene posebnim nastavcima koji aludiraju na programski jezik u kojem je program napisan Primjer naziva datoteke: ime.nastavak (nastavak 3 slova)
Programi prevoditelj: Binarni program (kao datoteka smjeten na ure'aju 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) (ako je compiler) a procesor te instrukcije izvrava i tako izvodi program a rezultat prevo'enja smjeta kao datoteku (binarnu) na ure'aj vanjske memorije. Ovakva datoteka izvodljivi je program.
to "e se od programiranja nadalje raditi: SISTEMSKI SOFTVARE (programi) BIOS, operacijski sustavi, pomo"ni sistemski programi, programi prevodioci, KORISNI!KI SOFTVARE (programi) Poslovni uredski programi, programi za upravljanje s bazama podataka, programi za pomo" u odlu&ivanju,
PITANJA!
Za sve to se u stroju deava ili ne deava odgovorni su PROGRAMI!