Operatory


1) Operatory arytmetyczne są to:
dodawanie
odejmowanie
mnożenie
dzielenie
reszta z dzielenia (modulo)
jednoargumentowy operator plus (znak liczby dodatniej)
jednoargumentowy operator minus (znak liczby przeciwnej do danej)

#include <cstdlib>;
#include <iostream>;

using namespace std;

int x=32,y=3;
int main(){
   cout<<"dla x=32 i y=3 mamy:";
   cout<<"\nx+y="<<x+y;
   cout<<"\nx-y="<<x-y;
   cout<<"\nx*y="<<x*y;
   cout<<"\nx/y="<<x/y;
   cout<<"\nx%y="<<x%y;
   cout<<"\n-x="<<-x;
   cout<<"\n-y="<<-y<<endl;
   system ("PAUSE");
   return EXIT_SUCCESS;
   }

Program wypisze następujące linie:
dla x=32 i y=3 mamy:
x+y=35
x-y=29
x*y=96
x/y=10
x%y=2
-x=-32
-y=-3
Aby kontynuować, wciśnij enter !

Operatory inkrementacji : x++, ++x (zwiększanie o jeden) i dekrementacji : x--, --x (zmniejszania o jeden), używa się głównie wewnątrz pętli for, while lub do while.
W warunkach pętli for nie ma znaczenia, czy napiszemy i++, czy ++i. Ilość kroków pętli pozostanie taka sama. Wykażemy to na poniższym przykładzie.
#include <cstdlib>;
#include <iostream>;

using namespace std;

int i;
int main(){
   for(i=1;i<=3;i++){
      cout<<"krok "<<i<<endl;
      }
   cout<<"\n";
   for(i=1;i<=3;++i){
      cout<<"krok "<<i<<endl;
      }
   system ("PAUSE");
   return EXIT_SUCCESS;
   }

Na ekranie zobaczymy te same wyniki:
krok 1
krok 2
krok 3

krok 1
krok 2
krok 3
Aby kontynuować, wciśnij enter !


Zapis n++ (n=n+1), można sformułować jako:
dokonaj obliczeń na zmiennej "n", a potem podnieś jej wartość o jeden.
Zapis ++m (m=m+1), można sformułować jako:
zwiększ wartość zmiennej "m" o jeden i na tej nowej wartości dokonaj obliczeń.
Analogicznie jest z dekramentacją.
#include <cstdlib>;
#include <iostream>;

using namespace std;

int m=5,n=5;
int main(){
   cout<<"wartosc \"n\"="<<n<<endl;
   cout<<"wartosc \"n++\"="<<n++<<endl;
   cout<<"wartosc nowego \"n\"="<<n<<endl;
   cout<<"'\nwartosc \"m\"="<<m<<endl;
   cout<<"wartosc \"++m\"="<<++m<<endl;
   cout<<"wartosc nowego \"m\"="<<m<<endl;
   system ("PAUSE");
   return EXIT_SUCCESS;
   }

Na ekranie pojawi się:
wartosc "n"=5
wartosc "n++"=5
wartosc nowego "n"=6

wartosc "m"=5
wartosc "++m"=6
wartosc nowego "m"=6
Aby kontynuować, wciśnij enter !

Operator przypisania (=) przypisuje obiektowi z lewej strony równania wartość znajdującą się po jego prawej stronie. Zapis int x=12 mówi, że zmiennej x, typu całkowitego, nadaje się wartość 12. Inne operatory zostaną zamieszczone poniżej:
x += 3
x -= 3
x *= 3
x /= 3
x %= 3
x >>= 3
x <<= 3
x &= 3
x |= 3
x ^= 3
   co oznacza   
x = x + 3
x = x - 3
x = x * 3
x = x / 3
x = x % 3
x = x >> 3
x = x << 3
x = x & 3
x = x | 3
x = x ^ 3

2) Operatory logiczne powodują zwracanie wartości typu bool (true lub false). Są to:
< mniejszy niż
<= mniejszy lub równy
> większy niż
>= większy lub równy
== jest równy
!= jest różny od

#include <cstdlib>;
#include <iostream>;

using namespace std;

int x=5,y=5;
int main(){
   if(x=y){
      cout<<"znak = oznacza podstawianie za x wartosci y"<<endl;
      }
   if(x==y){
      cout<<"znak == porownuje obie liczby i jezeli sa takie same to zwraca prawde"<<endl;
      }
   system ("PAUSE");
   return EXIT_SUCCESS;
   }

Na ekranie pojawi się:
znak = oznacza podstawianie za x wartosci y
znak == porownuje obie liczby i jezeli sa takie same to zwraca prawde
Aby kontynuować, wciśnij enter !

Operatory sumy logicznej i iloczynu logicznego. Są to:
|| suma logiczna (alternatywa), logiczne LUB
&& iloczyn logiczny (koniunkcja), logiczne I

#include <cstdlib>;
#include <iostream>;

using namespace std;

int x=2;
int main(){
   if(x==2 || x==6){
      cout<<"warunek sumy logicznej jest spelniony, bo x="<<x<<endl;
      }
   if(x==2 && x>0){
      cout<<"warunek iloczynu logicznego jest spelniony, bo x=2"<<endl;
      }
   system ("PAUSE");
   return EXIT_SUCCESS;
   }

Na ekranie pojawi się:
warunek sumy logicznej jest spelniony, bo x=2
warunek iloczynu logicznego jest spelniony, bo x=2
Aby kontynuować, wciśnij enter !

Operator negacji (wykrzyknik) jest operatorem jednoargumentowym. Ma postać: !objekt. Np. !x.
#include <cstdlib>;
#include <iostream>;

using namespace std;

int x;
int main(){
   cout<<"x=";
   cin>>x;
   if(!x){
      cout<<"warunek jest prawdziwy dla x rownego zero"<<endl;
      }
      else{
      cout<<"warunek jest falszywy dla x roznego od zera"<<endl;
      }
   system ("PAUSE");
   return EXIT_SUCCESS;
   }

Na ekranie pojawi się:
x=3
warunek jest falszywy dla x roznego od zera
Aby kontynuować, wciśnij enter !

x=0
warunek jest prawdziwy dla x równego zero
Aby kontynuować, wciśnij enter !

Operatory bitowe pracują na poszczególnych komórkach pamięci, a nie na słowach. W przypadku przesunięć obiekty po obu stronach znaku muszą być typu całkowitego. Są to:
<<
>>
&
|
^
~      
przesunięcie w lewo
przesunięcie w prawo
bitowy iloczyn logiczny (bitowa koniunkcja)
bitowa suma logiczna (bitowa alternatywa)
bitowa różnica symetryczna (bitowe exclusive OR)
bitowa negacja

#include <cstdlib>;
#include <iostream>;

using namespace std;

unsigned short int a=3855,b=4080,w,x,y,z;
int main(){
   cout<<"a=\t\t\t\t"<<a<<endl;
   cout<<"b=\t\t\t\t"<<b<<endl;
   w=a & b;
   cout<<"iloczyn bitowy (a & b)=\t\t"<<w<<endl;
   x=a | b;
   cout<<"suma bitowa (a | b)=\t\t"<<x<<endl;
   y=~a;
   cout<<"negacja bitowa (~a)=\t\t"<<y<<endl;
   z=a ^ b;
   cout<<"roznica symetryczna (a ^ b)=\t"<<z<<endl;   
   system ("PAUSE");
   return EXIT_SUCCESS;
   }
Na ekranie pojawi się:

a=                              3855(10)   0000 1111 0000 1111(2)
b=                              4080      0000 1111 1111 0000
iloczyn bitowy (a & b)=         3840      0000 1111 0000 0000
suma bitowa (a | b)=            4095      0000 1111 1111 1111
negacja bitowa (~a)=            61680     1111 0000 1111 0000
roznica symetryczna (a ^ b)=    255       0000 0000 1111 1111
Aby kontynuować, wciśnij enter !

Wyrażenie warunkowe ma postać: (warunek)? wartosc_1:wartosc_2. Wartosc_1 jest podawana, gdy warunek jest prawdziwy, a druga, gdy jest fałszywy.
#include <cstdlib>;
#include <iostream>;

using namespace std;

float x=-5;
int main(){
   cout<<"x="<<x<<endl;
   (x>=0)? cout<<"x jest nieujemna"<<endl:cout<<"x jest ujemna"<<endl;
   system ("PAUSE");
   return EXIT_SUCCESS;
   }

na ekranie pojawi się:
x=-5
x jest ujemna
Aby kontynuować, wciśnij enter !


do góry