# Guida in linea di rcalc

Copyright (C) 2000 Free Software Foundation, Inc.

Traduzione in lingua italiana di Stefano Barazza (ebarazza@libero.it).

Questo programma e la sua documentazione sono software gratuito; potete redistribuirlo o modificarlo secondo le regole della GNU General Public License come pubblicato dalla Free Software Foundation; sia nella seconda versione che nelle seguenti, a vostra discrezione .Questo programma viene distribuito con la speranza che risulti utile, ma SENZA ALCUNA GARANZIA; senza anche l'implicita garanzia di COMMERCIABILITÀ'o PREDISPOSIZIONE per uno specifico utilizzo. Per ulteriori informazioni fare riferimento alla GNU Generic Public License.

This program and the documentation are free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Insieme a questo programma dovreste aver ricevuto una copia della GNU General Public License; se non fosse così, scrivete alla : Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.

Per ulteriori informazioni consultate il file COPYING.

## Indice

### 1. Introduzione

- 1.1.Suggerimenti

### 2. Uso

- 2.1 Fondamenti

- 2.2 Configurazione

  - 2.2.1 Settaggi

  - 2.2.2 Aspetto

### 3. Riferimenti

- 3.1 Comandi

  - 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 Funzioni

  - 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 Costanti

  - 3.3.1 Pi

  - 3.3.2 E

### 4. Funzioni definite dall'utente

- 4.1 Introduzione

- 4.2 Utilizzo

  - 4.2.1 Definizione una nuova funzione

  - 4.2.2 Uso della funzione

  - 4.2.3 Lista delle funzioni

  - 4.2.4 Rimozione della funzione

- 4.3 Messaggi di errore

## 1. Introduzione

rcalc è un calcolatore semplice, veloce e simbolico per GNOME, con le seguenti caratteristiche :

- tipo di scritture: le espressioni devono essere nella forma in cui le scrivereste, per esempio `1+3*sin(5)` è valutato come ci si aspetta.

- variabili: questo è il motivo per cui rcalc viene definito un calcolatore simbolico : se si inserisce un'espressione tipo `a=1*2+3*4` , il risultato è salvato nella variabile `a`. Questo affinché si possa usare il risultato ottenuto in successive espressioni come `b=sqrt(a*5)` . Le variabili rimangono memorizzate durante le sessioni di rcalc, finché non decidete di eliminarle.

rcalc è quindi diverso da tutti gli altri programmi di calcolo, come xcalc, kcalc or gcalc. Attualmente supporta le operazioni elementari `/` , `*`, `+`, `-` e `^` (`elevato alla potenza n'), come le complesse funzioni trigonometriche (`sin`, `cos` , `tan`, `asin`, `acos` e `atan`), le funzioni dele iperboli (`sinh`, `cosh`, `tanh`, `asinh` , `acosh` e `atanh`), `sqrt`, `log`, `ln` , `abs` e `int`. E'anche dotata di due costanti predefinite `pi` e `e`.

rcalc è predisposto per far parte dell'ambiente desktop Gnome e tenta quindi di uniformarsi al look delle altre applicazioni per Gnome. L'interprete dei comandi di rcalc tenta di avvicinarsi alla bash shell, con alcune estensioni proprie dell'interprete di comandi Matlab. Speriamo che tutte queste cose insieme possano rendervi facile l'utilizzo di rcalc: fatemi sapere cosa ne pensate!

rcalc non è progettato per coprire tutte le funzioni matematiche; si tratta semplicemente di un calcolatore scientifico veloce, pratico ed efficiente. Se desiderate un pacchetto per eseguire operazioni più complesse, date un'occhiata a bc o Dr Genius (entrambi gratuiti), o a Matlab (commerciale).

### 1.1 Suggerimenti

Per aggiornamenti controllate il sito di rcalc : http://rcalc.sourceforge.net/. Ci sono forum per discussioni a carattere generale, richieste di aiuto e suggerimenti: per piacere usateli senza farvi problemi.

Se trovate un bug, vi preghiamo di raggiungere la pagina dei bugs di rcalc e di inviarne una descrizione, se non è menzionato.

Se nessuna delle soluzioni sopra elencate vi sembra adatta al vostro caso , allora scrivetemi un' e-mail a < phneutre@icculus.org>.

## 2. Uso

### 2.1 Fondamenti

Quando avvierete rcalc, vi si presenterà una semplice finestra con un prompt (``rcalc>`'); qui, di solito, si inseriscono le espressioni nel formato in cui le scrivereste su un pezzo di carta. L'eccezione da notare è che rcalc non gestisce le moltiplicazioni implicite : non potete scrivere `3sin(2pi)` perché il programma non capirà che intendete `il triplo del seno di due per pi'. Il modo corretto di esprimere questa espressione è : `3*sin(2*pi)`.

Se digiterete l'espressione sopraccitata, otterrete il seguente risultato :

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

Il risultato dell'operazione è stato attribuito alla variabile '`Ans` ' ; infatti i risultati di tutti i calcoli sono salvati in `Ans` a meno che non si sia disposto diversamente. Questo valore può poi essere usato in seguenti operazioni, per esempio :

    rcalc> Ans+1
            Ans = 1.328327820718959

Il risultato può essere salvato in una variabile diversa da '`Ans` ', per esempio :

    rcalc> MyVariable = Ans*5
            MyVariable = 6.641639103594797

Ora il risultato dell'operazione è stato salvato in '`MyVariable` '; il valore di 'Ans' è rimasto inalterato.

I nomi di variabili, funzioni, comandi e costanti POSSONO essere scritti indifferentemente con lettera maiuscola o minuscola (sono case-insensitive ) : `MyVariable`, `myvariable`, `MYVARIABLE` e `MyVaRiAbLe` , indicano la stessa variabile. Qualsiasi spazio nelle espressioni è ignorato, mentre ciò non avviene nei comandi.

Le variabili sono gestite utilizzando i comandi ``ls`' and ``rm`' in maniera simile a quanto fa la shell con i files, per esempio :

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

Riprendendo l'idea di accostarsi allo stile della shell, abbiamo incluso un comando ``man`' ; provate a scrivere ``man man`' al prompt. Un'altra caratteristica comune alla shell è la possibilità di inserire diversi comandi ed espressioni sulla stessa riga : punti e virgola (`;`) separano gli argomenti , per esempio :

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

Per chi di voi ha usato Matlab, la maggior parte dei comandi per shell hanno un alias in Matlab, per esempio `help` , `helpwin`, `who` e `clear`. Per favore leggete la documentazione a proposito, ma sappiate che alcuni comandi si comportano in modo anomalo quando si usano i loro aliases.

### 2.2 Configurazione

Per configurare rcalc, selezionate Preferences ... dal menù File. La finestra che appare è divisa in tre sezioni, che possono essere scorse utilizzando le tabs in alto.

#### 2.2.1 Settaggi

Questa finestra vi permette di configurare le opzioni del terminale sotto cui avete lanciato rcalc. Potete scegliere dove far apparire la barra di scorrimento , il numero di linee di testo che verranno tenute in memoria per le operazioni di scrolling (scorrimento),se assegnare ad un tasto la funzione di scorrimento o renderla automatica in seguito all'output del programma, se il cursore deve lampeggiare o se riprodurre un suono in associazione a determinati eventi.

#### 2.2.2 Aspetto

Questa finestra vi permette di selezionare il carattere ed i colori usati. Per favore notate che si potrebbe avere un output grafico strano in caso di uso di caratteri non proporzionali; rcalc è predisposto all'uso di caratteri come Courier o Lucidatypewriter (monospazio).

## 3. Riferimenti

### 3.1 Comandi

#### 3.1.1 Exit, Quit

`exit
quit`

Esci dal programma.

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

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

Mostra la spiegazione di un argomento (argomento è il nome di un comando o di una funzione).Per una lista di argomenti, provate a scrivere ``ls` commands' o ``ls` functions'. `'Help`, `helpwin`' o '`?'` senza l'indicazione di un argomento mostrano solo l'introduzione del file di guida.

#### 3.1.3 Ls, Who

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

Elenca gli elementi specificati; se non sono forniti argomenti, `ls` mostrerà tutte le variabili. `Who` è semplicemente un alias delle variabili `ls.`

#### 3.1.4 Rm, Clear

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

Elimina le variabili specificate dalla memoria. `Clear` senza argomenti cancellerà tutte le variabili.

#### 3.1.5 Mode, Deg, Rad

`mode [deg|rad]
deg
rad`

Mostra o modifica le opzioni dell'algoritmo di calcolo;equivale alla sezione calculations del menù preferences. Per adesso le uniche opzioni riguardano gli angoli usati dalle funzioni trigonometriche.

`Mode` senza argomenti mostra il modo corrente; con l'indicazione di un argomento serve a modificare gli angoli utilizzati. `Deg` è semplicemente un alias di `mode deg`, così come `rad` è un alias di `mode rad`.

### 3.2 Funzioni

#### 3.2.1 Int

`int(x)`

Dà il valore intero più vicino a x..

#### 3.2.2 Abs

`abs(x)`

Ritorna il modulo di x.

#### 3.2.3 Log, Ln

`log(x)
ln(x)`

Dà il logaritmo in base 10 (`log`) o il logaritmo naturale (`ln`) di `x`.

#### 3.2.4 Sqrt

`sqrt(x)`

Ritorna la radice quadrata di `x`.

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

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

Dà seno, coseno, tangente, arc seno, arc coseno o arc tangente di `x`, a seconda dell'angolo scelto (comando `mode` ).

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

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

Ritorna il seno dell'iperbole, il suo coseno, la tangente dell'iperbole ed i loro inversi per x.

#### 3.2.7 Fac

`fac(x)`

Dà come risultato x!, per esempio: n(n-1)(n-2)...(1)

### 3.3 Costanti

#### 3.3.1 Pi

Il rapporto tra circonferenza e diametro: rcalc usa una funzione matematica predefinita, che sul mio computer dà come risultato 3.14159265358979323846.

#### 3.3.2 E

Il principio dei logaritmi naturali: rcalc usa una funzione matematica predefinita che sul mio computer dà come risultato 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.