Grundlagen der Programmierung: Datenstrukturen

Multidimensionale Arrays

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Bei multidimensionalen Arrays handelt es sich um ein Array in einem Array in einem Array… Und da es nicht um räumliche Dimensionen geht, sondern um eine Datenstruktur, ist das gar nicht so verwirrend, wie Sie vielleicht glauben.

Transkript

Das einfache Array wird auch als eindimensionales Array bezeichnet. Manchmal sehen Sie Arrays, die vertikal dargestellt werden, wie hier, oder manchmal auch horizontal, je nachdem, was gerade praktischer ist. Aber wenn wir einen Schritt weitergehen, können wir Arrays mit zwei Dimensionen haben. Sie werden auch als Matrix bezeichnet oder als Tabelle, denn das sind ganz offensichtlich Reihen und Spalten mit Informationen. Einzelne Elemente können nicht mehr mit einem einfachen Index angesprochen werden, einer Nummer, so wie es in einem eindimensionalen Array möglich wäre. Wir brauchen zwei Nummern, um ein Element ansprechen zu können. Die erste Nummer beschreibt die Reihe und die zweite Nummer beschreibt die Spalte. Das, was dann erreicht wird, ist genau dieses eine Element. Das ist ein bisschen verwirrend, wenn man bedenkt, dass ich von einer Tabelle spreche und von Reihen und Spalten. Eigentlich handelt's sich ja um eine Programmiersprache. Hier ist nicht wirklich von Reihen und Spalten im klassischen Sinn die Rede, sondern von Dimensionen. Hier handelt es sich in Wirklichkeit um ein Array in einem Array. Um sich das Ganze mal genauer anzuschauen, habe ich hier die erste Dimension. Die erste Dimension ist ein Index mit Element. Nur ist es jetzt so, dass das Element selbst wieder ein Array ist. Ich kann dann jede Indexierung mit so einem Array befüllen. Ich brauche dann eben diese zwei Werte, um die zwei Dimensionen des Arrays ansprechen zu können. Der eine Wert verweist also auf die eine Dimension, in unserem Fall die Nummer 2, und die zweite Nummer verweist auf die zweite Dimension. In unserem Fall auf die Nummer 3. Zweidimensionale Arrays sind für viele reale Programmierproblemstellungen sehr hilfreich. Wir können eine dieser realen Problemstellungen nachbauen, wenn wir zum Beispiel an ein Schachbrett denken. Bei einem Schachbrett können wir auch jedes einzelne Element genau auf diese Art ansprechen. Das reale 8x8-Brett kann so dargstellt werden. Oder ein etwas datenorientierteres Beispiel. Nehmen wir an, wir haben eine Wetter-App. Wir können mit einem zweidimensionalen Array arbeiten, in dem jede Reihe einen Tag in einem Jahr präsentiert und jede Spalte die Temperatur stundenweise ausgibt. Nun können wir so eine Ausgabe für jede beliebige Stunde jedes beliebigen Tags erzeugen. Wir können aber genauso die Durchschnittstemperatur eines bestimmten Tags errechnen oder auch den Durchschnittstemperaturwert durch die Tage zu einer bestimmten Uhrzeit. Aber lassen Sie uns jetzt noch einen Schritt weitergehen. Wir können natürlich auch drei Dimensionen erzeugen. Da können wir dieses Beispiel einfach weiterführen. Da habe ich nicht nur einen Ort, an dem ich Wochentag und stundenmäßig die Temperatur ablesen möchte, sondern da habe ich mehrere Orte. Ich habe dann nochmal die Möglichkeit, diese zusammenzufassen zu einem alles umfassenden Array, in dem dann zum Beispiel auch der Ort ausgelesen wird. In diesem Fall, bei den drei Dimensionen, brauche ich dann auch drei Ziffern, um zu dem einzelnen Element zu kommen, um das es mir geht. Hier ist die erste Ziffer die, die den Ort beschreibt. In unserem Fall die 1. Die zweite Ziffer beschreibt den Tag. In unserem Fall den dritten Tag. Die dritte Ziffer wiederum beschreibt die Uhrzeit. So komme ich in dieser dreidimensionalen Ausprägung genau zu diesem Element, das ich brauche. Nur dass ich dafür eben drei Ziffern brauche um ans Ziel zu kommen. So können Sie unterschiedlichste Dimensionen erzeugen. Sie müssen nur im Auge behalten, dass die Dimensionen nichts mit den realen Dimensionen unserer Welt zu tun haben, sondern nur mit einer Strukturierung in eine bestimmte Tiefe. Exkurs. Wenn wir über drei- beziehungsweise multi-dimensionale Arrays sprechen, kann das komplizierter klingen, als es tatsächlich ist. Achten Sie darauf, dass Sie nicht die Idee hinter einer dreidimensionalen Datenstruktur mit physischer Dreidimensionalität zusammenwerfen oder mit einem 3D-Spiel oder dergleichen. Wir sprechen von drei DImensionen an Daten. Das ist viel einfacher als drei Dimensionen in der physischen Welt. Denn wenn wir Dimensionen für Daten verwenden, geht es dabei um das Gruppieren und Einbetten von Informationen. Eine Telefonrechnung für einen Handyvertrag einer ganzen Familie. Das lässt sich auf drei oder vier Telefonanschlüsse herunterbrechen. Jeder von ihnen hat typischerweise drei unterschiedliche Dienste am Laufen. Daten, Telefonieren, Textnachrichten. Jeder dieser Dienste hat seine eigenen, sich wiederholenden Details. Jeder dieser Dienste beinhaltet Informationen wie Datum, Uhrzeit und Verbrauch. Das sind multidimensionale Daten. Mindestens drei Dimensionen. Dann nehmen Sie diese Idee mit der Telefonrechnung und überlegen sich, dass Sie jeden Monat dieses Paket bekommen und die gesamte multiidimensionale Struktur wiederholt sich. Das an sich ist schon wieder eine weitere Dimension. Um das Beispiel noch weiter auszureizen, denn es wird Programmierer geben, die sagen, dass sich das Beispiel auch wunderbar mit eindimensionalen Arrays umsetzen lässt oder vielleicht mit zwei DImensionen, aber darüber hinaus, behaupten sie, wäre es verwirrend und freaky und esoterisch und eventuell müsse man geistig in einer bestimmten Art ticken, damit man so was hinbekommt. Sie gehören jetzt eben nicht mehr dazu. Sie würden sich selbst keinen Gefallen tun, so zu denken. Haben Sie die Idee einer Telefonrechnung für einen Familienvertrag verstanden, haben Sie auch die Idee mehrdimensionaler Datenstrukturen verstanden und auch, warum wir sie brauchen. Möglicherweise haben Sie die Syntax nicht sofort bei der Hand, aber das kann warten. Darum kümmern wir uns ein andermal. Hier geht's zuerst mal um das Konzept. Würde ich heutzutage realistischerweise ein Programm schreiben, das die Daten einer Handyrechnung in einem einfachen Array speichert, oder in einem multidimensionalen? Nein. Es gibt andere Datenstrukturen, die dafür brauchbarer sind, überzeugender. Die diese Idee aufnehmen und zusätzliche Features einbinden würden. Die es uns erlauben würden zu sortieren, zu suchen, Elemente einzufügen oder auch zu entfernen und genau so einen Zugriff auf jeden Teil der Daten ermöglichen. Und das nicht nur mit dem numerischen Index. 17, 2, 28. Und die den Einsatz von Zeichenketten oder speziellen Schlüsselworten erlauben, die sich uns auch jenseits des Programms erschließen. Mehr als Zahlenwerte. Aber das wäre ein weiteres Konzept und im Moment ging's nur einmal darum, die Mehrdimensionalität im Einsatz zu erleben. Denn obwohl es schön wäre, könnten wir unsere Daten nehmen und hoffen, dass sie ganz von selbst in ein exaktes Schema passen. In eine schöne, ordentliche Matrix mit spezieller Höhe und Weite. Natürlich wird das so nicht funktionieren. Denn das Leben und unsere Programme sind nicht so nett.

Grundlagen der Programmierung: Datenstrukturen

Erhalten Sieeinen klaren Eindruck von Datenstrukturen und deren Eigenheiten und verstehen, wie Sie diese am besten einsetzen können – ganz unabhängig von den einzelnen Programmiersprachen.

2 Std. 51 min (29 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!