osnovi ra Čunarske tehnike 1
DESCRIPTION
OSNOVI RA ČUNARSKE TEHNIKE 1. ALGORITMI 11. Osnovni elementi razvoja softvera. Jasno definisanje problema Analiza problema. Razvoj algoritma Koncepcija odozgo-nadole. Program – implementacija algoritma pisanjem instrukcija Prevođenje programa Testiranje programa. Izrada dokumentacije. - PowerPoint PPT PresentationTRANSCRIPT
OSNOVI RAOSNOVI RAČUNARSKE ČUNARSKE TEHNIKE 1TEHNIKE 1
ALGORITMI11
Osnovni elementi razvoja softveraOsnovni elementi razvoja softvera
Jasno definisanje problemaAnaliza problema
Razvoj algoritmaKoncepcija odozgo-nadole
Izrada dokumentacije
Program – implementacija algoritma pisanjem instrukcija
Prevođenje programaTestiranje programa
AlgoritamAlgoritam Algoritam je skup pravila formulisanih u
cilju rešavanja određenog tipa zadatkaAlgoritam se sastoji od niza algoritamskih
koraka, čiji je redosled tačno utvrđenPolazne veličine su ulazne veličine algoritma, a
rešenja zadatka su izlazne veličine Prikazivanje algoritma
Dijagramom toka Pregledan i lako čitljiv i za ljude koji ne znaju da
programiraju Nezavisan od vrste računara i programskog jezika
Primenom pseudojezika Lakše je prevođenje u odgovarajuće programske
instrukcije
AlgoritamAlgoritam Opšta šema
algoritma primenom dijagrama toka
A
ulazi x1, x2,...,xi
izlazi y1, y2,...,yj
skup
operacija
Razlaganje algoritma na korake
A1
ulazi x1, x2,...,xi
izlazi y1, y2,...,yj
A2
Ak
skup
operacija
AlgoritamAlgoritam Simboli za grafički opis algoritma
početak / kraj programa
obrada
unošenje podataka
izdavanje podataka
odluka
povezivanje algoritamskih koraka
priključna tačka
AlgoritamAlgoritam Struktura algoritma je redosled izvršavanja
algoritamskih koraka Osnovne kontrolne strukture:
Sekvence Proste linijske strukture
Selekcije Razgranate linijske strukture Skokovi (bezuslovni skokovi, višestruki skokovi)
Ciklične strukture (petlje) Uslovni ciklusi Brojački ciklusi Iterativni ciklusi
Svakoj kontrolnoj strukturi odgovara određena instrukcija u programskom jeziku
SekvenceSekvence Kod proste linijske strukture
Koraci algoritma se izvršavaju jedan za drugim
Svaki korak se izvršava samo jednom
begin
naredba1 naredba 2
... naredba k
end
A1
ulazi x1, x2,...,xi
izlazi y1, y2,...,yj
A2
Ak
početak
kraj
SelekcijeSelekcije Kod razgranate linijske
strukture Tok izvršavanja zavisi od
ispunjenosti nekih uslovaMora da postoji bar jedan
uslovni korak koji omogućava grananje algoritma
Neki koraci se izvršavaju samo jednom, a neki se uopšte ne izvršavaju
A1
ulazi x1, x2,...,xi
izlazi y1, y2,...,yj
A2
A4
početak
kraj
uslov ispunjen?
A3
da ne
SelekcijeSelekcije Razgranata linijska struktura
Jednograna selekcija: if logički izraz then naredba
A2
A1
A3
uslov ispunjen?da
ne
A1
A3
uslov ispunjen?da
ne
SelekcijaSelekcija Razgranate linijske struktura
Dvograna selekcija: if logički izraz
then naredba1
else naredba 2
endif
A1
A2
uslov ispunjen?
A3
da ne
SelekcijeSelekcije Skokovi mogu da budu uslovni i bezuslovni
Bezuslovnim skokovima se na nekom željenom mestu prekida obavljanje niza operacija, da bi se postupak obrade nastavio na nekom drugom zadatom mestu
Dosledna primena pravila strukturnog programiranja eliminiše potrebu za bezuslovnim skokovima i zato u strukturnim dijagramima ne postoji poseban simbol za ovaj korak
Primeri instrukcija za skok bilo gde unutar programa
GO TO, BRANCH, JUMP Primer instrukcije za odlazak na kraj kontrolne strukture
je EXIT, a za odlazak na kraj programa je STOP
SelekcijeSelekcije Višestruki skokovi
U zavisnosti od vrednosti kontrolne promenljive ili vrednosti izraza, omogućava se skok na različite instrukcije unutar programa
Primer instrukcije za višestruki skok je CASE
CASE SEL of
s1: A1
s2: A2
s3: A3
sk: Ak
else B
end CASE
SEL
A1 A2 A3 Ak B
s1 s2 sk
Ciklične strukture (petlje)Ciklične strukture (petlje) U cikličnoj strukturi (petlji)
Telo ciklusa čine naredbe čije se izvršavanje ponavlja pri jednom izvršavanju programa
Izlazni kriterijum ili uslov obezbeđuje prestanak izvršavanja ciklusa
Kod ciklusa sa uslovom broj ponavljanja nije poznat unapred, već zavisi od ispunjenosti uslova
Kod brojačkih ciklusa kriterijum za izlazak iz petlje je broj ponovljenih ciklusa
Kod iterativnih ciklusa kriterijum za izlazak iz pelji je dostignuta tačnost izračunavanja
Ciklične strukture (petlje)Ciklične strukture (petlje) Ciklične strukture sa uslovom
U ciklusu sa uslovom za izlazak na vrhu (while) blok naredbi se izvršava u petlji sve dok je ispunjen neki uslov
TELO
CIKLUSA
uslov ispunjen?
da
ne
while USLOV do
begin
...
end
Ciklične strukture (petlje)Ciklične strukture (petlje) Ciklične strukture sa uslovom
U ciklusu sa uslovom za izlazak na dnu (repeat until) blok naredbi se izvršava u petlji sve dok se ne ispuni neki uslov
TELO
CIKLUSA
uslov ispunjen?
dane
repeat
...
until USLOV
Ciklične strukture (petlje)Ciklične strukture (petlje) Elementi svakog brojačkog ciklusa (FOR) su:
Brojač Početna vrednost brojača Krajnja vrednost brojača Korak brojača
Na početku izvršavanja brojačkog ciklusa brojaču se dodeljuje početna vrednost
Postoje brojački ciklusi sa brojanjem unapred i sa brojanjem unazad
Vrednost brojača se sa svakim izvršavanjem ciklusa menja (uvećava ili smanjuje) za zadati korak
Ciklus se završava kada brojač dostigne krajnju vrednost
Ciklične strukture (petlje)Ciklične strukture (petlje) Struktura brojačkog ciklusa (FOR) sa brojanjem
unapred Vrednost brojača se uvećava za zadati korak sa svakim
izvršavanjem ciklusa
početna vrednostbrojača
telo
brojač = brojač + korak
brojač = krajnja vrednost?da
ne
Ciklične strukture (petlje)Ciklične strukture (petlje) Struktura brojačkog ciklusa (FOR) sa brojanjem
unazad Vrednost brojača se umanjuje za zadati korak sa svakim
izvršavanjem ciklusa
početna vrednostbrojača
telo
brojač = brojač - korak
brojač = krajnja vrednost?da
ne
Ciklične strukture (petlje)Ciklične strukture (petlje)
Kraći grafički zapis brojačkog ciklusa (FOR)
telo ciklusa
brojač = poč. vrednost, krajnja vrednost, korakne
da
Ciklične strukture (petlje)Ciklične strukture (petlje) Iterativni ciklusi se koriste za programiranje iterativnih numeričkih postupaka
Jedan prolazak kroz programski ciklus odgovara jednoj iteraciji u numeričkom postupku
Primer:
Definisati algoritam koji za zadato x izračunava x po Njutnovoj iterativnoj formuli:
,...2,1,0 )(2
11 i
x
xxx
iii
gde je 10 xxProces izračunavanja se prekida kada se dostigne zadata tačnost , tako da je
1ii xx.
POČETAK
KRAJ
,x
NE
DA
10 xx
)(2
1
001 x
xxx
10 xx
10 xx 1x