! MAT_Tests.obas (c) Andre Koppel Software 2012
! Dieses führt diverse Matrixmanipulationen durch
! und zeigt jeweils die Ergebnisse an

DIMOPTION ON
DIMOPTIONBASE 1
INIT VARSPACE
! Zuerst stellen wir mal sicher, dass die Matrizen auch angelegt
! sind
DIM Matrix(2 ; 3)  , RMatrix(4;3)

! die Ausgaben sollen in einem eigenen Fenster erfolgen und alle
! Trace-Ausgaben d.h. auch die VAR DUMPS sollen ebenfalls in
! diesem Fenster erfolgen
DISPLAY IS MESSAGE WINDOW
TRACE TO SCREEN

DISP "Ergebnisse der 2*3-Matrix: \n"
FOR Y=1 TO 2
  FOR X=1 to 3
    Wert=Y+X/10
    Matrix(Y ; X)=Wert
    DISP "Matrix( " Y " ; " X "):  " Wert  "\n"
  NEXT
NEXT
REDIM Matrix(3 ; 2)
DISP "Ergebnisse nach Umdimensionierung in eine 3*2-Matrix\n"
FOR Y=1 TO 3
  FOR X=1 TO 2
    Wert=Matrix(y ; X)
    DISP "Matrix( " Y " ; " X "): " Wert "\n"
  NEXT
NEXT
DISP "Erzeugen einer Null-Matrix in RMatrix\n"
MAT RMatrix = ZER
DUMP VARS 1
DISP "RMatrix wird die transponierte Matrix von Matrix\n"
MAT RMatrix = TRN Matrix
DUMP VARS 1
DISP "Erzeugen einer Einser-Matrix in Matrix\n"
MAT Matrix = CON
DUMP VARS 1
DISP "Erzeugen einer Null-Matrix in Matrix\n"
MAT Matrix = ZER
DUMP VARS 1
DISP "Wir machen aus der  2*3-Matrix eine 3*3 Matrix\n"
REDIM Matrix(3 ; 3)
DUMP VARS 1
DISP "Erzeugen einer Diagonal-Matrix\n"
MAT Matrix = IDN
DUMP VARS 1
DISP "RMatrix ist Matrix + 1 bei allen Elementen\n"
MAT RMatrix = Matrix + (1)
DUMP VARS 1
DISP "Matrix wird komplett gleichgestellt mit RMatrix\n"
MAT Matrix = RMatrix
DUMP VARS 1
MAT RMatrix = GETDIM Matrix
DUMP VARS 1

Das ist interessant

Dieses Beispiel zeigt in erster Linie die Möglichkeiten der Verarbeitung von Matrizen auf.

Um dem Anwender möglichst transparent die Änderungen nach den einzelnen Manipulationen darzustellen, wird hier der Befehlt DUMP VARS verwendet, um sämtliche Variablen im OBAS-Variablenspeichern anzuzeigen. DUMP VARS hat gegenüber der Einzelanzeige von Variablen den großen Vorteil, dass die Anweisung selbständig die Abmessungen von Matrizen ermittelt, was insbesondere dann hilfreich ist, wenn sich die Abmessungen durch Redimensionalisierungen oder Manipulationen ändern.

Die in diesem Beispiel gezeigten Matrizenmanipulationen zeigen die rein mathematische Komponente der Matrizenverarbeitung auf. Das Laden von Inhalten in die Matrizen, um z.B. Buchhaltungsdaten auszuwerten, wird in anderen Beispielen aufgezeigt. Generell können in allen INVEP-Bildschirmmasken, in denen Listen dargestellt werden, diese Listen komfortabel in Matrizen geladen werden, um sie hiernach mit den verschiedenen MAT-Anweisungen auszuwerten. Ein Beispiel zum Einlesen von Buchungsdaten finden Sie hier. Es ist genauso möglich, Gläubigerdaten in Matrizen einzulesen und daraus wiederum die Forderungen auszuwerten.

 

Beispiel in INVEP laden

Sie können dieses Beispielprogramm in den INVEP-OBAS-Interpreter laden, indem Sie im Interpreter über den Button "Neu/laden" die Option OBAS-Web auswählen. Geben Sie als Nummer für das Beispiel die 5 ein.



Schatten