|
||
OperátoryV předchozích lekcích tohoto tutoriálu jsme se seznámili s proměnnými a konstantami. Nyní je potřeba, naučit se s těmito prvky dokonale pracovat, jelikož programy, které později budeme psát, jsou založeny právě na této bázi. Proto se v této lekci podrobněji podíváme na operátory bez jejichž ználosti se při práci s proměnnými neobejdeme. Na začátek bych podotknul, že účelem této lekce není, naučit se nazpaměť všechny operátory, ale pochopit co to vlastně operátor je a jakou má daný operátor funkci. K této stránce se později můžete kdykoliv vrátit.Operátor přiřazeníHned prvním operátorem bez kterého se určitě neobejdeme, je operátor přiřazení. Jedná se o základní, ale zřejmě najčastěji používaný operátor a značí se rovnítkem (=). Podívejme se na následující ukázku: int x;
Máme proměnnou x, které je přiřazena hodnota 7. Na této ukázce je výsledná hodnota, která se vypíše zcelá zřejmá. Podívejme se však na následující ukázku: int x,y,z;
Tento příklad je už o něco složitější, nicméně stačí si uvědomit, že u přiřazení platí pravidlo right to left, neboli z prava do leva. Znamená to, že hodnota pravé strany je přiřazovana levé straně. Příklad: int x,y,w,z;
Hodnota proměnné x je samozřejmě 7. Tato hodnota je zprava postupně předávána všem proměnným. Aritmetické operátoryTyto operátory zná každý člověk již od první třídy základní školy. Jedná se o operace jako sčítaní a odčítání či dělení a násobení. Patří sem však také operace modulo, která nemusí být každému známá.
Operaci modulo si pro jistotu vysvětlíme na následujícím příkladu: int x;
Proměnné x je přiřazena hodnota 10 % 3, což známená zbytek po dělení třemy. Tedy 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). Složené přiřazeníJednoduchý operátor přiřazení již známe, proto se můžeme podívat na přiřazení složené. Bez znalosti operátorů složeného přiřazení se však bezproblémů obejdeme, jedná se pouze o zjednodušení zápisu. Například:
x += y;
x = x + y;
Obdobné je to i s dalšími složenými operátory: -=, *=, /=, %=, >>=, <<=, &=, ^=, |= Inkrementace a dekrementacePokud proměnnou inkrementujeme, znamená to, že její hodnotu zvýšíme o 1. Naopak dekrementovat známená snižit hodnotu o 1. Inkrementace se značí ++ (např.: a++;) a dekrementace -- (např.: a--;).
x++;
Tento zápis má stejný význam jako zápis x = x + 1;. U dekrementace je pouze rozdíl ve znaménku. Operátory pro inkrementaci a dekrementaci lze zapsat jednak za proměnnou (postfix), ale i před proměnnou (prefix), tedy x++ nebo ++x. Tyto dva zápisy mají relativně stejný význam. Ovšem při přiřazování se liší:
int x,y;
Pokud použijeme prefixový způsob zápisu, bude proměnné x přiřazena hodnota 3, jelikož při přiřazování nejprve došlo k inkrementaci proměnné y a až poté k přířazení.
int x,y;
Pokud však použijeme postfixový zápis, bude proměnné x přiřazena hodnota 2, protože při přiřazování byla nejprve proměnné x přiřazena hodnota y (2) a až poté došlo k inkrementaci y. Relační operátoryRelač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ě.
Výsledkem porovnání je vždy booleovská hodnota a to pravda nebo nepravda. Například:
int x,y;
Logické operátoryLogické 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. Mezi logické operátory patří:
Příklad: Mějme následující složený výrok:
int x,y;
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. Podívejme se na následující pravdivostní tabulky:
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.
Naopak z pravdivostní tabulky spojky || vyplývá, že stačí aby byl pravdivý pouze jeden jednoduchý výrok. Pro úplnost si ukážeme ještě již zmiňovanou negaci:
int x,y;
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. Podmíněný operátorPodmíněný operátor je tzv. ternární operátor. Skládá se totiž celkem ze 3 částí. První částí je výrok, který je vyhodnocen jako pravdivý nebo nepravdivý. Zbylé 2 části jsou jednotlivé výsledky. Pokud je tedy výrok vyhodnocen jako prvdivý, výsledkem je druhá část. V připadě nepravdy je výsledkem třetí část. Syntaxe tohoto operátoru je následující:
výrok ? výsledek v případě pravdy : výsledek v případě nepravdy;
Příklad:
int x,y,nej;
Priorita operátorůPriorita operátorů má vliv na to, která operace se provede dříve. Příklad:
int 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. Prioritu operátorů však vůbec nepotřebujete znát. Existuje jednoduchý trik a to závorky. Pokud tedy chceme, aby nejdříve došlo k součtu čísel 2 a 3, pomůžeme si závorkami:
int x;
Výsledkem je nyní číslo 20. V C++ existují ještě další operátory. My si však nyní bohatě vystačíme z operátory, které jsme si uvedli v této lekci. Na závěr ještě jednou připomenu, že není účelem znát všechny operátory, je potřeba znát jak se v C++ s operátory pracuje. Operátory si osvojíte tím, že je budete používat. Pokud některý používat nebudete a setkáte se s tím, že jej budete najednou potřebovat, pamatujte, že se kdykoliv můžete na tuto stránku vrátit. |
Počítadlo |
| Nahoru
Úvod |
HTML |
CSS |
C++ |
JavaScript |
Grafika & design |
Webhosting
|