Was ist der Sinn von mehrdimensionalen Arrays ?
-
Hey,
ich beschäftige mich zur Zeit mit Arrays und finde das Thema , gerade bei mehrdimensionalen Arrays sehr schwer, trotz Videos und Texterklärungen verstehe ich nicht ganz den Sinn.
Ich weiß, dass Arrays dazu da sind, um nicht 20 Variablen des selben Datentypes ständig deklarieren zu müssen, aber wozu sind dann mehrdimensionale Arrays, bzw. dreidimensionale etc. ?
Z.B habe ich in einem Code in einem Buch mal folgendes gesehen, was mich verwirrt hat. Am Anfang wurde einfach ein mehrdimensionales Array erstellt: Karte[Höhe][Breite] und danach hat er in einer for-Schleife den selben Array, aber mit anderen Variablen verwendet. Wie ist das möglich, also dann statt höhe, breite - x,y.
Hoffe ihr versteht, was ich meine.
Ich würde mich über eine Erklärung sehr freuen.
Danke!
-
kleeman schrieb:
Ich weiß, dass Arrays dazu da sind, um nicht 20 Variablen des selben Datentypes ständig deklarieren zu müssen,
Das ist nicht ganz der Sinn von Arrays. Es besteht auch immer ein logischer Zusammenhang zwischen den Elementen eines Arrays. Niemand würde/sollte ein arithmetisches Mittel, einen Winkel und eine X-Koordinate zusammen in ein double[3]-Array stopfen, obwohl alle den gleichen Datentyp haben.
Ein Array ist ein Verbund von Objekten, die nach einem Index geordnet und anhand dieses Indexes ansprechbar sind. Eine mögliche Parallele aus der echten Welt wären beispielsweise eine Reihe von Stühlen mit Platznummer.
aber wozu sind dann mehrdimensionale Arrays, bzw. dreidimensionale etc. ?
Das ist dann ein Array von Arrays. Oder ein Array von Arrays von Arrays. Beispielsweise ein Saal mit mehreren (gleich langen) nummerierten Reihen von Stühlen.
Z.B habe ich in einem Code in einem Buch mal folgendes gesehen, was mich verwirrt hat. Am Anfang wurde einfach ein mehrdimensionales Array erstellt: Karte[Höhe][Breite] und danach hat er in einer for-Schleife den selben Array, aber mit anderen Variablen verwendet. Wie ist das möglich, also dann statt höhe, breite - x,y.
Ich verstehe, was du meinst, aber ich verstehe nicht, was dich da dran überrascht. Was hättest du denn stattdessen getan? Der eindimensionale Fall ist hier übrigens nicht anders.
-
SeppJ schrieb:
kleeman schrieb:
Ich weiß, dass Arrays dazu da sind, um nicht 20 Variablen des selben Datentypes ständig deklarieren zu müssen,
Das ist nicht ganz der Sinn von Arrays. Es besteht auch immer ein logischer Zusammenhang zwischen den Elementen eines Arrays. Niemand würde/sollte ein arithmetisches Mittel, einen Winkel und eine X-Koordinate zusammen in ein double[3]-Array stopfen, obwohl alle den gleichen Datentyp haben.
Ein Array ist ein Verbund von Objekten, die nach einem Index geordnet und anhand dieses Indexes ansprechbar sind. Eine mögliche Parallele aus der echten Welt wären beispielsweise eine Reihe von Stühlen mit Platznummer.
aber wozu sind dann mehrdimensionale Arrays, bzw. dreidimensionale etc. ?
Das ist dann ein Array von Arrays. Oder ein Array von Arrays von Arrays. Beispielsweise ein Saal mit mehreren (gleich langen) nummerierten Reihen von Stühlen.
Z.B habe ich in einem Code in einem Buch mal folgendes gesehen, was mich verwirrt hat. Am Anfang wurde einfach ein mehrdimensionales Array erstellt: Karte[Höhe][Breite] und danach hat er in einer for-Schleife den selben Array, aber mit anderen Variablen verwendet. Wie ist das möglich, also dann statt höhe, breite - x,y.
Ich verstehe, was du meinst, aber ich verstehe nicht, was dich da dran überrascht. Was hättest du denn stattdessen getan? Der eindimensionale Fall ist hier übrigens nicht anders.
Danke für deine Rückmeldung! Jetzt ist mir das etwas klarer, irgendwie schwer sich das vorzustellen mit einem Array in einem Array. Aber dann sind ja Arrays nicht immer effizient. Man kann sie also nur gebrauchen, wenn man z.B mehrere Exp. Variablen, z.B für mehrere Level anlegt. Also eben die selbe Art einer Variable. Das kommt ja aber nicht immer vor. Danke für deine Erklärung. Wozu braucht man eigentlich mehrdimensionale Arrays noch außer für bspw. Maps ?
-
Egal welchen Quelltexte du im Internet findest - mit aller Wahrscheinlichkeit werden Arrays/Listen in irgendeiner Form verwendet - Arrays sind kein Sonderfall sondern der Normalfall - und bei deinen (unter)Grundkenntnissen über Effizienz zu Sprechen macht echt gar keinen Sinn
Einfach nochmal einen Tag das Internet befragen - dann kannst du deinen Frage locker selbst beantworten und merkst auch gleich wie komisch deine Frage ist
-
Der Sinn von Arrays sollte klar sein. Eine Art ein Array zu betrachten: man gibt einen Parameter rein (den Index) und erhaelt ein Element des Arrays. Mehrdimensionale Arrays sind dann syntaktischer Zucker, damit dies mit mehreren Parameter funktioniert. Wie man aus den Parametern wieder auf den Index kommt, ist zwar trivial, aber man kann es sich abnehmen lassen.
-
Stell dir es als Tabelle vor.
Ein Karopapier mit Reihen und Spalten wäre ein 2-dimensionales,
ein Stapel von Karopapieren wäre dann ein 3-dimensionales array.