Razgranata struktura

Download Report

Transcript Razgranata struktura

Tema:Algoritam razgranate strukture na
primeru kvadratne jednačine
Jasmina Milić
Algoritam se definiše kao konačan, uređen
niz precizno formulisanih pravila kojima se
rešava jedan ili čitava klasa problema.
Algoritam proizvoljne složenosti može biti
predstavljen kombinacijom tri bazne
strukture: linijske, razgranate i ciklične.
• Linijskim se nazivaju algoritmi kod kojih se
naredbe (ili instrukcije) izvršavaju jedna za
drugom-svaka naredba izvršava se tačno jedanput.
• Razgranatim se nazivaju algoritmi kod kojih se u
zavisnosti od vrednosti logičkog uslova izvršavanje
nastavlja jednom od dve grane-svaka naredba
izvršava se najviše jedanput.
• Cikličnim se nazivaju algoritmi koji sadrže niz
instrukcija (telo ciklusa) koje se mogu ponavljati
više puta.
• Postupak građenja algoritma razgranate strukture
ilustrovaćemo na primeru kvadratne jednačine.
• Formulaciju rešiti kvadratnu jednačinu ax2+bx+c=0
možemo smatrati postavkom problema.
• Da bi rešili ovaj problem treba da odgovorimo na
sledeća pitanja:
– Koje su veličine poznate (ili ulazne), a koje su
nepoznate (ili izlazne) ?
– Koje su moguće veze između poznatih i
nepoznatih veličina?
– Šta se izdaje kao rezultat?
Za dati problem na postavljena pitanja mogu se
dati sledeći odgovori:
– Ulazne veličine su koeficijenti kvadratne
jednačine a, b i c
- Veze imeđu poznatih i nepoznatih veličina
uspostavljamo odgovarajućom diskusijom
- Izlazne veličine su rešenja kvadratne jednačine
x1, x2 ili odgovarajući komentar
Diskusija se svodi na razmatranje sledeća
dva slučaja:
1. a≠0- potpuna kvadratna jednačina
2. a=0 –jednačina nije kvadratna
a≠0, potpuna kvadratna jednačina
računamo diskriminantu D=b2-4ac i razmatramo slučajeve
D>0
D=0
rešenja su realna rešenja su realna
i različita
i jednaka
x1 
x2 
b
D
2a
b
2a
D<0
rešenja su
konjugovanokomleksna
x1  x 2  
D
b
x 1  Re  i Im
2a
x 2  Re  i Im
Re  
b
2a
Im 
D
2a
a=0, linearna jednačina bx+c=0
b≠0
jednačina ima jedinstveno
rešenje
x  
1.
c
b
2.
b=0
moguća su dva slučaja
c=0 - jednačina je
neodređena, ima
beskonačno mnogo
rešenja
c≠0 - jednačina je
nemoguća, nema rešenja
Sada se algoritam može izraziti tekstualnim opisom:
Korak 1. Definisati vrednosti ulaznih veličina: a, b i c
Korak 2. Pitati da li je a≠0
DA: 1. Izračunati vrednost diskriminante D=b2-4a*c
2. Pitati da li je D>0
DA: 1. Izračunati x1=(-b+D1/2)/(2*a)
2. Izračunati x2=(-b-D1/2)/(2*a)
3. Definisati rezultate, realna i različita rešenja x1 i x2
NE: 1. Pitati da li je D=0
DA: 1. Izračunati x=-b/(2*a)
2. Definisati dvostruko rešenje x1=x2=x
NE: 1. Izračunati Re=-b/(2*a)
2. Izračunati Im=(-D)1/2/(2*a)
3. Definisati konjugovano kompleksna rešenja
x1=Re+i*Im i x2=Re-i*Im
NE: 1. Pitati da li je b≠0
DA: 1. Izračunati x=-c/b
2. Definisati x- jedinstveno rešenje linearne jednačine
NE: 1. Pitati da li je c=0
DA: 1. Izdati komentar da je jednačina neodređena
NE: 1. Izdati komentar da je jednačinna nemoguća
• Ovo je primer algoritma na prirodnom jeziku.
• Algoritam opisuje operacije ne nad konkretnim
vrednostima, već nad apstraktnim objektima
(njegova formulacija ne zavisi od vrednosti
promenljivih a, b i c).
• Samim tim isti algoritam može se primeniti za
rešavanje bilo koje kvadratne jednačine.
• Kako je tekstualni opis algoritma kod složenijih
problema teško čitljiv, pribegava se preglednijem
grafičkom prikazu algoritma.
• Grafički prikaz algoritma se naziva blok šema ili
algoritamska šema.
U algoritamskoj šemi se koriste sledeći grafički simboli za pojedine
algoritamske korake:
POČETAK
-Definiše početak algoritma
-Definiše ulazne veličine algoritma
-Blok izračunavanja
-Grananje u zavisnosti od nekog uslova
-Definiše izlazne veličine algoritma
KRAJ
-Definiše kraj algoritma
Koristeći ove simbole možemo napraviti grafički opis
algoritma za rešavanje kvadratne jednačine.
POČETAK
a, b, c
NE
a≠0
DA
D=b2-4ac
NE
D>0
x1 
x2 
NE
D=0
DA
 b 
D
2a
 b 
D
x  
2a
2a
x1, x2
KRAJ
DA
DA
b
Re
 
b
2a
Im

x  
x1,2 = Re±iIm
c
b
 D
c=0
NE
DA
2a
x
NE
b≠0
x
∞
0
POČETAK
a, b, c
NE
a≠0
DA
D=b2-4ac
NE
D>0
x1 
x2 
NE
D=0
DA
 b 
D
2a
 b 
D
x  
2a
2a
x1, x2
KRAJ
DA
DA
b
Re
 
b
2a
Im

x  
x1,2 = Re±iIm
c
b
 D
c=0
NE
DA
2a
x
NE
b≠0
x
∞
0
POČETAK
a, b, c
NE
a≠0
DA
D=b2-4ac
NE
D>0
x1 
x2 
NE
D=0
DA
 b 
D
2a
 b 
D
x  
2a
2a
x1, x2
KRAJ
DA
DA
b
Re
 
b
2a
Im

x  
x1,2 = Re±iIm
c
b
 D
c=0
NE
DA
2a
x
NE
b≠0
x
∞
0
POČETAK
a, b, c
NE
a≠0
DA
D=b2-4ac
NE
D>0
x1 
x2 
NE
D=0
DA
 b 
D
2a
 b 
D
x  
2a
2a
x1, x2
KRAJ
DA
DA
b
Re
 
b
2a
Im

x  
x1,2 = Re±iIm
c
b
 D
c=0
NE
DA
2a
x
NE
b≠0
x
∞
0
POČETAK
a, b, c
NE
a≠0
DA
D=b2-4ac
NE
D>0
x1 
x2 
NE
D=0
DA
 b 
D
2a
 b 
D
x  
2a
2a
x1, x2
KRAJ
DA
DA
b
Re
 
b
2a
Im

x  
x1,2 = Re±iIm
c
b
 D
c=0
NE
DA
2a
x
NE
b≠0
x
∞
0
POČETAK
a, b, c
NE
a≠0
DA
D=b2-4ac
NE
D>0
x1 
x2 
NE
D=0
DA
 b 
D
2a
 b 
D
x  
2a
2a
x1, x2
KRAJ
DA
DA
b
Re
 
b
2a
Im

x  
x1,2 = Re±iIm
c
b
 D
c=0
NE
DA
2a
x
NE
b≠0
x
∞
0
POČETAK
a, b, c
NE
a≠0
DA
D=b2-4ac
NE
D>0
x1 
x2 
NE
D=0
DA
 b 
D
2a
 b 
D
x  
2a
2a
x1, x2
KRAJ
DA
DA
b
Re
 
b
2a
Im

x  
x1,2 = Re±iIm
c
b
 D
c=0
NE
DA
2a
x
NE
b≠0
x
∞
0
POČETAK
a, b, c
NE
a≠0
DA
D=b2-4ac
NE
D>0
x1 
x2 
NE
D=0
DA
 b 
D
2a
 b 
D
x  
2a
2a
x1, x2
KRAJ
DA
DA
b
Re
 
b
2a
Im

x  
x1,2 = Re±iIm
c
b
 D
c=0
NE
DA
2a
x
NE
b≠0
x
∞
0
POČETAK
a, b, c
NE
a≠0
DA
D=b2-4ac
NE
D>0
x1 
x2 
NE
D=0
DA
 b 
D
2a
 b 
D
x  
2a
2a
x1, x2
KRAJ
DA
DA
b
Re
 
b
2a
Im

x  
x1,2 = Re±iIm
c
b
 D
c=0
NE
DA
2a
x
NE
b≠0
x
∞
0
POČETAK
a, b, c
NE
a≠0
DA
D=b2-4ac
NE
D>0
x1 
x2 
NE
D=0
DA
 b 
D
2a
 b 
D
x  
2a
2a
x1, x2
KRAJ
DA
DA
b
Re
 
b
2a
Im

x  
x1,2 = Re±iIm
c
b
 D
c=0
NE
DA
2a
x
NE
b≠0
x
∞
0
POČETAK
a, b, c
NE
a≠0
DA
D=b2-4ac
NE
D>0
x1 
x2 
NE
D=0
DA
 b 
D
2a
 b 
D
x  
2a
2a
x1, x2
KRAJ
DA
DA
b
Re
 
b
2a
Im

x  
x1,2 = Re±iIm
c
b
 D
c=0
NE
DA
2a
x
NE
b≠0
x
∞
0
Algoritam je dobar ukoliko ispunjava sledeće
zahteve:
1.
Definisanost-svaka naredba
algoritma je jednoznačno
definisana, nema proizvoljnih i
nejasnih tumačenja
2.
Determinisanost-vrednosti koje
se dobijaju u bilo kom koraku
jednoznačno su određene
vrednostima iz prethodnih
koraka
3.
Izvršivost-svaka naredba je
izvršiva; primer neizvršive
naredbe bio bi: “Promenljivoj X
dodeliti najveći realan broj
manji od 1.”
4.
Masovnost-algoritam
rešava
opštu klasu problema, koji se
razlikuju
samo
po
ulaznim
veličinama. Na primer, umesto
kreiranja algoritma koji rešava
jednačinu x2-2x+1=0 rešen je
opšti slučaj ax2+bx+c=0
5.
Rezultativnost-algoritam
u
konačnom nizu koraka daje
tražene
rezultate
za
sve
slučajeve za koje je kreiran
Jednostavnom proverom možemo utvrditi da naš algoritam
ispunjava sve navedene zahteve. Vežbe radi zapisaćemo
algoritme za rešavanje sledećih problema:
1.
2.
3.
4.
Odrediti min (max) brojeva a i b.
Odrediti min (max) brojeva a, b i c.
Ukoliko je a>b (a<b), zameniti mesta promenljivima a i b.
Za date vrednosti x i y izračunati z po formuli:
z 
5.
min( x , y )  0 , 5
1  max
2
( x, y)
Za dato x izračunati y po formuli:
  5, x  0



 x  1,0  x  1 
y  

 2 x  1 ,1  x  5 


2 x, x  5

Domaći zadatak:
• Zapisati algoritam kojim se rešava sistem od dve linearne
jednačine sa dve nepoznate:
a1x+b1y=c1
a2x+b2y=c2.
• Ako se od odsečaka sa dužinama x,y i z može konstruisati
trougao, izračunati njegovu površinu po formuli:
p
s
s ( s  x )( s  y )( s  z )
x yz
2
K
R
A
J