# rCalc Dokumentation

Copyright (C) 2000 Free Software Foundation, Inc.

Dieses Programm und die Dokumentation ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation herausgegeben, weitergeben und/oder modifizieren, entweder unter Version 2 der Lizenz oder (wenn Sie es wünschen) jeder späteren Version.

Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE JEDE GEWÄHRLEISTUNG - sogar ohne die implizite Gewährleistung der MARKTREIFE oder der EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.

Sie sollten eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten haben. Falls nicht, schreiben Sie an die Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Mehr Details finden Sie in der Datei COPYING.

## Inhaltsverzeichnis

### 1. Einleitung

- 1.1. Feedback

### 2. Gebrauch

- 2.1 Grundlagen
- 2.2 Konfiguration
  - 2.2.1 Eigenschaften
  - 2.2.2 Aussehen

### 3. Referenz

- 3.1 Befehle
  - 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 Funktionen
  - 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 Konstanten
  - 3.3.1 Pi
  - 3.3.2 E

### 4. Benutzerdefinierte Funktionen

- 4.1 Einleitung
- 4.2 Gebrauch

- 4.2.1 Eine neue Funktion definieren
- 4.2.2 Eine Funktion benutzen
- 4.2.3 Funktionen auflisten
- 4.2.4 Eine Funktion löschen

- 4.3 Fehlermeldungen

## 1. Einleitung

rcalc ist ein schneller und einfacher symbolischer Rechner für GNOME mit folgenden Eigenschaften:

- Infix Notation: Ausdrücke werden so eingegeben, wie man sie auf auf Papier schreibt, z.B. `1+3*sin(5)` wird wie Sie es erwarten berechnet.
- Variablen: Von hier kommt das `symbolisch'; Wenn Sie einen Ausdrucke wie `a=1*2+3*4` eingeben, wird das Ergebnis in einer Variable mit dem Namen `a` gespeichert. Diese kann dann in weiteren Ausdrücken verwendet werden, wie z.B. `b=sqrt(a*5)`. rcalc merkt sich die Variablen auch beim Verlassen. Sie existieren bis sie gelöscht werden.
- (optional)Benutzerdefinierte Funtionen: siehe Abschnitt 4

Somit ist rcalc nicht wie andere Rechenprogramme, etwa xcalc, kcalc oder gcalc. Es unterstützt zur Zeit einfache Operationen wie `/`, `*`, `+`, `-` und `^` (`x hoch y'), aber auch kompliziertere, wie die trigonometrischen Funktionen (`sin`, `cos`, `tan`, `asin`, `acos` und `atan`), die hyperbolischen Funktionen (`sinh`, `cosh`, `tanh`, `asinh`, `acosh` und `atanh`), `sqrt`, `log`, `ln`, `abs` und `int`. Es gibt auch zwei eingebaute Konstanten `pi` und `e`.

rcalc ist ein Teil des GNOME Desktop Environments und versucht mit dem `look and feel' anderer GNOME Programmen übereinzustimmen. Der Befehlsinterpreter von rcalc ist der bash Shell nachempfunden und erweitert so jenen von Matlab. Hoffentlich macht all das zusammen rcalc zu einem einfach benutzbaren Programm: Lassen Sie mich wissen, was Sie davon halten!

rcalc soll kein komplettes mathematische Packet sein; nur ein schnell zu ladender, einfacher und bequemer wissenschaftlicher Rechner. Wenn Sie ein mächtiges Mathematikprogramm suchen, schauen Sie sich bc oder Dr Genius (beides frei), oder Matlab (kommerziell) an.

### 1.1 Feedback

Besuchen Sie die Homepage von rcalc, http://rcalc.sourceforge.net/ für Updates. Dort gibt es auch Foren für Grundsätzliche Diskussionen, Anfragen für Hilfe und Vorschläge: Sie können diese gerne benützen.

Wenn Sie einen Bug finden, dann tragen Sie ihn bitte auf der rcalc Bugs Seite ein, falls er dort noch nicht registriert ist.

Wenn vom Obigen nichts passt, dann schreiben Sie mir eine EMail an <rcalc@inauspicious.org>.

## 2. Gebrauch

### 2.1 Grundlagen

Beim Start von rcalc wird Ihnen ein einfaches Fenster mit einem Prompt präsentiert (``rcalc>` '); Ausdrücke werden an diesem Prompt eingegeben, und zwar so, wie Sie sie auf Papier schreiben würden. Eine wichtige Ausnahme ist, dass rcalc keine impliziten Multiplikationen unterstützt: Sie können also nicht `3sin(2pi)` eingeben, da der Parser nicht erkennen wird, dass Sie `drei multipliziert mit dem Sinus von zwei mal pi' meinen. Die obige Formel wird richtig als `3*sin(2*pi)` eingegeben.

Wenn sie diese Formel eingeben, erhalten Sie folgende Ausgabe:

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

Das Ergebnis der Berechnung wurde einer Variable namens '`Ans`' zugewiesen; Alle Ergebnisse werden in `Ans` gespeichert, außer Sie geben es anders an. Dieses Ergebnis kann dann in weiteren Berechnungen benutzt werden, z.B.:

    rcalc> Ans+1
            Ans = 1.328327820718959

Das Ergebnis kann auch in eine andere Variable als '`Ans`' gespeichert werden, zum Beispeil:

    rcalc> MyVariable = Ans*5
            MyVariable = 6.641639103594797

Das Ergebnis der Berechnung wurde hier in '`MyVariable`' gespeichert; '`Ans`' behält seinen alten Wert.

Variablennamen, und auch Funktionen, Befehle und Konstantennamen sind case-insensitive, also es kommt nicht auf die Groß- Klein-Schreibung an: `MyVariable`, `myvariable`, `MYVARIABLE` and `MyVaRiAbLe` bezeichnen alle den gleichen Wert. Alle Abstände in Formeln werden ignoriert, innerhalb von Befehlen allerdings nicht.

Variablen werden mit den Befehlen ``ls`' und ``rm`' verwaltet, ähnlich der Dateien in einer Shell, zum Beispiel:

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

Setzen wir gleich die Ähnlichkeiten zur Shell fort: Es gibt einen ``man`' Befehl; probieren Sie ``man man`' einzugeben. Eine andere shellähnliche Eigenschaft ist die Möglichkeit mehrere Befehle bzw. Formeln in einer Zeile einzugeben: Strichpunkte (`;`) werden zum Trennen der Teile verwendet, zum Beispiel:

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

Für jene von ihnen, die Matlab benutzen, gibt es zu den meisten shellähnlichen Befehlen auch Matlab-ähnliche Ersatznamen, zum Beispiel `help`, `helpwin`, `who` und `clear`. Bitte lesen Sie die Dokumentation, denn manche Befehle verhalten sich unterschiedlich, wenn deren Matlab-Ersatzname verwendet wird.

### 2.2 Konfiguration

Zur Konfiguration von rcalc benützen Sie den Menüpunkt Einstellunen... aus dem Datei Menü. Das erscheinende Fenster besteht aus drei Themen, die mit den Schildern am oberen Rand ausgewählt werden.

#### 2.2.1 Eigenschaften

In diesem Fenster können Sie das Verhalten des Terminal-Fensters, mit dem rcalc bedient wird, konfigurieren. Bestimmen Sie, wo der Scrollbalken angeordnet sein soll, die Anzahl der Zeilen die zum Scrollen gespeichert werden, ob das Terminal zum Cursor scrollen soll, wenn eine Taste gedrückt wird oder wenn Text ausgegeben wird, ob der Cursor blinken soll und ob ein Ton bei verschiedenen Angelegenheiten ausgegeben werden soll.

#### 2.2.2 Aussehen

Dieses Fenster erlaubt Ihnen die verwendeten Schriften und Farben einzustellen. Beachten Sie, dass die Ausgabe eigenartig aussehen kann, wenn proportionale Schriften verwendet werden; rcalc wurde so entwickelt, dass es am Besten mit Schriften arbeitet, bei denen alle Zeichen die gleiche Breite haben (monospace), wie Courier oder Lucidatypewriter.

## 3. Referenz

### 3.1 Befehle

#### 3.1.1 Exit, Quit

`exit
quit`

Beendet das Programm.

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

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

Zeigt die Hilfe zum Thema `topic` an, wobei `topic` normalerweise der Name eines Befehls oder einer Funktion ist. Eine Liste der verfügbaren Themen kann mit ``ls` commands' oder ``ls` functions' angezeigt werden. `Help`, `helpwin` oder `?` ohne ein Thema zeigen die Einleitung der Hilfedatei.

#### 3.1.3 Ls, Who

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

Listet die gewählten Einträge auf; Falls kein Argument angegeben wird, zeigt `ls` eine Liste der Variablen. `Who` ist einfach ein Ersatz für `ls variables`.

#### 3.1.4 Rm, Clear

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

Löscht die angegebene(n) Variable(n) aus dem Speicher. `Clear` ohne Argument löscht alle Variablen.

#### 3.1.5 Mode, Deg, Rad

`mode [deg|rad]
deg
rad`

Zeigt oder setzt die Einstellungen des Rechners; Dies ist äquivalent zum Berechnungen-Bereich im Einstellungen Dialog. Zur Zeit ist die einzige Einstellung die Winkeleinheit für trigonometrische Funktionen.

`Mode` ohne Argumente zeigt die momentane Einstellung; mit einem Argument setzt es die Winkeleinheit, die ab dann benutzt wird. `Deg` ist einfach ein Ersatz für `mode deg`, und `rad` gleichermaßen für `mode rad`.

### 3.2 Funktionen

#### 3.2.1 Int

`int(x)`

Liefert die nächstgelegene ganze Zahl von `x`, indem gerundet wird.

#### 3.2.2 Abs

`abs(x)`

Ergibt den absoluten Wert von `x`.

#### 3.2.3 Log, Ln

`log(x)
ln(x)`

Liefert den 10er-Logarithmus (`log`) oder den natürlichen Logarithmus (`ln`) von `x`.

#### 3.2.4 Sqrt

`sqrt(x)`

Ergibt die Quadratwurzel von `x`.

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

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

Liefert den Sinus, Cosinus, Tangens, Arcussinus, Arcuscosinus oder Arcustangens von `x`. Die Funktion nimmt dabei auf die gewählte Winkeleinheit Rücksicht (siehe `mode`).

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

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

Ergibt den Sinus hyperbolicus, Cosinus hyperbolicus, Tangens hyperbolicus, Areasinus, Areacosinus oder Areatangens von `x`.

#### 3.2.7 Fac

`fac(n)`

Berechnet die Fakultät von n = n! = n(n-1)(n-2)...(1)

### 3.3 Konstante

#### 3.3.1 Pi

Das Verhältnis vom Umfang eines Kreises zu seinem Durchmesser: rcalc verwendet die Definition der `math library' (libm.so), die auf meinem Computer 3.14159265358979323846 ist.

#### 3.3.2 E

Die Basis des natürlichen Logarithmus: rcalc verwendet die Definition der `math library' (libm.so), die auf meinem Computer 2.7182818284590452354 ist.

## 4. Benutzerdefinierte Funktionen

### 4.1 Einleitung

Ab der Version 0.4.0 von rcalc können eigene Funktionen definiert werden.

Diese Funktionen werden standardmäßig geparsed. Wenn rcalc mit der Option --enable-compiled-functions für

    configure

compiliert wurde, werden diese bei der Definition compiliert und dynamisch zum Programm gelinkt. (Diese Funktion wird momentan nicht unterstützt und daher nicht per default compiliert. Sie benötigt einen funktionierenden GCC.)

Ihre selbstdefinierten Funktionen werden beim Start von rcalc automatisch wieder geladen (wie Variablen).

### 4.2 Gebrauch

#### 4.2.1 Eine neue Funktion definieren

Wenn eine Funktion definiert wird, ist die Variable `x`. Zur Zeit köönnen nur Funktionen mit einer Variable (`x`) definiert werden. Das bedeutet, Sie können nichtx definieren wie zB. `f(x,y)=cos(x) + sin(y)`.

Um eine neue Funktion anzulegen benützen Sie den func Befehl:
`func [function_name](x)=[function_expression]`
Beispiele:

    rcalc> func g(x)=2*x

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

Wenn rcalc mit der Option --enable-compiled-functions compiliert wurde, können Sie erweiterte Dinge anlegen. Wichtig ist, dass es sich um C Code handelt, der nach ein return gesetzt werden kann.

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

#### 4.2.2 Eine Funktion benutzen

`function_name( [mathematical_expression] )`

Zum Beispiel, wenn sowohl `g` als auch `myfunction` existieren:

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

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

#### 4.2.3 Funktionen auflisten

`ls functions` (oder einfach `ls func`)

Es werden eingebaute (siehe Abschnitt 3.2) und benutzerdefinierte Funktionen aufgelistet.

#### 4.2.4 Eine Funktion löschen

`rm [function_name]`

### 4.3 Fehlermeldungen

Diese Fehlermeldung bedeutet, dass Ihre Funktionsausdruck fehlerhaft ist. (das könnte mit der Option --enable-compiled-functions anders sein):

    rcalc> func t(x)=foo

    error : malformed expression.