Instructiunea decizionala

        In general programele de calculator se executa de sus in jos instructiune cu instructiune (secvential). Exista insa si cazuri cind in executia programelor apar ramificatii. Adica anumite instructiuni sau grupuri de instructiuni pot fi executate sau nu in functie de valoarea de adevar a unei expresii. Aceasta ramificare in executia programelor este realizata de instructiunea IF.

        Sintaxa acestei instructiuni este:

        IF (expresie)

                instructiune_1;

        daca "expresie" este adevarata se executa "instructiune_1" in caz contrar nu se executa "instructiune_1" si se trece la executarea urmatoarelor instructiuni din program.

        "expresie" - este o constructie logica care poate fi adevarata sau falsa:

exemplu:

        5>3   - este adevarata;

        1>7   - este falsa;

        2<=5 - este adevarata;

        pentru construirea expresiilor logice se folosesc operatorii logici.

        Operatorii logici sunt:

        >     mai mare;

        <     mai mic;

        >=   mai mare sau egal;

        <=   mai mic sau egal;

        !=    diferit;

        ==   egal;

exemplu de program in care se foloseste instructiunea IF.

Enunt:

        Realizati un program care sa verifice daca un numar introdus de la tastatura este mai mare ca 5.

        #include<iostream.h>

        void main()

        {

                int a;

                cin>>a;

                if(a>5)

                    cout<<"Numarul introdus este mai mare ca 5";

                if(a<5)

                    cout<<"Numarul introdus este mai mic ca 5";

                if(a==5)

                    cout<<"Numarul introdus este egal cu 5";

        }

        Dupa cum se observa in urma rularii programului de mai sus, textul introdus intre ghilimele este tiparit pe ecran adliteram, fara nici o modificare. Astfel daca avem o variabila a care are valoarea 6 si executam instructiunea:

        cout<<"a";   pe ecran va aparea litera "a", pe cind daca executam:

        cout<<a;      pe ecran va aparea valoarea variabile a adica 6;

Exemplu:

        Realizati un program care citeste de la tastatura doua numere intregi si afiseaza pe ecran numerele ordonate crescator.

        #include<iostream.h>

        void main()

        {  int a,b;

           cin>>a;

           cin>>b;

           if(a>b)

                cout<<b<<'  '<<a;

           if(b>a)

                cout<<a<<'  '<<b;

        }

        Dupa cum se observa din programul de mai sus pot fi afisate mai multe variabile pe ecran cu o singura instructiune cout, dar acestea trebuie separate cu simbolul <<  .

       

        Blocul de instructiuni.

        Exista cazuri cind in executia unui program un grup de instructiuni se comporta ca o singura instructiune. Pentru a realiza acest lucru grupul respectiv de instructiuni trebuie inclus intre acolade, si el poarta numele de bloc de instructiuni.  In cadrul unei instructiuni IF de valoarea de adevar a expresiei depinde executare unei singure instructiuni, daca dorim sa depinda mai multe atunci trebuie sa le includem intre acolade, adica sa folosim un bloc de instructiuni.  Folosind blocul de instructiuni putem rescrie programul de mai sus in felul urmator:

        #include<iostream.h>

        void main()

        { int a,b;

          cin>>a;

          cin>>b;

          if(a>b)

          {   cout>>b;

              cout>>'  ';

              cout>>a;

           }

           if(b>a)

           {    cout>>a;

                cout>>'  ';

                cout>>b;

            }

         }

        Forma completa a instructiunii IF.

        In cele prezentate mai sus a fost folosita o forma simplificata a instructiunii IF. Forma completa a acestei instructiuni este urmatoarea:

        if(conditie)

            instructiune_1;

        else 

            instructiune_2;

        si se traduce in felul urmator:

        Daca este adevarata conditia se executa instructiune_1, daca este falsa se executa instructiune_2.

        Folosind forma completa a instructiunii if programul de mai sus poate fi rescris in felul urmator:

                #include<iostream.h>

        void main()

        { int a,b;

          cin>>a;

          cin>>b;

          if(a>b)

          {   cout>>b;

              cout>>'  ';

              cout>>a;

           }

           else

           {    cout>>a;

                cout>>'  ';

                cout>>b;

            }

         }

        De asemenea pot exista instructiuni if incluse unele in altele. Urmariti urmatorul exemplu:

        #include<iostream.h>

        void main()

        { int a;

          cout<<"Introduceti virsta dumneavoastra";

          cin>>a;

          if(a>19)

                   cout<<"Felicitari ati terminat liceul";

          else

                   if(a<15)

                          cout<<"Trebuie sa mai cresteti";

                   else

                          cout<<"Sunteti elev la liceu";

          }

        Ca o regula la cele spuse mai sus, fiecare if poate avea un singur else sau nici unul, iar un else este asociat celui mai apropiat if fara else.