Upload
mihael-koncarevic
View
9
Download
0
Embed Size (px)
DESCRIPTION
Informatika predavanje 2 Ekonomski fakultet u Osijeku 2015
Citation preview
Algoritmi i programiranje raunala 1
ALGORITMI I
PROGRAMIRANJE
RAUNALA
4 sata
ALGORITMI I
PROGRAMIRANJE
RAUNALA
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 stroj-
program, programskim jezicima, generacijama,
evolucijom programskih jezika, te
trendovima u razvitku programskih jezika
SADRAJ PREDAVANJA
Algoritmi i programiranje raunala 2
ALGORITMI ALGORITMI
POSLOVNI INFORMACIJSKI SUSTAVI
Uredski informac
ijski
sustav
Sustav za podr
ku
odluivanju
Upravljaki inf
ormacijski
sustav
Marketing informacijski sustav
Proizvodni informacijski sustav
Ra informacijski sustavunovodstveni
Financijski informacijski sustav
...
POSLOVNI INFORMACIJSKI SUSTAV
POSLOVNI INFORMACIJSKI SUSTAV
Uredski informac
ijski
sustav
Sustav za podr
ku
odluivanju
Upravljaki inf
ormacijski
sustav
Marketing-informacijski sustav
Lifeware (ljudski potencijal)
Software (programski podsustav)
Hardware (strojni podsustav))
Proizvodni informacijski sustav
Ra informacijski sustavunovodstveni
Financijski informacijski sustav
...
POSLOVNI INFORMACIJSKI SUSTAV
POSLOVNI INFORMACIJSKI SUSTAV
Algoritmi i programiranje raunala 3
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.
POJAM ALGORITAM
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
PRIMJER RAUNSKOG ALGORITMA
23* 32
69
46 +
736
Algoritmi i programiranje raunala 4
Algoritam Program
TKO TO PROCESUIRA?!*
* proces od lat.
processus napredak, rastanje
Obrada podataka koja se preteito obavlja na
elektronikom raunalu, prema unaprijed
zadanom programu (nizu instrukcija (naredbi)) i
nad podacima koji su upisani i nalaze se u
centralnoj memoriji.
EVOLUTIVNI NIZ
Manualna obrada
Mehanika obrada
Elektromehanika obrada
Elektronika obrada
PREDMET OBRADE
Podaci (sve to se moe digitalizirati: brojevi,
alfanumeriki znakovi, slike, video, tonski zapisi)
ELEKTRONIKA OBRADA PODATAKA
Algoritmi i programiranje raunala 5
Algoritmi - faza u procesu izrade programa za
elektroniku obradu podataka
Definiranje problema
Razumijevanje problema
Izrada algoritma (iskusni programeri u glavi)
Prevoenje algoritma u programski jezik
Strojno prevoenje (interpretacija) i testiranje
programa
Korekcija i prilagodba programa
Izrada popratne dokumentacije i uputa za rad
FAZE NASTANKA PROGRAMA
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
ODNOS ALGORITMA I PROGRAMA
10 S=0
20 INPUT X
30 IF X=-99999 THEN GOTO 60
40 S=S+X
50 GO TO 20
60 PRINT S
70 END
Algoritmi i programiranje raunala 6
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 - KARAKTERISTIKE
Opi algoritmi (zbrajanje unesenih brojeva):
Specijalizirani algoritmi (raunanje broja e):
NAELNA STRUKTURA ALGORITMA
Algoritmi i programiranje raunala 7
OD ALGORITMA DO IZVRNOG KODA
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 (Traeni nivo znanja je
testiranje (procesuiranje) algoritma i
prepoznavanje svrhovitosti algoritma)
Ispravljanje algoritma (Greke sintakse; formalne
i logike)
Kreiranje dokumentacije
PROCES NASTAJANJA ALGORITMA
Algoritmi i programiranje raunala 8
ALGORITMI
3. Generacije
programskih jezika
(Basic)
ALGORITMI
3. Generacije
programskih jezika
(Basic)
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
STRUKTURA ALGORITAMA
Algoritmi i programiranje raunala 9
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,
VRSTE PODATAKA (OBJEKATA)
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,
VARIJABLE
Algoritmi i programiranje raunala 10
lat. constans mat. stalan, nepromjenljiva veliina
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,
KONSTANTE
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
OPERATORI
Algoritmi i programiranje raunala 11
U aritmetikim operacijama znai pridruivanja
(u nekim programskim jezicima se oznaava s :=)
I=I+1
U logikim operacijama znai vaganje
Ako je i=10 onda
PARADOKS ZNAKA JEDNAKOSTI
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)
ALGORITAMSKE STRUKTURE
Algoritmi i programiranje raunala 12
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
SLIJEDNA STRUKTURA
PROCES IZVOENJA ALGORITMA
Algoritmi i programiranje raunala 13
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
TESTIRANJE ALGORITMA
Algoritmi i programiranje raunala 14
Nedefinirane varijable:
npr. 1. Uitaj A isp. 1. S=0, A=0
2. S=S+1 2. Uitaj S
Koliki je S? 3. S=S+1
Dijeljenje s nulom:
npr. 1. A=0, S=0
2. Uitaj B
3. S=B/A
Koliki je S?
Kako sprijeiti unos nulu kao djelitelja?
LOGIKE GREKE - slijedna struktura
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
BEZUVJETNI SKOK
Algoritmi i programiranje raunala 15
Omoguava preskakanje dijela algoritma
1. X=100, S=0
2. Idi na 5
3. Uitaj Y
4. S=X/Y
5. Ispii S
6. Kraj
BEZUVJETNI SKOK- testiranje algoritma
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
BEZUVJETNI SKOK- beskonana itracija
Algoritmi i programiranje raunala 16
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)
GRANANJE
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
Algoritmi i programiranje raunala 17
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
GRANANJE
Algoritmi i programiranje raunala 18
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
GRANANJE
Skok na nepostojeu adresu (kod pseudo koda)
1. X=100, S=0, Y=0
2. Uitaj Y
3. Ako je Y=0 onda idi na 7
4. S=X/Y
5. Ispii S
6. Kraj
Nastaje zbog auriranja redova algoritma bez
auriranja instrukcija koje sadre
skok (savjet: numerirati svaki red
s korakom 10 npr. 100, 110, 120.)
GRNANJE LOGIKA GREKA
Algoritmi i programiranje raunala 19
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
ITERACIJA (PONAVLJANJE)
Algoritmi i programiranje raunala 20
Izraun Faktorijela (X!)
1. F=1, X=0, I=0
2. Uitaj X
3. Za I=1 do X
4. F=F*I
5. Poveaj I
6. Ispii F
7. Kraj
ITERACIJA (PONAVLJANJE)
PITANJA!
Algoritmi i programiranje raunala 21
PROGRAMIRANJE PROGRAMIRANJE
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)
TEMELJNI POJMOVI
Algoritmi i programiranje raunala 22
Nii programski jezici
Zahtijevaju dobro poznavanje strukture raunala,
procesorske instrukcije i procese u raunalu
poznavanje logike rada stroja
Primjer: Asembler simboliki jezik
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,.
RAZINE PROGRAMSKIH JEZIKA
Prikazani kod programa napisan je u programskom
jeziku..
LD A,2 U registar A upii broj 2
LD B,3 U registar B upii broj 3
ADD A,B U registar A upii vrijednost
registra A uveanog za
registar B
10 bodova
PRIMJER ASEMBLERSKOG PROGRAMA
Algoritmi i programiranje raunala 23
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
GENERACIJE PROGRAMSKIH JEZIKA
Matematiki
Primjer: Fortran (Formula+Translator) Poslovni
Primjer: Cobol Konceptualni
Primjer: C Orijentirani na baze podataka
Primjer: SQL Univerzalni
Primjer: PL1
Danas: Svi programski jezici tee univerzalnosti
(i sa stajalita namjene i sa stajalita
platforme)
..
NAMJENA PROGRAMSKIH JEZIKA
Nekada:
Algoritmi i programiranje raunala 24
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
* Programiranje za potrebe operacijskog sustava
(programa koji omoguava elementarnu komunikaciju
izmeu stroja i ovjeka)
ORIJENTACIJA PROGRAMSKIH JEZIKA
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)
..
TIPOVI PROGRAMIRANJA
Algoritmi i programiranje raunala 25
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 (BUG-ovi)
Izrada dokumentacije (opisa programa i upute za rad)
Kvalitetna priprema (izrada algoritma)
klju dobrog programiranja
Iterativni proces
TIPOVI PROGRAMIRANJA
BUG-ovi
Zapisala Grace Murray Hopper
Harvard University
Raunalo Mark II
Aiken Relay Calculator
(a primitive computer).
Algoritmi i programiranje raunala 26
PRIA O BUG-u
ALGORITAM2PROGRAMSKI JEZIK
Algoritam Basic Struktura UITAJ INPUT
Slijedna ISPII PRINT
KRAJ END
IDI NA GOTO Bezuvjetni skok
AKO JE ONDA
U PROTIVNOM
IF THEN
ELSE Uvjet (grananje)
ZA DO FOR TO Iteracija POVEAJ NEXT
Algoritmi i programiranje raunala 27
Program na strojnom jeziku (u binarnom obliku
zapisane instrukcije koje razumije procesor)
Program napisan u programskom jeziku (tekst)
Interpreter
(simultano prevoenje) Compiler
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)
Naelno:
Interpretiranjem se bre pokree program, ali on
sporije radi!
PROGRAMSKI JEZIK2STROJNI JEZIK
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)
BAS-Basic, PAS-Pascal, FOR-Fortran
IZVORNI (NEPREVEDENI) PROGRAMI
Algoritmi i programiranje raunala 28
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) a rezultat prevoenja smjeta
kao datoteku (binarnu) na
ureaj vanjske memorije.
Ovakva datoteka izvodljivi je
program.
PROGRAMI PREVODITELJI
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
Algoritmi i programiranje raunala 29
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,
to e se od programiranja nadalje raditi:
Za sve to se u stroju deava
ili ne deava odgovorni su
PROGRAMI!
Za sve to se u stroju deava
ili ne deava odgovorni su
PROGRAMI!
Algoritmi i programiranje raunala 30
PITANJA! PITANJA!