際際滷

際際滷Share a Scribd company logo
Razgranati algoritmi
Za rje邸avanje veine zadataka potrebne su slo転enije programske strukture kod kojih redoslijed izvr邸avanja
naredbi zavisi o vrijednostima podataka koji se obrauju.
Grananje je programska struktura koja omoguuje razliit tok programa, zavisno o rezultatu postavljenog uslova.
To je va転na struktura bez koje bi mogunost rje邸avanja zadataka raunarom bila vrlo ograniena.
Razgranata algoritamska struktura je ona kod koje se svaki korak izvr邸ava jednom ili nijednom. Stvar je
u tome da, kada zadatak zahteva dase neke vrijednosti unesu u promenljive, jednostavno, ne mo転emo da znamo
koje e to vrednosti biti.
Prosto, potreban nam je neki korak pomou koga mo転emo da postavimo pitanje "邸ta ako", ili mo転da tanije "da li
je".
Ovakav korak predstavlja "ravanje" izvr邸avanja programa. U na邸em algoritmu pripremamo dvije odvojene
grane, i zavisno od provjere na "raskrsnici" izvr邸ie se koraci u jednoj ili u drugoj. Zbog toga ka転emo
da se neki koraci izvr邸e jednom, a neki nijednom.
Meutim, 邸ta ako je potrebno imati vi邸e od dvije mogunosti? Tj. 邸ta ako je potrebno da se algoritam odvaja
u vi邸e od dvije grane? Pa, jednostavno - svaku granu uvijek mo転emo ponovo da "ravamo". Takoe,
za specifian tip problema, mo転emo koristiti vi邸estruko grananje.
Naredbe grananja su:
if,
if-else,
if-else if-else,
switch-case.
Jednostruko uslovno grananje
Naredba if omoguava jednostruko uslovnono grananje programa. Uslov je logiki izraz, a upisuje se unutar para
malih zagrada.
Na kraju naredbe if ne stavlja se znak taka zarez (;).
Korak koji slu転i za "ravanje", u sebi sadr転i izraz logikog tipa.
To znai da se u ovom koraku zadaje neki uslov. Njegova vrijednost mo転e biti "tano" (true) ili "netano"
(false).
Najjednostavnija vrsta ovakvog izraza su relacioni izrazi, odnosno uporeivanja.
Blokovi naredbi
Dijelovi programa koji se uslovno izvode, grupi邸u se u skupine ili blokove naredbi. Svaki se blok naredbi ograniava parom
otvorena-zatvorena vitiasta zagrada ({ }).
Ako blok naredbi ima samo jednu naredbu zagrade se mogu izostaviti. Blokovi naredbi se obino pi邸u uvueno zbog
preglednosti.
Primjer bloka naredbi
{
int x;
cout<<endl<<"Upisi cijeli broj u bloku:";
cin>>x;
}
Relacijki operatori
Evo primjera gdje poetnici esto grije邸e.
Potrebno je sastaviti uslov kojim se provjerava da li je vrijednost promjenljive X u intervalu od 0 do 9. Matematiki
je sasvim opravdano napisati:
0 <= X <= 9
Meutim, u programiranju je ovo pogre邸no!
Raunar bi prvo ispitao da li je 0 manje od X, a onda dobijenu vrijednost (true ili false) uporedio sa 9.
U nekim programskim jezicima bi ovo bilo prijavljeno kao gre邸ka, a u nekim bi raunar nastavio da radi, ali bismo
dobili pogre邸an rezultat (true bi prepoznao kao 1, a false kao 0 pa bi to uvek bilo manje od 10). U programiranju bismo
morali da napi邸emo npr. ovakav uslov:
(X >= 0) && (X <= 9)
Dakle, provjeravamo da li va転i da je X vee ili jednako 0 i istovremeno X manje ili jednako 10.
Ova dva uslova povezujemo operatorom AND.
Hajdemo korak dalje.
Recimo da treba ispitati da li je X van ovog intervala. Pazite, kreiranje "obrnutog" uslova nije trivijalan zadatak.
Rje邸enje bi bilo:
(X < 0) || (X > 9)
Znai pitamo da li va転i da je X manje od 0 ili mo転da da je X vee od 9.
Kao 邸to vidimo, ne mo転emo ba邸 samo da "obrnemo znakove". Primeujemo da za povezivanje uslova koristimo
operator OR, koji vraa vrednost "tano" ako je zadovoljen bilo prvi, bilo drugi uslov.
Ako je problem samo "obrtanje" postojeeg uslova, mnogo je lak邸e da koristimo operator NOT:
!((X >= 0) && (X <= 9))
Inae, u razgranatim strukturama mogu uestvovati svi koraci koje smo do sada nauili ( ulaz, izlaz i obrada
podataka), kao i strukture koje emo tek uiti.
Primjer 1: Napi邸i program koji ispituje da li je broj pozitivan ili negativan!
Primjer 2: Napi邸i program koji ispisuje da li je uneseni broj pozitivan, negativan ili nula!

More Related Content

What's hot (20)

Kvadratna funkcija
Kvadratna  funkcijaKvadratna  funkcija
Kvadratna funkcija
Nata邸a ii
Sistemski softver i aplikativni programi
Sistemski softver i aplikativni programiSistemski softver i aplikativni programi
Sistemski softver i aplikativni programi
Jasmina Profil
Softver
SoftverSoftver
Softver
stevkica
Povr邸ina kvadra i kocke
Povr邸ina kvadra i kockePovr邸ina kvadra i kocke
Povr邸ina kvadra i kocke
于舒仆舒 从仂于亳
Harmonijske oscilacije
Harmonijske oscilacijeHarmonijske oscilacije
Harmonijske oscilacije
Danijela Grb
Tvorba rei 2003
Tvorba rei 2003Tvorba rei 2003
Tvorba rei 2003
zeljkotsc
Slu転ba rei
Slu転ba reiSlu転ba rei
Slu転ba rei
于舒仆舒 从仂于亳
Pojam, uloga i razvoj masina i mehanizama
Pojam, uloga i razvoj masina i mehanizamaPojam, uloga i razvoj masina i mehanizama
Pojam, uloga i razvoj masina i mehanizama
Vojka Lazarevic
VIII razred - Sistemi linearnih jednacina sa dve nepoznate
VIII razred - Sistemi linearnih jednacina sa dve nepoznateVIII razred - Sistemi linearnih jednacina sa dve nepoznate
VIII razred - Sistemi linearnih jednacina sa dve nepoznate
mirjanamitic18
Saobracaj
SaobracajSaobracaj
Saobracaj
karlicicboba
Elektrine ma邸ine
Elektrine ma邸ineElektrine ma邸ine
Elektrine ma邸ine
bbilja
Sofrtware operativni sistemi
Sofrtware   operativni sistemiSofrtware   operativni sistemi
Sofrtware operativni sistemi
Jasmina Profil
Elektronska posta
Elektronska postaElektronska posta
Elektronska posta
Nermin Metic
Povrsina paralelograma
Povrsina paralelogramaPovrsina paralelograma
Povrsina paralelograma
NevenaLjujic
Kvadratna funkcija
Kvadratna  funkcijaKvadratna  funkcija
Kvadratna funkcija
Nata邸a ii
Sistemski softver i aplikativni programi
Sistemski softver i aplikativni programiSistemski softver i aplikativni programi
Sistemski softver i aplikativni programi
Jasmina Profil
Softver
SoftverSoftver
Softver
stevkica
Harmonijske oscilacije
Harmonijske oscilacijeHarmonijske oscilacije
Harmonijske oscilacije
Danijela Grb
Tvorba rei 2003
Tvorba rei 2003Tvorba rei 2003
Tvorba rei 2003
zeljkotsc
Pojam, uloga i razvoj masina i mehanizama
Pojam, uloga i razvoj masina i mehanizamaPojam, uloga i razvoj masina i mehanizama
Pojam, uloga i razvoj masina i mehanizama
Vojka Lazarevic
VIII razred - Sistemi linearnih jednacina sa dve nepoznate
VIII razred - Sistemi linearnih jednacina sa dve nepoznateVIII razred - Sistemi linearnih jednacina sa dve nepoznate
VIII razred - Sistemi linearnih jednacina sa dve nepoznate
mirjanamitic18
Elektrine ma邸ine
Elektrine ma邸ineElektrine ma邸ine
Elektrine ma邸ine
bbilja
Sofrtware operativni sistemi
Sofrtware   operativni sistemiSofrtware   operativni sistemi
Sofrtware operativni sistemi
Jasmina Profil
Elektronska posta
Elektronska postaElektronska posta
Elektronska posta
Nermin Metic
Povrsina paralelograma
Povrsina paralelogramaPovrsina paralelograma
Povrsina paralelograma
NevenaLjujic

Razgranate strukture

  • 1. Razgranati algoritmi Za rje邸avanje veine zadataka potrebne su slo転enije programske strukture kod kojih redoslijed izvr邸avanja naredbi zavisi o vrijednostima podataka koji se obrauju. Grananje je programska struktura koja omoguuje razliit tok programa, zavisno o rezultatu postavljenog uslova. To je va転na struktura bez koje bi mogunost rje邸avanja zadataka raunarom bila vrlo ograniena. Razgranata algoritamska struktura je ona kod koje se svaki korak izvr邸ava jednom ili nijednom. Stvar je u tome da, kada zadatak zahteva dase neke vrijednosti unesu u promenljive, jednostavno, ne mo転emo da znamo koje e to vrednosti biti. Prosto, potreban nam je neki korak pomou koga mo転emo da postavimo pitanje "邸ta ako", ili mo転da tanije "da li je". Ovakav korak predstavlja "ravanje" izvr邸avanja programa. U na邸em algoritmu pripremamo dvije odvojene grane, i zavisno od provjere na "raskrsnici" izvr邸ie se koraci u jednoj ili u drugoj. Zbog toga ka転emo da se neki koraci izvr邸e jednom, a neki nijednom. Meutim, 邸ta ako je potrebno imati vi邸e od dvije mogunosti? Tj. 邸ta ako je potrebno da se algoritam odvaja u vi邸e od dvije grane? Pa, jednostavno - svaku granu uvijek mo転emo ponovo da "ravamo". Takoe, za specifian tip problema, mo転emo koristiti vi邸estruko grananje.
  • 2. Naredbe grananja su: if, if-else, if-else if-else, switch-case. Jednostruko uslovno grananje Naredba if omoguava jednostruko uslovnono grananje programa. Uslov je logiki izraz, a upisuje se unutar para malih zagrada. Na kraju naredbe if ne stavlja se znak taka zarez (;). Korak koji slu転i za "ravanje", u sebi sadr転i izraz logikog tipa. To znai da se u ovom koraku zadaje neki uslov. Njegova vrijednost mo転e biti "tano" (true) ili "netano" (false). Najjednostavnija vrsta ovakvog izraza su relacioni izrazi, odnosno uporeivanja.
  • 3. Blokovi naredbi Dijelovi programa koji se uslovno izvode, grupi邸u se u skupine ili blokove naredbi. Svaki se blok naredbi ograniava parom otvorena-zatvorena vitiasta zagrada ({ }). Ako blok naredbi ima samo jednu naredbu zagrade se mogu izostaviti. Blokovi naredbi se obino pi邸u uvueno zbog preglednosti. Primjer bloka naredbi { int x; cout<<endl<<"Upisi cijeli broj u bloku:"; cin>>x; }
  • 5. Evo primjera gdje poetnici esto grije邸e. Potrebno je sastaviti uslov kojim se provjerava da li je vrijednost promjenljive X u intervalu od 0 do 9. Matematiki je sasvim opravdano napisati: 0 <= X <= 9 Meutim, u programiranju je ovo pogre邸no! Raunar bi prvo ispitao da li je 0 manje od X, a onda dobijenu vrijednost (true ili false) uporedio sa 9. U nekim programskim jezicima bi ovo bilo prijavljeno kao gre邸ka, a u nekim bi raunar nastavio da radi, ali bismo dobili pogre邸an rezultat (true bi prepoznao kao 1, a false kao 0 pa bi to uvek bilo manje od 10). U programiranju bismo morali da napi邸emo npr. ovakav uslov: (X >= 0) && (X <= 9) Dakle, provjeravamo da li va転i da je X vee ili jednako 0 i istovremeno X manje ili jednako 10. Ova dva uslova povezujemo operatorom AND. Hajdemo korak dalje. Recimo da treba ispitati da li je X van ovog intervala. Pazite, kreiranje "obrnutog" uslova nije trivijalan zadatak. Rje邸enje bi bilo: (X < 0) || (X > 9) Znai pitamo da li va転i da je X manje od 0 ili mo転da da je X vee od 9. Kao 邸to vidimo, ne mo転emo ba邸 samo da "obrnemo znakove". Primeujemo da za povezivanje uslova koristimo operator OR, koji vraa vrednost "tano" ako je zadovoljen bilo prvi, bilo drugi uslov. Ako je problem samo "obrtanje" postojeeg uslova, mnogo je lak邸e da koristimo operator NOT: !((X >= 0) && (X <= 9))
  • 6. Inae, u razgranatim strukturama mogu uestvovati svi koraci koje smo do sada nauili ( ulaz, izlaz i obrada podataka), kao i strukture koje emo tek uiti. Primjer 1: Napi邸i program koji ispituje da li je broj pozitivan ili negativan!
  • 7. Primjer 2: Napi邸i program koji ispisuje da li je uneseni broj pozitivan, negativan ili nula!