Skip to main content

Datenstrukturen

Listen

Wie in der Alltagssprache ist auch in ROBO Pro Coding eine Liste eine geordnete Sammlung von Elementen, wie z. B. eine "To-do"-Liste oder eine Einkaufsliste. Elemente in einer Liste können von beliebigem Typ sein, und derselbe Wert kann mehrmals in einer Liste erscheinen.

Erstellen einer Liste

erzeuge Liste mit

Mit dem Block "erzeuge Liste mitmit" kann man die Anfangswerte in einer neuen Liste angeben. In diesem Beispiel wird eine Liste von Wörtern erstellt und in einer Variablen namens Buchstaben"Buchstaben" abgelegt:

Bild1_d.PNGBild1_d.PNG

Wir bezeichnen diese Liste als ["alpha", "beta", "gamma"].

Dies zeigt die Erstellung einer Liste von Zahlen"Zahlen":

Bild2_d.PNG

So wird eine Liste von Farben"Farben" erstellt:

Bild3_d.PNG

Es ist weniger üblich, aber möglich, eine Liste mit Werten unterschiedlichen Typs zu erstellen:

Bild4_d.PNG

Anzahl der Eingänge ändern

Um die Anzahl der Eingänge zu ändern, klicke beziehungsweise tippe auf das Zahnradsymbol. Dadurch wird ein neues Fenster geöffnet. Du kannst Elementunterblöcke von der linken Seite des Fensters in den Listenblock auf der rechten Seite ziehen, um einen neuen Eingang hinzuzufügen.:gen:

Während das neue Element in diesem Beispiel unten hinzugefügt wurde, kann es überall hinzugefügt werden. In ähnlicher Weise können unerwünschte Elementunterblöcke aus dem Listenblock nach links gezogen werden.

Liste mit Element erstellen

Mit dem Block "erstelle Liste mit ElementElement" kannst du eine Liste erstellen, die die angegebene Anzahl von Kopien eines Elements enthält. Die folgenden Blöcke setzen zum Beispiel die Variable "rterrter" auf die Liste ["sehr", "sehr", "sehr"].

image-1623519726714.png

Prüfen der Länge einer Liste

ist leer

Der Wert eines "ist leerleer"-Blocks ist wahr"wahr", wenn seine Eingabe die leere Liste ist, und falsch"falsch", wenn es irgendetwas anderes ist. Ist diese Eingabe wahr"wahr"? Der Wert des folgenden Blocks wäre falsch"falsch", weil die Variable Farben nicht leer ist: Sie hat drei Elemente.

image-1623519765930.png

Beachte die Ähnlichkeit mit dem "ist leerleer"-Block für Text.

Länge von

Der Wert des "Länge vonvon"-Blocks ist die Anzahl der Elemente, die sich in der als Eingabe verwendeten Liste, befinden. Der Wert des folgenden Blocks wäre z. B. 3, da Farbe"Farbe" drei Elemente hat:

image-1623519787676.png

Beachte, dass der "Länge vonvon"-Block angibt, wie viele Elemente in der Liste enthalten sind, und nicht, wie viele verschiedene Elemente in ihr enthalten sind. Zum Beispiel hat das Folgende den Wert 3, obwohl "rterrter" aus drei Kopien desselben Textes besteht:

image-1623519794441.png

Beachte die Ähnlichkeit mit dem Block "Länge vonvon" für Text.

Suchen von Elementen in einer Liste

Diese Blöcke finden die Position eines Elements in einer Liste. Das folgende Beispiel hat den Wert 1, weil das erste Auftreten von "sehr" am Anfang der Wortliste steht (["sehr", "sehr", "sehr"]).

image-1623519818057.png

Das Ergebnis des Folgenden ist 3, weil das letzte Auftreten von "sehr" in "rterrter" an Position 3 ist.

image-1623519828317.png

Wenn das Element nirgendwo in der Liste vorkommt, ist das Ergebnis der Wert 0, wie in diesem Beispiel:

image-1623519839311.png

Diese Blöcke verhalten sich analog zu den Blöcken für das Finden von Buchstaben im Text.

Abrufen von Elementen aus einer Liste

Abrufen eines einzelnen Elements

Erinnere dich an die Definition der Liste Farben"Farben":

Bild3_d.PNG

Der folgende Block erhält die Farbe Blau, weil es das zweite Element in der Liste ist (von links beginnend gezählt):

image-1623519900407.png

Dieser erhält Grün, weil es das zweite Element ist (vom rechten Ende aus gezählt):

image-1623519907684.png

Dieser erhält das erste Element, Rot:

image-1623519914276.png

Dies erhält das letzte Element, Gelb:

image-1623519919954.png

Dies wählt zufällig ein Element aus der Liste aus, wobei mit gleicher Wahrscheinlichkeit eines der Elemente Rot, Blau, Grün oder Gelb zurückgegeben wird.

image-1623519928120.png

Abrufen und Entfernen eines Elements

Mit dem Dropdown-Menü wird der Block "aus Liste ... abrufen" in den Block "aus Liste ... abrufen in den Block aus Liste ... abrufen und entfernenentfernen" geändert, der die gleiche Ausgabe liefert, aber auch die Liste verändert:

image-1623519937988.png

Dieses Beispiel setzt die Variable "erster BuchstabeBuchstabe" auf "alpha" und lässt die restlichen Buchstaben (["beta", "gamma"]) in der Liste.

Bild19_d.PNG

Entfernen eines Eintrags

Wenn du im Dropdown-Menü entfernen"entfernen" wählst, verschwindet die Nase links vom Block:

image-1623519978282.png

Damit wird das erste Element aus Buchstaben"Buchstaben" entfernt.

Eine Subliste abrufen

Der Block "aus Liste ... Subliste abrufenabrufen" ähnelt dem Block in "aus Liste ... abrufenabrufen" mit dem Unterschied, dass er eine Subliste extrahiert und nicht ein einzelnes Element. Es gibt mehrere Optionen, den Anfang und das Ende der Subliste anzugeben:

image-1623520006699.png

image-1623520012453.png

In diesem Beispiel wird eine neue Liste "erster BuchstabeBuchstabe" erstellt. Diese neue Liste hat zwei Elemente: ["alpha", "beta"].

Bild23_d.PNG

Beachte, dass dieser Block die ursprüngliche Liste nicht verändert.

Hinzufügen von Elementen an eine Liste

Elemente in einer Liste ersetzen

Der Block "in Liste ... ersetzeersetze" ersetzt das Element an einer bestimmten Stelle einer Liste durch ein anderes Element.

image-1623520033391.png

Die Bedeutung der einzelnen Dropdown-Optionen findest du im vorherigen Abschnitt.

Das folgende Beispiel bewirkt zwei Dinge:

  1. Die Liste "rterrter" wird mit 3 Elementen erstellt: ["sehr", "sehr", "sehr"].
  2. Das dritte Element in der Liste wird durch "gut" ersetzt. Der neue Wert von "rterrter" ist ["sehr", "sehr", "gut"]

image-1623520051581.png

Elemente an einer bestimmten Stelle in eine Liste einfügen

Der "in Liste ... einfügen beibei"-Block wird über das Dropdown-Menü des "in Liste ... ersetzeersetze"-Blocks aufgerufen:

image-1623520061020.png

Er fügt ein neues Element an der angegebenen Stelle in die Liste ein, und zwar vor dem Element, das sich zuvor an dieser Stelle befand. Das folgende Beispiel (das auf einem früheren Beispiel aufbaut) tut drei Dinge:

  1. Die Liste "rterrter" wird mit 3 Elementen erstellt: ["sehr", "sehr", "sehr"].
  2. Das dritte Element in der Liste wird durch "gut" ersetzt. Der neue Wert von "rterrter" ist somit ["sehr", "sehr", "gut"].
  3. Das Wort "Sei" wird am Anfang der Liste eingefügt. Der endgültige Wert von "rterrter" ist somit ["Sei", "sehr", "sehr", "gut"].

image-1623520068498.png

Zeichenketten aufteilen und Listen zusammenfügen

Eine Liste aus einem Text erstellen

Der Baustein "erstelle Liste aus TextText" zerlegt den angegebenen Text mithilfe eines Begrenzungszeichens in Teile:

image-1623520094323.png

Im obigen Beispiel wird eine neue Liste zurückgegeben, die drei Textstücke enthält: "311", "555" und "2368".

Ein Text aus einer Liste erstellen

Der Baustein "erstelle Text aus ListeListe" fügt eine Liste mithilfe eines Trennzeichens zu einem einzigen Text zusammen:

Bild29_d.PNG

Im obigen Beispiel wird ein neuer Text mit dem Wert zurückgegeben: "311-555-2368".

Eine Liste sortieren

Der Sortieren"Sortieren"-Block ist ein flexibles Werkzeug, das es ermöglicht, Listen anhand verschiedener Kriterien zu ordnen, die basierend auf dem Typ der Elemente in der Liste ausgewählt werden.

  • Typ der Elemente:

    • Numerisch: Für Listen mit Zahlen. Sortiert die Elemente basierend auf ihrem numerischen Wert.
    • Alphabetisch: Für Listen mit Text. Sortiert die Elemente nach dem Alphabet. Die Sortierung berücksichtigt auch die Groß- und Kleinschreibung,
    • Alphabetisch, Großschreibung ignorieren: Sortiert Texte alphabetisch, wobei Groß- und Kleinschreibung nicht unterschieden wird.
  • Sortierreihenfolge:

    • Aufsteigend: Sortiert die Liste von kleinsten zu größten Werten (oder von A bis Z).
    • Absteigend: Sortiert die Liste von größten zu kleinsten Werten (oder von Z bis A).

Im gezeigten Beispiel wird eine Liste mit den numerischen Werten 20, 10 und 100 erstellt und einer Variablen namens liste"liste" zugewiesen. Anschließend wird der Sortieren"Sortieren"-Block verwendet, um die Daten numerisch in aufsteigender Reihenfolge zu ordnen. Die sortierten Daten werden dann einer neuen Variablen namens sortiereListe"sortiereListe" zugewiesen. Nach der Sortierung enthält sortiereListe"sortiereListe" die Werte in folgender Reihenfolge: 10, 20, 100. Die Reihenfolge der Liste liste"liste" ist unverändert.

image.png

Verwandte Blöcke

Drucken einer Liste

Der drucken"drucken"-Baustein in der Kategorie Text kann Listen ausgeben. Das Ergebnis des folgenden Programms ist die abgebildete Konsolenausgabe:

Bild30_d.PNG

image-1623679163053.png

Etwas für jedes Element in einer Liste durchführen

Der "für-jedenjeden"-Block in der Kategorie Steuerung führt eine Operation für jedes Element in einer Liste aus. Dieser Block druckt zum Beispiel jedes Element in der Liste einzeln aus:

Bild31_d.PNG

Dadurch werden die Elemente nicht aus der ursprünglichen Liste entfernt.

Map

Eine Map, auch bekannt als Dictionary oder Assoziatives Array, ist eine Sammlung von Schlüssel-Wert-Paaren, bei der jeder eindeutige Schlüssel direkt auf einen Wert verweist.

Alle Schlüssel einer Map zurückgeben

Der Block "in der Map ... gib alle Schlüsselssel" kann dazu verwendet werden, alle Schlüssel aus einer Map zurückzugeben.

In dem Beispiel holt der Block aus der Map map"map" alle Schlüssel und gibt jeden in einer Schleife aus. Dies könnte genutzt werden, um zu sehen, welche Schlüssel überhaupt in der Map gespeichert sind:

image.png

Elements zurückgeben

Der Block "in der Map ... gib Element des Schlüssel ..." kann dazu verwendet werden, um den Wert eines bestimmten Schlüssels aus der Map zurückzugeben.

In dem Beispiel holt der Block, nachdem alle Schlüssel der Map map"map" abgerufen wurden, für jeden Schlüssel den entsprechenden Wert. Dieser wird anschließend mit dem "gib ausaus"-Block ausgegeben. Dies demonstriert, wie man sequenziell durch eine Map iteriert und sowohl Schlüssel als auch Werte verarbeitet.

image.png

Element zu einer Map setzen

Der Block "in der Map ... zum Schlüssel ... setze Element ..." fügt einer Map ein neues Schlüssel-Wert-Paar hinzu oder aktualisiert den Wert eines bestehenden Schlüssels. Dies ist grundlegend für das Hinzufügen oder Modifizieren von Daten in einer Map.

Im Beispiel werden zwei Schlüssel-Wert-Paare in die Map map"map" eingefügt:

  • ersterSchluessel erhält den Zeichenkettenwert erstesElement.erstesElement.
  • zweiterSchluessel erhält den Zeichenkettenwert zweitesElement.zweitesElement.

Falls diese Schlüssel bereits in der Map existieren, werden ihre Werte mit den neuen Einträgen überschrieben. Andernfalls werden die Schlüssel und ihre zugehörigen Werte neu hinzugefügt. Es ist wichtig zu beachten, dass die Werte in einer Map nicht auf Zeichenketten beschränkt sind; sie können vielfältige Datentypen umfassen, einschließlich, aber nicht beschränkt auf, Zahlen, Listen oder sogar andere Maps.

image.png

JSON

JSON (JavaScript Object Notation) ist ein textbasiertes Datenformat, das für den Datenaustausch im Web genutzt wird. Es ist leicht lesbar und einfach zu handhaben. JSON strukturiert Daten als Sammlung von Schlüssel-Wert-Paaren, ähnlich wie Dictionaries oder Maps.

Konvertierung JSON zu Map

Der "JSON zu MapMap"-Block nimmt einen JSON-String als Eingabe und konvertiert diesen in eine Map. Jedes Schlüssel-Wert-Paar im JSON-String wird zu einem Eintrag in der Map.

Im Beispiel wird der JSON-String {"name": "Max", "age": 25} in eine Map umgewandelt. Diese Map enthält dann die Schlüssel name"name" mit dem Wert Max"Max" und age"age" mit dem Wert 25"25".

image.png

Konvertierung Map zu JSON

Der "Map zu JSONJSON"-Block ermöglicht die Umwandlung von Map-Datenstrukturen in einen JSON-String. Dieser Vorgang ist besonders nützlich, wenn die strukturierten Daten einer Map für eine Datenübertragung oder als Konfigurationsdatei in einem standardisierten Format benötigt werden.

image.png