spse:pm1:cpp-operatory

Toto je starší verze dokumentu!


→ Slide 1

Operátory

Operátory určují co se má s proměnnými a konstantami provést. 1)

→ Slide 2

Jedná se o základní, ale zřejmě nejčastěji používaný operátor a značí se rovnítkem =.

↓ Slide 3
int x;
x = 7;
printf("%d\n",x);
// output: "7"

Proměnné x, je přiřazena hodnota 7. Při výpisu se tedy zobrazí „7“.

↓ Slide 4
int x,y,z;
x = 7; //proměnné x je přiřazena hodnota 7 (x=7;y=0,z=0)
y = x; //proměnné y je přiřazena hodnota proměnné x, tedy 7 (x=7;y=7;z=0)
z = 3; //proměnné z je přiřazena hodnota 3 (x=7;y=7;z=3)
x = y + z; //proměnné x je přiřazen součet hodnot proměnných y a z (x=10,y=7,z=3)
printf("%d\n",x);
  • u přiřazení platí pravidlo right to left, neboli zprava doleva.
  • Znamená to, že hodnota pravé strany je přiřazována levé straně.
↓ Slide 5
int x,y,w,z;
x = y = w = z = 7;
printf("%d",x);
  • Hodnota proměnné x je samozřejmě 7.
  • Tato hodnota je zprava postupně předávána všem proměnným.
→ Slide 6
  • Jedná se o operace jako sčítaní a odčítání či dělení a násobení.
  • Patří sem však také operace modulo.
OPERÁTOR VÝZNAM
+ sčítání
- odčítání
* násobení
/ dělení
% modulo (zbytek po dělení)
↓ Slide 7
int x;
x = 10 % 3;
printf("%d\n",x);
// output: "1"
  • Proměnné x je přiřazen výsledek operace 10 % 3 - zbytek po dělení třemi.
  • Pokud podělíme číslo 10 třemi, dostaneme výsledek 3 a zbytek 1 - tento zbytek je výslednou hodnotou.
  • Tímto způsobem lze například snadno zjistit, zda je číslo sudé nebo liché (19 % 2 = 1; 22 % 2 = 0).
↓ Slide 8
  • Jedná se pouze o zjednodušení zápisu.
    • x += y; má stejný význam jako: x = x + y;
  • Obdobné je to i s dalšími složenými operátory:
    • -=, *=, /=, %=, »=, «=, &=, ^=, |=
↓ Slide 9

* Inkrementace se značí ++ (např.: a++;) a dekrementace (např.: a–;) a používá se ke zvýšení nebo zvýšení hodnoty proměnné o 1.

x++;

Tento zápis má stejný význam jako zápis x = x + 1;.

→ Slide 10
  • Relační operátory se používají pro vzájemné porovnání dvou ale i více proměnných.
  • Porovnávat můžeme například zda jsou si hodnoty proměnných rovny nebo zda je jedna větší než druhá a podobně.
OPERÁTOR VÝZNAM
> větší než
< menší než
>= větší nebo rovno
menší nebo rovno
== je rovno
!= není rovno
  • Výsledkem porovnání je vždy booleovská hodnota a to pravda nebo nepravda.
↓ Slide 11
int x,y;
x = 4;
y = 2;
x <= y; //nepravda
x > y; //pravda
x == y+2; //pravda
x/2 != y; //nepravda

Operátor = neslouží pro porovnání rovnosti proměnných. Je třeba použít operátor ==.

→ Slide 12
  • Logické operátory mají stejnou funkci jako spojka ve větě.
  • Spojují několik výroků v jeden (složený výrok).
  • Výsledkem je pravda nebo nepravda.
  • Patří sem také operátor negace, který neguje logickou hodnotu výroku. Tedy z pravdy negací vznikne nepravda a naopak.
OPERÁTOR VÝZNAM
&& spojka a (and)
|| spojka nebo (or)
! negace
↓ Slide 13

Příklad: Mějme následující složený výrok:

int x,y;
x = 1;
y = 2;
((x < y) && (y != x));
  • Operátor && nám jednoduché výroky (x < y) a (y != x) spojuje v jeden složený výrok.
  • Výslednou hodnotu výroku určíme z pravdivostních hodnot jednotlivých jednoduchých výroků.
  • Jednoduchý výrok (x < y) dává výslednou hodnotu pravda stejně jako výrok (y != x).
  • Výslednou hodnotou složeného výroku je tedy pravda, jelikož pravda a pravda = pravda.
↓ Slide 14
A B A && B A || B
1 1 1 1
1 0 0 1
0 1 0 1
0 0 0 0
  • Aby byl složený výrok se spojkou && pravdivý, musí být pravdivé i všechny jednoduché výroky ze kterých je je tento výrok složen.
  • Z pravdivostní tabulky spojky || vyplývá, že stačí aby byl pravdivý pouze jeden jednoduchý výrok.

Negace

int x,y;
x = 1;
y = 2;
!(y > x);

Výslednou hodnotou je nepravda a to i přesto, že výrok 2 > 1 je pravdivý. Výsledná hodnota výroku je totiž negována.

→ Slide 15
int x;
x = 2 + 3 * 4;
printf("%d\n",x);
  • Výsledkem je číslo 14, protože nejprve dojde k součinu čísel 3 a 4, jelikož násobení má větší prioritu než sčítání, až poté se přičte dvojka.
  • Pokud tedy chceme, aby nejdříve došlo k součtu čísel 2 a 3, pomůžeme si závorkami:
int x;
x = (2 + 3) * 4;
cout << x << endl;
Výsledkem je nyní číslo 20.

1)
Operátory. Klikzone.cz: Tvorba webu pro každého [online] [cit. 2020-12-07]. Dostupné z: https://www.klikzone.cz/cplusplus/operatory.php
  • spse/pm1/cpp-operatory.1607374703.txt.gz
  • Poslední úprava: 2024/07/07 16:48
  • (upraveno mimo DokuWiki)