Download this file

DynMat.def    60 lines (47 with data), 3.3 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
DEFINITION MODULE DynMat;
(*------------------------------------------------------------------------*)
(* Modul zur Verwaltung von dynamisch allokierten zweidimensionalen *)
(* Matrizen wie sie in Deklera definiert wurden. *)
(* Modul for handling dynamicly allocated two dimensional matrices as *)
(* defined in Deklera.def. *)
(*------------------------------------------------------------------------*)
(* Implementation : Michael Riedl *)
(* Licence : GNU Lesser General Public License (LGPL) *)
(*------------------------------------------------------------------------*)
(* $Id: DynMat.def,v 1.2 2017/01/02 08:36:11 mriedl Exp mriedl $ *)
FROM SYSTEM IMPORT TSIZE;
FROM Deklera IMPORT MATRIX,PMATRIX;
PROCEDURE AllocMat(VAR Mat : PMATRIX;
m,n : CARDINAL);
(*----------------------------------------------------------------*)
(* Erzeugt eine dynamische Matrix Mat[1..m,1..n]. Wenn nicht *)
(* gen"ugend Freispeicher vorhanden ist, wird Mat auf NIL gesetzt *)
(* Errros.Fehler auf TRUE und in Errros.Fehler eine entsprechende *)
(* Fehlermeldung generiert. Diese wird auf dem Fehlerkanal aus- *)
(* gegeben wird, ohne jedoch das Programm abzubrechen. *)
(*----------------------------------------------------------------*)
PROCEDURE DeAllocMat(VAR Mat : PMATRIX;
m,n : CARDINAL);
(*----------------------------------------------------------------*)
(* Gibt den Speicherplatz der dynamischen Matrix Mat wieder *)
(* frei und setzt Mat auf NIL. *)
(*----------------------------------------------------------------*)
PROCEDURE ConvMat(VAR Mat : MATRIX;
VAR PMat : PMATRIX); (* ==> Referenz auf Mat *)
(*----------------------------------------------------------------*)
(* Erzeugt eine Reverenz auf eine statische Matrix *)
(* Die Dimension dieser Referenz entspricht dann *)
(* [1..Deklera.MaxDim, 1..Deklera.MaxDim]. *)
(* Diese Referenz darf NICHT mit DeAllocMat wieder freigegeben *)
(* werden, dann ist das absolute Chaos garantiert. Zu diesem *)
(* Zweck ist die Routine DeAllocConvMat gedacht. *)
(*----------------------------------------------------------------*)
PROCEDURE DeAllocConvMat(VAR Mat : MATRIX;
VAR PMat : PMATRIX); (* <==> Referenz auf Mat *)
(*----------------------------------------------------------------*)
(* L"oscht die Reverenz PMat auf die statische Matrix Mat. *)
(* Wenn PMat NICHT auf Mat verwei3t, wird Errros.Fehler und *)
(* Errros.Fehlerflag entsprechend gesetzt und KEINE *)
(* Speicherfreigabe ausgef"uhrt. *)
(*----------------------------------------------------------------*)
END DynMat.