spse:pm1:cpp-operatory

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
spse:pm1:cpp-operatory [2020/12/07 20:24] jendaspse:pm1:cpp-operatory [2024/07/07 16:48] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 59: Řádek 59:
 </fragment-block> </fragment-block>
 ----> ---->
-Příklad:+ 
 +<fragment-block>
 <code c> <code c>
 int x; int x;
Řádek 66: Řádek 67:
 // output: "1" // output: "1"
 </code> </code>
 +</fragment-block>
   * Proměnné ''x'' je přiřazen výsledek operace ''10 % 3'' - zbytek po dělení třemi.    * 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.   * 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)''.
-Tímto způsobem lze například snadno zjistit, zda je číslo sudé nebo liché ''(19 % 2 = 1; 22 % 2 = 0)''.+
 <---- <----
  
Řádek 79: Řádek 79:
     * ''x += y;'' má stejný význam jako: ''x = x + y;''     * ''x += y;'' má stejný význam jako: ''x = x + y;''
   * Obdobné je to i s dalšími složenými operátory:   * Obdobné je to i s dalšími složenými operátory:
-    *  <fragment highlight-red> ''-=, *=, /=, %=, >>=, <<=, &=, ^=, |=''</fragment>+    * ''-=, *=, /=, %=, >>=, <<=, &=, ^=, |=''
  
 ==== Inkrementace a dekrementace ==== ==== Inkrementace a dekrementace ====
  
-Inkrementace se značí ''++'' (např.: ''a++;'') a dekrementace ''--'' (např.: ''a--;'') a používá se ke zvýšení nebo zvýšení hodnoty proměnné o 1. + Inkrementace se značí ''++'' (např.: ''a++;'') a dekrementace ''--'' (např.: ''a--;'') a používá se ke zvýšení nebo zvýšení hodnoty proměnné o 1. 
 +<fragment-block>
 <code c> <code c>
 x++; x++;
Řádek 90: Řádek 90:
 </code> </code>
 Tento zápis má stejný význam jako zápis ''x = x + 1;'' Tento zápis má stejný význam jako zápis ''x = x + 1;''
 +</fragment-block>
 ===== 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ě. 
 +<fragment-block>
 ^ OPERÁTOR ^ VÝZNAM ^ ^ OPERÁTOR ^ VÝZNAM ^
 | > | větší než  | | > | větší než  |
Řádek 102: Řádek 103:
 | == | je rovno  | | == | je rovno  |
 | != | není rovno  | | != | není rovno  |
- +</fragment-block> 
-Výsledkem porovnání je vždy booleovská hodnota a to pravda nebo nepravda.+  Výsledkem porovnání je vždy booleovská hodnota a to pravda nebo nepravda.
 ----> ---->
 <code c> <code c>
Řádek 114: Řádek 115:
 x/2 != y; //nepravda x/2 != y; //nepravda
 </code> </code>
-<---- +<fragment-block
-----+<WRAP center round important 100%>
-<WRAP center round important 60%>+
 Operátor ''='' neslouží pro porovnání rovnosti proměnných. Je třeba použít operátor ''==''. Operátor ''='' neslouží pro porovnání rovnosti proměnných. Je třeba použít operátor ''==''.
 </WRAP> </WRAP>
 +</fragment-block>
 <---- <----
 ===== 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. 
 +<fragment-block>
 ^ OPERÁTOR ^ VÝZNAM ^ ^ OPERÁTOR ^ VÝZNAM ^
 | && | spojka a (and)  | | && | spojka a (and)  |
 | %%||%% | spojka nebo (or)  | | %%||%% | spojka nebo (or)  |
 | ! | negace  | | ! | negace  |
 +</fragment-block>
 ----> ---->
 Příklad: Mějme následující složený výrok: Příklad: Mějme následující složený výrok:
Řádek 137: Řádek 140:
 ((x < y) && (y != x)); ((x < y) && (y != x));
 </code> </code>
-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ů. +  * 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)''. 
-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. +  * Výslednou hodnotou složeného výroku je tedy pravda, jelikož pravda a pravda = pravda. 
 <---- <----
 ==== Pravdivostní tabulky: ==== ==== Pravdivostní tabulky: ====
- +<fragment-block> 
-^ A ^ B ^ A && B ^ +^ A ^ B ^  A && B   A %%||%% B  
-| 1 | 1 | 1 | +| 1 | 1 |    1  
-| 1 | 0 | 0 | +| 1 | 0 |    1  
-| 0 | 1 | 0 | +| 0 | 1 |    1  
-| 0 | 0 | 0 | +| 0 | 0 |    0  
- +</fragment-block> 
-Z této pravdivostní tabulky jasně vyplývá, že k tomu, 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. +  * 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.
-^ A ^ B ^ A %%||%% B ^ +
-| 1 | 1 | 1 | +
-| 1 | 0 | 1 | +
-| 0 | 1 | 1 | +
-| 0 | 0 | 0 | +
- +
-Naopak z pravdivostní tabulky spojky ''||'' vyplývá, že stačí aby byl pravdivý pouze jeden jednoduchý výrok.+
  
 === Negace === === Negace ===
Řádek 169: Řádek 165:
  
 </code> </code>
 +
 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ů =====
 +<fragment-block>
 <code c> <code c>
 int x; int x;
Řádek 179: Řádek 176:
 printf("%d\n",x); printf("%d\n",x);
 </code> </code>
- +</fragment-block> 
-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. +  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: 
-Pokud tedy chceme, aby nejdříve došlo k součtu čísel 2 a 3, pomůžeme si závorkami:+<fragment-block>
 <code c> <code c>
 int x; int x;
Řádek 189: Řádek 186:
 Výsledkem je nyní číslo 20. Výsledkem je nyní číslo 20.
 </code> </code>
 +</fragment-block>
  • spse/pm1/cpp-operatory.1607372691.txt.gz
  • Poslední úprava: 2024/07/07 16:48
  • (upraveno mimo DokuWiki)