Capítulo 5. Conceptos de GEL
Anterior |  | Siguiente

# Capítulo 5. Conceptos de GEL

GEL significa Lenguaje de Extensión de Genius. Éste es el lenguaje que se utiliza para escribir programas para Genius. Un programa en GEL es simplemente una expresión que se evalúa como un número, una matriz, o cualquier objeto en GEL. Por lo tanto, la Herramienta matemática Genius se puede utilizar como una simple calculadora o como una herramienta de investigación teórica muy potente. La sintaxis está pensada para suavizar lo más posible la curva de aprendizaje, especialmente para usarlo como calculadora.

## Valores

Los valores en GEL pueden ser números, booleanos o cadenas. GEL también trata las matrices como valores. Los valores se pueden usar en cálculos, asignarse a variables y devolverse desde funciones, entre otros usos.

### Números

Los enteros son el primer tipo numérico en GEL. Los enteros se escriben de forma estándar.

    1234

Las formas hexadecimales y octales se pueden indicar mediante la notación de C. Por ejemplo:

    0x123ABC
    01234

O bien puede indicar los enteros en una base arbitraria usando `<base>\<número>`. Los dígitos mayores que 9 usan letras de manera similar a la forma hexadecimal. Por ejemplo, un número en base 23 podría escribirse:

    23\1234ABCD

El segundo tipo numérico de GEL son los racionales. Los números racionales se obtienen dividiendo dos enteros. De modo que se puede escribir:

    3/4

para obtener tres cuartos. Los racionales aceptan notación fraccionaria mixta. De modo que para obtener uno y tres décimos se podría indicar:

    1 3/10

El siguiente tipo numérico es el de coma flotante. Estos se especifican de un modo muy similar a la notación en C. Puedes usar `E`, `e` o `@` como el delimitador de exponente. Tenga en cuenta que usando el delimitador de exponente da un coma flotante incluso si no está la coma decimal en el número. Ejemplos:

    1.315
    7.887e77
    7.887e-77
    .3
    0.3
    77e5

Cuando Genius imprime un número en coma flotante siempre añade un `,0` incluso si el número está completo. Esto indica que los números en coma flotante se toman como cantidades imprecisas. Cuando un numero se escribe en notación científica, siempre será en coma flotante y, por tanto, Genius no imprime `,0`.

El último tipo de números en GEL son los números complejos. Puede escribir un número complejo como la suma de su parte real y su parte imaginaria. Para agregar la parte imaginaria, escriba una `i`. Aquí hay algunos ejemplo de cómo escribir números complejos:

    1+2i
    8.01i
    77*e^(1.3i)

### Importante

Al introducir números imaginarios, deba haber un número delante de la `i`. Si usa `i` por sí sola, Genius lo interpretará como una referencia a la variable `i`. Si necesita referirse a `i` por sí sola, use `1i` en su lugar.

Para usar notación de fracciones mixtas con números imaginarios debe colocar las fracciones mixtas entre paréntesis (ej. `(1 2/5)i`).

### Booleanos

Genius también soporta valores booleanos nativos. Las dos constantes booleanas están definidas como `true` y `false`; estos identificadores se pueden utilizar como cualquier otra variable. Así mismo, puede utilizar los identificadores `True`, `TRUE`, `False` y `FALSE` como alias de las anteriores.

Puede usar un valor booleano o cualquier expresión que produzca un número o valor booleano en cualquier lugar donde se espera una expresión Booleana. Si Genius necesita evaluar un valor numérico como un valor booleano interpretará «0» como `false` y cualquier otro valor como `true`.

Además, puede efectuar operaciones con valores booleanos. Por ejemplo:

    ( (1 + true) - false ) * true

equivale a:

    ( (true or true) or not false ) and true

Solamente están soportadas la adición, la sustracción y la multiplicación. Si mezcla valores numéricos con booleanos en una expresión, los valores numéricos se convertirán a booleanos como se describió anteriormente. Esto significa que, por ejemplo:

    1 == true

siempre se evaluará como `true` dado que «1» siempre se convertirá a `true` antes de compararlo con `true`.

### Cadenas

Al igual que los números y los booleanos, las cadenas en GEL se pueden almacenar como valores dentro de variables y pasárselas a funciones. Puede concatenar una cadena con otra cadena mediante el operador «+». Por ejemplo:

    a=2+3;«El resultado es: »+a

creará la cadena:

    El resultado es: 5

Puede usar secuencias de escape como en C tales como `\n`, `\t`, `\b`, `\a` y `\r`. Para insertar los caracteres `\` o `"` en una cadena puede escaparlo precediéndolo de `\`. Por ejemplo:

    "Barra: \\ Comillas: \" Tabulaciones: \t1\t2\t3"

dará lugar a la cadena:

    Barra: \ Comillas: " Tabulaciones: 	1	2	3

. Tenga en cuenta, sin embargo, que cuando una función devuelve una cadena, los caracteres escapados se entrecomillan, por lo que la salida se puede usar como entrada de otra función. Si quiere imprimir la cadena como es (sin caracteres escapados), use las funciones `print` o `printn`.

Además, puede usar la función `string` de la biblioteca para convertir cualquier cosa en una cadena. Por ejemplo:

    string(22)

devolverá

    "22"

. Las cadenas pueden compararse mediante los operadores `==` (igual), `!=` (distinto) y `<=>` (comparación).

### Nulo

Existe un valor especial llamado `null`. No se permite efectuar operaciones sobre él y no se muestra nada cuando se devuelve este valor. Por lo tanto, `null` es útil cuando no quiera ninguna salida de una expresión. El valor `null` puede obtenerse como una expresión al escribir `.`, la constante `null` o nada. Nada referido a que si termina una expresión con un separador `;`, equivale a terminar la expresión con un separador seguido de `null`.

Ejemplo:

    x=5;.
    x=5;

Algunas funciones devuelven `null` cuando no pueden devolver un valor o producen algún error. También se usa `null` como un vector o matriz vacía o una referencia vacía.

Anterior |  | Siguiente
Gráficos de superficie | Inicio | Usar variables