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. Grunderna i GEL</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><link rel="home" href="index.html" title="Handbok för Genius"><link rel="up" href="index.html" title="Handbok för Genius"><link rel="prev" href="ch04s05.html" title="Ytgrafer"><link rel="next" href="ch05s02.html" title="Använda variabler"></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. Grunderna i 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. Grunderna i 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">Värden</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch05.html#genius-gel-values-numbers">Tal</a></span></dt><dt><span class="sect2"><a href="ch05.html#genius-gel-values-booleans">Booleska värden</a></span></dt><dt><span class="sect2"><a href="ch05.html#genius-gel-values-strings">Strängar</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">Använda variabler</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch05s02.html#genius-gel-variables-setting">Ställa in variabler</a></span></dt><dt><span class="sect2"><a href="ch05s02.html#genius-gel-variables-built-in">Inbyggda variabler</a></span></dt><dt><span class="sect2"><a href="ch05s02.html#genius-gel-previous-result">Variabel för föregående resultat</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch05s03.html">Använda funktioner</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch05s03.html#genius-gel-functions-defining">Definiera funktioner</a></span></dt><dt><span class="sect2"><a href="ch05s03.html#genius-gel-functions-variable-argument-lists">Variabla argumentlistor</a></span></dt><dt><span class="sect2"><a href="ch05s03.html#genius-gel-functions-passing-functions">Skicka funktioner till funktioner</a></span></dt><dt><span class="sect2"><a href="ch05s03.html#genius-gel-functions-operations">Operationer på funktioner</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch05s04.html">Avskiljare</a></span></dt><dt><span class="sect1"><a href="ch05s05.html">Kommentarer</a></span></dt><dt><span class="sect1"><a href="ch05s06.html">Moduloberäkning</a></span></dt><dt><span class="sect1"><a href="ch05s07.html">Lista över GEL-operatorer</a></span></dt></dl></div><p>GEL står för Genius Extension Language. Det är språket som du använder för att skriva program i Genius. Ett program i GEL är helt enkelt ett uttryck som evalueras till ett tal, en matris eller ett annat objekt i GEL. <span class="application">Genius matematikverktyg</span> kan användas som en enkel miniräknare eller som ett kraftfullt verktyg för teoretisk forskning. Syntaxen är tänkt att ha en så låg inlärningskurva som möjligt, särskilt då det används som en miniräknare.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="genius-gel-values"></a>Värden</h2></div></div></div><p>Värden i GEL kan vara <a class="link" href="ch05.html#genius-gel-values-numbers" title="Tal">tal</a>, <a class="link" href="ch05.html#genius-gel-values-booleans" title="Booleska värden">booleska värden</a> eller <a class="link" href="ch05.html#genius-gel-values-strings" title="Strängar">strängar</a>. GEL behandlar också <a class="link" href="ch08.html" title="Chapter 8. Matriser i GEL">matriser</a> som värden. Värden kan bland annat användas i beräkningar, tilldelas till variabler och returneras från funktioner.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="genius-gel-values-numbers"></a>Tal</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"><base>\<number></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>Då imaginära tal matas in måste det finnas ett tal före <code class="literal">i</code>. Om du använder <code class="literal">i</code> för sig själv kommer Genius att tolka det som att det handlar om variabeln <code class="varname">i</code>. Om du behöver hänvisa till ett ensamt <code class="literal">i</code>, använd <code class="literal">1i</code> istället.</p><p>För att använda blandad bråk-notation med imaginära tal måste du ha det blandade bråket inom parenteser. (d.v.s., <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>Booleska värden</h3></div></div></div><p>Genius har också stöd för inbyggda booleska värden. De två booleska konstanterna är definierade som <code class="constant">true</code> och <code class="constant">false</code>; dessa identifierare kan användas som vilken annan variabel som helst. Du kan också använda identifierarna <code class="constant">True</code>, <code class="constant">TRUE</code>, <code class="constant">False</code> och <code class="constant">FALSE</code> som alias för de ovannämnda.</p><p>På alla ställen där ett booleskt uttryck förväntas kan du använda ett booleskt värde eller valfritt uttryck som producerar antingen ett tal eller ett booleskt värde. Om Genius behöver evaluera ett tal som ett booleskt värde kommer det tolka 0 som <code class="constant">false</code> och alla andra tal som <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>Strängar</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"><=></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>Det finns ett speciellt värde som kallas <code class="constant">null</code>. Inga operationer kan be utföras på det, och inget skrivs ut då det returneras. Därför är <code class="constant">null</code> användbart då du inte vill ha utdata från ett uttryck. Värdet <code class="constant">null</code> kan erhållas som ett uttryck då du skriver <code class="literal">.</code>, konstanten <code class="constant">null</code> eller ingenting. Med ingenting menar vi att om du avslutar ett uttryck med en avskiljare <code class="literal">;</code> är det ekvivalent med att avsluta det med en avskiljare följt av ett <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>Vissa funktioner returnerar <code class="constant">null</code> då inget värde kan returneras eller då ett fel uppstått. <code class="constant">null</code> används också som en tom vektor eller matris, eller en tom referens.</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">Ytgrafer </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Använda variabler</td></tr></table></div></body></html>
|