# Documentación de rcalc

Copyright (C) 2000 Free Software Foundation, Inc.

Este programa y la documentación son software libre; puedes redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General de GNU tal y como está publicado por la Free Software Foundation; tanto en la versión 2 de la Licencia, como (bajo tu criterio) cualquier versión posterior. Este programa está distribuido con la esperanza de que será útil, pero SIN NINGUNA GARANTÍA; sin ninguna garantía implicita de SER COMERCIAL o ADECUARSE A NINGÚN PROPOSITO PARTICULAR. Mira la Licencia Pública General de GNU para más detalles.

Deberías haber recibido una copia de la Licencia Pública General de GNU con este programa; si no, escribe a la Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.

Para más detalles mira en el fichero COPYING.

## Índice de contenidos

### 1. Introducción

- 1.1. Realimentación

### 2. Uso

- 2.1 Básico
- 2.2 Configuración
  - 2.2.1 Comportamiento
  - 2.2.2 Apariencia

### 3. Referencia

- 3.1 Comandos
  - 3.1.1 Exit, Quit
  - 3.1.2 Help, Man, Helpwin, ?
  - 3.1.3 Ls, Who
  - 3.1.4 Rm, Clear
  - 3.1.5 Mode, Deg, Rad
- 3.2 Funciones
  - 3.2.1 Int
  - 3.2.2 Abs
  - 3.2.3 Log, Ln
  - 3.2.4 Sqrt
  - 3.2.5 Sin, Cos, Tan, ASin, ACos, ATan
  - 3.2.6 Sinh, Cosh, Tanh, ASinh, ACosh, ATanh
  - 3.2.7 Fac
- 3.3 Constantes
  - 3.3.1 Pi
  - 3.3.2 E

### 4. Funciones definidas por el usuario

- 4.1 Introducción
- 4.2 Uso

- 4.2.1 Definir una nueva función
- 4.2.2 Usar una función
- 4.2.3 Lista de funciones
- 4.2.4 Eliminar una función

- 4.3 Mensajes de error

## 1. Introducción

rcalc es una calculadora simbólica rápida y simple para GNOME, con las siguientes características:

- notación infija: las expresiones son introducidas tal y como las escribes, por ejemplo `1+3*sin(5)` es evaluado como lo esperarías.
- variables: aquí es donde empieza lo 'simbólico', si escribes una expresión como `a=1*2+3*4`, el resultado es guardado en una variable llamada `a`. Esta puede ser usada en posteriores expresiones, como `b=sqrt(a*5)`. Las variables persisten entre sesiones de rcalc hasta que decides borrarlas.
- (opcional) funciones definidas por el usuario: ver sección 4.0.

A pesar de ello rcalc no es como otros programas de calculadora, como xcalc, kcalc or gcalc. Por ahora soporta operadores simples como `/`, `*`, `+`, `-` y `^` (`elevar a la potencia de'), así como funciones más complejas como las funciones trigonométricas (`sin`, `cos`, `tan`, `asin`, `acos` and `atan`), las funciones hiperbólicas (`sinh`, `cosh`, `tanh`, `asinh`, `acosh` and `atanh`), `sqrt`, `log`, `ln`, `abs` and `int`. También incluye dos constantes predefinidas, `pi` y `e`.

rcalc está preparado para formar parte del entorno de escritorio GNOME y como tal es conforme a la apariencia general de otras aplicaciones GNOME. El interpretador de comandos de rcalc trata de parecerse al de la bash shell, e intenta parecerse al interpretador de comandos del Matlab. ¡Con suerte todo esto se conseguirá y hará de rcalc un programa fácil de usar: díme lo que piensas de él!

rcalc no está pensado para ser un paquete matemático completo; simplemente una calculadora científica conveniente, simple y de ejecución rápida. Si quieres una solución matemática completa para uso intensivo, prueba bc o Dr Genius (ambos libres), o Matlab (comercial).

### 1.1 Realimentación

Visita el sitio web, http://rcalc.sourceforge.net/ para actualizaciones. Hay foros para discusiones generales, pedir ayuda y sugestiones: por favor acude libremente a ellos.

Si encuentras un error, por favor ve a la página de errores de rcalc e informa de él si no está ya ahí.

Si ninguno de estos sistemas te parece apropiado, entonces envíame un correo <phneutre@icculus.org>.

## 2. Uso

### 2.1 Básico

Cuando ejecutas rcalc, se te presenta una simple ventana con un prompt (``rcalc>` '); las expresiones se introducen generalmente en este prompt tal y como las escribirías en un papel. La principal excepción a esto es que rcalc no soporta multiplicaciones implícitas: no puedes escribir `3sin(2pi)` el ... no reconocerá que lo que quieres decir es `tres multiplicado por el seno de dos multiplicado por pi'. La manera correcta de escribir esta expresión es `3*sin(2*pi)`.

Si intentas escribir la expresión anterior, verás lo siguiente:

    rcalc> 3*sin(2*pi)
            Ans = 0.3283278207189595

El resultado del cálculo ha sido asignado a una variable llamada '`Ans`'; en realidad el resultado de todos los cálculos se guarda en `Ans` siempre que no se expecifique otra acción. Este resultado puede ser usado en posteriores cálculos, por ejemplo:

    rcalc> Ans+1
            Ans = 1.328327820718959

El resultado puede ser guardado en otra variable que no sea '`Ans`', por ejemplo:

    rcalc> MiVariable = Ans*5
            MiVariable = 6.641639103594797

El resultado de este cáculo ha sido ahora guardado en '`MiVariable`';' `Ans`' no ha perdido su valor.

Los nombres de variables, funciones, comandos y constantes son insensibles al tipo: `MiVariable`, `mivariable`, `MIVARIABLE` y `MIVaRiAbLe` todas refieresn al mismo valor. Cualquier espacio en blanco en una expresión es ignorado, pero no cuando aparezca entre comandos.

Las variables son gestionadas usando los comandos ``ls`' y ``rm`' de la misma manera que se gestionan ficheros en una shell, por ejemplo:

    rcalc> ls
            Ans      = 1.328327820718959
            MiVariable = 6.641639103594797
    rcalc> rm Ans
    rcalc> ls
            MiVariable = 6.641639103594797

Continuando el tema de parecido a una shell, hay un comando ``man`'; prueba a escribir ``man man`' en el prompt. Otra habilidad copiada de la shell es la de introducir multiples comandos/expresiones en la misma línea, separados por puntos y coma (`;`), por ejemplo:

    rcalc> a=0.223; Tb=0.044; 1/Tb*(1-Ta/Tb)
            Ta = 0.223
            Tb = 0.044
            Ans = -92.45867768595043

Para aquellos que habeis usado Matlab, la mayoría de los comandos estilo shell tienen alias estilo Matlab, por ejemplo `help`, `helpwin`, `who` y `clear`. Por favor lee la documentación, ya que algunos comandos tienen alguna característica diferente cuando se usa el alias Matlab.

### 2.2 Configuración

Para configurar rcalc, elige Preferencias... en el menú de persiana Fichero. Aparecerá una ventana con tres secciones, que puedes cambiar usando los marcadores de la parte superior.

#### 2.2.1 Comportamiento

Esta ventana permite cambiar el comportamiento del terminal en el que se ejecuta rcalc. Puedes elegir donde aparecerán las barras de desplazamiento, el número de líneas de texto que se conservarán en memoria para desplazamientos, si el terminal se desplazará a la posición del cursor cuando se pulse una tecla o cuando se presente nuevo texto, y si el cursor parpadeará o se oirá un pitido en ciertas ocasiones.

#### 2.2.2 Apariencia

Esta ventana permite elegir el tipo y color de las fuentes de letra. Si usas fuentes proporcionales descubrirás que el terminal se ve muy extraño. rcalc está pensado para usar fuentes de paso fijo como la Courier o la Lucidatypewriter.

## 3. Referencia

### 3.1 Comandos

#### 3.1.1 Exit, Quit

`exit
quit`

Termina la ejecución del programa.

#### 3.1.2 Help, Man, Helpwin, ?

`help [tema]
man <tema>
helpwin [tema]
? [tema]`

Muestra la ayuda para el `tema`, donde `tema` es generalmente el nombre de un comando o función. Para obtener una lista de los temas, ejecuta ``ls` commands' o ``ls` functions'. `Help`, `helpwin` o `?` sin un tema simplemente muestra la introducción al fichero de ayuda.

#### 3.1.3 Ls, Who

`ls [variables|functions|constants|commands]
who`

Da una lista de los objetos especificados; si no se le da ningún argumento, `ls` listará las variables. `Who` es simplemente un alias de `ls variables`.

#### 3.1.4 Rm, Clear

`rm variable1 [variable2 ...]
clear [variable1 [variable2 ...]]`

Elimina de la memorialas variables especificadas. `Clear` sin argumentos las elimina todas.

#### 3.1.5 Mode, Deg, Rad

`mode [deg|rad]
deg
rad`

Muestra o cambia los ajustes de la maquinaria de cálculos; es equivalente a la sección cálculos de la ventana de preferencias. Actualmente, los únicos ajustes existentes son las unidades angulares usadas en las funciones trigonométricas.

`Mode` sin argumentos muestra el modo actual; con un argumento cambia la unidad angular usada. `Deg` es simplemente un alias de `mode deg`, e igualmente `rad` es un alias de `mode rad`.

### 3.2 Funciones

#### 3.2.1 Int

`int(x)`

Devuelve el entero más cercano a `x`, usando redondeo aritmético.

#### 3.2.2 Abs

`abs(x)`

Devuelve el valor absoluto de `x`.

#### 3.2.3 Log, Ln

`log(x)
ln(x)`

Devuelve el logaritmo en base 10 (`log`) o el natural (`ln`) de `x`.

#### 3.2.4 Sqrt

`sqrt(x)`

Devuelve la raíz cuadrada de `x`.

#### 3.2.5 Sin, Cos, Tan, ASin, ACos, ATan

`sin(x)
cos(x)
tan(x)
asin(x)
acos(x)
atan(x)`

Devuelve el seno, coseno, tangente, arcoseno, arcocoseno o arcotangente de `x`, en la unidad angular especificada (ver `mode`).

#### 3.2.6 Sinh, Cosh, Tanh, ASinh, ACosh, ATanh

`sinh(x)
cosh(x)
tanh(x)
asinh(x)
acosh(x)
atanh(x)`

Devuelve el seno hiperbólico, coseno hiperbólico, tangente hiperbólica, arcoseno hiperbólico, arcocoseno hiperbólico o tangente hiperbólica de `x`.

### 3.3 Constantes

#### 3.3.1 Pi

La relación entre la circunferencia y el diámetro de una circunferencia: rcalc usa la definición de la librería, que en mi máquina es 3.14159265358979323846.

#### 3.3.2 E

La base de los logaritmos naturales: rcalc usa la definición de la librería, que en mi máquina es 2.7182818284590452354.

## 4. User-defined functions

### 4.1 Introduction

Starting with rcalc 0.4.0, you can define your own functions.

These functions are parsed by default, but if you compiled rcalc using the --enable-compiled-functions configure flag (this particular method is currently unsupported, not enabled by default, and needs a working gcc installed), they are compiled and dynamically linked to the executable when you define them.

Your functions are automatically reloaded at startup (like variables).

### 4.2 Usage

#### 4.2.1 Define a new function

When defining a function, the variable is `x`. Currently, you can only define a function that uses only 1 variable (`x`), that is, you cannot define something like `f(x,y)=cos(x) + sin(y)`.

To create a new function, use the func command:
`func [function_name](x)=[function_expression]`
Examples:

    rcalc> func g(x)=2*x

    rcalc> func myfunction(x) = 2*x*x + 7*cos((sin(x))) - abs(x)

If you compiled with --enable-compiled-functions, you can do some advanced stuff like this, provided you write C code that can be put after a return.

    rcalc> func fact(x)=(!(int)x) ? 1 : (abs( (int) x ) * fact (abs( (int)x )-1))

#### 4.2.2 Use a function

`function_name( [mathematical_expression] )`

Example, if both `g` and `myfunction` exist:

    rcalc> 3*sin(2*pi)
            Ans = 0.3283278207189595

    rcalc> g( 5 * cos ( myfunction( 2-Ans ) ) )
            Ans = 9.892698159952772

#### 4.2.3 List functions

`ls functions` (or just `ls func`)

This will list both built-in functions (see section 3.2) and user-defined functions.

#### 4.2.4 Remove a function

`rm [function_name]`

### 4.3 Error messages

This error messages means your function expression is incorrect (this may differ if you compiled with --enable-compiled-functions) :

    rcalc> func t(x)=foo

    error : malformed expression.