Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
| spse:pm1:cpp-operatory [2020/12/07 20:06] – jenda | spse:pm1:cpp-operatory [2024/07/07 16:48] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
|---|---|---|---|
| Řádek 17: | Řádek 17: | ||
| </ | </ | ||
| - | Máme proměnnou x, které | + | Proměnné x, je přiřazena hodnota 7. Při výpisu se tedy zobrazí " |
| <---- | <---- | ||
| Řádek 26: | Řádek 26: | ||
| y = x; // | y = x; // | ||
| z = 3; // | z = 3; // | ||
| - | x = y+z; // | + | x = y + z; // |
| printf(" | printf(" | ||
| </ | </ | ||
| - | Tento příklad je už o něco složitější, | + | * 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ě. | ||
| <---- | <---- | ||
| ----> | ----> | ||
| + | ==== Pravidla přiřazení ==== | ||
| + | |||
| <code c> | <code c> | ||
| int x,y,w,z; | int x,y,w,z; | ||
| Řádek 40: | Řádek 43: | ||
| </ | </ | ||
| - | Hodnota proměnné '' | + | * Hodnota proměnné '' |
| + | * Tato hodnota je zprava postupně předávána všem proměnným. | ||
| <---- | <---- | ||
| ===== Aritmetické operátory ===== | ===== Aritmetické operátory ===== | ||
| - | Jedná se o operace jako sčítaní a odčítání či dělení a násobení. Patří sem však také operace modulo. | + | * 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 | ^ OPERÁTOR ^ VÝZNAM | ||
| | + | sčítání | | + | sčítání | ||
| Řádek 52: | Řádek 57: | ||
| | / | dělení | | / | dělení | ||
| | % | modulo (zbytek po dělení) | | % | modulo (zbytek po dělení) | ||
| + | </ | ||
| + | ----> | ||
| - | ----> | + | < |
| - | Příklad: | + | |
| <code c> | <code c> | ||
| int x; | int x; | ||
| Řádek 61: | Řádek 67: | ||
| // output: " | // output: " | ||
| </ | </ | ||
| - | + | </ | |
| - | Proměnné '' | + | |
| - | + | * 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é '' | + | |
| <---- | <---- | ||
| Řádek 70: | Řádek 76: | ||
| ==== Složené přiřazení ==== | ==== Složené přiřazení ==== | ||
| - | Jedná se pouze o zjednodušení zápisu. | + | * Jedná se pouze o zjednodušení zápisu. |
| - | + | | |
| - | '' | + | |
| - | + | * '' | |
| - | Obdobné je to i s dalšími složenými operátory: '' | + | |
| ==== Inkrementace a dekrementace ==== | ==== Inkrementace a dekrementace ==== | ||
| - | Inkrementace se značí '' | + | |
| + | < | ||
| <code c> | <code c> | ||
| x++; | x++; | ||
| Řádek 85: | Řádek 90: | ||
| </ | </ | ||
| Tento zápis má stejný význam jako zápis '' | Tento zápis má stejný význam jako zápis '' | ||
| + | </ | ||
| ===== Relační operátory ===== | ===== Relační operátory ===== | ||
| - | 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ě. | + | * 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 ^ | ^ OPERÁTOR ^ VÝZNAM ^ | ||
| | > | větší než | | | > | větší než | | ||
| Řádek 97: | Řádek 103: | ||
| | == | je rovno | | | == | je rovno | | ||
| | != | není rovno | | | != | není rovno | | ||
| - | + | </ | |
| - | Výsledkem porovnání je vždy booleovská hodnota a to pravda nebo nepravda. | + | |
| ----> | ----> | ||
| <code c> | <code c> | ||
| Řádek 109: | Řádek 115: | ||
| x/2 != y; //nepravda | x/2 != y; //nepravda | ||
| </ | </ | ||
| - | <---- | + | <fragment-block> |
| - | ----> | + | <WRAP center round important |
| - | <WRAP center round important | + | |
| Operátor '' | Operátor '' | ||
| </ | </ | ||
| + | </ | ||
| <---- | <---- | ||
| ===== Logické operátory ===== | ===== Logické operátory ===== | ||
| - | 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. | + | * 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 ^ | ^ OPERÁTOR ^ VÝZNAM ^ | ||
| | && | spojka a (and) | | | && | spojka a (and) | | ||
| | %%||%% | spojka nebo (or) | | | %%||%% | spojka nebo (or) | | ||
| | ! | negace | | ! | negace | ||
| + | </ | ||
| ----> | ----> | ||
| Příklad: Mějme následující složený výrok: | Příklad: Mějme následující složený výrok: | ||
| Řádek 132: | Řádek 140: | ||
| ((x < y) && (y != x)); | ((x < y) && (y != x)); | ||
| </ | </ | ||
| - | Operátor ''&&'' | + | * Operátor ''&&'' |
| - | <---- | + | * Výslednou hodnotu výroku určíme z pravdivostních hodnot jednotlivých jednoduchých výroků. |
| - | ----> | + | |
| - | Jednoduchý výrok '' | + | * Výslednou hodnotou složeného výroku je tedy pravda, jelikož pravda a pravda = pravda. |
| <---- | <---- | ||
| ==== Pravdivostní tabulky: ==== | ==== Pravdivostní tabulky: ==== | ||
| - | + | < | |
| - | ^ A ^ B ^ A && B ^ | + | ^ A ^ B ^ A && B |
| - | | 1 | 1 | 1 | | + | | 1 | 1 | 1 |
| - | | 1 | 0 | 0 | | + | | 1 | 0 | 0 |
| - | | 0 | 1 | 0 | | + | | 0 | 1 | 0 |
| - | | 0 | 0 | 0 | | + | | 0 | 0 | 0 |
| - | + | </ | |
| - | Z této pravdivostní tabulky jasně vyplývá, že k tomu, aby byl složený výrok se spojkou ''&&'' | + | * Aby byl složený výrok se spojkou ''&&'' |
| - | + | * Z pravdivostní tabulky spojky '' | |
| - | ^ A ^ B ^ A %%||%% B ^ | + | |
| - | | 1 | 1 | 1 | | + | |
| - | | 1 | 0 | 1 | | + | |
| - | | 0 | 1 | 1 | | + | |
| - | | 0 | 0 | 0 | | + | |
| - | + | ||
| - | Naopak z pravdivostní tabulky spojky '' | + | |
| === Negace === | === Negace === | ||
| Řádek 164: | Řádek 165: | ||
| </ | </ | ||
| + | |||
| 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. | 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. | ||
| ===== Priorita operátorů ===== | ===== Priorita operátorů ===== | ||
| + | < | ||
| <code c> | <code c> | ||
| int x; | int x; | ||
| Řádek 174: | Řádek 176: | ||
| printf(" | printf(" | ||
| </ | </ | ||
| - | + | </ | |
| - | 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í, | + | |
| - | + | | |
| - | Pokud tedy chceme, aby nejdříve došlo k součtu čísel 2 a 3, pomůžeme si závorkami: | + | < |
| <code c> | <code c> | ||
| int x; | int x; | ||
| Řádek 184: | Řádek 186: | ||
| Výsledkem je nyní číslo 20. | Výsledkem je nyní číslo 20. | ||
| </ | </ | ||
| + | </ | ||