Porovnej

Navigace:  Rozhodování >

Porovnej

Předchozí stránkaNahoruDalší stránka

Již víme, jaké typy rozhodování nám Urwigo nabízí, teď je na řadě, abychom si ukázali, jak se tvoří podmínky, které jsou nedílnou součástí většiny rozhodování. K tomu nám slouží některé nabídky z levého panelu Výrazy. Začněme tedy přetahovat.

 

Porovnej je jeden z nejzákladnějších typů podmínek. Umožňuje nám porovnat hodnoty dvou proměnných, vlastností nebo obecně výrazů. Po jejím přetažení do diagramu se rozdělí na dvě části - levou a pravou, mezi nimiž je porovnávací znaménko. Narozdíl od akce Nastavit, je u Porovnej jedno, co na kterou stranu umístíme. Obě strany porovnání jsou rovnocenné a mohou obsahovat proměnné, vlastnosti objektů, hodnoty nebo složitější výpočty. Je jenom na nás, jestli vytvoříme podmínku „proměnná > 5“ nebo „5 < proměnná“, obojí dává stejný výsledek.

 

Parametry porovnání můžeme nastavit v pravém panelu vlastností. Co budeme nejspíš měnit především, je tzv. operátor, neboli porovnávací znaménko. Máme na výběr z těchto možností: rovná se (=), nerovná se (≠), menší (<), větší (>), menší nebo rovno (≤), větší nebo rovno (≥). Jak vidíme, jedná se o matematická znaménka rovnosti a nerovnosti.

 

Porovávání textů

Pokud budeme porovávat číselné hodnoty, je asi všechno jasné. Výraz Porovnej však funguje i na porovnávání textových údajů. To se ale od porovávání čísel mírně liší, tak by nebylo na škodu si o tom něco povědět:

Porovávání se provádí podle umístění písmene v abecedě - čím blíže jejímu konci se písmeno nachází, tím je větší. Takže „B“ > „A“, „Z“ > „C“ apod. Malá písmena jsou při porovávání větší než velká písmena (zní to divně, ale je to tak), takže „b“ > „a“, „z“ > „c“, ale „a“ > „Z“, „a“ > „A“. Číslice se porovnávají stejně jako u čísel, takže „0“ < „1“, „1“ < „2“, ... „8“ < „9“, zároveň jsou však menší než písmena, takže „9“ < „A“, „9“ < „a“.

 

U víceznakových textů probíhá porovnání podobně: Nejprve se porovnají první znaky, v případě rovnosti se porovnají druhé znaky, v případě jejich rovnosti přijdou na řadu třetí atd. Takže „AB“ > „AA“, „ACA“ < „ACB“ apod. Pokud mají porovnávané texty různou délku a jinak jsou shodné, pak je za větší považován delší text, tedy „AA“ < „AAA“, ale „B“ > „ABCD“ (podle prvních znaků).

A tady dobrý pozor! Vzhledem k výše uvedenému je rozdíl, jestli číselné hodnoty porovnáváme jako čísla nebo jako texty. Platí totiž, že 2 < 10 (matematicky správně), ale „2“ > „10“ (textové porovnávání, nejprve se porovnávají první znaky)!

 

A co ostatní znaky? Samozřejmě, že se dají porovnávat i jiné znaky než číslice a písmena. To, jestli je jeden znak větší nebo menší než druhý, vyplývá z jejich pozice v ASCII tabulce znaků. Znak s nižším ASCII kódem je menší, než znak s vyšším ASCII kódem. Takže např. „!“ < „?“ a „!“ < „9“, ale „?“ > „9“ atd.

 

Velká a malá písmena

Jak už jsme si před chvílí ukázali, velká a malá písmena mají při porovnávání jinou hodnotu, tedy např. „a“ je větší než „A“. To znamená, že „Alena“ ≠ „ALENA“ ≠ „alena“. V běžných programovacích jazycích si na tento fakt musíme dávat pozor. Urwigo však v tomto směru myslí trochu za nás. Podívejte se ještě jednou na pravý panel vlastností. Pod položkou Operátor uvidíte zaškrtávací box s názvem Ignorovat velikost písmen, který je automaticky zaškrtnutý. To znamená, že v tomto porovnávání se velikost písmen nebude brát v potaz a bude platit, že „Alena“ = „ALENA“ = „alena“. Pokud zaškrtnutí zrušíme, pak toto porovnávání velikost písmen rozlišovat bude.

Tato vymoženost ovšem byla v předchozích verzích Urwiga zdrojem pádů aplikace v určitých specifických případech souvisejících s uživatelským vstupem. Sice by měla být od verze 1.12 opravena, ale v části věnované vstupům se o ní radši zmíníme.

 

Nemíchejte hrušky s jablky

Při porovnávání je potřeba mít na paměti, že lze porovnávat vždy pouze hodnoty stejných typů - čísla s čísly a texty s texty. Pokud bychom na jednu stranu porovnávání přesunuli číslo a na druhou stranu text, Urwigo nám ohlásí chybu.