mavscript - mit BeanShell
Copyright (c) A.Vontobel, 2004 - 2016
Mavscript ermöglicht es in einem
Textdokument Berechnungen durchzuführen.
Unterstützt werden folgende
Dateiformate:
- Textdatei
- OpenDocument Text odt (OpenOffice, LibreOffice)
- Hypertext html
- LaTeX tex (pdflatex, xelatex)
- weitere Formate, die in Textform speichern
(z.B. svg). Die Textdatei darf in einem zip-Archiv
vorliegen.
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:
- Eine Anweisung muss auf einer Zeile liegen.
- Es dürfen mehrere Anweisungen auf einer
Zeile liegen. Bsp: §m a=3. §i,
§m b=4. §i.
- In OpenOffice Writer muss die
ganze Anweisung die gleiche Formatierung aufweisen. In
Anweisungen doppelte Leerzeichen meiden.
- Die Syntax der Anweisungen ist jene von
BeanShell respektiv Java. Das Handbuch liegt im Ordner
Installationspfad/INFO/beanshell bei.
- Mavscript hängt an jede Anweisung einen
Strichpunkt (;) an. Dieser kann daher
in der Anweisung weggelassen werden.
- Vorsicht bei Mavscript-BeanShell-Vorlagen
aus dritter Hand: Die Skript-Funktionalität von BeanShell ist
sehr mächtig, es kann auch auf den Computer und dessen Dateien
zugegriffen werden. Daher: Anweisungen durchsehen, bevor
mavscript --beanshell aufgerufen wird.
Installation
siehe Installieren
Gebrauch
STANDART
Falls wie oben installiert und das mitgelieferte BeanShell
gebraucht werden soll:
- Vorlagedatei erstellen:
vorlage.txt oder
vorlage.odt
- Die Vorlagedatei mit der Maus
auf das Mavscript-bsh-Symbol auf dem Desktop
ziehen.
- Es öffnet sich ein Fenster und die
Rechnung rattert durch. Das Fenster kann anschliessend
geschlossen werden.
Darauf achten, ob eine Fehlermeldung ausgegeben wurde.
- 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:
- mavscript-beanshell ./vorlagedatei (Windows)
- ./mavscript-beanshell ./vorlagedatei (Linux)
- java -jar mavscript*.jar --beanshell ./vorlagedatei (alle Plattformen)
ERWEITERTE FUNKTIONEN
- mavscript --help
Zeigt die verschiedenen Startparameter an.
- siehe Startparameter
Tipps
-
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:
- algorithmus.bsh als init-Datei verwenden
mathscript --beanshell --init ./algorithmus.bsh ./vorlage.txt
- algorithmus.bsh aus der Vorlagedatei heraus
aufrufen:
§m source("algorithmus.bsh"); §n
Die erstgenannte Variante eignet sich für mehrfach
verwendete Methoden. Siehe z.B. die in lib/init.bsh
vordefinierten Methoden min(),
max(), nf().
- 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
- Gebrauch auf eigene Gefahr. Jede Haftung
wird abgelehnt.
- Das Programm Mavscript unterliegt der freien Lizenz GPL. Sie
ist in der Datei Installationspfad/INFO/LICENCE-GPL.txt nachzulesen. Die Lizenz
erlaubt die Nutzung, knüpft jedoch die Weitergabe an klare
Bedingungen. Das Urheberrecht (Copyright) liegt bei A.Vontobel.
- Das mitgelieferte Skriptprogramm
BeanShell unterliegt der freien Lizenz LGPL.
Sie ist in der Datei Installationspfad/INFO/beanshell/LGPL nachzulesen. Die Lizenz
erlaubt die Nutzung, knüpft jedoch die Weitergabe an klare Bedingungen.