background image

INSTRUKCJE I OPERATORY 
1. Czym s

ą

 instrukcje?  

 
W C++ instrukcje ustanawiaj

ą

 kolejno

ść

 wykonywania kodu. Ka

ż

da instrukcja ko

ń

czy si

ę

 

ś

rednikiem - 

‘’;’’.Oto przykład instrukcji przypisania:  

Kod: 

 

c = a + b; 

 
 
Mimo, 

ż

e w matematyce taki zapis mo

ż

na potraktowa

ć

 jako: c jest równa sumie a i b, to jednak w C++ 

taki zapis oznacza, 

ż

e do zmiennej c wprowadzamy warto

ść

 równ

ą

 sumie a i b.  

 
1. Operatory  
 
Operatory to symbole informuj

ą

ce kompilator o konieczno

ś

ci wykonania działania. Oto lista 

podstawowych operatorów:  
 
a) operator przypisania "="  
Operator przypisania powoduje, 

ż

e operand (obiekt, zmienna itp.) z prawej strony zostaje przypisany 

operandowi z lewej strony.  
 
b) Operatory matematyczne: odejmowanie "-", dodawanie "+", mno

ż

enie "*", dzielenie "/", reszta z 

dzielenia całkowitego "%"  
 
S

ą

 to podstawowe operatory matematyczne słu

żą

ce do wykonywania działa

ń

. Chyba ka

ż

dy wie do 

czego słu

żą

, bo to s

ą

 podstawy matematyki których uczymy si

ę

 w klasie podstawowej :). Pami

ę

tajmy 

jednak o pewnych zasadach takich jak nie dzielenie przez zero. Innym wyj

ą

tkiem mo

ż

e by

ć

 np. 

odejmowanie liczby całkowitej bez przecinka (unsigned int) od wi

ę

kszej liczby całkowitej bez 

przecinka. Taka próba mo

ż

e da

ć

 nam niezrozumiały wynik. Oto przykład takiego bł

ę

du:  

Kod: 

 

unsigned

 

int

 liczba1 = 

25

unsigned

 

int

 liczba2 = 

60

 

std::

cout

 << liczba1 - liczba2; 

  

 
Wynikiem nie b

ę

dzie -45, a 4294967256.  

Dzielenie i reszta z dzielenia to tak

ż

e podstawowe działania matematyczne. W przypadku dzielenia 

całkowitego nie ma chyba problemów ze zrozumieniem działania : 21/5 = 4. Reszt

ę

 z dzielenia 

uzyskujemy w ten sposób : 21%5 = 1. Z liczbami zmiennoprzecinkowymi jest podobnie : 7.0/2.0 = 3.5.  

Kod: 

 

double

 liczba1 = 

7

.

0

double

 liczba2 = 

2

.

0

 

std::

cout

 << 

"Dzielenie :"

 << liczba1/liczba2; 

std::

cout

 << 

"Dzielenie całkowite:"

 << 

int

(

liczba1

)

/

int

(

liczba2

)

std::

cout

 << 

"reszta z dzielenia :"

 << liczba1%liczba2; 

  

background image

 
Pami

ę

tajmy tak

ż

e o kolejno

ś

ci działa

ń

. Kolejno

ść

 jest taka sama jak w przypadku działa

ń

 

matematycznych:  

Kod: 

 

int

 liczba1 = 

7

.

0

int

 liczba2 = 

2

.

0

int

 liczba3 = 

4

.

5

 

std::

cout

 << 

"Wynik :"

 << liczba1 * 

3

 - liczba3 + liczba2/

4

.

5

  

 
W działaniach mo

ż

emy tak

ż

e u

ż

y

ć

 nawiasów:  

Kod: 

 

int

 liczba1 = 

7

.

0

int

 liczba2 = 

2

.

0

int

 liczba3 = 

4

.

5

 

std::

cout

 << 

"Wynik :"

 << 

6

 * 

(

liczba1 * 

3

 - 

(

liczba3 + liczba2/

4

.

5

))

  

 
c) Inkrementacja "++" i dekrementacja "--"  
Inkrementacja jest do zwi

ę

kszanie warto

ś

ci zmiennej o jeden wraz z przypisaniem jej, a 

dekrementacja działa na tej samej zasadzie, ale warto

ść

 jest zmniejszana o jeden.  

Kod: 

 

int

 C = 

0

C++ ; 

  

 
ten kod stanowi odpowiednik :  

Kod: 

 

C = C + 

1

 
 
Oba operatory (inkrementacji i dekrementacji) mog

ą

 wyst

ę

powa

ć

 w formie przyrostka lub przedrostka. 

Przedrostek zapisywany jest przed nazw

ą

 zmiennej (++zmienna) , a przyrostek za nazw

ą

 

(zmienna++).Czym to si

ę

 ró

ż

ni? Operator przedrostkowy jest obliczany przed przypisaniem warto

ś

ci 

do zmiennej a przyrostek po przypisaniu. Ró

ż

nica mo

ż

e nie jest wielka, ale mo

ż

e doprowadzi

ć

 do 

ę

dów w programie np.:  

Kod: 

 

int

 liczba1 = 

0

int

 liczba2 = 

1

 

liczba1 = ++liczba2; 

background image

 
 
W tym wypadku liczba1 jest równa 2  

Kod: 

 

int

 liczba1 = 

0

int

 liczba2 = 

1

 

liczba1 = liczba2++; 

 
 
Tym razem warto

ść

 liczba1 b

ę

dzie równa 1 poniewa

ż

, przypisanie warto

ś

ci nast

ą

piło przed 

inkrementacj

ą

, dlatego te

ż

 kompilator najpierw przypisał liczba1 do liczba2 a dopiero potem wrócił do 

zmiennej liczba2 i zwi

ę

kszył jej warto

ść

 o jeden.  

 
2. Operatory relacji  
Operatory relacji s

ą

 u

ż

ywane do sprawdzania, czy dwie liczby s

ą

 równe, albo czy jedna z nich jest 

wi

ę

ksza lub mniejsza od drugiej. Ka

ż

dy operator relacji zwraca prawd

ę

 lub fałsz. W C++ wyst

ę

puje 6 

operatorów relacji. Oto one:  
 
a)operator równo

ś

ci "=="  

Operator równo

ś

ci u

ż

ywany jest do sprawdzenia warto

ś

ci operanda np:  

Kod: 

 

int

 ocena = 

6

if

 

(

ocena==

6

)

 std::

cout

 << 

"Brawo jeste

ś

 genialny :)"

 
 
b)operator nierówno

ś

ci "!="  

Kod: 

 

int

 ocena = 

6

if

 

(

ocena !=

1

)

 std::

cout

 << 

"Nie jest tak 

ź

le :)"

 
 
c)operator wi

ę

kszo

ś

ci ">"  

Kod: 

 

int

 ocena = 

4

if

 

(

ocena > 

3

)

 std::

cout

 << 

"Dobrze ci idzie"

 
 
d)operator mniejszo

ś

ci "<"  

Kod: 

 

int

 ocena = 

2

if

 

(

ocena <

3

)

 std::

cout

 << 

"Popraw si

ę

 w nauce :("

 
 
e)operator mniejszo

ś

ci lub równo

ś

ci "<="  

background image

Kod: 

 

int

 ocena = 

3

if

 

(

ocena <=

3

)

 std::

cout

 << 

"Na pewno sta

ć

 ci

ę

 na wi

ę

cej :)"

 

 
 
f)operator wi

ę

kszo

ś

ci lub równo

ś

ci ">="  

Kod: 

 

int

 ocena = 

5

if

 

(

ocena >=

4

)

 std::

cout

 << 

"Jeste

ś

 dobrym uczniem"

 

 
 
3. Operatory logiczne  
Operatory logiczne słu

żą

 do ł

ą

czenia kilku "pyta

ń

" operatorów relacji np. "Czy dzisiaj jest poniedziałek 

i czy 

ś

wieci sło

ń

ce" zamiast "Je

ś

li dzisiaj jest poniedziałek, sprawd

ź

 czy 

ś

wieci sło

ń

ce" :  

Kod: 

 

if

 

((

dzien==

"poniedziałek"

)

 && 

(

swieci_slonce

))

 

        ide_na_stadion = 

true

  

 
W przeciwnym razie ten zapis musiałby wygl

ą

da

ć

 tak:  

Kod: 

 

if

 

(

dzien==

"poniedziałek"

)

 

        

if

(

swieci_slonce

)

 

                ide_na_stadion = 

true

  

 
Oto trzy operatory logiczne:  
 
&& - i (AND)  
|| - lub (OR)  
! - nie (NOT)  
 
A oto przykład ich wykorzystania:  

Kod: 

 

int

 main

()

 

{

 

         

        

if

(

 

(

dzisiaj=

"ponied

ź

ialek"

 || dzisiaj=

"

ś

roda"

)

 && !pada_desz

)

 

                ide_na_spacer

()

                         

        

return

 

0

}

 

 
 
Ten zapis mo

ż

na rozumie

ć

 jako "Je

ś

li dzisiaj jest poniedziałek lub 

ś

roda i nie pada deszcz id

ę

 na 

background image

spacer".  
 
4. Operatory bitowe  
Operatory bitowe słu

żą

 do operowania na pojedynczych bitach zmiennej. W C++ wyst

ę

puj

ą

 

nast

ę

puj

ą

ce operatory bitowe :  

 
<< przesuwa bity w lewo  
>> przesuwa bity w prawo  
& bitowy iloczyn logiczny (bitowa koniunkcja)  
| bitowa suma logiczna (bitowa alternatywa)  
^ bitowa ró

ż

nica symetryczna (bitowe XOR)  

~ bitowa negacja  
 
5.Operator warunkowy  
Operator warunkowy jest jedynym operatorem w C++ korzystaj

ą

cym z trzech wyra

ż

e

ń

. Zapisujemy go 

w nast

ę

puj

ą

cy sposób: (wyra

ż

enie1) ? (wyra

ż

enie2) : (wyra

ż

enie3)  

i odczytujemy go w sposób : je

ś

li wyra

ż

enie1 jest prawd

ą

 to zwró

ć

 wyra

ż

enie2, w przeciwnym razie 

wyra

ż

enie3  

Kod: 

bool

 ide_na_spacer,pada_desz; 

 

pada_deszcz = 

false

ide_na_space = 

(

!pada_desz

)

 ? 

true

 : 

false

 

if

(

ide_na_spacer

)

 

   std:

cout

 << 

"Niema mnie w domu"

;