přejít na obsah přejít na navigaci

Linux E X P R E S, Naučte se s námi Ruby - seriál pro učitele a žáky

Naučte se s námi Ruby - seriál pro učitele a žáky

ruby.jpg

V následujících několika článcích se budeme blíže seznamovat s programovacím jazykem Ruby. Cílem tohoto seriálu nebude udělat z vás hotové programátory, ani rozšířit vaši sbírku zářezů na opasku udávající, kolik programovacích jazyků znáte.


Články jsou jednoduše určeny pro začínající programátory, ať už se tím budou později zabývat na profesionální či amatérské úrovni. Seriál mohou použít také učitelé na všech typech škol k rozšíření znalostí jim svěřených studentů, ať už jako hlavní či vedlejší programovací jazyk.

V textu pak nehledejte žádná moudra zkušeného programátora, ani pění chvály na každou novou vlastnost či funkci. Při jeho vytváření jsem vycházel z dostupné dokumentace k programovacímu jazyku Ruby, konkrétně pak z textu Learn to Program, který vytvořil Chris Pine. Vlastní struktura pak bude připadat spíš učebnici, a tak se bude stejně jako v originále každý článek zaměřovat na jednu konkrétní část jazyka, zároveň se bude předpokládat znalost předchozích dílů, které na sebe logicky navazují. Jiné znalosti nejsou třeba. Námi vytvořené programy budou určeny pro textovou konzoli, grafickými programy se zabývat nebudeme.

Co to je Ruby a odkud přišel? Krátké povídání naleznete v sekci Programovací jazyky Lukáše Faltýnka.

Protože nemám rád zbytečné otálení, pojďme se nyní rovnou podívat, jak se v Ruby pracuje, dnešní kapitola se bude nazývat Čísla a ukáže vám, jak se provádí základní matematické operace.

Čísla

Ať už jste někdy programovali nebo ne, pro psaní programu je potřeba nějaký textový editor. Tímto editorem se nemyslí editor typu OpenOffice.org Writer, ale opravdový textový editor, tím může být např. vim, emacs, mousepad, Gedit, Kate, nebo třeba nedávno zmiňovaný editor Geany.

Pokud berete programování opravdu vážně, pak věnujte výběru textového editoru určitou pozornost. Pokud se s ním naučíte opravdu dobře pracovat, pak vám jistě ulehčí vaši práci.

Nyní nastal ten správný čas na vytvoření prvního program nazývaného soucet.rb. Pravda, běžně se vždy začíná napsáním programu typu "Hello World!", tedy programu, který světu ohlašuje "Ahoj světě!" (tady jsem, já, nový programátor). Na druhou stranu, proč nezačít trochu nezvykle tou snad nejstarší vědou - matematikou.

Příklad: soucet.rb
puts 1+2

Soubor uložte a vlastní program pak spusťte v příkazovém řádku následovně:

$ ruby soucet.rb
3

Znak dolaru $ v předchozím zápisu nezadávejte! Symbol pouze značí příkazový řádek (terminál), ve kterém je potřeba příkaz zadat.

Pro spuštění programu v jazyku Ruby je potřeba nějaký interpretr. Tzn. program, který spustí vámi zapsaný program vytvořený v tomto jazyce. Interpretrem je stejnojmenný program ruby, který se standardně nachází v balíčku ruby a v Debian GNU/Linuxu jej nainstalujete zadáním příkazu aptitude install ruby.

Tím jste vytvořili svůj první program, zatím nic složitého, ale počítá to. Ostatně není to právě jedna z věcí, kterou si můžeme představit pod slovem počítač - počítací stroj? V příkladu jsme použili příkaz jazyka Ruby - je jím puts, který se chová tak, že na obrazovku vypíše cokoliv, co za ním následuje.

Některá pokročilé textové editory či vývojová prostředí vám umožní spouštět kód přímo z programu. Pokud to váš editor neumí, nebo s ním ještě nejste dobře seznámeni, nezbude vám než program spouštět ručně v konzoli mimo něj. Před spuštěním skriptu nezapomeňte program vždy uložit!

Jednoduchá aritmetika

V následujícím příkladě si můžete vyzkoušet jednoduché operace s čísly.

Example: pocitani.rb
puts 1.0 + 2.0
puts 2.0 * 3.0
puts 5.0 - 8.0
puts 9.0 / 2.0

Jeho výstupem je

3.0
6.0
-3.0
4.5

Mezery mezi čísly a operátory nejsou nutné, ale výrazně usnadňují čtení programu.

V příkladu jsme poprvé použili reálná čísla. Reálná čísla se liší od celých čísel na první pohled v tom, že obsahují desetinnou čárku a podíváte-li se pozorněji do výše uvedeného příkladu, pak dokonce uvidíte desetinnou tečku! Ruby stejně jako ostatní programovací jazyky používá pro oddělení desetinné části čísla symbol tečky, takže na to pozor.

Použití desetinné tečky je jednoznačně dáno místními zvyklostmi v některých cizích zemích, zejména těch anglicky hovořících. Jinak řečeno, my máme desetinnou čárku, oni mají desetinnou tečku a nezbývá se s tím než smířit.

Pokud provedete to samé s celými čísly, dostanete podobný výsledek.

Example: pocitani2.rb
puts 1+2
puts 2*3
puts 5-8
puts 9/2

zobrazí

3
6
-3
4

Povšimněte si výsledku 9/2 = 4. Protože dělíte celá čísla, je výsledkem opět celé číslo, a to doslova za každou cenu. Ruby v tomto případě zahodí desetinnou část, ať už je jakákoliv.

I když na vás mohou předchozí příklady počítání s celými čísly působit legračně a příliš jednoduše, jistě se s nimi setkáte i později a to dokonce častěji než si můžete přát. V programech se často objevují počítání typu "jedna a jedna", "deset bez pěti" nebo "dvakrát dva", tedy na první pohled jednoduché výpočty, ale ve výsledku… ehm, to se budete ještě divit. Prostě umět dobře počítač s celými čísly se opravdu vyplatí.

Nyní nastal ten správný čas na to vyzkoušet složitější příklady. Podívejte se na pocitani3.rb.

Example: pocitani3.rb
puts 5 * (12-8) + -15
puts 98 + (59872 / (13*8)) * -52
puts 5 * 12-8 + -15

a jeho výstup

5
-29802
37

Tady asi netřeba nějaký zvláštní komentář. Je totiž vidět, že Ruby interpretuje přednosti matematických operací tak, jak jsme zvyklí (násobení má přednost před sčítáním), nevadí mu záporná znaménka (např. číslo -15) a také můžeme závorkovat dle libosti. Inu závorek není nikdy dost.

Příklady 1

  • Kolik hodin má rok?
  • Kolik minut má desetiletí?
  • Kolik sekund vám je?
  • Je mi 1 000 miliónů sekund, kolik mi je?

Tím bychom měli základní operace s čísly hotové, příště se podíváme, jak se pracuje s textem.

Nahoru

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz