Operator przypisania i operatory arytmetyczne

Czym są operatory

Operatory w C++ pełnią funkcję podobną jak operatory w matematyce. Umożliwiają one po prostu przeprowadzanie różnych działań na zmiennych. Samych grup operatorów jest co najmniej kilka, dlatego czas je poznać, bowiem bez nich dalsza nauka języka nie będzie możliwa.

Najważniejszy operator - operator przypisania

Jednym z najważniejszych operatorów w języku C++ jest operator przypisania. Operator ten umożliwia przypisywanie wartości danej zmiennej.


=     operator przypisania (to nie jest operator równości!)

Zwróć uwagę na zapis - operator ten przypomina matematyczny operator równości, ale to nie jest operator równości, tylko operator przypisania. Warto też zastanowić się jak wygląda sama operacja przypisania.


Otóż, aby dokonać przypisania, po lewej stronie operatora musimy mieć zmienną. Po prawej stronie możemy natomiast mieć zmienną, jakąś liczbę, znak lub napis (czyli tzw. literał) albo wyrażenie (na przykład sumę dwóch liczb, różnicę zmiennej i liczby itp.).

Oto przykładowy program demonstrujący użycie operatora przypisania:

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
  int liczba;
  string napis;
  char znak;
 
  liczba=45; // operator przypisania dla liczby
  napis="Ala ma kota"; // operator przypisania dla napisu
  znak='c'; //operator przypisania dla znaku
 
  cout <<"Oto wartosci zmiennych: "<<liczba<<' '<<napis<<' '<<znak<<endl<<endl;
  cout <<"Podaj wartosc liczby: ";
  cin >>liczba;
  cin.ignore();
 
  cout <<"Wpisz jakis napis (bez bialych znakow): ";
  cin >>napis;
  cin.ignore();
 
  cout <<"Podaj znak: ";
  cin >>znak;
  cin.ignore();
 
  cout <<"Oto wartosci zmiennych: "<<liczba<<' '<<napis<<' '<<znak<<endl<<endl;
 
  cout <<"Nacisnij ENTER aby zakonczyc"<<endl;
  getchar();
  return 0;
}
program nr 7.1

Jak widzisz operator przypisania możemy zastosować do różnych typów danych. W przykładowym programie, zastosowaliśmy go zarówno dla liczby (tutaj dla typu int, ale mógł to być dowolny typ liczbowy), dla znaku oraz napisu.

Operatory arytmetyczne

Kolejną grupę stanowią operatory arytmetyczne. Operatory te działają jak znane z matematyki operatory. Oto lista dostępnych operatorów arytmetycznych:


+   operator dodawania
-    operator odejmowania
*   operator mnożenia
/    operator dzielenia
%   operator reszty z dzielenia (zwany operatorem modulo)
+   operator znaku liczby (np. +3). Liczba domyślnie jest zawsze dodatnia.
-    operator znaku liczby (np. -45, -5.678)


Większość z wyżej wymienionych operatorów arytmetycznych działa tylko i wyłącznie dla typów liczbowych. Niektóre z operatorów działają również na typie znakowym czy napisowym, ale na razie załóżmy, że tych operatorów będziemy używać wyłącznie dla typów liczbowych.


Warto zwrócić na uwagę, na operator reszty z dzielenia %. Operator ten zwraca resztę z dzielenia, czyli np. 10%3 da nam wynik 1, 5%5 da nam wynik 0, 3%5 da nam wynik 3. Aby stosować ten operator, po jego obu stronach musimy mieć liczby całkowite dodatnie. Na przykład dla operacji 5%-5 wynik operacji jest nieokreślony.


Zastosowanie operatorów arytmetycznych jest bardzo duże. Z punktu widzenia składni języka, poprawne będą następujące wyrażenia:

2 + 3
2 * 3 - 5
2 + 6 + 8 + 10
2 / 3 * 2

Jak więc widzisz, można wykonywać bez problemu operacje matematyczne nawet dla większej grupy liczb. To, w jakiej kolejności będą wykonywane działania, zależy od priorytetów operatorów. Akurat w przypadku operatorów arytmetycznych, priorytety operatorów są takie same, jak to wiesz z lekcji matematyki.


Oto przykładowy program pokazujący zastosowanie operatorów arytmetycznych. Od teraz w wielu przykładowych programach, danych nie będziemy już pobierać z klawiatury. Będziemy stosować przypisanie za pomocą operatora przypisania. Jedynym celem takiego zabiegu jest skrócenie kodów programów - wynik działania pozostanie ten sam.


#include <iostream>

using namespace std;

int main()
{
  int liczba1;
  int liczba2;
  double liczba3;
  double liczba4;
 
  liczba1=14;
  liczba2=6;
  liczba3=56.78;
  liczba4=22.11;
 
  cout <<liczba1<<' '<<liczba2<<' '<<liczba3<<' '<<liczba4<<endl;
  cout <<"Suma dwoch liczb: "<<liczba1+liczba2<<endl;
  cout <<"Roznica dwoch liczb: "<<liczba2-liczba3<<endl;
  cout <<"Reszta z dzielenia: "<<liczba1%liczba2<<endl;
 
  liczba1=liczba1%liczba2; // zmiana wartosci zmiennej liczba1
  cout <<liczba1<<' '<<liczba2<<' '<<liczba3<<' '<<liczba4<<endl;
 
  liczba3=liczba4-liczba1+liczba2; //zmiana wartosci zmiennej liczba3
  cout <<liczba1<<' '<<liczba2<<' '<<liczba3<<' '<<liczba4<<endl;
 
  cout <<"Suma wszystkich liczb: "<<liczba1+liczba2+liczba3+liczba4<<endl;
  cout <<"Inne: "<<liczba1*liczba2+liczba3/liczba4-liczba2*liczba4<<endl;
  cout <<liczba1<<' '<<liczba2<<' '<<liczba3<<' '<<liczba4<<endl;
 
  cout <<endl<<"Nacisnij ENTER aby zakonczyc"<<endl;
  getchar();
  return 0;
}
program nr 7.2

Jak więc widzisz w powyższym programie zastosowaliśmy poznane operatory. Można było zaobserwować, że rzeczywiście można uzyskać bardzo różne wyniki.


Jednak najciekawszą sprawą jest tutaj możliwość zmiany wartości zmiennej. W linijkach opatrzonych komentarzami, dzięki zastosowaniu operatorów arytmetycznych oraz co ważniejsze operatora przypisania, zmieniamy wartość zmiennej.


Zmiana wartości zmiennej w oparciu o nią samą

Dość często w programach zdarza się, że chcemy np. dodać do obecnej zmiennej typu liczbowego pewną wartość lub wyrażenie. Np. dla zmiennej o nazwie liczba, zwiększenie jej wartości o 2 uzyskujemy pisząc:

liczba=liczba+2;

Co prawda sam zapis może na początku trochę dziwny, jednak można go dosłownie przetłumaczyć sobie tak: nowej wartości zmiennej liczba przypisz sumę obecnej wartości tej zmiennej i liczby 2.


Tego typu operacje wykonywane są bardzo często. Oprócz chęci dodania do zmiennej danej wartości lub wyrażenia, możemy chcieć zastosować również odejmowanie, mnożenie, dzielenie czy przypisanie reszty z dzielenia.


W związku z tym, że tego typu operacje wykonywane są w języku C++ naprawdę bardzo często, została stworzona specjalna grupa operatorów, która umożliwia szybsze zapisanie wykonywanej operacji w oparciu o już istniejącą wartość zmiennej. Grupą tą są złożone operatory przypisania.


Oto najważniejsze złożone operatory przypisania:

+=   zmienna += 2 to to samo co zmienna = zmienna + 2
-=   zmienna -= 2 to to samo co zmienna = zmienna - 2
*=   zmienna *= 2 to to samo co zmienna = zmienna * 2
/=   zmienna /= 2 to to samo co zmienna = zmienna / 2
%=  zmienna %= 2 to to samo co zmienna = zmienna % 2

Dzięki stosowaniu powyższych operatorów, możesz w znacznie prostszy sposób zapisywać pewne operacje, co w rezultacie doprowadzi do zaoszczędzenia Twojego cennego czasu.


Podsumowanie

W tej lekcji przedstawiłem podstawowe operatory stosowane w języku C++. Operatorów takich jest znacznie więcej. Kontynuacja tematyki dotyczącej operatorów znajduje się w następnej lekcji.

powrót