File: ch05.html

package info (click to toggle)
genius 1.0.27-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 25,308 kB
  • sloc: ansic: 75,620; xml: 71,565; sh: 4,445; makefile: 1,927; lex: 523; yacc: 298; perl: 54
file content (82 lines) | stat: -rw-r--r-- 13,024 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 5. Základy jazyka GEL</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><link rel="home" href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="index.html" title="Příručka k aplikaci Genius"><link rel="prev" href="ch04s05.html" title="Plošné grafy"><link rel="next" href="ch05s02.html" title="Používání proměnných"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 5. Základy jazyka GEL</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04s05.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch05s02.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="genius-gel"></a>Chapter 5. Základy jazyka GEL</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="ch05.html#genius-gel-values">Hodnoty</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch05.html#genius-gel-values-numbers">Čísla</a></span></dt><dt><span class="sect2"><a href="ch05.html#genius-gel-values-booleans">Pravdivostní hodnoty</a></span></dt><dt><span class="sect2"><a href="ch05.html#genius-gel-values-strings">Řetězce</a></span></dt><dt><span class="sect2"><a href="ch05.html#genius-gel-values-null">Null</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch05s02.html">Používání proměnných</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch05s02.html#genius-gel-variables-setting">Nastavování proměnných</a></span></dt><dt><span class="sect2"><a href="ch05s02.html#genius-gel-variables-built-in">Vestavěné proměnné</a></span></dt><dt><span class="sect2"><a href="ch05s02.html#genius-gel-previous-result">Proměnná s posledním výsledkem</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch05s03.html">Používání funkcí</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch05s03.html#genius-gel-functions-defining">Definování funkcí</a></span></dt><dt><span class="sect2"><a href="ch05s03.html#genius-gel-functions-variable-argument-lists">Proměnný seznam argumentů</a></span></dt><dt><span class="sect2"><a href="ch05s03.html#genius-gel-functions-passing-functions">Předávání funkcí funkcím</a></span></dt><dt><span class="sect2"><a href="ch05s03.html#genius-gel-functions-operations">Operace s funkcemi</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch05s04.html">Oddělovač</a></span></dt><dt><span class="sect1"><a href="ch05s05.html">Komentáře</a></span></dt><dt><span class="sect1"><a href="ch05s06.html">Modulární aritmetika</a></span></dt><dt><span class="sect1"><a href="ch05s07.html">Seznam operátorů GEL</a></span></dt></dl></div><p>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. <span class="application">Matematický nástroj Genius</span> 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.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="genius-gel-values"></a>Hodnoty</h2></div></div></div><p>Hodnotami v jazyce GEL mohou být <a class="link" href="ch05.html#genius-gel-values-numbers" title="Čísla">čísla</a>, <a class="link" href="ch05.html#genius-gel-values-booleans" title="Pravdivostní hodnoty">pravdivostní hodnoty</a> nebo <a class="link" href="ch05.html#genius-gel-values-strings" title="Řetězce">řetězce</a>. GEL zachází jako s hodnotami i s <a class="link" href="ch08.html" title="Chapter 8. Matice v jazyce GEL">maticemi</a>. 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í.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="genius-gel-values-numbers"></a>Čísla</h3></div></div></div><p lang="en">
Integers are the first type of number in GEL. Integers are written in the normal way.
</p><pre lang="en" class="programlisting">1234
</pre><p lang="en">
Hexadecimal and octal numbers can be written using C notation. For example:
</p><pre lang="en" class="programlisting">0x123ABC
01234
</pre><p lang="en">
Or you can type numbers in an arbitrary base using <code class="literal">&lt;base&gt;\&lt;number&gt;</code>. Digits higher than 10 use letters in a similar way to hexadecimal. For example, a number in base 23 could be written:
</p><pre lang="en" class="programlisting">23\1234ABCD
</pre><p lang="en">
        </p><p lang="en">
The second type of GEL number is rationals. Rationals are simply achieved by dividing two integers. So one could write:
</p><pre lang="en" class="programlisting">3/4
</pre><p lang="en">
to get three quarters. Rationals also accept mixed fraction notation. So in order to get one and three tenths you could write:
</p><pre lang="en" class="programlisting">1 3/10
</pre><p lang="en">
        </p><p lang="en">
The next type of number is floating point. These are entered in a similar fashion to C notation. You can use <code class="literal">E</code>, <code class="literal">e</code> or <code class="literal">@</code> as the exponent delimiter. Note that using the exponent delimiter gives a float even if there is no decimal point in the number. Examples:
</p><pre lang="en" class="programlisting">1.315
7.887e77
7.887e-77
.3
0.3
77e5
</pre><p lang="en">
	When Genius prints a floating point number it will always append a
	<code class="computeroutput">.0</code> even if the number is whole.  This is to indicate that
	floating point numbers are taken as imprecise quantities.  When a number is written in the
	scientific notation, it is always a floating point number and thus Genius does not
	print the <code class="computeroutput">.0</code>.
        </p><p lang="en">
The final type of number in GEL is the complex numbers. You can enter a complex number as a sum of real and imaginary parts. To add an imaginary part, append an <code class="literal">i</code>.  Here are examples of entering complex numbers:
</p><pre lang="en" class="programlisting">1+2i
8.01i
77*e^(1.3i)
</pre><p lang="en">
        </p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>Při zadávání imaginárních čísel musí číslo vždy předcházet před <code class="literal">i</code>. Pokud byste použili samotné <code class="literal">i</code>, Genius by se k němu stavěl, jako k odkazu na proměnnou <code class="varname">i</code>. Pokud potřebujete použít právě <code class="literal">i</code>, použijte místo toho <code class="literal">1i</code>.</p><p>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ř. <strong class="userinput"><code>(1 2/5)i</code></strong>.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="genius-gel-values-booleans"></a>Pravdivostní hodnoty</h3></div></div></div><p>Genius také nativně podporuje pravdivostní hodnoty (boolean). Jsou definovány dvě pravdivostní konstanty, <code class="constant">true</code> (pravda) a <code class="constant">false</code> (nepravda). Tyto identifikátory mohou být použity stejně jako jiné proměnné. Případně můžete použít i varianty <code class="constant">True</code>, <code class="constant">TRUE</code>, <code class="constant">False</code> a <code class="constant">FALSE</code>.</p><p>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 <code class="constant">false</code> a všechna ostatní čísla jako <code class="constant">true</code>.</p><p lang="en">
In addition, you can do arithmetic with Boolean values. For example:
</p><pre lang="en" class="programlisting">( (1 + true) - false ) * true
</pre><p lang="en">
is the same as:
</p><pre lang="en" class="programlisting">( (true or true) or not false ) and true
</pre><p lang="en">
Only addition, subtraction and multiplication are supported. If you mix numbers with Booleans in an expression then the numbers are converted to Booleans as described above. This means that, for example:
</p><pre lang="en" class="programlisting">1 == true
</pre><p lang="en">
always evaluates to <code class="constant">true</code> since 1 will be converted to <code class="constant">true</code> before being compared to <code class="constant">true</code>.
        </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="genius-gel-values-strings"></a>Řetězce</h3></div></div></div><p lang="en">
Like numbers and Booleans, strings in GEL can be stored as values inside variables and passed to functions. You can also concatenate a string with another value using the plus operator. For example:
</p><pre lang="en" class="programlisting">a=2+3;"The result is: "+a
</pre><p lang="en">
will create the string:
</p><pre lang="en" class="programlisting">The result is: 5
</pre><p lang="en">
You can also use C-like escape sequences such as <code class="literal">\n</code>,<code class="literal">\t</code>,<code class="literal">\b</code>,<code class="literal">\a</code> and <code class="literal">\r</code>. To get a <code class="literal">\</code> or <code class="literal">"</code> into the string you can quote it with a <code class="literal">\</code>. For example:
</p><pre lang="en" class="programlisting">"Slash: \\ Quotes: \" Tabs: \t1\t2\t3"
</pre><p lang="en">
will make a string:
</p><pre lang="en" class="programlisting">Slash: \ Quotes: " Tabs: 	1	2	3
</pre><p lang="en">
Do note however that when a string is returned from a function, escapes are
quoted, so that the output can be used as input.  If you wish to print the
string as it is (without escapes), use the 
<a class="link" href="ch11s02.html#gel-function-print"><code class="function">print</code></a>
or
<a class="link" href="ch11s02.html#gel-function-printn"><code class="function">printn</code></a> functions.
        </p><p lang="en">
		In addition, you can use the library function <a class="link" href="ch11s02.html#gel-function-string"><code class="function">string</code></a> to convert anything to a string. For example:
</p><pre lang="en" class="programlisting">string(22)
</pre><p lang="en">
will return
</p><pre lang="en" class="programlisting">"22"
</pre><p lang="en">
Strings can also be compared with <code class="literal">==</code> (equal), <code class="literal">!=</code> (not equal) and <code class="literal">&lt;=&gt;</code> (comparison) operators
        </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="genius-gel-values-null"></a>Null</h3></div></div></div><p>Existuje speciální hodnota nazývaná <code class="constant">null</code>. Nelze s ní provádět žádné operace a když je vrácena, není nic vypsáno. Proto je hodnota <code class="constant">null</code> užitečná, když nechcete z výrazu získat žádný výstup. Hodnotu <code class="constant">null</code> získáte tak, že napíšete výraz <code class="literal">.</code>, konstantu <code class="constant">null</code> nebo nic. Tím se nemyslí nic jiného, než že když výraz zakončíte oddělovačem <code class="literal">;</code>, je to stejné, jako byste jej zakončili oddělovačem následovaným <code class="constant">null</code>.</p><p lang="en">
Example:
</p><pre lang="en" class="programlisting">x=5;.
x=5;
</pre><p lang="en">
        </p><p>Některé funkce vrací <code class="constant">null</code> v případě, že nelze vrátit žádnou hodnotu nebo nastane chyba. <code class="constant">null</code> se rovněž používá jako prázdný vektor, prázdná matice nebo prázdná reference (odkaz).</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch04s05.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch05s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Plošné grafy </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Používání proměnných</td></tr></table></div></body></html>