LEKCJA10.TXT

(19 KB) Pobierz
LEKCJA 10 Jakie operatory stosuje C++. 
_______________________________________________________________  
Podczas tej lekcji:  
* Poznasz operatory j�zyka C++.  
* Przetestujesz dzia�anie niekt�rych operator�w.  
* Dowiesz si� wi�cej o deklarowaniu i inicjowaniu zmiennych. 
_______________________________________________________________  
 
S��w kluczowych jest w j�zyku C++ stosunkowo niewiele, za to  
operator�w wyra�nie wi�cej ni� np. w Basicu. Z kilku operator�w  
ju� korzysta�e� w swoich programach.  pe�n� list� operator�w  
wraz z kr�tkim wyja�nieniem przedstawiam poni�ej. Operatory C++  
s� podzielone na 16 grup i mo�na je scharakteryzowa�:  
 
* priorytetem  
** najwy�szy priorytet ma grupa  1 a najni�szy grupa 16 -  
 przecinek, np. mno�enie ma wy�szy priorytet ni� dodawanie; 
** wewn�trz ka�dej z 16 grup priorytet operator�w jest r�wny; 
* ��czno�ci� (wi�zaniem). 
 
[S!] Precedence - kolejno��, priorytet. 
________________________________________________________________ 
Dwie cechy opertor�w C++ priorytet i ��czno�� decyduj� o  
sposobie obliczania warto�ci wyra�e�.  
Precedence - kolejno��, priorytet. 
Associativity - asocjatywno��, ��czno��, wi�zanie. Operator jest 
��czny lewo/prawo-stronnie, je�li w wyra�eniu zawieraj�cym na  
tym samym poziomie hierarchii nawias�w min. dwa identyczne  
operatory najpierw jest wykonywany operator lewy/prawy. Operator 
jest ��czny, je�li kolejno�� wykonania nie wp�ywa na wynik.  
________________________________________________________________ 
 
Przyk�ad:  
a+b+c+d = (a+d)+(c+b) 
 
[S] 
________________________________________________________________ 
ASSIGN(ment) - Przypisanie. 
EQAL(ity) - R�wny, odpowiadaj�cy. 
BITWISE - bit po bicie (bitowo).  
REFERENCE - odwo�anie do..., powo�anie si� na..., wskazanie  
na... .  
 
Funkcje logiczne:  
OR - LUB - suma logiczna (alternatywa).  
AND - I - iloczyn logiczny.  
XOR (eXclusive OR) - ALBO - alternatywa wy��czaj�ca. 
NOT - NIE - negacja logiczna. 
________________________________________________________________ 
 
 
Oznaczenia ��czno�ci przyj�te w Tabeli: 
 
{L->R} ���(Left to Right) z lewa na prawo.  
{L<<-R} ��(Right to Left) z prawa na lewo. 
 
 
Lista operator�w j�zyka C++. 
________________________________________________________________ 
Kategoria�| Operator�����| ���Co robi / jak dzia�a  
----------|--------------|-------------------------------------- 
 
1. Highest| ()�����������| * ogranicza wyra�enia,  
(Najwy�szy|Parentheses   | * izoluje wyra�enia warunkowe,  
priorytet)|��������������| * wskazuje na wywo�anie funkcji,  
 {L->R}���|��������������|   grupuje argumenty funkcji.  
����������|--------------|-------------------------------------- 
����������| []�����������| zawarto�� jedno- lub wielowymiarowych 
����������|Brackets      | tablic  
����������|--------------|-------------------------------------- 
����������| .            |(direct component selector)  
����������| ->           |(indirect, or pointer, selection) 
����������|��������������| Bezpo�rednie lub po�rednie wskazanie  
          |              |  elementu unii b�d� struktury.  
          |--------------|-------------------------------------- 
          | ::           | Operator specyficzny dla C++.  
          |              | Pozwala na dost�p do nazw GLOBALNYCH, 
          |              | nawet je�li zosta�y "przys�oni�te"  
          |              | przez LOKALNE.  
----------|--------------|-------------------------------------- 
2. �������| ! �����������| Negacja logiczna (NOT)  
 Jednoar-�|--------------|------------------------------------  
gumentowe | ~            | Zamiana na kod KOMPLEMENTARNY bit po  
(Unary)   |              | bicie. Dotyczy liczb typu int.  
 {L<<-R}  |--------------|-------------------------------------- 
          | +            | Bez zmiany znaku (Unary plus)  
          |--------------|-------------------------------------- 
          | -            | Zmienia znak liczby / wyra�enia  
          |              | (Unary minus)  
          |--------------|-------------------------------------- 
          | ++           | PREinkrementacja/POSTinkrementacja  
          |--------------|-------------------------------------- 
          | --           | PRE/POSTdekrementacja  
          |--------------|-------------------------------------- 
          | &            | Operator adresu(Referencing operator) 
          |--------------|-------------------------------------- 
          | *            | Operator wskazania  
          |              | (Dereferencing operator)  
          |--------------|-------------------------------------- 
          | sizeof       | Zwraca wielko�� argumentu w bajtach  
          |--------------|-------------------------------------- 
          | new          | Dynamiczne zarz�dzanie pami�ci�:  
          | delete       | new - przydziela pami��,  
          |              | delete - likwiduje przydzia� pami�ci  
----------|--------------|-------------------------------------- 
3. Multi- | *            | Mno�enie (UWAGA: Druga rola "*") 
plikatywne|--------------|-------------------------------------- 
 {L->R}   | /            | Dzielenie  
          |--------------|-------------------------------------- 
          | %            | Reszta z dzielenia (modulo)  
----------|--------------|-------------------------------------- 
4. Dost�pu| .*           | Operatory specyficzne dla C++. 
(Member   |(dereference) | Skasowanie bezpo�redniego wskazania 
access)   |              | na cz�onka klasy (Class Member).  
 {L->R}   |--------------|-------------------------------------- 
          | ->*          | Skasowanie po�redniego wskazania typu 
objektowe |              | "wska�nik do wska�nika" 
----------|--------------|-------------------------------------- 
5. Addy - | +            | Dodawanie dwuargumentowe. 
tywne     |--------------|-------------------------------------- 
 {L->R}   | -            | Odejmowanie dwuargumentowe.  
----------|--------------|-------------------------------------- 
6. Przesu-| <<           | Binarne przesuni�cie w lewo. 
ni�cia    |--------------|-------------------------------------- 
(Shift)   | >>           | Binarne przesuni�cie w prawo.  
 {L->R}   |              | (bit po bicie)  
----------|--------------|-------------------------------------- 
7. Relacji| <            | Mniejsze ni�...  
 {L->R}   |--------------|-------------------------------------- 
          | >            | Wi�ksze ni�....  
          |--------------|-------------------------------------- 
          | <=           | Mniejsze lub r�wne.  
          |--------------|-------------------------------------- 
          | >=           | Wi�ksze lub r�wne.  
----------|--------------|-------------------------------------- 
8.R�wno�ci| ==           | R�wne (r�wna si�).  
 {L->R}   | !=           | Nie r�wne.  
----------|--------------|-------------------------------------- 
9.        | &            | AND binarnie (Bitwise AND)  
 {L->R}   |              | UWAGA: Druga rola "&".  
----------|--------------|-------------------------------------- 
10.       | ^            | XOR binarnie (Alternatywa wy��czna).  
 {L->R}   |              | UWAGA: To nie pot�ga !  
----------|--------------|-------------------------------------  
11.{L->R} | |            | OR binarnie (bit po bicie)  
----------|--------------|-------------------------------------  
12.{L->R} | &&           | Iloczyn logiczny (Logical AND).  
----------|--------------|-------------------------------------  
13.{L->R} | ||           | Suma logiczna (Logical OR).  
----------|--------------|-------------------------------------- 
14. Oper. | ?:           | Zapis  a ? x : y  oznacza:  
Warunkowy |              | "if a==TRUE then x else y"  
Conditional              | gdzie TRUE to logiczna PRAWDA "1".  
 {L<<-R}  |              |  
----------|--------------|-------------------------------------- 
15. Przy- | =            | Przypisz warto�� (jak := w Pascalu)  
pisania   |--------------|-------------------------------------- 
 {L<<-R}  | *=           | Przypisz iloczyn. Zapis X*=7  
          |              | oznacza: X=X*7 (o 1 bajt kr�cej!).  
          |--------------|-------------------------------------- 
          | /=           | Przypisz iloraz.  
          |--------------|-------------------------------------- 
          | %=           | Przypisz reszt� z dzielenia.  
          |--------------|-------------------------------------- 
          | +=           | Przypisz sum� X+=2 oznacza "X:=X+2"  
          |--------------|-------------------------------------- 
          | -=           | Przypisz r�nic� X-=5 ozn. "X:=X-5" 
          |--------------|-------------------------------------- 
          | &=           | Przypisz iloczyn binarny ( Bitwise  
          |              |  AND) 
          |              | bit po bicie.  
          |--------------|-------------------------------------- 
          | ^=           | Przypisz XOR bit po bicie.  
          |--------------|-------------------------------------- 
          | |=           | Przypisz sum� log. bit po bicie.  
          |--------------|-------------------------------------- 
          | <<=          | Przypisz wynik przesuni�cia o jeden  
          |              | bit w lewo.  
          |--------------|-------------------------------------- 
          | >>=          | j. w. o jeden bit w prawo.  
----------|--------------|-------------------------------------- 
16. Prze- | ,            | Oddziela elementy na li�cie argu - 
cinek     |              | ment�w funkcji,                       
(Comma)   |              | Stosowany w specja...
Zgłoś jeśli naruszono regulamin