16.1.2012 dvije godine postojanja naših stranica

Programiranje C++‎ > ‎Grananje‎ > ‎

Višestruko uvjetno grananje

Višestruko uvjetno grananje omogućava ispitivanje više uvjeta. Ovisno o ispunjenju postavljenih uvjeta izvodi se odgovarajući blok naredbi.
 
  • Ako je vrijednost prvog uvjeta logička istina (true, 1), izvodi se prvi blok naredbi. Nakon njegova završetka izvođenje se nastavlja od prve naredbe iza zadnjeg bloka naredbi. Ako je vrijednost prvog uvjeta logička neistina (false, 0), provjerava se drugi uvjet.
  • Ako je vrijednost drugog uvjeta logička istina (true, 1), izvodi se drugi blok naredbi. Nakon njegova završetka izvođenje se nastavlja od prve naredbe iza zadnjeg bloka naredbi. Ako je vrijednost drugog uvjeta logička neistina (false, 0), provjerava se treći uvjet.
  • Provjere se tako redom nastavljaju sve do naredbe else. Ako do tada niti jedan od uvjeta nije imao vrijednost logičke istine (true, 1), izvršit će se zadnji blok naredbi koji se nalazi iza naredbe else.

 

 

 

 

Zadatak:

Treba unijeti koeficijente linearne jednadžbe, pa ovisno o njihovim vrijednostima izračunati i ispisati iznos varijable x. U slučaju da je vrijednost jednog od koeficijenata 0, ispisati odgovarajuća upozorenja.

Ispis neka bude oblika:

 

Upisi koeficijent a:

Upisi koeficijent b:

Ako je a=0, jednadzba 0*x+...=0 nema rjesenje.

ili

Ako je b=0 rjesenje jednadzbe ..*x+0=0 :

x=0.

ili

Rjesenje jednadzbe ...*x+. .=0 :

x=...

Rješenje:

 

#include<iostream>

using namespace std;

int main()

{

     float a,b,x;

     cout<<"Upisi koeficijent a:";

     cin>>a;

     cout<<"Upisi koeficijent b:";

     cin>>b;

     if(a==0)

     {

         cout<<"Ako je a=0, jednadzba "<<a<<"*x+("<<b<<")=0 nema rjesenje." <<endl;

     }

     else if(b==0)

     {

         cout<<"Ako je b=0, rjesenje jednadzbe "<<a<<"*x+("<<b<<")=0:"<<endl;

         cout<<"x=0"<<endl;

     }

     else

     {

          x=-b/a;

          cout<<"Rjesenje jednadzbe "<<a<<"*x+("<<b<<")=0:"<<endl;

          cout<<"x= "<<x<<endl;

     }

     return 0;

}

 

Provjera za unos vrijednosti 6 i 18:

 

Upisi koeficijent a: 6

Upisi koeficijent b: 18

Rjesenje jednadzbe 6*x+(18)=0 :

x=-3

 

 

 

Ugnježđivanjem naredbi if može se ispitivati više različitih uvjeta. Ugnijezditi if naredbe znači smjestiti jednu if naredbu unutar druge. Sljedeći zadatak pokazuje takav primjer.

 

 

Zadatak:

Treba upisati prirodni broj, a zatim provjeriti je li uneseni broj veći, manji ili jednak 100, te je li paran ili neparan.

Ispis neka bude oblika:

 

Upisi prirodni broj:

Uneseni broj ... je ... od 100. Paran je. (ili Neparan je.)

 

Zadatak je riješen s pomoću ugniježđenih naredbi if. Vanjski blok naredbi if provjerava je li broj veći, manji ili jednak 100. Unutarnji blokovi naredbi if (neovisno o tome je li broj veći ili manji od 100) provjeravaju parnost broja.

 

Rješenje:

 

#include<iostream>

using namespace std;

int main()

{

     int a;

     cout<<"Upisi prirodni broj:";

     cin>>a;

     if (a==100)

          cout<<"Unesen je broj 100. Paran je."<<endl;

     else if (a<100)

     { 

          cout<<"Uneseni broj "<<a<<" je manji od 100.";

          if (a%2==0)

                cout<<" Paran je."<<endl;

          else

                cout<<" Neparan je."<<endl;

     }

     else

     {

          cout<<"Uneseni broj "<<a<<" je veci od 100.";

          if (a%2==0)

                cout<<" Paran je."<<endl;

          else

                cout<<" Neparan je."<<endl;

     }

     return 0;

}

 

Provjera za unos vrijednosti 875:

 

Upisi prirodni broj: 875

Uneseni broj 875 je veci od 100 i neparan je.