mavscript - mit BeanShell

Copyright (c) A.Vontobel, 2004 - 2016

Mavscript ermöglicht es in einem Textdokument Berechnungen durchzuführen.

Unterstützt werden folgende Dateiformate:

Mavscript mit Beanshell

Anstelle eines Computer-Algebra-Systemes kann auch BeanShell verwendet werden. Beanshell ist eine Skriptsprache für die Programmiersprache Java.
Die grundlegenden Rechenoperationen sind sehr einfach zu verwenden, algebraische Funktionen stehen jedoch nicht zur Verfügung. BeanShell ist somit kein Ersatz für ein Computer-Algebra-Programm.
Die Stärke von BeanShell ist, dass auf externe Java-Programme zugegriffen werden kann, Algorithmen in (vereinfachtem oder normalem) Java programmiert werden können und überhaupt der ganze Funktionsumfang von Java zur Verfügung steht. Wer die Programmiersprache Java ein wenig kennt, hat so ein sehr leistungsfähiges Werkzeug zur Hand.

So funktioniert's

Mavscript liest die Berechnungsanweisungen ein. Es erkennt deren Beginn am Steuerzeichen §m, das Anweisungsende an einem der folgenden Steuerzeichen: §i, §o, §io und §n. Auf ihre Bedeutung wird weiter unten eingegangen. Die Anweisung wird an BeanShell weitergeleitet. BeanShell verarbeitet die Anweisung und gibt eine Antwort an Mavscript zurück, z.B. das Resultat einer Berechnung. Mavscript kann nun diese Antwort an der Stelle in den Text einsetzen, wo die Anweisung stand. Das fertig berechnete Textdokument speichert Mavscript in eine neue Datei out-originalname ab. Die ursprüngliche Datei bleibt unverändert.

Nicht immer will man die Anweisung durch den Rückgabewert von BeanShell ersetzen. Wenn man Variablen einen Wert zuweist, ist das meistens unerwünscht. Es gibt daher die folgenden Möglichkeiten.
Eingabe in der Vorlagedatei    Ausgabe                Anmerkung
---------------------------    -------                ---------
§m l = 5.0 §i                  l = 5.0                Die Darstellung bleibt unverändert. §i steht für input.
§m b = 4.0 §i                  b = 4.0                Die Steuerzeichen werden entfernt.
§m h = 2.0 §i m                h = 2.0 m
§m V = l*b*h §io V = l*b*h --> 40. Sowohl die Ein- wie auch die Ausgabe werden angezeigt. §m 2. + 3. * 4. §io 2. + 3. * 4. --> 14. §io steht für input/output.
§m doppeltesVol = 2*V §n Nicht immer will man die Anweisung darstellen. §m static import Math.*; §n §n steht für nichts.
§m doppeltesVol §o 80. Es wird nur der Rückgabewert angezeigt. §o steht für output. §m sin(PI/4.) §o 0.7071067811865475 Dies kann gebraucht werden, um Berechnung und Resultat- ausgabe örtlich zu trennen.

Einige Regeln:



Installation

siehe Installieren

Gebrauch

STANDART

Falls wie oben installiert und das mitgelieferte BeanShell gebraucht werden soll:
  1. Vorlagedatei erstellen: vorlage.txt oder vorlage.odt
  2. Die Vorlagedatei mit der Maus auf das Mavscript-bsh-Symbol auf dem Desktop ziehen.
  3. Es öffnet sich ein Fenster und die Rechnung rattert durch. Das Fenster kann anschliessend geschlossen werden.
    Darauf achten, ob eine Fehlermeldung ausgegeben wurde.
  4. Die Zieldatei (out-vorlage.txt oder out-vorlage.odt) öffnen.

ALTERNATIV (um erweiterte Funktionen zu nutzen oder wenn obige Variante nicht funktioniert)

Mavscript kann alternativ auch von der Shell (Eingabeaufforderung, Konsole, Terminal, Command Prompt, DOS-Fenster) ausgeführt werden.
cd Installationspfad und dann:

ERWEITERTE FUNKTIONEN

Tipps

  1. Mavscript verlangt, dass eine Anweisung nicht durch einen Zeilenumbruch unterbrochen werden darf. Eine Stärke von BeanShell ist aber gerade, dass leicht Methoden (Algorithmen, Funktionen) geschrieben werden können. Ohne Zeilenumbruch sind diese u.U. schlecht leserlich.
    Dieses Problem kann leicht umgangen werden, indem diese mehrzeiligen Anweisungen in einer separaten Datei (z.B. algorithmus.bsh) abgespeichert werden. Diese Datei kann dann auf unterschiedliche Art und Weise aufgerufen werden:
    Die erstgenannte Variante eignet sich für mehrfach verwendete Methoden. Siehe z.B. die in lib/init.bsh vordefinierten Methoden min(), max(), nf().
  2. Die in der Datei lib/init.bsh vordefinierte Methode nf() ist nützlich um Zahlen zu formatieren.
    mavscript --beanshell --init lib/init.bsh ./vorlage.txt
    Gebrauch: §m nf(2.33333333, 2) §o ergibt 2.33


Rechtliches