Frage deutsch
~~~~~~~~~~~~
Wie gehe ich mit mehrdimensionalen Feldern um?
 

Question English
~~~~~~~~~~~~~~
What is a multi-dimensional array and how can I handle it?
 

Antwort 1
~~~~~~~~~
[ von Helium (
m.beckah*gmx.de ) und Thomas Antoni, 26.6.2002 ]
.
Mit mehrdimensionalen Felder gehst Du genauso um wie mit den normalen eindimensionalen, nur dass man eben mehrere Indices hat.
Ein zweidimensionales Feld wird beispielsweise so ->
deklariert :
DIM anna% (1 TO 10, 1 TO 8)
 
Eine ->
Wertzuweisung an das 6. Unterelement des 3. Feldelementes erfolgt dann etwa so:
anna% (3, 6) = otto%
 
Zweidimensionale Felder sind also quasi Felder mit gleich großen eindimensionalen Feldern. Sogenannte "Jagged Arrays", bei denen jedes der eindimensionalen Unterfelder eine andere Größe hat lassen sich in QB nicht realisieren, wohl aber zweidimensionale Felder, bei dem jedes Feldelement der zweiten Dimension einen benutzerdefinierten Datentyp haben kann. Deartige "Verbundfelder anwenderdefinierten Typs" (in anderen Programmiersprachen auch "Strukturen" (engl. "Stuctures") genannt) werden mit TYPE...END TYPE deklariert.
 
Mit den folgenden Befehlen kannst Du ein dreidimensionales Feld mit 5 x 6 x 7 Feldelementen deklarieren und aug das allererste Feldelement zugreifen:
DIM anna% (4, 5, 6)
anna% (0, 0, 0) = otto%
 
Weitere Informationen zu mehrdimensionalen Feldern sowie zu Strukturen findest Du in meinem QBasic-Kochbuch, das auf
http://www.qbasic.de in der Rubrik "QBasic -> Tutorials" zum Download bereitsteht.
 
 

Answer 2
~~~~~~~~~
Hmmm... you must be referring to something like DIM (3, 2). Okay, multi-dimensional arrays are pretty cool, they allow you to "map" things out. In fact, in the question above, you would probably want to use a md array to hold the font data. Here's a quick example:
 
DIM SHARED TestThingy(3, 4) AS INTEGER
' This statement could also be: DIM SHARED TestThingy%(3, 4)
 
Now, you must find data to put in these. Notice that they are Integer data types. They can only hold integer values, not
strings, or long, or single precise numbers. You could say that TestThingy(1, 2) = 24 and TestThingy(2, 3) = 4 and
they hold data in certain areas. Yay! PRINT TestThingy(1, 2) / TestThingy(2, 3)
 
The output of the program: 6 Tada!

[ The QBasic-MonsterFAQ --- Start Page: www.antonis.de/faq ]