Weiter Zurück Inhalt

3. matrix als Shellkommando

3.1 Erzeugung der Matrix Datei

Diese Datei hat formell den Aufbau. Sie kann auch mit dem Programm tkmatrix erzeugt werden. (in BNF ungefähr)


Matrixdatei = ["FLOAT"] zeilenzahl spaltenzahl {zahl}
zeilenzahl,spaltenzahl=integer
zahl=Bruch|Floatzahl
Bruch=integer | (integer separator integer separator integer) | 
(integer separator integer)
separator= ","|"/"
Floatzahl=C double   

Kontext:

Anzahl von Zahl = zeilenzahl * spaltenzahl

wenn FLOAT dann keine Brüche und umgekehrt

integer = -2147483648...-2147483647 double int

Ein Beispiel für eine 3x4 Bruch Matrix


3 4
1,2 1 3 4
1 -1 -1,2,3 4
8 0 -2,3 4,3  

Was eine 3× 4 Matrix bedeutet (3-Zeilenzahl 4-Spaltenzahl)
12134
1-1-1234
80-2343
Zum Bruch Schreibweise 13 wird geschrieben als `1,3'

113 wird geschrieben als `1,3,1'

Gleitkommazahlen werden wie üblich mit Punkt (auch mit Exponenten Teil) geschrieben (z.B 1.234e-12)

3.2 Was ist Protokoll ?

Die meisten interessiert nicht das Ergebnis aber der Weg wie es zu ihm kommt. Dazu dient Protokoll, er beinhaltet alle Zwischenschritte vom Ausgangsmatrix zum Ergebnis mit zugehörigen Kommentar. Protokollierung schaltet man ein mit Option --protokoll oder -p

Eigentlich bedeutet das Begriff Protokoll in Informatik eine Menge von Regeln die zum Informationsaustausch zwischen zwei Kommunikationspartner dienen. z.B. IP,TCP,HTTP Protokoll. Ich benutze dem Begriff in seiner eher ursprünglicher Bedeutung.

(Nach Duden) Protokoll: wortgetreue auf die wesentliche Punkte beschränkte schriftliche Fixierung des Hergangs einer Sitzung Verhandlung, eines Verhörs

Sorry für Begriffsunstimmigkeiten, aber es ist eben ein Merkmal der weichen Sprachen

3.3 Arbeitsweisen

Behelszeile

matrix -a Algorithmus {Matrixdatei(en)} | -s [-o Outputdatei] [-t Outputtyp] [-v Vorlagenpfad] [-e Ergebnismatrix] [-s] [-p] [-k] [-b]

Algorithmus= ("none" | "gauss" | "jordan" | "loesung" | "kern" | "bild" | "inverse" | "determinante" | ("pivotiere" spalte zeile) | "naehrung" | "eckenfindung" | "simplex") | nummer

oder ein Nummer z.B. 1 für gauss

Outputtyp="ascii" | "html" | "latex"

Lange Optionsnammen

Gibt es mehrere mtrixdateien werden sie nacheinander bearbeitet. Outputs gehen nur in eine Datei oder ein Strom (stream). Bei Option -e wird das Ergebnis von letzten matrixdatei gespeichert.

Interaktiv

Wird Matrix ohne Parameter gestartet meldet es sich mit einem Menüauswahl interaktiv. Ich bin nicht besonders stolz auf diesen Modus. Man sollte lieber Shell benutzen es ist schneller und einfacher.

Die Menüs sind eigentlich selbsterklärend man muß nur die richtige Nummer eintippen.

Nicht alle Möglichkeiten des Programm sind in interaktiven Modus erreichbar.

3.4 Formatdateien

Formatdateien haben den Aufbau object.typ."mform"

object={ "main" | "string" | "matrix" | "eqnarray" | "solution" | "determinante" | "simplex" }

Objectdateien für main,string und matrix müssen für jedes Typ vorhanden sein.

typ = { "ascii" | "html" | "latex" }

Die Erzeugung den neuen Formatdateinen sollen auf Hand von bereits vorhandenen genommen werden. In Quellcode Datei protformat.h ist der Aufbau der Datein als Kommetar genau beschrieben.

Ein paar Besonderheiten

Das Format ist zugegeben ziemlich seltsam aber man kann alles damit erreichen. (Und es war leicht zu programmieren :-) )


Weiter Zurück Inhalt