Структури Избор

Структура  избор од две можности    

Структурата  избор од две можности (разгранета структура) овозможува различен тек на програмата зависно од  поставениот услов. Ако изразот во условот е точен (1) тогаш ќе се изврши некоја наредба, а ако изразот не е точен (0) таа наредба нема да се изврши, може но не мора да се изврши друга наредба. 

Разгранувањето може да биде еднократно и двократно.

Еднократно разгранување 

Наједноставниот исказ за овозможување на условно извршување е исказот if:
     if (uslov)
        naredba;
Притоа, наредбата naredba се извршува единствено доколку е задоволен условот uslov.




Пример 

#include <iostream>
using namespace std;
int main()
{
int x = 4;
if (x) //if(x!=0)
{
cout << "x ne e ednakov na 0!" << endl;
}
return 0;
}


Двократно разгранување 

Ако  условот е исполнет ќе се изврши една (или блок наредби)  наредба, во спротивно таа наредба нема да се изврши туку ќе се изврши друга наредба ( или блок наредби).     
       if (uslov)
            naredba1;
        else
            naredba2;




Пример 
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
if (n > 0)
cout << "Vnesen e pozitiven broj!" << endl;
else if (n < 0)
cout << "Vnesen e negativen broj!" << endl;
else
cout << "Vnesen e brojot 0!" << endl;
return 0;
}

Што ќе се прикаже по извршување на следниот код 
1.
#include <iostream>
using namespace std;
int main()
{   int x=2;
      if (x==x*1);
      x=2;
      if (x==2)
      x=x-3;
      else 
      x=x+8.3;
      cout<<"x= "<<x;
    return 0;
}
2.
#include <iostream>
using namespace std;
int main()
{
    int a,b,c,d, minuti;
    cin>>a>>b>>c>>d;
    int cas = a+c;
    if(b+d>59){
        cas++;
        minuti = b+d-60;
    }
    else
        minuti = b+d;
   if (cas >24) cas = cas -24;     
    cout<<cas<<":"<<minuti;
    return 0;
}

Напиши програма за следниот алгоритам 
Блок од наредби

Блок претставува група од наредби. Блоковите започнуваат со симболот '{', содржат група од наредби и завршуваат со симболот '}'. Наредбите во блокот се одделуваат како и сите останати наредби (со помош на симболот ';'). Блоковите може да се сместуваат еден во друг - еден блок може да се стави во внатрешноста на друг блок, кој пак е сместен во трет блок, итн..

#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
if (n < 10)
{
cout << "Vnesen e brojot " << n << endl;
cout << "Ovoj broj e pomal od 10." << endl;
} else
{
//eden blok moze da sodrzi i samo edna naredba
cout << "Ne vnesovte broj pomal od 10." << endl;
}
return 0;
}

Структура избор од повеќе можност  - Наредба switch

Управувачката структура switch овозможува условно извршување на група од наредби зависно од вредноста на одреден израз. Во продолжение е дадена синтаксата на оваа управувачка структура:

switch (izraz)
{
     case konstanta1:
             naredba1-1;
             naredba1-2;
             ...
             break;
     case konstanta2:
             naredba2-1;
             ...
             break;
     ...
     default:
             naredbaD-1;
             naredbaD-2;
             ...
}

#include <iostream>
using namespace std;
int main()
{
char ch;
cin >> ch;
switch (ch)
{
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
cout << "Vnesovte samoglaska." << endl;
break;
default:
cout << "Ne vnesovte samoglaska." << endl;
}
return 0;
}


#include <iostream>
using namespace std;
int main()
{ int a,b,c;
cout<<"Vnesi tri broja ";
cin>> a>>b>>c;
if(a>b) swap(a,b);
if(a>c) swap (a,c);
f(b>c) swap (b,c);
cout<<"Podredeni broevite se :"<<a<< " "<<b<<" "<<c<<endl;
return 0;
}




Задачи 

1. Дадени се 3 броја. Да се подредат по големина
2. Да се најде најголемиот од 3 дадени броја 
3. Дали даден број е парен или не
4. Да се внесат два броја и да се изврши една аритметичка операција ( +, -, * , / )
5.  Програма за прикажување на oпштиот успех на ученикот. 

( со структура if-else I switch) 

6. Провери дали даден трицифрен број е палиндром

7. Во даден n цифрен број, отфрли ја цифрата која се наоѓа на местото на десетки и прикажи го новиот број.

8. Пресметај го збирот на цифрите на даден трицифрен природен број.

9. Да се соберат само позитивните вредности на броевите a,b,c.

10. Дадени се три цели броја а,b,c. Да се најде најголемата сума на два од нив.



No comments: