Verarbeitung Bedingungen Bedingte Anweisungen sind zentral für die Programmierung. Sie machen es möglich, Fallunterscheidungen zu formulieren wie: Wenn es einen Weg nach links gibt, biege links ab. Wenn Punktzahl = 100, drucke "Gut gemacht!". Blöcke wenn-Blöcke Die einfachste Bedingung ist ein wenn-Block: Wenn dieser ausgeführt wird, wird der Wert der Variable x mit 100 verglichen. Wenn er größer ist, wird "Was für eine große Zahl!" ausgegeben. Andernfalls passiert nichts. wenn-sonst-Blöcke Es ist auch möglich, anzugeben, dass etwas passieren soll, wenn die Bedingung nicht wahr ist, wie in diesem Beispiel: Wie beim vorherigen Block wird "Was für eine große Zahl!" ausgegeben, wenn x > 100 ist. Andernfalls wird "Das ist nicht sehr groß." angegeben. Ein wenn-Block einen sonst-Abschnitt haben, aber nicht mehr als einen. wenn-sonst-wenn-Blöcke Es ist auch möglich, mehrere Bedingungen mit einem einzigen wenn-Block zu testen, indem sonst-wenn-Klauseln hinzugefügt werden: Der Block prüft zuerst, ob x > 100 ist, und gibt "Was für eine große Zahl!" aus, wenn das der Fall ist. Ist dies nicht der Fall, prüft er weiter, ob x = 42 ist. Wenn ja, gibt er "Das ist meine Glückszahl!" aus. Andernfalls passiert nichts. Ein wenn-Block kann eine beliebige Anzahl von sonst-wenn-Abschnitten haben. Die Bedingungen werden von oben nach unten ausgewertet, bis eine erfüllt ist oder bis keine Bedingung mehr übrig sind. wenn-sonst-wenn-sonst-Blöcke wenn-Blöcke können sowohl sonst-wenn als auch sonst-Abschnitte haben: Der sonst-Abschnitt garantiert, dass eine Aktion ausgeführt wird, auch wenn keine der vorherigen Bedingungen wahr ist. Ein sonst-Abschnitt kann nach einer beliebigen Anzahl von sonst-wenn-Abschnitten auftreten, einschließlich Null, dann erhält man einen ganz normalen wenn-sonst-Block. Blockmodifikation In der Werkzeugleiste erscheint nur der einfache wenn-Block und der wenn-sonst-Block: Um sonst-wenn - und sonst-Klauseln hinzuzufügen, klickst du auf das (+) Symbol. Mit (-) Symbol lassen sich sonst-wenn -Klauseln wieder entfernen: Beachte, dass die Formen der Blöcke das Hinzufügen einer beliebigen Anzahl von sonst-wenn-Unterblöcken erlauben, aber nur bis zu einen wenn-Block.Logik Boolesche Logik ist ein einfaches mathematisches System, das zwei Werte hat: wahr falsch Logikblöcke in ROBO Pro Coding sind in der Regel dafür da, Bedingungen und Schleifen zu kontrollieren. Hier ein Beispiel: Wenn der Wert der Variable x größer als 100 ist, ist die Bedingung wahr und der Text "Was für eine große Zahl!" wird ausgegeben. Ist der Wert von x nicht größer als 100, ist die Bedingung falsch und "Das ist nicht sehr groß." wird ausgegeben. Boolesche Werte können auch in Variablen gespeichert werden und an Funktionen weitergegeben werden, genauso wie Zahlen, Text und Listenwerte. Blöcke Wenn ein Block einen Booleschen Wert als Eingabe erwartet, wird eine fehlende Eingabe als falsch interpretiert. Nicht-Boolesche Werte können nicht direkt dort eingefügt werden, wo Boolesche Werte erwartet werden, obwohl es möglich (aber nicht ratsam) ist, einen nicht-Booleschen Wert in einer Variablen zu speichern und diese dann in die Bedingungseingabe einzufügen. Diese Methode wird nicht empfohlen, und ihr Verhalten kann sich in zukünftigen Versionen von ROBO Pro Coding ändern. Werte Ein einzelner Block mit einer Dropdown-Liste, die entweder wahr oder falsch angibt, kann verwendet werden, um einen Booleschen Wert abzurufen: Vergleichsoperatoren Es gibt sechs Vergleichsoperatoren. Jedem werden zwei Eingaben (normalerweise zwei Zahlen) übergeben und der Vergleichsoperator gibt wahr oder falsch zurück, je nachdem, wie die Eingaben miteinander verglichen werden. Die sechs Operatoren sind: gleich, nicht gleich, kleiner als, größer als, kleiner als oder gleich, größer als oder gleich. Logische Operatoren Der und-Block gibt dann und nur dann wahr zurück, wenn seine beiden Einganswerte wahr sind. Der oder-Block gibt wahr zurück, wenn mindestens einer seiner beiden Einganswerte wahr ist. nicht Der nicht-Block wandelt eine boolesche Eingabe in ihr Gegenteil um. Zum Beispiel ist das Ergebnis von: falsch. Wenn keine Eingabe erfolgt, wird der Wert wahr angenommen, so dass der folgende Block den Wert falsch erzeugt: Es wird jedoch nicht empfohlen, eine Eingabe leer zu lassen. dreier Operator Der dreier Operator verhält sich wie ein Miniatur-wenn-sonst-Block. Er nimmt drei Eingangswerte entgegen der erste Eingangswert ist die zu testende boolesche Bedingung, der zweite Eingangswert ist der Wert, der zurückgegeben werden soll, wenn der Test wahr ergibt, der dritte Eingangswert ist der Wert, der zurückgegeben werden soll, wenn der Test falsch ergibt. Im folgenden Beispiel wird die Variable Farbe auf rot gesetzt, wenn die Variable x kleiner als 10 ist, andernfalls wird die Variable Farbe auf grün gesetzt. Ein dreier Block kann immer durch einen wenn-sonst-Block ersetzt werden. Die folgenden zwei Beispiele sind genau gleich.  Schleifen Der Bereich "Steuerung" enthält Blöcke, die steuern, ob andere Blöcke, die in ihrem Inneren platziert sind, ausgeführt werden. Es gibt zwei Arten von Steuerungsblöcken: wenn-sonst-Blöcke (die auf einer eigenen Seite beschrieben werden) und Blöcke, die steuern, wie oft ihr Inneres ausgeführt wird. Letztere werden Schleifen genannt, da ihr Inneres, auch als Schleifenkörper oder Körper bezeichnet,(möglicherweise) mehrfach wiederholt wird. Jeder Durchlauf  einer Schleife wird als Iteration bezeichnet. Blöcke zur Erstellung von Schleifen dauerhaft wiederholen Der dauerhaft wiederholen-Block führt den Code in seinem Körper solange aus, bis das Programm endet. wiederhole Der wiederhole-Block führt den Code in seinem Körper, so häufig wie angegeben aus. Der folgende Block gibt zum Beispiel zehnmal "Hallo!" aus: wiederhole-solange Stelle dir ein Spiel vor, bei dem ein Spieler einen Würfel wirft und alle geworfenen Werte addiert, solange die Summe kleiner als 30 ist. Die folgenden Blöcke implementieren dieses Spiel: Eine Variable namens insgesamt erhält einen Anfangswert von 0. Die Schleife beginnt mit einer Überprüfung, ob insgesamt kleiner als 30 ist. Wenn ja, werden die Blöcke im Körper durchlaufen. Eine Zufallszahl im Bereich von 1 bis 6 wird erzeugt (um einen Würfelwurf zu simulieren) und in einer Variablen namens gewürfelt gespeichert. Die gewürfelte Zahl wird ausgegeben. Die Variable insgesamt wird um gewürfelt erhöht. Wenn das Ende der Schleife erreicht ist, geht die Steuerung zurück zu Schritt 2. Nach Beendigung der Schleife werden alle nachfolgenden Blöcke (nicht dargestellt) durchlaufen. Im Beispiel endet der Schleifendurchlauf, nachdem eine gewisse Anzahl von Zufallszahlen im Bereich von 1 bis 6 ausgegeben wurde, und die Variable insgesamt hat dann als Wert die Summe dieser Zahlen, die mindestens 30 beträgt. wiederhole-bis wiederhole solange-Schleifen wiederholen ihren Körper, solange eine Bedingung erfüllt ist. wiederhole bis-Schleifen sind ähnlich, mit dem Unterschied, dass sie ihren Körper so lange wiederholen, bis eine bestimmte Bedingung erfüllt ist. Die folgenden Blöcke sind äquivalent zum vorherigen Beispiel, weil die Schleife läuft, bis insgesamt größer oder gleich 30 ist. zählen-von-bis Die zählen-von-bis-Schleife erhöht einer Variable den Wert, beginnend mit einem ersten Wert , endend mit einem zweiten Wert und in Schritten von einem dritten Wert, wobei der Körper für jeden Wert der Variable einmal ausgeführt wird. Das folgende Programm gibt zum Beispiel die Zahlen 1, 3 und 5 aus. Wie die beiden folgenden Schleifen zeigen, die jeweils die Zahlen 5, 3 und 1 ausgeben, kann dieser erste Wert größer sein als der zweite. Das Verhalten ist das gleiche, egal ob der Inkrementbetrag (dritter Wert) positiv oder negativ ist. für jeden Der für jeden-Block ist ähnlich, wie die zählen-von-bis-Schleife, nur dass er statt der Schleifenvariable in einer numerischen Reihenfolge die Werte aus einer Liste der Reihe nach verwendet. Das folgende Programm gibt jedes Element der Liste "alpha", "beta", "gamma" aus: Schleifenabbruchblöcke Die meisten Schleifen werden so lange durchlaufen, bis die Abbruchbedingung (bei wiederhole-Blöcken) erfüllt ist oder bis alle Werte der Schleifenvariable angenommen wurden (bei zählen mit- und für jeden-Schleifen). Zwei selten benötigte, aber gelegentlich nützliche Blöcke bieten zusätzliche Möglichkeiten zur Steuerung des Schleifenverhaltens. Sie können bei jeder Art von Schleife verwendet werden, auch wenn die folgenden Beispiel ihre Verwendung bei der für jeden-Schleife zeigen. fahre-mit-nächster-Iteration-fort fahre-mit-nächster-Iteration-fort bewirkt, dass die restlichen Blöcke im Schleifenkörper übersprungen werden und die nächste Iteration der Schleife beginnt. Das folgende Programm gibt bei der ersten Iteration der Schleife "alpha" aus. Bei der zweiten Iteration wird der Block fahre mit nächster Integration fort ausgeführt, wodurch die Ausgabe von "beta" übersprungen wird. Bei der letzten Iteration wird "gamma" gedruckt. Schleifenabbruch Der schleifenabbruch-Block ermöglicht einen vorzeitigen Ausstieg aus einer Schleife. Das folgende Programm gibt bei der ersten Iteration "alpha" und bricht bei der zweiten Iteration aus die Schleife ab, wenn die Schleifenvariable gleich "beta" ist. Der dritte Punkt in der Liste wird nie erreicht. Mathematik Die Blöcke, der Kategorie Mathematik werden genutzt, um Berechnungen anzustellen. Die Ergebnisse der Berechnungen können zum Beispiel als Werte für Variablen verwendet werden. Die meisten Mathematik-Blöcke beziehen sich auf allgemeine mathematische Berechnungen und sollten selbsterklärend sein. Blöcke Zahlen Nutze den Zahl-Block, um eine beliebige Zahl in dein Programm hinzufügen oder einer Variable diese Zahl als Wert zuzuweisen. Dieses Programm weist der Variabel Alter die Zahl 12 zu: Einfache Rechnungen Dieser Block hat die Struktur Wert-Operator-Wert. Als Operatoren stehen die Rechenarten +, -, ÷, × und ^ zu Verfügung. Der Operator kann über das Dropdown-Menü ausgewählt werden. Er kann unmittelbar auf Zahlen oder auch auf Werte von Variablen angewendet werden. Beispiel: Dieser Block gibt Ergebnis 144 (12^2) aus. Spezielle Rechnungen Dieser Block wendet die, über das Dropdown-Menü ausgewählte Rechenart auf die dahinter platzierte Zahl oder auf den Wert der dahinter platzierten Variable an. Die zur Verfügung stehenden Rechenoperationen sind: Quadratwurzel, Betrag, natürlicher Logarithmus, dekadischer Logarithmus, Exponentialfunktion mit der Basis e (e^1, e^2,...), Exponentialfunktion mit der Basis 10 (10^1, 10^2,...), Vorzeichenwechsel (Multiplikation mit -1). e ist hierbei die Euler'sche Zahl. Dieser Block zieht die Quadratwurzel aus 16 und setzt die Variable i auf das Ergebnis. Trigonometrische Funktionen Dieser Block funktioniert ähnlich wie der zuvor beschriebene Block, mit dem Unterschied, dass als Rechenoperationen die trigonometrischen Funktionen Sinus, Cosinus, Tangens und ihre Umkehrfunktionen genutzt werden. Die angegebene Zahl oder der Wert der angegebenen Variable wird also in die im Dropdown-Menü gewählte Funktion eingesetzt und das Ergebnis kann dann im Programm weiterverarbeitet werden. Zusätzlich gibt es noch den Block arctan2 of X: ... Y: ..., der es erlaubt,  sich mit Hilfe von zwei reellen Zahlen (einzusetzen als X und Y) einen Funktionswert des arctan2 im Bereich von 360° ausgeben zu lassen. Häufig verwendete Konstanten Dieser Block funktioniert genauso wie der Zahl-Block, jedoch gibt man hier den Zahlenwert nicht selber an. Stattdessen sind häufig verwendete Konstanten (z.B. π) vorgespeichert. Die Konstante kann über das Dropdown-Menü ausgewählt werden. Rest einer Division Der Rest von ...-Block wird genutzt, um den Rest einer Division auszugeben. Dieses Programm weist der Variable Rest den Rest der Division von 3:2, also 1, zu: Runden Mit dem runde ...- Block lässt sich eine angegebene Dezimalzahlen oder der Wert einer angegebenen Variablen auf eine ganze Zahl runden. Dabei kann man im Dropdown-Menü drei Optionen wählen: mit "runde" kaufmännisch gerundet (z.B. wird 4,5 zu 5) mit "runde auf" wird aufgerundet (z.B. wird 5,1 zu 6) mit "runde ab" wird abgerundet (z.B. wird 5,9 zu 5). Auswertung von Listen Mit dem ... der Liste-Block kann man sich mit "Summe" die Summe aller Werte einer Liste, mit "min" den kleinsten Wert einer Liste, mit "max" den größten Wert einer Liste, mit "Mittelwert" den Mittelwert aller Werte einer Liste, mit "Median" den Median einer Liste, mit "Modalwert" den/die am häufigsten vorkommenden Wert einer Liste, mit "Standardabweichung" die Standardabweichung aller Werte einer Liste, mit "Zufallswert" einen zufälligen Wert aus einer Liste ausgeben lassen. Alle diese Optionen können über das Dropdown-Menü des Blocks ausgewählt werden: Eingabewerte einschränken Der beschränke ... von ... bis ...-Block erlaubt es, Eingabewerte auf ein bestimmtes Intervall zu beschränken. Bevor ein Eingabewert weiterverarbeitet wird, wird getestet, ob er im festgelegten Intervall liegt. Es gibt drei Optionen, wie mit einem eingeben Wert verfahren wird: Der Wert liegt im Intervall, also wird er unverändert weitergegeben. Der Wert liegt unter der unteren Grenze des Intervalls, also wird diese untere Grenze weitergegeben. Der Wert liegt über der oberen Grenze des Intervalls, also wird diese obere Grenze weitergegeben. In diesem Beispiel wird der Block genutzt, um den Wert der Variable Geschwindigkeit auf die vom Motor unterstützten Drehzahlen einzuschränken: Zufällige Werte generieren Die beiden Blöcke zufällige Zahl von ... bis... und zufälliger Bruch geben einen zufälligen Wert aus. Dabei gibt der zufällige Zahl von ... bis... Block eine Zahl aus dem definierten Intervall aus. Der Block zufälliger Bruch gibt hingegen einen Wert zwischen 0,0 (eingeschlossen) und 1,0(ausgeschlossen) aus.Text Beispiele für Texte sind: "Ding 1""12. März 2010""" (leerer Text)Text kann Buchstaben (klein oder groß geschrieben), Zahlen, Satzzeichen, andere Symbole und Leerzeichen enthalten. Blöcke Erstellung von Text Der folgende Block erzeugt den Text "Hallo" und speichert ihn in der Variablen namens Gruß: Der Block erstelle Text aus kombiniert den Wert der Variable Gruß und den neuen Text "Welt" zu dem Text "HalloWelt". Beachte, dass zwischen beiden Texten kein Leerzeichen steht, da in den beiden ursprünglichen Texten keines vorhanden war. Um die Anzahl der Texteingaben zu erhöhen, klicke auf das (+) Symbol. Um die letzte Ausgabe zu entfernen, klicke auf das (-) Symbol. Änderung von Text Der Block an ... anhängen fügt den angegebenen Text an die angegebene Variable an. In diesem Beispiel ändert er den Wert der Variable Gruß von "Hallo" in "Hallo, da!": Textlänge Der Länge von-Block zählt die Anzahl der Zeichen (Buchstaben, Zahlen usw.), die in einem Text enthalten sind. Die Länge von "Wir sind #1!" ist 12, und die Länge des leeren Textes ist 0. Prüfen auf leeren Text Der Baustein ist leer prüft, ob der angegebene Text leer ist (die Länge 0 hat). Das Ergebnis ist im ersten Beispiel wahr und im zweiten Beispiel falsch. Suchen von Text Diese Blöcke können verwendet werden, um zu prüfen, ob ein Text in einem anderen Text vorkommt und wenn ja, wo er vorkommt. Zum Beispiel wird hier nach dem ersten Vorkommen von "a" in "Hallo" gefragt, das Ergebnis ist 2: Dies fragt nach dem letzten Vorkommen von "a" in "Hallo", was ebenfalls 2 ergibt: Unabhängig davon, ob das erste oder letzte Vorkommen ausgewählt wird, liefert dieser Block das Ergebnis 0, da "Hallo" kein "z" enthält. Extrahieren von Text Extrahieren eines einzelnen Zeichens Dies ergibt "b", den zweiten Buchstaben in "abcde": Dies liefert "d", den vorletzten Buchstaben in "abcde": Dies liefert "a", den ersten Buchstaben in "abcde": Dies erhält "e", den letzten Buchstaben in "abcde": Dies erhält jeden der 5 Buchstaben in "abcde" mit gleicher Wahrscheinlichkeit: Keiner von ihnen verändert den Text, aus dem extrahiert wird. Extrahieren eines Textbereichs Mit dem im Text ... liefer Zeichenkette-Block kann ein Textbereich extrahiert werden, der entweder mit: Buchstabe # Buchstabe # vom Ende erster Buchstabe startet und mit: Buchstabe # Buchstabe # vom Ende letzter Buchstabe endet. Im folgenden Beispiel wird "abc" extrahiert: Anpassen der Groß-/Kleinschreibung des Textes Dieser Block erzeugt eine Version des Eingabetextes, die entweder in GROßSCHREIBUNG (alle Buchstaben in Großbuchstaben) oder kleinschreibung (alle Buchstaben sind Kleinbuchstaben) oder Substantive (erste Buchstaben Großbuchstaben, andere Buchstaben Kleinbuchstaben). Das Ergebnis des folgenden Blocks ist "HALLO": Nicht-alphabetische Zeichen sind davon nicht betroffen. Beachte, dass dieser Block auf Text in Sprachen ohne Groß- und Kleinschreibung, wie z. B. Chinesisch, nicht wirkt. Trimmen (Entfernen) von Leerzeichen Der folgende Block entfernt, je nachdem, was im Dropdown-Menü (kleines Dreieck) eingestellt wird, Leerzeichen: am Anfang des Textes am Ende des Textes an beiden Seiten des Textes Das Ergebnis des folgenden Blocks ist "Hi  du". Leerzeichen in der Mitte des Textes sind nicht betroffen. Text ausgeben Der gib aus-Block bewirkt, dass der Eingabewert im Konsole-Fenster ausgegeben wird: Auf keinen Fall wird er an den Drucker geschickt, wie der Name vielleicht vermuten lässt. Text ausgeben mit Formatierung Mit dem formatiere text-Block können Textausgaben mit Variableninhalt formatiert ausgegeben werden. Dabei werden alle Platzhalter {} im Text durch den Inhalt der nach dem Text angehängten Variablen ersetzt. In den geschweiften Klammern kann eine Formatierung angegeben werden. Die Formatierung {:.1f} gibt z.B. nur die erste Nachkommastelle der Kommazahl in der Variablen t aus. Datei 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 erstelle Liste mit Mit dem Block erstelle Liste mit 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 abgelegt: Wir bezeichnen diese Liste als ["alpha", "beta", "gamma"]. Dies zeigt die Erstellung einer Liste von Zahlen: So wird eine Liste von Farben erstellt: Es ist weniger üblich, aber möglich, eine Liste mit Werten unterschiedlichen Typs zu erstellen: Anzahl der Eingänge ändern Um die Anzahl der Eingänge zu ändern, klicke bzw. 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.: 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 Element kannst du eine Liste erstellen, die die angegebene Anzahl von Kopien eines Elements enthält. Die folgenden Blöcke setzen zum Beispiel die Variable Wörter auf die Liste ["sehr", "sehr", "sehr"]. Prüfen der Länge einer Liste ist leer Der Wert eines ist leer-Blocks ist wahr, wenn seine Eingabe die leere Liste ist, und falsch, wenn es irgendetwas anderes ist. Ist diese Eingabe wahr? Der Wert des folgenden Blocks wäre falsch, weil die Variable Farben nicht leer ist: Sie hat drei Elemente. Beachte die Ähnlichkeit mit dem ist leer-Block für Text. Länge von Der Wert des Länge von-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 drei Elemente hat: Beachte, dass der Länge von-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 Wörter aus drei Kopien desselben Textes besteht: Beachte die Ähnlichkeit mit dem Block Länge von 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"]). Das Ergebnis des Folgenden ist 3, weil das letzte Auftreten von "sehr" in Wörter an Position 3 ist. Wenn das Element nirgendwo in der Liste vorkommt, ist das Ergebnis der Wert 0, wie in diesem Beispiel: 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: Der folgende Block erhält die Farbe Blau, weil es das zweite Element in der Liste ist (von links beginnend gezählt): Dieser erhält Grün, weil es das zweite Element ist (vom rechten Ende aus gezählt): Dieser erhält das erste Element, Rot: Dies erhält das letzte Element, Gelb: 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. Abrufen und Entfernen eines Elements Mit dem Dropdown-Menü wird der Block aus Liste ... abrufen in den Block aus Liste ... abrufen und entfernen geändert, der die gleiche Ausgabe liefert, aber auch die Liste verändert: Dieses Beispiel setzt die Variable erster Buchstabe auf "alpha" und lässt die restliche Buchstaben (["beta", "gamma"]) in der Liste. Entfernen eines Eintrags Wenn du im Dropdown-Menü entfernen wählst, verschwindet die Nase links vom Block: Damit wird das erste Element aus Buchstaben entfernt. Eine Subliste abrufen Der Block aus Liste ... Subliste abrufen ähnelt dem Block in aus Liste ... abrufen 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: In diesem Beispiel wird eine neue Liste erster Buchstabe erstellt. Diese neue Liste hat zwei Elemente: ["alpha", "beta"]. 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 ... ersetze ersetzt das Element an einer bestimmten Stelle einer Liste durch ein anderes Element. Die Bedeutung der einzelnen Dropdown-Optionen findest du im vorherigen Abschnitt. Das folgende Beispiel bewirkt zwei Dinge: Die Liste Wörter wird mit 3 Elementen erstellt: ["sehr", "sehr", "sehr"]. Das dritte Element in der Liste wird durch "gut" ersetzt. Der neue Wert von Wörter ist ["sehr", "sehr", "gut"] Elemente an einer bestimmten Stelle in eine Liste einfügen Der in Liste ... einfügen bei-Block wird über das Dropdown-Menü des in Liste ... ersetze-Blocks aufgerufen: 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: Die Liste Wörter wird mit 3 Elementen erstellt: ["sehr", "sehr", "sehr"]. Das dritte Element in der Liste wird durch "gut" ersetzt. Der neue Wert von Wörter ist somit ["sehr", "sehr", "gut"]. Das Wort "Sei" wird am Anfang der Liste eingefügt. Der endgültige Wert von Wörter ist somit ["Sei", "sehr", "sehr", "gut"]. Zeichenketten aufteilen und Listen zusammenfügen Eine Liste aus einem Text erstellen Der Baustein erstelle Liste aus Text zerlegt den angegebenen Text mit Hilfe eines Begrenzungszeichens in Teile: Im obigen Beispiel wird eine neue Liste zurückgegeben, die drei Textstücke enthält: "311", "555" und "2368". Eine Text aus einer Liste erstellen Der Baustein erstelle Text aus Liste fügt eine Liste mit Hilfe eines Trennzeichens zu einem einzigen Text zusammen: Im obigen Beispiel wird ein neuer Text mit dem Wert zurückgegeben: "311-555-2368". Verwandte Blöcke Drucken einer Liste Der drucken-Baustein in der Kategorie Text kann Listen ausgeben. Das Ergebnis des folgenden Programms ist die abgebildete Konsolenausgabe: Etwas für jedes Element in einer Liste durchführen Der für-jeden-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: Dadurch werden die Elemente nicht aus der ursprünglichen Liste entfernt. Siehe auch die Beispiele für die Schleifenabbruchblöcke. Map JSON Benutzung Die Kategorie Benutzung beinhaltet bei ROBO Pro Coding Blöcke folgender Art: Farbauswahl Warten Python Code Starten Funktionsausführung Farbauswahl Dieser Block dient als Eingabewert, wenn nach einer Farbe gefragt wird (z.B. beim Farbabgleich durch die Kamera). Durch Klicken bzw. Tippen auf die Farbe kann aus einer Farbpalette eine von 70 Farben ausgewählt werden. Warten Warten bis die Zeit abgelaufen ist Der Block warte [] ... hindert das Programm für die angegebene Wartezeit daran, weiterzulaufen. Dabei kann im Dropdown-Menü (kleines Dreieck) die Zeiteinheit und im Eingabefeld dahinter die gewünschte Länge der Pause gewählt werden. Warten mit Bedingung Beim warte bis-Block ist die Pause nicht an die Zeit sondern an die Erfüllung einer Bedingung (z.B. ob ein Taster gedrückt ist) geknüpft. Die Bedingung wird an den warte bis-Block angehängt. Python-Code Möchte man bestehenden Python-Code in ROBO Pro Coding integrieren, so kann man ihn in den Python Code-Block einfügen. Das Programm führt dann alles aus, was in dem Block in Python geschrieben wurde. Starten Auch der starte wenn-Block ist an eine Bedingung geknüpft. Erst wenn diese Bedingung erfüllt ist, startet das im Blockkörper stehende Programm. Funktionsausführung Mit dem führe Funktion ... in einem Thread aus lässt sich die ausgewählte Funktion in einem separaten Thread ausführen . Diese Maßnahme kann in manchen Fällen ermöglichen, dass ein Programm weiterhin auf Eingaben reagieren kann und schneller ausgeführt wird.Variablen Wir verwenden den Begriff Variable so, wie er in der Mathematik und in anderen Programmiersprachen verwendet wird: ein benannter Wert, der verändert (variiert) werden kann. Variablen können auf verschiedene Arten erstellt werden. Einige Blöcke wie zähle mit und für jeden verwenden eine Variable und definieren ihre Werte. Ein traditioneller Informatik-Begriff für solche Variablen lautet Schleifenvariablen. Benutzerdefinierte Funktionen (auch als "Prozeduren" bezeichnet) können Eingaben definieren, wodurch Variablen erzeugt werden, die nur innerhalb dieser Funktion verwendet werden können. Solche Variablen werden traditionell als "Parameter" oder "Argumente" bezeichnet. Benutzer können jederzeit Variablen über den setze-Block verändern. Diese werden traditionell als "globale Variablen" bezeichnet. Sie sind überall im Code von ROBO Pro Coding verwendbar. Dropdown-Menü Wenn du auf das Dropdown-Symbol (kleines Dreieck) einer Variable klickst, erscheint das folgende Menü: Das Menü bietet die folgenden Optionen. die Anzeige der Namen aller vorhandenen, im Programm definierten Variablen. "Variable umbenennen...", d.h. die Änderung des Namens dieser Variable, wo immer sie im Programm erscheint (die Auswahl dieser Option öffnet eine Abfrage für den neuen Namen) "Variable löschen...", d.h. das Löschen aller Blöcke, die auf diese Variable verweisen, wo immer sie im Programm vorkommt. Blöcke Festlegen Der setze-Block weist einer Variablen einen Wert zu und legt die Variable an, falls sie noch nicht existiert. Zum Beispiel wird so der Wert der Variable Alter auf 12 gesetzt: Abrufen Der rufe ab-Block liefert den in einer Variablen gespeicherten Wert, ohne ihn zu verändern: Es ist möglich, aber eine schlechte Idee, ein Programm zu schreiben, in dem ein rufe ab-Block ohne einen entsprechenden vorherigen setze-Blockvorkommt. Ändern Der ändere-Block fügt eine Zahl zu einer Variablen hinzu. Der ändere-Block ist eine Abkürzung für das folgende Konstrukt: Beispiel Betrachte den folgenden Beispielcode: Die erste Reihe von Blöcken erzeugt eine Variable namens Alter und setzt ihren Anfangswert auf die Zahl 12. Die zweite Reihe von Blöcken ruft den den Wert 12 ab, addiert 1 dazu und speichert die Summe (13) in der Variablen. In der letzten Zeile wird die Meldung ausgegeben: "Herzlichen Glückwunsch! Du bist jetzt 13".Funktionen Funktionen dienen dazu, Teile des Codes wiederverwendbar zu machen und dadurch den Code insgesamt zu strukturieren. Füllt man einen Funktionsblock, so erscheint im Funktionen-Menü ein neuer Block, der den gleichen Namen trägt wie eben dieser Funktionsblock. Es ist nun möglich, in das Hauptprogramm nur noch den Block mit dem Namen der Funktion einzusetzen. Wenn das Programm durchlaufen wird, leitet dieser Block zum Code in der gleichnamigen Funktion weiter und arbeitet diesen ab. Einfache Funktion Mit dem einfachen Funktionsblock lässt sich eine Funktion erstellen, die den im Textfeld eingegebenen Name trägt. Die Funktion kann beliebig viele Variablen enthalten, die über das Zahnradsymbol hinzugefügt werden können. Diese Funktion Altern addiert 1 zu der Variable Alter: Die Funktion kann dann im Hauptprogramm genutzt werden: Funktion mit Rückgabewert Dieser Block erlaubt es eine Funktion mit Rückgabewert zu erstellen. Dieser Rückgabewert kann dann im Hauptprogramm weiterverwendet werden. Hier ein Beispiel: Machine Learning Die Gruppe "Machine Learning" enthält Blöcke zur Verwendung mit dem TensorFlow-Projekt und der USB-Kamera. Erstellt eine Bildanalyse für ein Model im Pfad path auf dem TXT 4.0 Controller. Erstellt eine Objekterkennung mit einem Standardmodell "Sortierstrecke mit KI". Erstellt eine Objekterkennung für ein Model im Pfad path auf dem TXT 4.0 Controller. Analysiert ein Bild mit einer Objekt- oder Bilderkennung. Ausgegeben werden die erkannten Eigenschaften, deren Wahrscheinlichkeit und bei einer Objekterkennung deren Position. Das Ergebnis dieses Blocks kann in eine Variable geschrieben werden, um dieses später im „get value of result item [item]“ Block auszuwerten. Gibt einen einzelnen Wert einer Eigenschaft des x-ten Ergebnisses einer Bild- oder Objektanalyse aus. Item kann dabei entweder direkt der „process image“ Block oder dessen Ergebnisse aus einer Variable sein. Importe Importe enthält alle Funktionen aus selbst definierten Modulen in "lib". Funktionen dienen dazu, Teile des Codes wieder verwendbar zu machen und dadurch den Code insgesamt zu strukturieren. siehe "Funktionen"