Operatory w języku C(1)


Operatory w języku C++ i ich klasyfikacja ze względu na rodzaj. Opis operatorów występujących w dowolnym przykładzie.

Operatory służą do wykonywania działań na zmiennych. W języku C++ sporo operatorów jest już wbudowane. Jednak w tym języku można rozbudować działanie danego operatora o jakieś dodatkowe działania, a nawet całkowicie zmienić jego działanie.

1. Operatory arytmetyczne

operatory arytmetyczne: + dodawanie

odejmowanie

∗ mnożenie

/ dzielenie

% reszta z dzielenia

Zaczniemy od operatora +. Dodaje on dwie wartości, które znajdują się po jego lewej i prawej stronie. Całe takie wyrażenie zastępowane jest wynikiem. Jeśli liczba znajduje się tylko po jego prawej stronie, to traktowany jest on po prostu jako dodatni znak liczby. Wyrażenia z operatorem + można łączyć kaskadowo. Przykłady:

int Liczba = 2+2; //Dodanie dwóch liczb. Wynik jest 4.

Liczba = +7; //Liczba 7.

Liczba = 3+7+5; //Wynik to liczba 15.


Podobnie działa operator -. Służy on oczywiście do odejmowania dwóch liczb [prawej od lewej]. Jeśli liczba znajduje się tylko po jego prawej stronie, to jest on traktowany jako znak ujemny liczby. I też można łączyć wyrażenia kaskadowo. Przykłady:

Liczba = 5-3; //Odjęcie dwóch liczb. Wynik jest 2.

Liczba = -8; //Liczba -8.

Liczba = 7-2-3; //Wynik to liczba 2.


Do wykonywania mnożenia służy operator *, a do dzielenia jest operator /. Te operatory wymagają liczb po obu swoich stronach. Dodatkowo jest operator % [modulo], który zwraca resztę z dzielenia dwóch liczb całkowitych. Można je łączyć kaskadowo. Przykłady:

Liczba = 3*3; //Pomnożenie dwóch liczb. Wynik jest 9.

Liczba = 8/4; //Dzielenie dwóch liczb. Wynik jest 2.

Liczba = 11%4; //Reszta z dzielenia. Wynik jest 3.

Liczba = 8/2*2; //Wynik to liczba 8.

Liczba = 8*2/2; //Wynik to też 8.


Zawsze trzeba pamiętać o kolejności wykonywania działań. Najpierw wykonuje się mnożenie. W razie wątpliwości, który z operatorów zadziała pierwszy, po prostu stosujemy nawiasy. To, co jest w nawiasie zawsze będzie ważniejsze niż to, co jest poza nawiasem.

Są też operatory do bardzo szybkiego zmniejszania lub zwiększania jakiejś zmiennej o 1. Do zwiększania służy operator ++, a do zmniejszania operator --. Można je zastosować na dwa sposoby. Jeśli umieścimy taki operator przed zmienną, to najpierw zmieni on jej wartość, a dopiero potem ją zwróci. Natomiast jeśli umieścimy go po zmiennej, to najpierw pokaże on jej zawartość, a dopiero potem ją zmieni. Przykładowy fragment kodu:

int Liczba = 7;

cout << "Liczba=" << Liczba << endl; //Wypisanie liczby 7

cout << "Liczba=" << ++Liczba << endl; //Zwiększenie do 8 i wypisanie liczby.

cout << "Liczba=" << Liczba-- << endl; //Wypisanie liczby 8 i zmniejszenie do 7

cout << "Liczba=" << Liczba << endl; //Wypisanie liczby 7.


Tutaj już niebardzo się da łączyć kaskadowo, no bo by się można było pogubić. Zresztą taki zapis nie wyglądałby zbyt logicznie.

2. Operatory przypisania

Operatory przypisania: = zwykłe przypisanie x = 2;

+= przypisanie sumy x+=2; → x = x + 2;

= przypisanie różnicy x−=2; → x = x − 2;

∗= przypisanie iloczynu x∗=2; → x = x ∗ 2;

/= przypisanie ilorazu x /=2; → x = x / 2;

%= przypisanie reszty x%=2; → x = x % 2;


   Najprostszy z nich to chyba operator =. Przypisuje jakąś wartość znajdującą się po jego prawej stronie do zmiennej, która znajduje się po jego lewej stronie. Mówię "zmienna", bo musi być możliwa zmiana tej wartości podczas przypisywania. Można łączyć kilka operatorów kaskadowo, ale trzeba pamiętać by dopiero ostatnia wartość była tą, którą przypisujemy, bo w przeciwieństwie do operatora +, operator przypisania jest łączny prawostronnie. Przykłady:

Liczba=7;

Liczba = Numer = 2;


Dodatkowym wymogiem jest, by wartość stojąca po lewej stronie tego operatora była jakąś zmienną, do której da się przypisywać. Całe wyrażenie z operatorem przypisania ma taką wartość, jak zmienna po lewej stronie znaku =, o czym warto wiedzieć, bo może to czasami uprościć zapis.

Liczba = Liczba + 3;


Jest to zwiększenie zmiennej Liczba o 3. W języku C++ można to zapisać prościej:

Liczba += 3;


To bardzo upraszcza i skraca ten zapis, co jest jedną z zalet języka C++ . Oczywiście zamiast znaku + można stosować pozostałe operatory arytmetyczne i bitowe.

3. Operatory porównania

Operatory relacyjne: == równe

!= różne

< mniejsze

> większe

<= mniejsze lub równe

>= większe lub równe

Służą one do porównywania ze sobą dwóch wartości i są takie same jak te, które na pewno znasz już ze szkoły. Operatory te zwracają wartości logiczne. Operator == zwraca true [czyli 1] tylko wtedy, gdy oba argumenty są sobie równe, a operator != tylko wtedy, gdy argumenty są nierówne. Operator > zwraca true tylko wtedy, gdy lewy argument jest większy od prawego, a operator < tylko wtedy, gdy prawy jest większy od lewego. Operator >= zwraca true tylko wtedy, gdy lewy argument jest większy lub równy prawemu, a operator <= tylko wtedy, gdy prawy jest większy lub równy lewemu. Przykłady:

cout << 4 == 3+1; //Wypisze 1

cout << 2 != 5; //Wypisze 1

cout << 8 > 12; //Wypisze 0

4. Operatory logiczne


   Służą do formułowania wyrażeń logicznych. Operator && [zwany też operatorem i] zwraca wartość logiczną 1 [true] tylko wtedy, gdy oba argumenty mają wartość logiczną 1. Operator || [zwany też operatorem lub] zwróci 1 gdy albo jeden, albo drugi argument ma wartość logiczną 1. I na koniec operator ! [zwany też operatorem nie] zwraca 1, gdy argument po jego prawej stronie ma wartość logiczną 0. Gdy ma wartość logiczną 1, operator ten zwraca 0.

operatory logiczne: && koniunkcja (AND)

|| alternatywa (OR)

! negacja (NOT)

bitowe operatory logiczne: & bitowa koniunkcja (AND)

| bitowa alternatywa (OR)

^ bitowa różnica symetryczna (XOR)

<< przesunięcie bitów w lewo

>> przesunięcie bitów w prawo

~ negacja bitów

Przykłady:

cout << 0 && 1; //Wypisze 0

cout << 1 || 0; //Wypisze 1

cout << !0; //Wypisze 1

Priorytety operatorów w języku C:

Operator Opis Przykład

( ) wywołanie funkcji sin()

[ ] element tablicy tab[10]

. element struktury osoba.nazwisko

−> wskazanie elemenu struktury wsk_osoby−>nazwisko

! negacja logiczna if( ! (x >max) ) kontynuuj;

~ negacja bitowa ~(001101) ≡ (110010)

− zmiana znaku (negacja) x = 10 ∗ (− y)

++ inkrementacja (zwiększenie o 1) x + + + y ≡ (x+ +) + y

− − dekrementacja (zmiejszenie o 1) − − y ≠ − − y ≡ − (− y)

& operator referencji (adres elementu) wsk_x = &x

∗ operator dereferencji ∗wsk_x = 10

(type) zmiana typu (typecast) (double) 10 ≡ 10.0

sizeof rozmiar zmiennej lub typu (w bajtach) sizeof( int ) ≡ 2

∗ mnożenie

/ dzielenie

% operacja modulo (reszta z dzielenia) if( x%2 == 0 ) parzyste;

+ dodawanie

− odejmowanie

<< przesunięcie bitowe w lewo 1 << 2 ≡ (0001) << 2 ≡ (0100)

>> przesuniecie bitowe w prawo x = 4 >>1 ≡ x = 2

< mniejszy niż if( liczba < max ) max = liczba;

<= mniejszy lub równy

> wiekszy niż

>= wiekszy lub równy

== równy

!= nierówny (różny od)

& iloczyn bitowy

^ suma bitowa modulo (różnica symetryczna)

| suma bitowa

&& iloczyn logiczny

|| suma logiczna

? : wyrażenie warunkowe

= przypisanie

∗= /= %= += przypisania arytmetyczne

−= <<= >>=

&= ^= |=

, operator przecinka

Przykład: int x=1, y=2, z=3, wynik=4 ; //rezultat: x=1, y=1, z=4, wynik=24

wynik ∗= −++x∗x−−+−y−−%++z; (???)

wynik ∗= − (++x)(x−−) +− (y−−) % (++z);

wynik ∗= ((++x))(x−−) + ((y−−)) % (++z);

wynik ∗= (((++x))(x−−)) + (((y−−))%(++z));

Patrycja Łukaszek

Kl. IIa SI



Wyszukiwarka

Podobne podstrony:
Operatory w języku C
Szkol Czynności operatora wózka podczas eksploatacji
w5 agregaty tablice operatory p
The uA741 Operational Amplifier[1]
operatory matematyczne w C
operatory i funkcje matematyczne
operator maszyn lesnych 833[02] o1 03 n
mechanik operator pojazdow i maszyn rolniczych 723[03] z2 04 n
Kierowca operator wózków jezdniowych 833401
mechanik operator pojazdow i maszyn rolniczych 723[03] o1 05 u
OPERAT STABLE VERSION ugoda id Nieznany
operator urzadzen przemyslu szklarskiego 813[02] z2 07 n
4 Steyr Operation and Maintenance Manual 8th edition Feb 08
instrukcja bhp na stanowisku operatora dzwignicy
operator urzadzen przemyslu spozywczego 827[01] z2 02 u
272 811105 operator koparko ladowarki
Programowanie w jezyku C dla chetnych A Poznanski
mechanik operator pojazdow i maszyn rolniczych 723[03] z3 02 n
operator urzadzen przemyslu spozywczego 827[01] z1 03 n

więcej podobnych podstron