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)
12 | 1 | 3 | 4 |
1 | -1 | -123 | 4 |
8 | 0 | -23 | 43 |
113 wird geschrieben als `1,3,1'
Gleitkommazahlen werden wie üblich mit Punkt (auch mit Exponenten Teil) geschrieben (z.B 1.234e-12)
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
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.
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.
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
%Feldname
oder die
Zeile wird zum Zeichenkette des letztes Feldes hinzugefügt.%Feldname
. In dieser Zeile wird zu Zeichenkette kein
newline
hinzugefügt.%Feldname
wird ein newline
hinzugefügt es sei denn die Zeile endet mit \%Feldname
wird ignoriert.
Ich habe immer '-' geschrieben