Vous êtes sur la page 1sur 11

SADRAJ: ALGORITMI

2,5 sati

ALGORITMI I PROGRAMIRANJE RAUNALA


4 sata
Mr.sc. Branimir Duki, dipl oec.

OPERATIVNI CILJEVI UPOZNATI SE S ALGORITMIMA, NJIHOVOM FORMOM, RADOM , SVRHOVITOU, TE UOITI VEZU IZMEU ALGORITAMA I PROGRAMIRANJA

PROGRAMIRANJE I PROGRAMSKI JEZICI


OPERATIVNI CILJEVI

1,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 informatikog highwaya u USA. Taj ovjek je

ALGORITMI

DA

NE

to je to zapravo algoritam?
Za pojam zasluan arapski matematiar iz IX. stoljea:
U runoj (manualnoj) obradi podataka, skup postupaka koje treba uiniti da bi se rijeio zadatak npr. Algoritam je i nauen postupak mnoena u osnovnoj koli

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.

23* 32 69 46 736
+

IZAZOV PLUS
to je algoritam u runoj obradi to je u (polu)automatskoj i elektronikoj obradi?

Tko to procesuira*

Algoritam

Program

to je program?
10 bodova
* proces od lat. processus napredak, rastanje

Algoritam je i: Recept u kuharici Upute za uporabu Proces spajanja gena

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)

. . .

Naelna struktura algoritma:*


Opi algoritmi (zbrajanje unesenih brojeva):
Definiranje Ulaz Obrada Izlaz

Predmet naeg izuavanja je:

ELEKTRONIKA OBRADA PODATAKA


Karakteristike:
Obavlja se pomou elektronikog raunala Predmet obrade su podaci (sve to se moe digitalizirati: brojevi, alfanumeriki znakovi, slike, video zapisi, tonski zapisi)

Specijalizirani algoritmi (raunanje broja e):


Definiranje Obrada Izlaz

* Manipulacije nad objektima

Algoritmi - predmet naeg interesa su faza u procesu izrade programa za elektroniku obradu podataka Faze nastanka programa:
1. Definiranje problema 2. Razumijevanje problema 3. Izrada algoritma (iskusni programeri u glavi) 4. Prevoenje algoritma u programski jezik 5. Strojno prevoenje (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 1:1

Algoritam se zapisuje u:
1. Obliku pseudo (meta) jezika (govornog jezika koji oponaa programski jezik) i/ili 2. Grafikom obliku, tzv. Blok dijagram ili dijagram tijeka programa

Proces nastajanja algoritma


Definiranje problema Razumijevanje problema Analiza (rastavljanje na sastavne dijelove) problema i pronalaenje postupka kojim problem rijeiti na stroju razumljiv nain (primjer s kutijom ibica) Pisanje algoritma Testiranje algoritma* Ispravljanje algoritma (Greke sintakse; formalne i logike) Kreiranje dokumentacije
* Traeni nivo znanja je testiranje (procesuiranje) algoritma i prepoznavanje svrhovitosti algoritma

os dn O

ai m rit go al

a m ra og pr

Prevoenje

Program se zapisuje u:
Programskom jeziku

Program se izvodi u:
Strojnom jeziku

ALGORITMI 3. Generacije programskih jezika (Basic)

Algoritam grade:*
Predmeti i sredstva obrade (objekti - podaci): Varijable Konstante Matematiki i logiki operatori Algoritamske strukture

PRAVILA SINTAKSE **
* Algoritmi koje emo izuavati su algoritmi za obradu numerikih podataka ** gr. syntaxis sastavljam, sreujem; gram. Skladnja

Vrste podataka (objekata) Kompjuterom se obrauje sve to se moe digitalizirati konvertirati u broj (u binarni brojevni sustav 0 i 1) Izdvajamo: Numerike podatke (brojevi) 0, 111.001, 10E23, Alfanumerike podatke (brojevi i slova) Pero, 0, 111.001, OSIJEK, Ostali tipovi: logiki, datumski, memo,

Varijable* 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,

franc. varijable, mat. promjenjiva veliina, promjenljiva vrijednost

Konstante* Oznaavaju se simbolima kao i u matematici (postoje za pojedine programske jezike pravila oznaavanja, tzv. pravila notacije) Konstante tijekom izvoenja algoritma ne mijenjaju poetno pridruenu vrijednost (najpoznatije su e=2,718, Pi=3,141) Primjeri konstanti: Pi, e, p, g, nGravit,
lat. constans mat. stalan, nepromjenljiva veliina

Operatori* Oznaavaju se matematikim simbolima =, +, -, *, /, ^, (, ), <, > Koriste se u aritmetikim i logikim operacijama Operacije se izvode od lijeva na desno pritom potujui pravila: Komutacije Asocijacije Stupnjevanja
mat. znak (predznak) kojim se obiljeava nain izvoenja operacije

IZAZOV PLUS
Kolika je vrijednost varijabli x, y, s i pi nakon sljedeih operacija: x=4, y=2, s=2, pi=3,14 s=4+x/y+1, x=x+e

Paradoks znaka jednakosti: U aritmetikim operacijama znai pridruivanja (u nekim programskim jezicima se oznaava s :=)

I=I+1
U logikim operacijama znai vaganje 10 bodova

to je 7,14; 2; 7; 3,14

Ako je i=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) kombinira se sa: Slijednom strukturom Strukturom bezuvjetnog skoka Struktura iteracije (ponavljanja ili petlje)

Slijedna struktura (moj prvi algoritam)


Poetak Definiranje varijabli i konstanti START
X=0, Y=0, S=0

PSEUDO JEZIK

BLOK DIJAGRAM

1. X=0, Y=0, S=0 Ulaz 2. Uitaj x 3. Uitaj y Aritmetika 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 obino oznaavaju rednim brojevima

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

IZAZOV PLUS
Kolika je vrijednost varijable s nakon izvoenja algoritma, ako za x uitamo 2, a za y uitamo 5:
1. X=0, Y=0, S=0 2. Uitaj X 3. Uitaj Y 4. S=S+Y 5. Ispii S

to je 7

10 bodova

Greke u algoritmu sintaksne* greke (Bug**-ovi) Formalne su pravopisne greke i tipfeler greke
npr. 10. Iskii S 23. A-A+1 isp. isp. 10. Ispii S 23. A=A+1

Logike greke u slijednoj algoritamskoj strukturi Nedefinirane varijable:


npr. 1. Uitaj A 2. S=S+1 Koliki je S? isp. 1. S=0, A=0 2. Uitaj S 3. S=S+1

Logike greke najee nastaju zbog:


Nerazumijevanja problema Nepoznavanja logike rada stroja Niskog programerskog iskustva npr.

Dijeljenje s nulom:
1. A=0, S=0 2. Uitaj B 3. S=B/A Koliki je S?

Greke se ispravljaju testiranjem (tzv. debugiranjem)


* gr. syntaxis sastavljam, sreujem; gram. Skladnja ** eng. bug stjenica, kukac, buba u glavi, kvar, zaraza

Kako sprijeiti unos nulu kao djelitelja?

Struktura bezuvjetnog skoka (naruavanje linearnosti) PSEUDO JEZIK


x. Idi na y Gdje su x i y brojevi linija algoritma bez obzira na smjer

Struktura bezuvjetnog skoka u testiranju algoritma


Omoguava preskakanje dijela algoritma esto se koristi ali se rijetko crta START

BLOK DIJAGRAM

PSEUDO JEZIK

BLOK DIJAGRAM

Struktura bezuvjetnog skoka 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

1. X=100, S=0 2. Idi na 5 3. Uitaj Y 4. S=X/Y 5. Ispii S 6. Kraj

X=100, S=0

Y S=X/Y S STOP

Struktura bezuvjetnog uzrokuje beskonanu iteraciju


esta greka zbog koje je bezuvjetni skok na loem glasu 1. X=100, S=0 2. Uitaj Y 3. S=X/Y 4. Idi na 3 5. Ispii S 6. Kraj START
X=100, S=0

IZAZOV PLUS
Kolika je vrijednost varijable s nakon izvoenja algoritma, ako za x uitamo 2, a za y uitamo 3:
1. X=0, Y=0, S=0 2. Uitaj X 3. Uitaj Y 4. Idi na toku 6 5. S=S+Y 6. Ispii S

Struktura grananja (naruavanje linearnosti) PSEUDO JEZIK BLOK DIJAGRAM


### NE $$$ x. Ako je ### onda $$$ [u protivnom $$$] [ moe a ne mora]

PSEUDO JEZIK

BLOK DIJAGRAM

Y S=X/Y S STOP

to je 0

10 bodova

Struktura grananja (naruavanje linearnosti) LOGIKE OPERACIJE (###)


Uporeivanje: 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

DA

$$$

$$$ NE

###

DA $$$

Gdje su x ### $$$

broj linije algoritma logika operacija slijedna operacija i/ili operacija bezuvjetnog skoka (tzv. uvjetni skok)

Struktura grananja - naruavanje linearnosti) u kombinaciji sa strukturom bezuvjetnog skoka PSEUDO JEZIK
1. X=100, S=0 2. Uitaj Y 3. Ako je Y=0 Idi na 6 4. S=X/Y 5. Ispii S 6. Kraj START
X=100, S=0

Struktura grananja - naruavanje linearnosti) u kombinaciji sa slijednom strukturom PSEUDO JEZIK BLOK DIJAGRAM
1. X=100, S=0 2. Uitaj Y 4. S=X/Y 5. Ispii S 6. Kraj START
X=100, S=0

BLOK DIJAGRAM

Y Y=0 NE S=X/Y S DA

Y Y=0 NE S=X/Y S DA Y=1

3. Ako je Y=0 onda Y=1

Ovako sprijeiti unos nulu kao djelitelja!

STOP

Ovako sprijeiti unos nulu kao djelitelja!?????

STOP

Struktura grananja uspostavljanje ponavljanja) u kombinaciji sa strukturom bezuvjetnog skoka PSEUDO JEZIK
1. X=100, S=0 2. Uitaj Y 3. Ako je Y=0 onda idi na 2 4. S=X/Y 5. Ispii S 6. Kraj START
X=100, S=0

Logika greka u algoritamskoj strukturi grananja Skok na nepostojeu adresu (kod pseudo koda) BLOK DIJAGRAM
1. X=100, S=0 2. Uitaj 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

Ovako sprijeiti unos nulu kao djelitelja!!!!!

STOP

Nastaje zbog auriranja redova algoritma bez auriranja instrukcija koje sadre skok (savjet: numerirati svaki red s korakom 10 npr. 100, 110, 120.)

IZAZOV PLUS
Ako se drugom instrukcijom uita broj -5, nakon izvoenja algoritma e ispisati?
START Y NE Pozitivan broj STOP Y>=0 DA Negativan broj

Struktura iteracije (uspostava ponavljanja)


Evoluirala iz kombinacije slijedne strukture i strukture uvjetnog skoka
I=0

x. Za I=1 do K

BLOK DIJAGRAM

PSEUDO JEZIK

I=1,K

BLOK DIJAGRAM

I=I+1

z. Poveaj I

I<=K NE

DA

to je Pozitivan broj

Vie vrsta iteracija 10 bodova


bavit emo se samo iteracijama s unaprijed definiranim konanim brojem koraka

Struktura iteracije uspostavljanje ponavljanja


Omoguava uitavanje konanog broja brojeva, te rauna kumulativ START 1. X=0, S=0, I=0 2. Za I=1 do 4 3. Uitaj X 4. S=S+X 5. Poveaj I 6. Ispii S 7. Kraj
X=0, S=0, I=0 I=1,4

Struktura iteracije uspostavljanje ponavljanja


Izraun Faktorijela (X!) 1. X=0, F=1, I=0 START
X=0, F=1, I=0

IZAZOV PLUS
to e ispisati algoritam ako iterativno uitamo brojeve: 2,3,2
1. X=0, Y=0, S=0 2. Za I=1 do 3 3. Uitaj X 4. S=S+X 5. Ispii S 6. Poveaj I 7. Kraj

to je 2,5,7

PROGRAMIRANJE - postupak kreiranja programa PROGRAM skup instrukcija (uputa) raunalu kako da radi skup pravila* (sintaksa) za pisanje programa

PSEUDO JEZIK

BLOK DIJAGRAM

PSEUDO JEZIK

BLOK DIJAGRAM

3. Uitaj X 2. Za I=1 do X 4. F=F*I 5. Poveaj I 6. Ispii F 7. Kraj

X
I=1,X

X S=S+X
I

F=F*I
I

S STOP

F STOP

PROGRAMIRANJE

10 bodova

Klasifikacija programskih jezika: prema razini Nii programski jezici


Zahtijevaju dobro poznavanje strukture raunala, procesorske instrukcije i procese u raunalu poznavanje logike rada stroja Primjer: Asembler simboliki jezik

PROGRAMSKI JEZK STROJNI JEZIK

instrukcije ugraene u procesor temeljem koji procesor manipulira s podacima

Vii programski jezici


Nastali objedinjivanjem vie asemblerskih instrukcija u jednu, stoga blii nainu razmiljanja ovjeka, te se programer moe usredotoiti na problem. to je programski jezik na viem nivou to je manje potrebno znati o principima rad raunala (vidi generacije) Primjer: Basic, Pascal, Fortran,.

* Zapisan algoritam prema tim pravilima i pohranjen u raunalu u obliku teksta posebnim programima mogue 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 uveanog za registar B 10 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, PL1, C, ) IV. generacija Ne proceduralni jezici (upitni jezici, generatori izvjea, generatori aplikacija) V. generacija Prirodni govorni jezik

ADD A,B

to je Asembler?

Klasifikacija programskih jezika: prema namjeni Matematiki Primjer: Fortran (Formula+Translator) Poslovni Primjer: Cobol Konceptualni Primjer: C Orijentiran na baze podataka Primjer: dBase Univerzalni Primjer: PL1

Klasifikacija programskih jezika: prema orijentaciji Jezici orijentirani ka sistemskom* programiranju Zahtijeva dobro poznavanje grae stroja i procesa koji se u stroju odvijaju Jezici orijentirani ka korisnikom 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 omoguava elementarnu komunikaciju izmeu stroja i ovjeka)

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)

Proces nastajanja Programa


Izrada Algoritma: (Definiranje problema, Razumijevanje problema, Pisanje algoritma, Testiranje algoritma, Ispravljanje algoritma, Kreiranje dokumentacije)

Prevoenje Algoritma u programski jezik Zapisivanje programa u raunalu Prevoenje programa u strojni jezik Testiranje programa Ispravljanje greaka Izrada dokumentacije (opisa programa i upute za rad) Iterativni proces

..

Kvalitetna priprema (izrada algoritma) klju dobrog programiranja

Prevoenje Algoritma u Programski jezik (Tablica ekvivalenata algoritamske i Basic instrukcije)


Algoritam Uitaj Ispii Kraj Idi na Ako je .. Onda u protivnom Za do Poveaj Basic Input Print End Go to IF then . else . For to Next Bezuvjetni skok Uvjet (grananje) Iteracija Slijedna Struktura

IZAZOV PLUS
to e ispisati algoritam ako iterativno uitamo brojeve: 1,2,3
1. X=0, Y=0, S=0 2. For I=1 to 3 3. Input X 4. S=S+X 5. Print S 6. Next I 7. End

to je 1,3,6

10 bodova

Prevoenje Programskog jezika u Strojni jezik Program napisan u programskom jeziku (tekst)
Pomou programa prevoditelja koji moe biti

IZAZOV PLUS
Jezici orijentirani ka sistemskom programiranju u strojni jezik uglavnom se prevode pomou ..

Interpreter (simultano prevoenje)


Prevodi se 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 pokree i izvrava (datoteke tipa EXE i COM)

to je Compiler?

Naelno:

Interpretiranjem se bre pokree program, ali on sporije radi! ZATO?

10 bodova

Programi u neprevedenom (izvornom) obliku su*: tekstovi koji se pohranjuju u datoteke na ureajima vanjske memorije (diskove, diskete,) Obino su te datoteke oznaene 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 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) (ako je compiler) a procesor te instrukcije izvrava i tako izvodi program a rezultat prevoenja smjeta kao datoteku (binarnu) na ureaj vanjske memorije. Ovakva datoteka izvodljivi je program.

BAS-Basic, PAS-Pascal, FOR-Fortran


* u naelu

Ureaji u raunalu nosioci programa:


ROM ipovi primaju jednostavne programe u strojnom jeziku i omoguavaju osnovne ivotne funkcije stroja Vanjska memorija uva programe u izvornom (programskom) jeziku u tekstualnom obliku i programe u prevedenom strojnom (binarnom) obliku kao datoteke RAM preuzima programe na zahtjev procesora (zahtjev nastaje temeljem izvoenja nekog drugog programa, npr. programa operacijskog sustava) sa vanjske memorije i instrukcije u strojnom obliku predaje procesoru koji ih izvrava

to e se od programiranja nadalje raditi: SISTEMSKI SOFTVARE (programi) BIOS, operacijski sustavi, pomoni sistemski programi, programi prevodioci, KORISNIKI SOFTVARE (programi) Poslovni uredski programi, programi za upravljanje s bazama podataka, programi za pomo u odluivanju,

PITANJA!
Za sve to se u stroju deava ili ne deava odgovorni su PROGRAMI!

Vous aimerez peut-être aussi