STRUKTURA GRANANJA UVOD PROGRAMSKA STRUKTURA GRANANJA Omoguuje razliit

  • Slides: 27
Download presentation
STRUKTURA GRANANJA UVOD

STRUKTURA GRANANJA UVOD

PROGRAMSKA STRUKTURA GRANANJA § Omogućuje različit tijek programa, ovisno o rezultatu postavljenog uvjeta. Sanda,

PROGRAMSKA STRUKTURA GRANANJA § Omogućuje različit tijek programa, ovisno o rezultatu postavljenog uvjeta. Sanda, 2020. 2

BLOK NAREDBI § Dijelovi programa koji se izvode uvjetno, grupiraju se u blokove naredbi.

BLOK NAREDBI § Dijelovi programa koji se izvode uvjetno, grupiraju se u blokove naredbi. § Omeđuju se parom vitičastih zagrada. § Zbog preglednosti, pišu se uvučeno. Zagrade se mogu izostaviti ako se blok sastoji od jedne naredbe! Sanda, 2020. 3

LOKALNE VARIJABLE § Treba deklarirati cjelobrojnu varijablu x unutar zasebnog bloka, pa joj pridružiti

LOKALNE VARIJABLE § Treba deklarirati cjelobrojnu varijablu x unutar zasebnog bloka, pa joj pridružiti vrijednost. Potom, valja pokušati ispisati vrijednost varijable x u glavnoj funkciji. Upisi cijeli broj u bloku: Vrijednost varijable iz bloka x=. . Sanda, 2020. 4

LOKALNE VARIJABLE BLOK Sanda, 2020. 5

LOKALNE VARIJABLE BLOK Sanda, 2020. 5

LOKALNE VARIJABLE § Pri pokušaju prevođenja javit će se pogreška. § Varijabla deklarirana unutar

LOKALNE VARIJABLE § Pri pokušaju prevođenja javit će se pogreška. § Varijabla deklarirana unutar bloka, lokalna varijabla, vidljiva je samo unutar tog bloka. U glavnoj funkciji ona ne postoji. Sanda, 2020. 6

NAREDBE GRANANJA § Programska struktura grananja može se ostvariti naredbama: § if (jednostruko uvjetno

NAREDBE GRANANJA § Programska struktura grananja može se ostvariti naredbama: § if (jednostruko uvjetno grananje) § if – else (dvostruko uvjetno grananje) § if – else (višestruko uvjetno grananje) § switch – case (višestruko uvjetno grananje). Sanda, 2020. 7

PRIMJER 26 § Korisnik unosi dva broja, a zatim se određuje i ispisuje veći

PRIMJER 26 § Korisnik unosi dva broja, a zatim se određuje i ispisuje veći broj. U slučaju unosa istih brojeva, ispisuje se odgovarajuća poruka. Upisi dva broja: Uneseni su brojevi … i …. Veci je …. ili Brojevi su jednaki. Sanda, 2020. 8

JEDNOSTRUKO UVJETNO GRANANJE § Omogućava izvršenje bloka naredaba samo ako je zadani uvjet ispunjen.

JEDNOSTRUKO UVJETNO GRANANJE § Omogućava izvršenje bloka naredaba samo ako je zadani uvjet ispunjen. § Ako uvjet nije ispunjen, izvršava se prva naredba nakon bloka. Sanda, 2020. 9

JEDNOSTRUKO UVJETNO GRANANJE - IF § Za jednostruko uvjetno grananje rabi se naredba if.

JEDNOSTRUKO UVJETNO GRANANJE - IF § Za jednostruko uvjetno grananje rabi se naredba if. § Uvjet je logički izraz, zapisuje se unutar para okruglih zagrada. § Na kraju naredbe if Sanda, 2020. ne stavlja se znak ; 10

PRIMJER 26 A § Primjer 26 riješiti jednostrukim uvjetnim grananjem. 0 0 Sanda, 2020.

PRIMJER 26 A § Primjer 26 riješiti jednostrukim uvjetnim grananjem. 0 0 Sanda, 2020. 11

#include<iostream> Sanda, 2020. using namespace std; int main() { float a, b; cout<<"Upisi dva

#include<iostream> Sanda, 2020. using namespace std; int main() { float a, b; cout<<"Upisi dva broja: "<<endl; cin>>a>>b; if(a==b) cout<<"Brojevi su jednaki. "<<endl; if(a>b) { cout<<"Uneseni su brojevi "<<a<<" i "<<b <<endl<<"Veci je "<<a<<endl; } if(a<b) { cout<<"Uneseni su brojevi "<<a<<" i "<<b <<endl<<"Veci je "<<b<<endl; } return 0; } 12

PRIMJER 26 A § Za (a<b): § Za (a==b): Sanda, 2020. 13

PRIMJER 26 A § Za (a<b): § Za (a==b): Sanda, 2020. 13

DVOSTRUKO UVJETNO GRANANJE § Omogućava da se ovisno o ispunjenju postavljenog uvjeta izvodi jedan

DVOSTRUKO UVJETNO GRANANJE § Omogućava da se ovisno o ispunjenju postavljenog uvjeta izvodi jedan od dva neovisna bloka naredbi. Sanda, 2020. 14

DVOSTRUKO UVJETNO GRANANJE § Za dvostruko uvjetno grananje rabi se naredba if - else.

DVOSTRUKO UVJETNO GRANANJE § Za dvostruko uvjetno grananje rabi se naredba if - else. Sanda, 2020. 15

PRIMJER 26 B § Primjer 26 riješiti dvostrukim uvjetnim grananjem. Sanda, 2020. 16

PRIMJER 26 B § Primjer 26 riješiti dvostrukim uvjetnim grananjem. Sanda, 2020. 16

PRIMJER 26 B § Za (a>b): § Ako uvjet nije ispunjen (else): Sanda, 2020.

PRIMJER 26 B § Za (a>b): § Ako uvjet nije ispunjen (else): Sanda, 2020. 17

PRIMJER 26 B - POGREŠKA § Što ako korisnik unese dva ista broja? Rezultat

PRIMJER 26 B - POGREŠKA § Što ako korisnik unese dva ista broja? Rezultat neće biti ispravan: § Kako izbjeći ovu situaciju? Trebalo bi po ispisu poruke o tom da su brojevi jednaki, program završiti. Sanda, 2020. 18

NAREDBA GOTO § goto – omogućava nastavak odvijanja programa od odabrane naredbe. § Naredba

NAREDBA GOTO § goto – omogućava nastavak odvijanja programa od odabrane naredbe. § Naredba na koju se želi skočiti, tj. od koje se želi nastaviti odvijanje programa, može biti bilo gdje u programu. Treba biti označena oznakom iza koje dolazi znak dvotočke. Sanda, 2020. 19

PRIMJER 26 C § Popraviti primjer 26 B uporabom naredbe goto. Sanda, 2020. 20

PRIMJER 26 C § Popraviti primjer 26 B uporabom naredbe goto. Sanda, 2020. 20

GOTO § Čestom uporabom naredbe goto teško je slijediti tijek odvijanja programa što otežava

GOTO § Čestom uporabom naredbe goto teško je slijediti tijek odvijanja programa što otežava otkrivanje pogrešaka. § Naredbu goto stoga treba izbjegavati i nastojati zadatak rješiti na drugi način, pomoću petlji koje će biti objašnjene kasnije. Sanda, 2020. 21

IF – ELSE KRATKI OBLIK § Ako su uvjet i naredbe uvjetnih blokova kratki,

IF – ELSE KRATKI OBLIK § Ako su uvjet i naredbe uvjetnih blokova kratki, umjesto if - else naredbi može se koristiti skraćeni oblik zapisa. (Koristi se kada uvjet i naredbe blokova stanu u jedan redak. ) Sanda, 2020. 22

IF – ELSE KRATKI OBLIK § Ako se primijeni kratki oblik zapisa, rješenje dijela

IF – ELSE KRATKI OBLIK § Ako se primijeni kratki oblik zapisa, rješenje dijela primjera 26. (zanemarena je mogućnost unosa dva jednaka broja) moglo bi izgledati ovako: Sanda, 2020. 23

PRIMJER 27 § Treba unijeti cijeli broj. Ako je broj paran, treba ispisati njegov

PRIMJER 27 § Treba unijeti cijeli broj. Ako je broj paran, treba ispisati njegov sljedbenik, a ako je neparan, treba ispisati njegov prethodnik. Upisi cijeli broj : Broj. . . je paran. Njegov sljedbenik je. . Broj … je neparan. Njegov prethodnik je …. Sanda, 2020. 24

PRIMJER 27 Sanda, 2020. 25

PRIMJER 27 Sanda, 2020. 25

Sanda, 2020. #include <iostream> #include <cmath> using namespace std; int main () { int

Sanda, 2020. #include <iostream> #include <cmath> using namespace std; int main () { int a; cout<<"Upisi cijeli broj: "; cin>>a; if (a%2==0) { cout<<"Broj "<<a<<" je paran. Njegov sljedbenik je " <<a+1<<endl; } else { cout<<"Broj "<<a<<" je neparan. Njegov prethodnik je" <<a-1<<endl; } return 0; } 26

PRIMJER 27 § Provjera programa: Sanda, 2020. 27

PRIMJER 27 § Provjera programa: Sanda, 2020. 27