Seriál Ruby on Rails 5: Počítání s Ruby
Řešení základních matematických operací v Ruby.
Základy počítání
Stejně jako jiné programovací jazyky, umožňuje Ruby řešit základní matematické operace. Interpret jazyka disponuje základními operátory, které můžeme v kódu používat:
1 2 3 4 5 6 7 8 |
#scitani puts 3+3 #vypise 6 #odcitani puts 3-3 #vypise 0 #nasobeni puts 3*3 #vypise 9 #deleni puts 3/3 #vypise 1 |
U dělení se na chvíli pozastavíme. Vyzkoušejte si následující příklad:
1 |
puts 10/3 |
Tento příklad nevypíše výsledek, který byste zřejmě čekali, ale vypíše výsledek v podobě celého čísla. Zde je vidět, jak Ruby pracuje s datovými typy (k podrobnému vysvětlení datových typů se dostaneme později). Pokud pracujeme s celými čísly, Ruby se nám opět snaží tento datový typ vracet, abychom dosáhli přesnějšího výsledku v podobě desetinného čísla, budeme muset tento datový typ použít v dělení:
1 |
puts 10/3.0 |
V tomto případě dostaneme výsledek v podobě desetinného čísla, přesně tak, jak potřebujeme. Ruby rozhodne, že dělíme celé číslo desetinným a vrátí nám výsledek v podobě čísla 3.33333333333333.
V případě celočíselného, ale i desetinného dělení máme ještě jednu možnost získání zbytku po dělení, použitím operátoru procenta „%“, který na rozdíl od podílu vrací pouze zbytek po tomto dělení:
1 2 3 4 |
puts 11%3.0 #2.0 puts 10%5.2 #4.8 puts 14/6 #2 puts 20%3.2 #0.799999999999 |
Pro početní operace můžeme využít proměnné a spolu s nimi vytvořit jednoduchý program na výpočet obvodu kruhu:
1 2 3 |
PI = 3.14 r = 5 obvod = 2*PI*r |
V proměnné obvod bude nyní uložen výsledek obvodu kruhu o poloměru 5 početních jednotek.
Zkrácené počítání s Ruby
Prozatím jsme si ukázali pouze několik základních operátorů +, -, /, *, %. V Ruby jich existuje mnohem více.
Tyto další operátory se vztahují pouze ke změně stávající proměnné, u které hodnotu chceme upravit, a ne vytvořit zcela novou.
Všechny tyto operátory pracují tak, že vezmou hodnotu stávající proměnné a k té počítají hodnotu výrazu za operátorem.
Operátory jsou:
- „+=“ – přičtení hodnoty k proměnné
- „-=“ – odečtení hodnoty od proměnné
- „*=“ – násobení proměnné hodnotou
- “/=“ – dělení proměnné hodnotou
- „%=“ – do proměnné uloží zbytek po dělení proměnné a hodnoty
- „**=“ – umocní proměnnou hodnotou
Pro lepší pochopení se můžete podívat na ukázku:
1 2 3 4 5 6 7 |
puts a = 10 #vypise 10 puts a += 1 #vypise 11 puts a -= 1 #vypise 10 puts a *= 2 #vypise 20 puts a /= 2 #vypise 10 puts a **= 3 #vypise 1000 puts a %= 7 #vypise 6 |
Operátorů, které můžeme použít, existuje více, ale prozatím nejsou důležité.
Počítání bez čísel
K počítání vždy patří čísla, ovšem v programování to není až tak pravda, a počítat můžeme i například s řetězci, nebo jinými strukturami.
Samozřejmě je toto počítání velmi omezené, a ve své podstatě se nejedná ani o počítání, jako spíše o vyhodnocování výrazů.
K dispozici máme pouze operátory pro sčítání a násobení:
1 2 |
puts 'ahoj' + ' ' + 'svete' puts 'ahoj svete ' * 2 |
Obě tyto operace budou vyhodnoceny a korektně provedeny. Výsledky operací určitě tušíte.
Závěrem
V příští části se podíváme na datové typy, vysvětlíme si co to datové typy jsou a ukážeme jak s nimi Ruby pracuje.