V dnešním díle si probereme operátory, parsování, cykly a tím dobereme základy jazyka Boo.
Proměnná typu DateTime
Třídu DateTime
(System.DateTime
) využijeme, jak již název napovídá, při práci s časem. DateTime
eviduje datum rok i čas.
import System
cas as DateTime //implicitně 1.1.0001 00:00:00
cas = DateTime(2006,4,1,12,56,30)
print cas //vrací 1.4.2006 12:56:30
Tento kód vypíše datum 1.4.2006 12:56:30. Část s časem lze vynechat. Automaticky bude doplněn čas 00:00:00.
import System
cas as DateTime //možno vynechat, viz 2. díl
cas = DateTime(2006,4,1)
print cas //vrací 1.4.2006 00:00:00
import System
cas as DateTime(10)
Tento kód provede 10 tiků po 100ns od 1.1.0001. Tyto ukázky by nám samotné k ničemu asi nebyly. Důležitější pro nás je, že můžeme od třídy DateTime něco chtít. Například vrátit rok od zadaného data apod. K tomu slouží vlastnosti Year
, Day
, Hour
, Minute
, Second
, Millisecond
.
import System
a = DateTime(2006,4,1)
print a.Year //vrací 2006
S daty můžeme provádět matematické operace jako sčítání a odčítání. Výsledkem je objekt třídy System.TimeSpan
.
Aktuální datum a čas vypíše pomocí
import System
DateTime.Now
Operátory
Priorita operátorů
Všechny metody se vyhodnocují zleva doprava, operátory se však vyhodnocují podle priorit. Sčítání má například menší prioritu než násobení apod. Pokud použijeme operátory se stejnou prioritou, provádějí se zleva doprava.
2 + 3.5 * 2 / 3 //vrátí 4,333
Nejdříve se provede násobení, poté dělení a nakonec sčítání.
Parsování
Metoda Parse
slouží k získání informací z řetězců. Čteme-li například data ze vstupu, jsou všechna reprezentována jako string
. Pokud jsou tato data číselná, potřebujeme jejich hodnotu a tu získáme parsováním vstupního řetězce. Příklady níže v Načtení informací z konzole.
Cykly
Cyklus for(each)
Cyklus for(each)
je jeden z nejpoužívanějších cyklů a slouží k procházení posloupností. Ukážeme si nějaké příklady.
for i as int in range(5):
print i
for i in range(5): //totožné s předchozím cyklem
print i
Tento cyklus nám vypíše do konzole řadu 5 čísel. A to od 0 do 4. Cyklus for(each)
umožňuje nejen zadat počet opakování, ale i počátek cyklu a jeho krok.
for i as int in range(10,20,2):
print i
Tento cyklus vypíše 5 čísel a to 10, 12, 14, 16 a 18. Zde si musíme dávat pozor, protože začátek se bere včetně a konec cyklu se bere kromě.
Cyklus while
Cyklus while je klasický cyklus, který najdeme ve všech jazycích. Podmínka je na začátku cyklu a provádí se dokud je podmínka pravdivá.
//příklad cyklu while
import System
i as int
while(i < 5):
print i
i++
Samotnou teorii máme za sebou a nyní se podíváme na tu zábavnější stránku programování: Ukážeme si, jak načíst informace ze vstupu a jak vrátit infomace na konzoli.
Výpis na konzoli
Informace můžeme vypsat na konzoli několika způsoby. Hned v první lekci jsme si ukázali funkci print
. Někdy je nevýhodou, že za výpisem odřádkuje. Pokud nám to nevyhovuje, lze použít metodu Write().
for i as int in range(5):
Console.Write(i)
Načtení informace z konzole
Samotný program by nebyl "správným" programem, kdyby dělal stále totéž a my bychom nemohl jeho chování ovlivnit. Nejsnazší způsob, jak dostat nějaké informace do programu, je vstup na konzoli. Pro získání informace a uložení do proměnné použijeme funkci gets()
.
input as string
input = gets()
//nebo
input = gets()
Potřebujeme-li načíst z konzole například číslo, musíme použít parsování (viz výše).
i as int
i = int.Parse(gets())
Metoda Parse()
je stejná i pro double
, bool
, apod.
Toto je konec série článků Úvod do programovacího jazyka Boo. Po přečtení byste měli umět vytvořit jednoduchý program do konzole. Pokud vás tento jazyk zaujal, použijte k dalšímu studiu oficiální stránky, kde najdete spoustu příkladů nebo použijte prezentaci pana Jiřího Fišera.