Presentation is loading. Please wait.

Presentation is loading. Please wait.

Višestruko grananje.

Similar presentations


Presentation on theme: "Višestruko grananje."— Presentation transcript:

1 višestruko grananje

2 Višestruko uvjetno grananje
Omogućava ispitivanje više uvjeta. Ovisno o ispunjenju postavljenih uvjeta izvodi se odgovarajući blok naredbi. Sanda, 2019.

3 Višestruko uvjetno grananje
Broj postavljenih uvjeta nije ograničen. Sanda, 2019.

4 Primjer 28 Primjer 26 riješiti višestrukim uvjetnim grananjem.
Sanda, 2019.

5 Primjer 29 Treba upisati prirodni broj pa provjeriti da li je veći ili manji od 100, te da li mu je znamenka jedinice djeljiva s 3. Ako se unese broj manji ili jednak 0, treba ponoviti upis. Ispis neka bude oblika: Upisi prirodan broj: Uneseni broj … je ... od 100, njegova znamenka jedinice ima vrijednost .... Djeljiva je s 3. (ili Nije djeljiva s 3.) ili Pogresan unos. Ponovi! Sanda, 2019.

6 Primjer 29 Sanda, 2019.

7 Primjer 29 Sanda, 2019.

8 #include<iostream> using namespace std; int main() { int a,j,c;
Sanda, 2019. #include<iostream> using namespace std; int main() { int a,j,c; upis:cout<<"Upisi prirodni broj:";cin>>a; if(a<=0) cout<<"Pogresan unos. Ponovi!"<<endl; goto upis; } j=a%10; c=j%3; if (a<100) cout<<"Uneseni broj"<<a<<" je manji od 100, njegova" <<endl<<" znamenka jedinice ima vrijednost "<<j;

9 cout<<endl<<"Unesen je broj 100."<<endl; goto kraj;
Sanda, 2019. else if (a>100) { cout<<"Uneseni broj "<<a<<" je veci od 100, njegova" <<endl<<"znamenka jedinice ima vrijednost "<<j; } else cout<<endl<<"Unesen je broj 100."<<endl; goto kraj; if(c==0) cout<<". Djeljiva je s 3."<<endl; cout<<". Nije djeljiva s 3."<<endl; kraj:return 0;

10 Primjer 29 Provjera programa: Sanda, 2019.

11 Grananje switch-case Omogućava višestruko grananje koje ovisi o vrijednosti postavljenog uvjeta. Uvjet je cjelobrojan izraz ili cjelobrojna varijabla (izračun cjelobrojnog izraza ili vrijednost cjelobrojne varijable je cijeli broj - cjelobrojna konstanta). Sanda, 2019.

12 Grananje switch-case Sanda, 2019.

13 Grananje switch-case Vrijednost se uvjeta uspoređuje s nizom zadanih cjelobrojnih konstanti: konst1, konst2, konst3, itd. Ako je vrijednost uvjeta jednaka nekoj od zadanih konstanti, izvršava se pripadajući blok naredbi. Sanda, 2019.

14 Grananje switch-case Po izvršenju bloka naredbi (kao primjer uzet je prvi blok), naredba break označava izlaz iz bloka switch‑case. Ako vrijednost uvjeta nije jednaka niti jednoj od ponuđenih konstanti, izvršava se blok naredbi pridružen naredbi default. U slučaju izostavljanja naredbe default program će nastaviti izvršavanje prvom naredbom nakon switch‑case bloka. Sanda, 2019.

15 Primjer 30 Treba izračunati ukupni otpor za otpore R1 i R2, ovisno o tome da li su spojeni serijski ili paralelno. Za odabir serijskog spoja korisnik upisuje 1, a za paralelu 2. Ako korisnik upiše broj koji nije 1 ili 2 valja ispisati upozorenje. Otpor R1 (u omima): Otpor R2 (u omima): Za serijski spoj otpora upisi 1, a za paralelni 2: Ako se otpori od ... oma i ... oma spoje u ... ukupni je otpor ... oma. ili Pogrešan unos! Unesi 1 ili 2! Sanda, 2019.

16 Primjer 30 Sanda, 2019.

17 #include<iostream>
Sanda, 2019. #include<iostream> using namespace std; int main() { float R, R1,R2; int unos; cout<<"Otpor R1 (u omima):“;cin>>R1; cout<<"Otpor R2 (u omima):“;cin>>R2; cout<<"Za spoj otpora u seriju upisi 1, a za paralelu 2:"; cin>>unos; switch (unos) case 1: R=R1+R2; cout<<"Ako se otpori od "<<R1<<" oma i "<<R2 <<" oma spoje u seriju ukupni je otpor " <<R<<" oma."<<endl; break;

18 cout<<"Ako se otpori od "<<R1<<" oma i "
Sanda, 2019. case 2: R=(R1*R2)/(R1+R2); cout<<"Ako se otpori od "<<R1<<" oma i " <<R2 <<" oma spoje u paralelu ukupni \ je otpor "<<R<<" oma."<<endl; break; default: cout<<"Pogresan unos. Unesi 1 ili 2"; } return 0;

19 Primjer 30 Provjera programa: Sanda, 2019.

20 Primjer 31 Program na osnovu unesenog rednog broja mjeseca ispisuje koliko taj mjesec ima dana. U slučaju unosa broja koji nije iz raspona od 1 do 12 treba ispisati upozorenje. Upisi redni broj mjeseca: ... . mjesec ima 31 dan. ili ... . mjesec ima 30 dana. 2. mjesec ima 28 dana (ili 29 ako je godina prestupna). Ne postoji mjesec s rednim brojem …. Sanda, 2019.

21 Primjer 31 Zadatak se rješava switch - case naredbom.
Uneseni broj je uvjet koji se provjerava naredbom switch. Potrebno je načiniti tri grane (31, 30 i 28 dana). U slučaju unosa broja koji nije iz raspona od 1 do 12 izvršit će se blok naredbi iza naredbe default. Sanda, 2019.

22 Primjer 31 Sanda, 2019.

23 #include<iostream> using namespace std; int main() { int i;
Sanda, 2019. #include<iostream> using namespace std; int main() { int i; cout<<" Program na osnovu unesenog rednog broja \ mjeseca ispisuje koliko taj mjesec ima dana"<<endl; cout<<"Upisi redni broj mjeseca: "; cin>>i;

24 cout<<i<<". mjesec ima 30 dana."<<endl; break;
Sanda, 2019. switch (i) { case 4: case 6: case 9: case 11: cout<<i<<". mjesec ima 30 dana."<<endl; break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: cout<<i<<". mjesec ima 31 dan."<<endl; case 2: cout<<i<<". mjesec ima 28 dana (ili 29 ako \ je godina prestupna)."<<endl; default: cout<<"Ne postoji mjesec s rednim brojem "<<i; } return 0;

25 Sanda, 2019.

26 Primjer 32 Program na osnovu unesenih vrijednosti stranica trokuta računa opseg ili površinu trokuta, ovisno o želji korisnika. Prije proračuna treba provjeriti da li su unesene vrijednosti doista stranice trokuta. Ako nisu, po upisu upozorenja treba ponoviti unos. Za izračun opsega upisuje se 1, a za površinu 2. Ako se unese vrijednost koja nije 1 ili 2, po upisu upozorenja treba ponoviti unos. Sanda, 2019.

27 Primjer 32 a= b= c= Za izracun opsega upisi 1, a za izracun povrsine 2: Opseg trokuta je O= .... ili Povrsina trokuta je P= ... To nisu stranice trukuta! Ponovi upis! Pogresan unos! Valja unijeti 1 ili 2! Sanda, 2019.

28 Primjer 32 Da bi unesene vrijednosti bile stranice trokuta, trebaju biti zadovoljeni uvjeti: Površina se računa po Heronovoj formuli: Sanda, 2019.

29 Sanda, 2019.

30 Sanda, 2019.

31 #include<iostream> #include<cmath> using namespace std;
Sanda, 2019. #include<iostream> #include<cmath> using namespace std; int main() { cout<<"Program na osnovu unesenih vrijednosti \ stranica trokuta racuna opseg ili povrsinu, ovisno\ o zelji korisnika"<<endl; float a,b,c,o,p,p1,pov; int i; upis:cout<<"a = "; cin>>a; cout<<"b = "; cin>>b; cout<<"c = "; cin>>c;

32 if((a+b<=c)||(b+c<=a)||(c+a<=b)) {
Sanda, 2019. if((a+b<=c)||(b+c<=a)||(c+a<=b)) { cout<<" Unesene vrijednosti nisu stranice trokuta." <<endl; goto upis; } odabir:cout<<"Za izracun opsega upisi 1, za povrsinu 2:"; cin>>i; switch(i) case 1: o=a+b+c; cout<<"Opseg trokuta je O= "<<o<<endl; break;

33 cout<<"Povrsina se racuna po Heronovoj formuli"; p=(a+b+c)/2;
Sanda, 2019. case 2: cout<<"Povrsina se racuna po Heronovoj formuli"; p=(a+b+c)/2; p1=p*((p-a)*(p-b)*(p-c)); pov=sqrt(p1); cout<<" Povrsina trokuta je P= "<<pov<<endl; break; default: cout<<" Pogresan unos. Valja unijeti 1 ili 2! " <<endl; goto odabir; } return 0;

34 Primjer 32 Provjera programa: Sanda, 2019.


Download ppt "Višestruko grananje."

Similar presentations


Ads by Google