Na wstepie powiem ogólnie co to są operatory. Najogólniej rzecz biorąc są to polecenia, które wykonują jakieś czynności. Niestety to kolejna lekcja typu "muszę wykuć na pamięć", ale w dziale download można znaleźć małą ściągę. Żeby nie zanudzać przejdźmy do podziału operatorów.

Operatory możemy podzielić na arytmetyczne, przypisania, porównania, logiczne i bitowe. Zwykle operatory określamy jakimiś symbolami(np. + - || &&), ale mogą być także nazwami.

1. Operatory arytmetyczne

Poznajmy pierwszą grupę operatorów. Służą one do wykonywania podstawowych działań matematycznych, takich jak dodawanie, odejmowanie, mnożenie i dzielenie. Co ciekawe, tymi podstawowymi działaniami zajmuje się procesor, od tego jest, żeby coś liczyć. Można powiedzieć, że polecenia tych operatorów są bezpośrednio wykonywane przez procesor.

- operator dodawania +
Służy do dodawania wartości.

-operator odejmowania -
Służy do odejmowania wartości.

-operator mnożenia *
Służy do mnożenia wartości.

-operator dzielenia liczb /
Służy do dzielenia liczb. Jeżeli dzielimy liczby zmiennoprzecinkowe(ułamki), to wynik będzie także w ułamku(w przypadku nie wyjścia całości). Jeżeli dzielimy liczby całkowite to wynik będzie całościami w dzieleniu, bez uwzględnienia reszty.

-operator reszty z dzielenia %
Służy do uzyskiwania reszty z dzielenia dwóch liczb całkowitych.

Podczas stosowania wielu operatorów w jednym obliczeniu obowiązują matematyczne zasady kolejności działań(mnożenie i dzielenia najpierw, potem dodawanie i odejmowanie).

Arytmetyka w praktyce.
Aby działać na liczbach potrzebne nam liczby w programie, czyli zmienne liczbowe. Na razie stwórzmy sobie jedną.

#include <iostream>


int main(int argc,char* argv[])
{
  int liczba;
  return
0
;
}


Mamy zmienną liczbową typu int. Na niej możemy wykonywać działania. Spójrzmy jak stosować operatory arytmetyczne:

#include <iostream>


int main(int argc,char* argv[])
{
  int liczba;
  liczba=
4
+
5
;
//dodajemy dwie liczby 4+5, wynik przypisujemy zmiennej liczba
  //teraz liczba wynosi 9

  liczba=
6
*
2
;
//mnożymy 6 razy 2, wynikiem a zarazem wartością zmiennej będzie 12

  std::cout<<liczba;
//wyświetlamy na ekranie wartość zmiennej liczba czyli 12

  std::cin.get();
//zatrzymujemy działanie programu, żeby zobaczyć efekt i naciskamy Enter

  liczba=
10
+
2
+-
1
;
//do liczby 10 dodajemy 2, a następnie dodajemy -1 czyli odejmujemy 1
  //wynik wynosi 11

  liczba=
20
-
2
*
10
/
2
;
//według działań najpierw 2*10=20 potem dzielimy na 2 czyli 10
  //na koncu odejmujemy to od 20, wszystko tak jak w matematyce

  liczba=(
20
-
2
)*
10
;
//teraz 20-2=18*10=180

  std::cout<<liczba;
//sprawdzamy czy wyszło 180

  std::cin.get();
//zatrzymujemy
  //może teraz coś na dzielenie

  liczba=
24
/
5
;
//wynikiem będzie 4, bo w tym dzieleniu są cztery całości
  //tworzymy nową zmienną na resztę z dzielenia

  int reszta=
24
%
5
;
//teraz wynikiem tej operacji będzie reszta z dzielenia, czyli 4

  return
0
;
}


Program jest wyjaśniony w komentarzach.

Napiszmy sobie program, taki kalkulator, który podzieli nam liczby.

#include <iostream>


int main(int argc,char* argv[])
{
  int dzielna,dzielnik,calosc,reszta;
  std::cout<<
"Podaj dzielnik:\n"
;
  std::cin>>dzielnik;
  std::cout<<
"Podaj dzielna:\n"
;
  std::cin>>dzielna;
  calosc=dzielnik/dzielna;
  reszta=dzielnik%dzielna;
  std::cout<<
"Wynik: "
<<calosc<<
", reszta: "
<<reszta<<std::endl;
  system(
"PAUSE"
);
  return
0
;
}


Na początku tworzymy 4 zmienne. Jeżeli zmienne są tego samego typu, to można deklarować je po przecinku, ale wszystkie należy zamknąć średnikiem. Tutaj używam jeszcze nieznanych dla ciebie poleceń, na razie powiem, że służą wprowadzania wartości z klawiatury do zmiennej i wypisywania tekstu na ekranie, więc w kolejnych 4 poleceniach użytkownik wypełnia wprowadza wartości dla dzielnej i dzielnik z klawiatury. Gdy już mamy to wszystko, nadchodzi moment, o którym mowa w dzisiejszej lekcji. Najpierw dzielimy dzielną przez dzielnik zwykłym dzieleniem, którym uzyskujemy liczbę całości do zmiennej całość, następnie operatorem % wykonujemy ponownie dzielenie i otrzymujemy resztę z tego dzielenia, która trafia do zmiennej reszta. Kolejnym poleceniem jest wyświetlenie wyników zmiennych wraz z odpowiednim komunikatem.
Tutaj pokazałem nowy sposób na zatrzymanie pracy programu. system("PAUSE"); zatrzymuje prace, wyświetla napis i czeka na naciśnięcie jakiegoś przycisku.

Istnieją jeszcze inne operatory matematyczne, skracające zapis.

-operator ++
Powiększa wartość zmiennej całkowitej o 1.

-operator --
Zmniejsza wartość zmiennej całkowitej o 1;

-operator +=
Powiększa wartość zmiennej całkowitej o podaną ilość.

-operator -=
Zmniejsza wartość zmiennej całkowitej o podaną ilość.

A teraz przykłady:

#include <iostream>


int main(int argc,char* argv[])
{
  int liczba=
20
;
//tworzymy zmienną liczba, inicjujemy ją od razu liczbą 20

  liczba++;
//powiększamy wartość liczby o 1, czyli teraz liczba wynosi 21

  liczba-=
11
;
//zmniejszamy wartość liczby o 11, czyli teraz liczba wynosi 10

  std::cout<<liczba<<std::endl;
//sprawdźmy czy rzeczywiście 10

  system(
"PAUSE"
);
  return
0
;
}


To chyba kwestię operatorów arytmetycznych mamy wyjaśnioną.

2. Operatory przypisania

Służą do ustawiania zmiennym konkretnych wartości. Właściwie to jest tylko 1 operator przypisania, którego zresztą już nie raz widziałeś w akcji ;-) Jest nim symbol "=". Jak wiesz służy do ustawiania zmiennym wartości. Po jego lewej stronie jest zawsze zmienna, do której coś przypisujemy, natomiast po prawej wartość, którą przypisujemy. Tutaj musisz zapamiętać bardzo charakterystyczną rzecz dla języka C++, operator przypisania wygląda jak znak równa się "=", większość początkujących myli go z operatorem równośći(o nim dalej). Oto kilka przykładów:

...
liczba=
30
;
//przypisanie zmiennej liczba 30

liczba1=liczba2;
//przypisanie zmiennej liczba1, wartości zmiennej liczba2

liczba1=liczba2=
0
;
...

W ostatnim przykładzie najpierw zmiennej liczba2 przypisujemy 0, a potem zmiennej liczba1, przypisujemy wartość liczba2, czyli 0. W końcowym efekcie obie zmienne wynoszą po 0.

3. Operatory porównywania

Operatory te służą do porównywania wartości zmiennych. Zwykle używa się ich w parze z instrukcjami warunkowymi(o nich w następnej lekcji).

-operator ==
Nazwa matematyczna: równa się.
Służy do sprawdzania czy wartości dwóch zmiennych są równe. Jeżeli tak to zwraca 1(true), jeżeli nie to zwraca 0(false).

-operator !=
Nazwa matematyczna: nie równa się
Przeciwieństwo ==. Służy do sprawdzania czy wartości dwóch zmiennych nie równają się. Jeżeli wartości są nie równe to zwraca 1(true), jeżeli są równe to zwraca 0(false).

-operator >
Nazwa matematyczna: większy
Służy do sprawdzania czy wartość zmiennej po lewej stronie jest większa niż wartość zmiennej po prawej stronie operatora. Jeżeli wartość po lewej stronie jest większa zwraca 1(true), jeżeli większa jest po prawej stronie zwraca 0(false)

-operator <
Nazwa matematyczna: mniejszy
Służy do sprawdzania czy wartość zmiennej po lewej stronie jest mniejsza niż wartość zmiennej po prawej stronie operatora. Jeżeli wartość po lewej stronie jest mniejsza zwraca 1(true), jeżeli mniejsza jest po prawej stronie zwraca 0(false)

-operator >=
Nazwa matematyczna: większy lub równy
Służy do sprawdzania czy wartość zmiennej po lewej stronie jest większa lub równa niż wartość zmiennej po prawej stronie operatora. Jeżeli wartość po lewej stronie jest większa lub równa zwraca 1(true), jeżeli większa jest po prawej stronie zwraca 0(false)

-operator <=
Nazwa matematyczna: mniejszy lub równy
Służy do sprawdzania czy wartość zmiennej po lewej stronie jest mniejsza lub równa niż wartość zmiennej po prawej stronie operatora. Jeżeli wartość po lewej stronie jest mniejsza lub równa zwraca 1(true), jeżeli mniejsza jest po prawej stronie zwraca 0(false)

Kilka przykładów:

#include <iostream>


int main(int argc,char* argv[])
{
  bool wynik;
//zmienna z wynikiem operacji porównania

  wynik=
4
==
2
;
//wynik ma wartość 0, bo 4 nie jest równe 2, wyjdzie nie prawda

  wynik=
4
!=
2
;
//wynik ma wartość 1, bo 4 jest nie równe 2, wyjdzie prawda

  wynik=
4
>
2
;
//wynik ma wartość 1, bo 4 jest większe od 2, wyjdzie prawda

  wynik=
4
<=
2
;
//wynik ma wartość 0, bo 4 nie jest mniejsze lub równe 2

  system(
"PAUSE"
);
  return 0;
}


4. Operatory logiczne

Fachowo mówiąc służą do formułowania wyrażeń. Zwykle także używa się ich w instrukcjach warunkowych.

-operator &&
Nazwa potoczna: operator i
Służy do sprawdzania czy wszystkie parametry wynoszą 1(true). Jeżeli wszystkie wynoszą 1 to operator zwraca 1, jeżeli chociaż jeden nie spełnia warunków(wynosi 0) to zwraca 0(false).

-operator ||
Nazwa potoczna: operator lub
Służy do sprawdzania czy chociaż jeden parametr wynosi 1(true). Jeżeli chociaż jeden wynosi 1 to operator zwraca 1, jeżeli żaden parametr nie spełnia warunków(wszystkie wynoszą 0) to zwraca 0(false).

-operator !
Nazwa potoczna: operator zaprzeczenia (not)
Służy do zmiany parametru w odwrotny. Jeżeli parametr będzie wynosił 1(true) to zmienia go w 0(false), jeżeli będzie wynosił 0(false) to zmienia go w 1(true).

#include <iostream>


int main(int argc,char* argv[])
{
  bool wynik;
//zmienna z wynikiem operacji logicznych

  wynik=
1
&&
1
;
//wynik wynosi 1, wszystkie parametry równe są 1

  wynik=
1
&&
0
&&
1
;
//wynik wynosi 0, bo nie wszystkie parametry równe są 1

  wynik=
1
||
0
||
1
;
//wynik wynosi 1, jest chociaż 1 parametr, który wynosi 1

  wynik=
0
||
0
;
//wynik wynosi 0, bo nie ma chociaż jednego parametru 1

  wynik=!(!
0
&&(
1
||
0
));
  std::cout<<wynik<<std::endl;
//wyświetlmy wynik ostatniego przykładu

  system(
"PAUSE"
);
  return
0
;
}


Aby zrozumieć działania logiczne, trzeba zrobić sobie powtórkę z logiki(działu matematyki ze szkoły średniej). Już wyjaśniam ostatni przykład. Zaczynamy od środkowego nawiasu 1||0, daje 1, dalej mamy !0, co daje 1, więc 1&&1, czyli cały nawias daje nam 1, ale przed nawiasem stoi !, więc odwraca nam na 0, więc całe wyrażenie wynosi 0. Zmienna wynik przyjmie wartość 0.

5. Operatory bitowe

Te operatory są bardziej związane ze stroną techniczną komputera.

-operator |
Nazywa się go operatorem sumy bitowej. Łączy ze sobą podane bajty, zmieniając układ bitów w zmiennych. Bliżej jego działanie poznamy pod koniec kursu C++.

-operator &
Nazywa się go operatorem referencji(adresu). Służy do uzyskiwania adresu pamięci danej zmiennej. Jego działanie poznamy przy wskaźnikach.

-operator *
Nazywa się go operatorem dereferencji (wyłuskania). Jest przeciwieństwem operatora &. Służy do zwracania wartości zmiennej, na którą wskazuje wskaźnik(będzie o tym na lekcji o wskaźnikach).

-operator sizeof()
Operator ten zwraca nam rozmiar podanej zmiennej lub innego obiektu w bajtach. Nazwę zmiennej lub obiektu piszemy w nawiasie. Ten operator jest całkiem przydatny i warto go znać. Spójrzmy jak go używać:

#include <iostream>


int main(int argc,char* argv[])
{
  unsigned int rozmiar;
//zmienna przechowująca rozmiar zmiennej

  rozmiar=sizeof(int);
//w zmiennej rozmiar zostanie zapisana wielkość zmiennej typu int

  std::cout<<rozmiar<<std::endl;
//wyświetlamy wartość "rozmiar", wielkość int wynosi 4 bajty na komputerach z procesorami 32-bitowymi

  system(
"PAUSE"
);
  return
0
;
}


To chyba na tyle w tej deczko przydługawej lekcji ;-0

Wejść na stronę:     Ilość osób online:
Prawa autorskie © 2008 crayze. Wszelkie prawa zastrzeżone.
crayze7@gmail.com