Graphics Reference
In-Depth Information
Abb. 6.1
Mehrdimensionale Arrays
Bei kritischer Betrachtung dieser Vorgehensweise fällt auf, dass
die beiden Schleifenindizes
i
und
k
erst zur Laufzeit des Programms bekannt sind
und folglich die Adresse
ik
des Elemente
a
i
;
k
erst zur Laufzeit des Programms
berechnet werden kann; das kostet unsere Zeit.
die Reihenfolge der Schleifen sich auf die Rechenzeit auswirkt. Läuft
For i
...
innerhalb
For k ...
, dann ist der Ausdruck
k
5
für alle
i
konstant und
braucht für jedes
i
nur einmal berechnet zu werden. Läuft dagegen
For k ...
innerhalb
For i ...
, dann ist dieser Ausdruck für jedes Array-Element neu
zu berechnen.
das Array - die Matrix -
[A]
völlig neu organisiert werden muss, wenn die
Knotenanzahl, also die Matrixzeilen, erhöht wird. Störend ist hier die von der
Aufgabenstellung abhängige Konstante
5
D 4 C 1
als feste Größe.
Nur geringfügig besser sind die Verhältnisse, wenn
[A]
in transponierter Form ge-
speichert wird (Abb.
6.1
rechts). Im 1-dimensionalen Array finden wir
a
i
;
k
jetzt als
10. Element:
ik
D
3
k
C
i
D 3 3 C 1 D 10 :
Bei dieser Deklaration bleibt die Zeilenzahl konstant und ist unabhängig von der
Anzahl der Knoten. Bezüglich der Rechenzeit hat sich nichts verbessert, allen-
falls die Programmierung mit Unterprogrammen wird übersichtlicher, weil man auf
einen Übergabeparameter verzichten kann.
Die Matrix
[A]
war lediglich vorgesehen, um die globalen
XYZ
-Koordinaten der
Knoten aufzunehmen. Das sind allerdings nicht die einzigen wichtigen Daten, die
den Knoten zuzuordnen sind. Beispielsweise sind ferner wünschenswert (eine klei-
ne Auswahl):