Obsah
GEL znamená Genius Extension Language (rozšiřující jazyk Genius). Jedná se o jazyk, ve kterém píšete programy v kalkulátoru Genius. Program v jazyce GEL je jednoduše výraz, který je vyhodnocen jako číslo, matice nebo nějaký jiný objekt v GEL. Matematický nástroj Genius tak může sloužit jako jednoduchý kalkulátor a nebo jako mocný nástroj pro teoretický vědecký výzkum. Cílem syntaxe je, aby byla snadná na naučení, jak jen to jde, zejména pro používání aplikace jako kalkulačky.
Hodnotami v jazyce GEL mohou být čísla, pravdivostní hodnoty nebo řetězce. GEL zachází jako s hodnotami i s maticemi. Hodnoty mohou být mimo jiných věcí použity k výpočtům, přiřazovány do proměnných a vraceny z funkcí.
Prvním typem čísel v GEL jsou celá čísla (integer). Celá čísla se zapisují normálním způsobem.
1234
V šestnáctkové a osmičkové soustavě mohou být zapsána pomoci notace jazyka C. Například:
0x123ABC 01234
Nebo můžete čísla zapsat v libovolné soustavě pomocí <základ>\<číslo>
. Číslice větší než 9 se zapisují pomocí písmen podobně jako u šestnáctkové soustavy. Například číslo v třiadvacítkové soustavě můžete zapsat:
23\1234ABCD
Druhým typem čísel v GEL jsou racionální čísla (rational). Racionální čísla vznikají podělením dvou celých čísel. Takže můžete zapsat:
3/4
abyste získali tři čtvrtiny. Racionální čísla rovněž akceptují smíšené zlomky. Takže abyste získali jedna a tři desetiny, můžete napsat:
1 3/10
Dalším typem čísel jsou desetinná čísla – čísla s plovoucí desetinnou čárkou (floating). Zadávají se ve formátu podobném notaci C. Jako oddělovač exponentu můžete použít E
, e
or @
. Upozorňujeme, že když použijete oddělovač exponentu, bude číslo bráno jako desetinné, i když neobsahuje desetinnou tečku. Například:
1.315 7.887e77 7.887e-77 .3 0.3 77e5
Když Genius vypisuje desetinné číslo, vždy u něj přidá .0
, i když je celé. Tím se dává najevo, že desetinná čísla nemají dokonalou přesnost. Pokud je číslo zapsáno ve vědecké notaci, jedná se vždy o desetinné číslo a Genius tak nemusí vypisovat .0
.
Posledním typem čísel v GEL jsou komplexní čísla (complex). Komplexní číslo můžete zadat jako součet reálné a imaginární části. Imaginární část přidáte doplněním i
. Zde jsou příklady zápisu komplexních čísel:
1+2i 8.01i 77*e^(1.3i)
Při zadávání imaginárních čísel musí číslo vždy předcházet před i
. Pokud byste použili samotné i
, Genius by se k němu stavěl, jako k odkazu na proměnnou i
. Pokud potřebujete použít právě i
, použijte místo toho 1i
.
Pokud chcete u imaginárních čísel použít notaci složených zlomků, musíte složený zlomek uzavřít do závorek, např. (1 2/5)i
.
Genius také nativně podporuje pravdivostní hodnoty (boolean). Jsou definovány dvě pravdivostní konstanty, true
(pravda) a false
(nepravda). Tyto identifikátory mohou být použity stejně jako jiné proměnné. Případně můžete použít i varianty True
, TRUE
, False
a FALSE
.
Všude, kde je očekáván pravdivostní výraz, můžete použít pravdivostní hodnotu nebo libovolný výraz, jehož výsledkem je číslo nebo pravdivostní hodnota. V případě, že má Genius vyhodnotit číslo jako pravdivostní hodnotu, pak je nula brána jako false
a všechna ostatní čísla jako true
.
Navíc můžete s pravdivostními hodnotami provádět aritmetické operace. Například:
( (1 + true) - false ) * true
je to stejné jako:
( (true or true) or not false ) and true
Podporovány jsou akorát sčítání, odčítání a násobení. Pokud mícháte ve výrazu dohromady čísla s pravdivostními hodnotami, jsou čísla nejprve převedena na pravdivostní hodnoty podle pravidel popsaných výše. To znamená, že například:
1 == true
je vždy vyhodnoceno jako true
, protože 1 bude před porovnáním s true
převedeno na true
.
Stejně jako čísla a pravdivostní hodnoty, mohou být i řetězce (string) uloženy jako hodnoty v proměnných a předávány do funkcí. Můžete také spojit řetězec s jiným řetězcem pomocí operátoru plus. Například:
a=2+3;"Výsledek je: "+a
vytvoří řetězec:
Výsledek je: 5
Rovněž můžete používat escape sekvence ve stylu C, jako \n
,\t
,\b
,\a
a \r
. Když potřebujete v řetězci \
nebo "
, musíte mu předřadit \
. Například:
"Lomítko: \\ Uvozovky: \" Tabulátory: \t1\t2\t3"
vytvoří řetězec:
Lomítko: \ Uvozovky: " Tabulátory: 1 2 3
Je třeba ale poznamenat, že když je řetězec vrácen z funkce, jsou zpětná lomítka ošetřena, takže takovýto výstup může být použit jako vstup. Pokud chcete řetězec vypsat jak je (bez použití escape sekvencí), použijte funkci print
nebo printn
.
Navíc můžete použít knihovní funkci string
k převodu čehokoliv na řetězec. Například:
string(22)
vrátí
"22"
Řetězce je také možné porovnávat pomocí operátorů ==
(rovno), !=
(není rovno) a <=>
(porovnání).
Existuje speciální hodnota nazývaná null
. Nelze s ní provádět žádné operace a když je vrácena, není nic vypsáno. Proto je hodnota null
užitečná, když nechcete z výrazu získat žádný výstup. Hodnotu null
získáte tak, že napíšete výraz .
, konstantu null
nebo nic. Tím se nemyslí nic jiného, než že když výraz zakončíte oddělovačem ;
, je to stejné, jako byste jej zakončili oddělovačem následovaným null
.
Příklad:
x=5;. x=5;
Některé funkce vrací null
v případě, že nelze vrátit žádnou hodnotu nebo nastane chyba. null
se rovněž používá jako prázdný vektor, prázdná matice nebo prázdná reference (odkaz).