Stacks und Arrays
In dieser Lektion erhalten Sie
Informationen über:
Verwenden verschiedener Prozesse für das
Array-Objekt.
Verwenden verschiedener Prozesse für das
Stack-Objekt.
Stacks und Arrays
Bevor wir die Array- und Stack-Objekte verwenden, lassen
Sie uns zunächst untersuchen, wann wir eines dieser beiden
Objekte verwenden.
Ein Array kann mehrere Dimensionen haben, ein
Stack hat jedoch lediglich eine Dimension. Sie
können auf jedes Element in einem Array direkt
zugreifen, jedoch nur auf das oberste Element in
einem Stack. Mit anderen Worten, Sie müssen
alle Elemente eines Stacks durchlaufen, um auf
das letzte Element zuzugreifen.
Das Array-Objekt
Bisher haben Sie Informationen über die Variablen erhalten,
die einzelne Werte speichern. Nun behandeln wir eine spezielle
Art von Variablen, die „Array“ genannt wird.
Ein Array kann mehr als nur einen Wert
gleichzeitig speichern. Wenn Sie die Namen
von fünf Benutzern speichern möchten,
können Sie fünf Variablen erstellen oder
einfach nur eine einzige Variable, um alle
fünf Namen zu speichern.
Sie verwenden die Indexmethode, um mehrere Werte in
einem Array zu speichern. Sie können zum Beispiel ein Array
namens Name folgendermaßen erstellen: name[1], name[2],
name[3], name[4] und name[5]. Hier sind 1, 2, 3, 4 und 5 die
Indizes für das Array name.
Die Bezeichnungen name[1], name[2] usw. bezeichnen
anscheinend verschiedene Variablen, repräsentieren jedoch
nur eine einzige Variable!
Prozesse für das Array-Objekt
Betrachten wir nun einige der Prozesse für das Array-Objekt wie
IsArray, ContainsIndex und ContainsValue.
Sie können festlegen, ob die angegebene Variable ein Array ist, indem Sie den
IsArray-Prozess verwenden.
Sie können ermitteln, ob ein Array den angegebenen Index enthält, indem Sie
den ContainsIndex-Prozess verwenden. Dieser Prozess ist nützlich, wenn Sie
ermitteln möchten, ob ein bestimmter Wert den Index des Arrays initialisiert.
Sie können ermitteln, ob das Array einen von Ihnen angegebenen Wert
enthält, indem Sie den ContainsValue-Prozess verwenden. Sie können diesen
Prozess verwenden, um zu ermitteln, ob der Wert des Arrays in dem von Ihnen
angegebenen Index gespeichert wurde.
Prozesse für das Array-Objekt
Schauen wir uns an, wie wir diese Prozesse in einem
Programm verwenden können.
In diesem Beispiel speichert das SubjectsArray die Namen von fünf Fächern. Sie können
überprüfen, ob Subjects ein Array ist, indem Sie
den IsArray-Prozess verwenden. Sie können auch
überprüfen, ob der Index Subjects[4] vorhanden
ist, indem Sie den ContainsIndex-Prozess
verwenden. Sie können überprüfen, ob der Wert
„Math“ im Subjects-Array vorhanden ist, indem
Sie den ContainsValue-Prozess verwenden.
Prozesse für das Array-Objekt
Das Array-Objekt
stellt weitere nützliche
Prozesse bereit,
wie z. B.:
GetAllIndices
GetItemCount
In diesem Beispiel kennen Sie die
Indizes für das Employee-Array
nicht, sodass Sie den GetAllIndicesProzess verwenden. Als Nächstes
verwenden Sie den GetItemCountProzess in einer For-Schleife, um die
Informationen aufzulisten, die im
Employee-Array gespeichert sind.
Betrachten Sie dieses Beispiel, um zu erfahren,
wie diese Prozesse verwendet werden.
Das Stack-Objekt
Sie können das Stack-Objekt verwenden, um Daten auf die gleiche Weise
zu speichern, wie Sie Teller stapeln. Dieses Objekt funktioniert nach dem
Prinzip „Zuletzt hinzugefügt, zuerst entfernt“.
Wenn Sie von oben auf einen Tellerstapel schauen, können
Sie nur den obersten Teller sehen. Um den nächsten Teller zu
sehen, müssen Sie den obersten Teller entfernen. Sie können
keinen Teller in der Mitte des Stapels sehen, bevor Sie nicht
die Teller darüber entfernen.
Das Stack-Objekt besteht aus drei Prozessen:
PushValue
PopValue
GetCount
Betrachten wir diese
Prozesse im Einzelnen…
Prozesse für das Stack-Objekt
Sie können das Stack-Objekt verwenden, um Daten auf die gleiche Weise
zu speichern, wie Sie Teller stapeln. Betrachten wir einige Beispiele,
um die Funktionsweise dieses Objekts zu verstehen.
Die Verwendung des PushValue-Prozesses ist
dem Hinzufügen eines Tellers oben auf den Stapel
vergleichbar. Mittels dieses Prozesses können Sie dem
von Ihnen angegebenen Stack einen Wert hinzufügen.
Die Verwendung des PopValue-Prozesses ist dem Entfernen
eines Tellers oben vom Stapel vergleichbar. Sie können diesen
Prozess verwenden, um einen Wert aus dem
von Ihnen angegebenen Stapel zu entfernen.
Der GetCount-Prozess stellt die Gesamtzahl der
Werte im Stack bereit. Sie können diesen Prozess
verwenden, um zu ermitteln, wie viele Elemente
ein Stack enthält.
Prozesse für das Stack-Objekt
Schreiben wir nun ein Programm, um diese Prozesse besser zu verstehen.
In diesem Beispiel verwenden Sie den
PushValue-Prozess, um einem leeren
Container 50 Werte hinzuzufügen.
Anschließend entfernen Sie acht Werte
aus dem Stack, indem Sie den PopValueProzess verwenden. Verwenden Sie nun
den GetCount-Prozess, um die Anzahl der
verbliebenen Werte abzurufen. Sie zeigen
außerdem den obersten Wert im Stack an.
Fassen wir zusammen…
Herzlichen Glückwunsch! Sie haben
Folgendes gelernt:
Verwenden verschiedener Prozesse für das
Stack-Objekt.
Verwenden verschiedener Prozesse für das
Array-Objekt.
Zeigen Sie, was Sie wissen
Schreiben Sie mittels des Array-Objekts ein
Flugreservierungsprogramm, das Sie für die
Durchführung der folgenden Aktionen
verwenden können:
Reservieren von Sitzen für 10 Passagiere.
Anzeigen des Namens der Passagiere und
der Sitznummer.
Anzeigen der Anzahl der Sitze, die noch
verfügbar sind.
Der PushValue-Prozess gibt keinen Wert zurück.Der PopValue-Prozess gibt den Wert aus dem Stack zurück.Der GetCount-Prozess gibt die Anzahl der Elemente in einem angegebenen Stack zurück.
Code:container = „empty“For i = 0 To 50Stack.PushValue(container, „plate number “ + i) EndForTextWindow.WriteLine(„Die Anzahl der Werte im Container ist “ + Stack.GetCount(container))For i = 0 To 8Stack.PopValue(container) EndForTextWindow.WriteLine(„Nach Entfernung von 8 Werten beträgt die Gesamtzahl der Werte “ + Stack.GetCount(container))TextWindow.WriteLine(„Deroberste Wert im Container ist “ + Stack.PopValue(container))
Lösung:TextWindow.WriteLine(„Flugreservierungen“)TotalSeats = 10For i = 1 To TotalSeatsTextWindow.Write(„Geben Sie den Namen des Passagiers ein: “)Name[i] = TextWindow.Read() TextWindow.WriteLine(„Sitz Nummer “ + i + „ ist reserviert für “ + Name[i])GetDetails()EndForSub GetDetailsIf Array.GetItemCount(Name) = TotalSeats ThenTextWindow.WriteLine(„Es sind keine Plätze mehr verfügbar“.)ElseArray.GetItemCount(Name)AvailableSeats = TotalSeats - Array.GetItemCount(Name) TextWindow.WriteLine(„Die Anzahl der verfügbaren Sitze ist: “ + AvailableSeats)TextWindow.WriteLine(„“) EndIfEndSub