Inhalte

# LibreLogo

LibreLogo ist eine einfache, lokalisierte, Logo-artige Programmierumgebung mit Turtle-Vektorgrafiken für den Informatikunterricht (Programmierung und Textverarbeitung), DTP und Grafikdesign. Lesen Sie mehr unter https://www.numbertext.org/logo/librelogo.pdf (englisch).

## Symbolleiste LibreLogo

Die Symbolleiste LibreLogo (wählen Sie Ansicht – Symbolleisten – Logo) enthält Schaltflächen für Turtle-Bewegungen, Programmstart und -stopp, Anfang, Bildschirm säubern, Programmeditor, Syntaxhervorhebung, Übersetzen des Programmcodes und eine Eingabezeile (Befehlszeile).

## Schaltflächen für Turtle-Bewegungen

Es gibt Schaltflächen für die Logo-Befehle „VOR 10“, „ZURÜCK 10“, „LINKS 15“ und „RECHTS 15“. Ein Klick auf eine der Schaltflächen setzt auch den Fokus auf den Turtle-Umriss und rollt die Seite zu dessen Position.

## Logo-Programm starten

Klicken Sie auf die Schaltfläche „Logo-Programm starten“, um den Text (oder nur den Text) des Writer-Dokuments als Logo-Programm auszuführen. In einem leeren Dokument wird ein Beispieltext eingefügt und ausgeführt.

Klicken Sie auf die Schaltfläche „Stopp“, um die Programmausführung anzuhalten.

## Anfang

Klicken Sie auf die Schaltfläche „Anfang“, um die Position und Einstellungen des Turtles zurückzusetzen.

## Bildschirm leeren

Klicken Sie auf die Schaltfläche „Bildschirm leeren“, um die Zeichnungsobjekte aus dem Dokument zu entfernen.

## Programmeditor/Syntaxhervorhebung/Übersetzen

Die Schaltfläche mit dem Zauberstab setzt ein doppelseitiges Layout für die Programmbearbeitung, erweitert abgekürzte Logo-Befehle und konvertiert Logo-Befehle innerhalb eines Writer-Dokuments in Großbuchstaben. Wechseln Sie die Sprache des Dokuments (wählen Sie LibreOffice – Einstellungen Extras – Optionen… – Sprachen und Gebietsschemata – Allgemein – Westlich) und klicken Sie auf diese Schaltfläche, um den Logo-Programmcode in die gewählte Sprache zu übersetzen.

## Befehlszeile

Drücken Sie [Eingabetaste] innerhalb der Befehlszeile, um dessen Inhalt auszuführen. Um das Programm anzuhalten, klicken Sie auf die Schaltfläche „Stopp“.

Drücken Sie [Eingabetaste], um den Inhalt der Befehlszeile wiederholt auszuführen, beispielsweise mit der folgenden Befehlsfolge:

     VOR 200 LINKS 89

Um die Befehlsleiste zurückzusetzen, klicken drei mal auf sie oder drücken Sie [Befehl[Strg+A] um alle vorherigen Befehle auszuwählen und geben Sie neue Befehle ein.

## Grafische Benutzeroberfläche für Grundeinstellungen des Turtles

Der Turtle von LibreLogo ist ein normales Zeichenobjekt mit fester Größe. Sie können ihn auch auf herkömmliche Weise positionieren und drehen, indem Sie die Maus und das Symbol „Drehen“ in der Symbolleiste „Eigenschaften des Zeichnungsobjekts“ verwenden. Sie können die Einstellungen für Linienbreite, Linienfarbe und Flächenfarbe des Turtels ändern, um die Attribute STIFTBREITE, STIFTFARBE und FÜLLFARBE von LibreLogo festzulegen.

## Bearbeitung des Programmcodes

LibreLogo-Zeichnungen und -Programmcode verwenden dasselbe Writer-Dokument. Die LibreLogo-Zeichenfläche befindet sich auf der ersten Seite des Writer-Dokuments. Sie können einen Seitenumbruch vor dem LibreLogo-Programmcode einfügen und mittels des Symbols mit dem Zauberstab aus der Symbolleiste Logo die Ansicht so optimieren, dass ein komfortables doppelseitiges Layout für die Ansicht der LibreLogo-Programmierung zur Verfügung steht: Links (erste Seite) die Zeichenfläche, rechts (zweite Seite) der LibreLogo-Programmcode.

# LibreLogo Programmiersprache

LibreLogo ist eine leicht zu lokalisierende, Logo-artige Programmiersprache und durch die LibreOffice-Community bereits in diverse Sprachen übersetzt. Es ist abwärtskompatibel zum älteren Logo-System, beispielsweise um es in der Bildung als einfache Programmiersprache zu verwenden.

     ZU Dreieck :Größe
     WIEDERHOLE 3 [
       VOR :Größe
       LINKS 120
     ]
     ENDE

     Dreieck 10 Dreieck 100 Dreieck 200

## Unterschiede zur Logo-Programmiersprache

- Listenelemente werden durch Kommata getrennt: POSITION [0, 0]

- Programmblöcke und Listen werden unterschiedlich gehandhabt

- - Programmblöcke benötigen Leerstellen oder Zeilenumbrüche bei Klammern: WIEDERHOLE 10 [ VOR 10 LINKS 36 ]

  - Listen benötigen anliegende Klammern: POSITION [0, 0] und nicht POSITION [ 0, 0 ]

- Einzeilige Funktionsdeklarationen werden nicht unterstützt (ZU und ENDE benötigen neue Zeilen).

## Weitere Eigenschaften von LibreLogo

- Doppelpunkte vor Variablennamen sind optional.

       ZU Dreieck Größe
         WIEDERHOLE 3 [ VOR Größe LINKS 120 ]
       ENDE

- Zeichenfolgen können auch in Anführungszeichen oder in Python-Schreibweise notiert werden.

       AUSGABE "Wort" ; Original Logo-Syntax
       AUSGABE „Beliebiger Text.” ; Writer-Schreibweise
       AUSGABE 'Beliebiger Text.' ; Python-Syntax

- Handhabung von Python-Listen und -Zeichenfolgen

       AUSGABE „Text”[2] ; gibt „x” zurück
       AUSGABE „Text”[1:3] ; gibt „ex” zurück

- Python-artige FÜR-Schleifen

- Python-artige Variablendeklaration:

       x = 15
       AUSGABE x

- Es gibt keine weiteren Suchfunktionen:

       AUSGABE FÜLLFARBE
       p = POSITION
       AUSGABE p
       WIEDERHOLE 10 [ POSITION BELIEBIG POSITION p ]

- Alternative Klammersetzung in Funktionsaufrufen

       ZU Stern Größe Farbe
       FÜLLFARBE Farbe
       WIEDERHOLE 5 [ LINKS 72 VOR Größe RECHTS 144 VOR Größe ]
       FÜLLEN
       ENDE

       Stern 100 „rot”
       Stern (100, „grün”)
       Stern(100, „blau”)

# LibreLogo-Befehle

## Grundsyntax

### Groß- und Kleinschreibung

Bei Befehlen und Farben ist die Groß- und Kleinschreibung irrelevant:

     AUSGABE „Hallo, Welt!”
     gibt „Hallo, Welt, noch einmal!” zurück

Bei Variablennamen ist die Groß- und Kleinschreibung relevant:

     a = 5
     A = 7
     AUSGABE a
     AUSGABE A

### Programmzeilen

Absätze in einem Writer-Dokument sind LibreLogo-Programmzeilen. Eine Programmzeile kann dabei mehrere Befehle enthalten:

     AUSGABE „Hallo, Welt!“ AUSGABE „LibreLogo“

### Kommentare

Kommentare sind Zeilen oder Teilzeilen ab einem Semikolon und bis zum Ende der Zeile (des Absatzes).

     ; ein Kommentar
     AUSGABE 5 * 5 ; ein Kommentar

### Befehlszeilen auf mehrere Absätze umbrechen

Es ist möglich, Programmzeilen auf mehrere Absätze umzubrechen, indem das Zeichen Tilde (~) am Zeilenende notiert wird:

     AUSGABE „Dies ist eine sehr lange ” + ~
           „Warnmeldung”

## Turtle-Bewegungen

### VOR (VR)

     VOR 10 ; Bewegung vorwärts um 10 pt (1 pt ≈ 0,373 mm)
     VOR 10pt ; wie zuvor
     VOR 0,5in ; Bewegung vorwärts um 0,5 inch (1 inch = 2,54 cm)
     VOR 1" ; wie zuvor
     VR 1mm
     VR 1cm

### ZURÜCK (ZK)

     ZURÜCK 10 ; Bewegung rückwärts um 10 pt

### LINKS (LI)

     LINKS 90 ; Drehung um 90° gegen den Uhrzeigersinn
     LINKS 90° ; wie zuvor
     LI 3h ; wie zuvor (Uhrzeigerposition)
     LI BEL ; Drehung um einen zufälligen Winkel

### RECHTS (RE)

     RECHTS 90 ; Drehung um 90° mit dem Uhrzeigersinn

### FLIEGEN

     FLIEGEN ; Turtle wird sich bewegen, ohne zu zeichnen

### LAUFEN

     LAUFEN ; Turtle wird sich zeichnend bewegen

### POSITION (POS)

     POSITION [0, 0] ; Drehung und Bewegung zur oberen linken Ecke
     POSITION SEITE ; Drehung und Bewegung zur unteren rechte Ecke
     POSITION [SEITE[0], 0] ; Drehung und Bewegung zur oberen rechten Ecke
     POS BEL ; Drehung und Bewegung zu einer zufälligen Position auf der Seite

### RICHTUNG (RI)

     RICHTUNG 0 ; Drehung nach Norden
     RICHTUNG 12h ; wie oben
     RICHTUNG [0, 0] ; Drehung zur Ecke oben links
     RI BEL ; Drehung in eine zufällige Richtung

## Weitere Turtle-Befehle

### VERBERGEN

     VERBERGEN ; Verbirgt Turtle (bis der Befehl ZEIGEN aufgerufen wird)

### ZEIGEN

     ZEIGEN ; Zeigt Turtle an

### ANFANG

     ANFANG ; Setzt Turtle auf die Anfangsposition zurück

### SÄUBERN

     SÄUBERN ; entfernt alle Zeichnungsobjekte aus dem Dokument

### FÜLLEN und SCHLIESSEN

     FÜLLEN ; Schließt die aktuelle Form oder Kurve und füllt sie
     SCHLIESSEN ; Schließt die aktuelle Form oder Kurve

Beispiel: ein gefülltes gleichzeitiges Dreieck:

     VOR 50 LINKS 120 VOR 50 FÜLLEN

Beispiel: ein gleichseitiges Dreieck:

     VOR 50 LINKS 120 VOR 50 SCHLIESSEN

## Stifteinstellungen

### STIFTBREITE/LINIENBREITE (SB/LB)

     STIFTBREITE 100 ; Linienbreite beträgt 100 pt
     STIFTBREITE BELIEBIG ; Genauso wie SB ZUFÄLLIG 10

### STIFTFARBE/LINIENFARBE (SF/LF)

     STIFTFARBE „rot“ ; Verändert die Schriftfarbe in rot (für mögliche Farben schlagen Sie unter Farbkonstanten nach)
     STIFTFARBE [255, 255, 0] ; Verändert die Stiftfarbe in gelb (wie in der RGB-Tafel)
     STIFTFARBE 0xffff00 ; Verändert die Stiftfarbe in gelb (Hexadezimalcode)
     STIFTFARBE 0 ; Verändert die Stiftfarbe in schwarz (0x000000)
     STIFTFARBE BELIEBIG ; Verändert die Stiftfarbe in eine zufällige Farbe
     STIFTFARBE [5] ; Verändert die Schriftfarbe in rot (für Farb-IDs schlagen Sie unter Farbkonstanten nach)
     STIFTFARBE „ohne“ ; Ohne Farbe, um Formen ohne Umrandung zu zeichnen
     SF „~rot“ ; Verändert die Schriftfarbe in einen beliebigen roten Farbton

### STIFTTRANSPARENZ/LINIENTRANSPARENZ (ST/LT)

     STIFTTRANSPARENZ 80 ; Setzt die Transparenz der aktuellen Stiftfarbe auf 80 %

### STIFTENDE/LINIENENDE (SE/LE)

     STIFTENDE „kein“ ; Ohne Linienende (Standard)
     STIFTENDE „rund“ ; Rundes Linienende
     SE „quadrat“ ; Quadratisches Linienende

### STIFTÜBERGANG/LINIENÜBERGANG (SÜ/LÜ)

     STIFTÜBERGANG „rund“ ; Abgerundeter Linenübergang (Standard)
     STIFTÜBERGANG „gehrung“ ; Scharfe Kante als Linienübergang
     STIFTÜBERGANG „schräg“ ; Gerade Kante als Linienübergang
     SÜ „kein“ ; Kein Linienübergang

### STIFTSTIL/LINIENSTIL (SS|LS)

     STIFTSTIL „durchgezogen“ ; Durchgezogene Linie (Standard)
     STIFTSTIL „gepunktet“ ; Gepunktete Linie
     STIFTSTIL „gestrichelt“ ; Gestrichelte Linie

     ; Benutzerdefinierte Punkt-Strich Muster können mit folgenden Argumenten erzeugt werden:
     ; – Anzahl der benachbarten Punkte
     ; – Länge der Punkte
     ; – Anzahl der benachbarten Striche
     ; – Länge der Striche
     ; – Abstand der Punkte/Linien vom Nachbarn
     ; – Typ (optional):
     ;   0: Punkte als Rechtecke (Standard)
     ;   2: Punkte als Kreise (Länge und Abstand sind abhängig von der Stiftbreite)

     SS [3, 1mm, 2, 4mm, 2mm, 2] ; ···––···––···––

## Fülleinstellungen

### FÜLLFARBE (FF)

     FÜLLFARBE „blau“ ; Mit blauer Farbe gefüllt, vergleichen Sie STIFTFARBE
     FÜLLFARBE „ohne“ KREIS 10 ; Nicht gefüllter Kreis
     FÜLLFARBE [„blau“, „rot“] ; Farbverlauf von rot nach blau
     FÜLLFARBE [[255, 255, 255], [255, 128, 0]] ; Farbverlauf von weiß nach orange
     FÜLLFARBE [„blau“, „rot“, 1, 0, 0] ; Axialer Farbverlauf (zuzüglich der erforderlichen Einstellungen für Drehung und Umrandung), mögliche Werte sind: 0-5 = linear, axial, radial, elliptisch, quadratisch und rechteckig
     FÜLLFARBE [„rot“, „blau“, 0, 90, 20] ; Linearer Farbverlauf, um 90° gedreht zur derzeitigen Turtleausrichtung und 20 % Rahmen
     FÜLLFARBE [„rot“, „blau“, 0, 90, 20, 0, 0, 200, 50] ; Farbverlauf mit von 200 % zu 50 % abnehmender Farbintensität
     FF [BEL, BEL, 2, 0, 0, 50, 50] ; Radialer Farbverlauf mit zufälligen Farben, 50 % horizontaler und 50 % vertikaler Ausrichtung des Zentrums

### FÜLLTRANSPARENZ (FT)

     FÜLLTRANSPARENZ 80 ; Legt die Transparenz der aktuellen Füllfarbe auf 80 % fest
     FÜLLTRANSPARENZ [80] ; Ergibt einen Transparenzverlauf von 80 % auf 0 % abnehmend
     FÜLLTRANSPARENZ [80, 20] ; Ergibt einen Transparenzverlauf von 80 % auf 20 % abnehmend
     FÜLLTRANSPARENZ [80, 20, 1, 90] ; Ergibt einen axialen Transparenzverlauf, um 90° gedreht zur derzeitigen Turtleausrichtung
     FT [80, 20, 2, 0, 20, 50, 50] ; Ergibt einen radialen Transparenzverlauf von außen 80 % auf innen 20 % Transparenz, mit 20 % Rahmen und 50 % horizontaler und 50 % vertikaler Ausrichtung des Zentrums

### FÜLLSTIL (FS)

     FÜLLSTIL 0 ; Ohne Schraffuren (Standard)
     FÜLLSTIL 1 ; Einfache schwarze Schraffur (horizontal)
     FÜLLSTIL 2 ; Einfache schwarze Schraffur (45° nach rechts geneigt)
     FÜLLSTIL 3 ; Einfache schwarze Schraffur (45° nach links geneigt)
     FÜLLSTIL 4 ; Einfache schwarze Schraffur (vertikal)
     FÜLLSTIL 5 ; Gekreuzte rote Schraffur (45° geneigt)
     FÜLLSTIL 6 ; Gekreuzte rote Schraffur (horizontal/vertikal)
     FÜLLSTIL 7 ; Gekreuzte blaue Schraffur (45° geneigt)
     FÜLLSTIL 8 ; Gekreuzte blaue Schraffur (horizontal/vertikal)
     FÜLLSTIL 9 ; Dreifach gekreuzte blaue Schraffur
     FÜLLSTIL 10 ; Einfache schwarze Schraffur mit großen Abständen (45° nach rechts geneigt)

     ; Benutzerdefinierte Schraffuren sind mit der Liste folgender Argumente möglich:
     ; – Stil (1: einfache, 2: doppelte, 3: dreifache Schraffur)
     ; – Farbe
     ; – Abstand
     ; – Neigung

     FS [2, „grün“, 3 pt, 15°] ; Gekreuzte grüne Schraffur (15° Neigung nach rechts)

## Zeichnungsobjekte

### KREIS

     KREIS 100 ; Zeichnet den Umriss eines Kreises (Durchmesser: 100 pt)

### ELLIPSE

     ELLIPSE [50, 100] ; Zeichnet eine Ellipse mit 50 pt und 100 pt in den Durchmessern
     ELLIPSE [50, 100, 2h, 12h] ; Zeichnet einen Ellipsensektor (Ausschnitt) (von Position 2 Uhr bis Position 12 Uhr im Uhrzeigersinn)
     ELLIPSE [50, 100, 2h, 12h, 2] ; Zeichnet eine Ellipsensegment (Abschnitt)
     ELLIPSE [50, 100, 2h, 12h, 3] ; Zeichnet einen Ellipsenbogen

### QUADRAT

     QUADRAT 100 ; Zeichnet den Umriss eines Quadrates (Kantenlänge 100 pt)

### RECHTECK

     RECHTECK [50, 100] ; Zeichnet den Umriss eines Rechtecks (Kantenlängen 50 pt und 100 pt)
     RECHTECK [50, 100, 10] ; Zeichnet ein Rechteck mit abgerundeten Ecken

### PUNKT

     PUNKT ; Zeichnet einen Punkt in Größe und Farbe des Stiftes

SCHLIESSEN kann den letzten Punkt verbinden, FÜLLEN kann eine Form aus Punkten füllen. Beispielsweise kann man so einfach einen „flachen“ Stern, ausgehend vom Zentrum, zeichnen:

     FLIEGEN
     WIEDERHOLE 5 [
       VOR 80
       PUNKT
       ZURÜCK 80
       RECHTS 36
       VOR 50
       PUNKT
       ZURÜCK 50
       RECHTS 36
     ] FÜLLEN

### SCHREIBE

     SCHREIBE „Text“ ; Gibt "Text" an der Position des Turtles zurück
     SCHREIBE "Text" ; Wie oberhalb
     SCHREIBE ‚Text‘ ; Wie oberhalb
     SCHREIBE 'Text' ; Wie oberhalb
     SCHREIBE "Text ; Wie oberhalb (nur für einzelne Worte)

### TEXT

     KREIS 10 TEXT „Text“ ; Fügt einem Zeichnungsobjekt Text hinzu

## Schrifteinstellungen

### SCHRIFTFARBE/TEXTFARBE (SCHF/TF)

     SCHRIFTFARBE „grün“ ; Ändert die Schriftfarbe auf grün

### SCHRIFTART (SCHA)

     SCHRIFTART „Linux Libertine G“ ; Ändert die Schriftart auf die angegebene
     SCHRIFTART „Linux Libertine G:smcp=1“ ; Setzt zusätzlich Schrifteinstellungen (Kapitälchen)
     SCHRIFTART „Linux Libertine G:smcp=1&onum=1“ ; Kapitälchen & alte Zahlen

### SCHRIFTGRÖSSE/TEXTGRÖSSE (SCHG/TG)

     SCHRIFTGRÖSSE 12 ; Ändert die Schriftgröße auf 12 pt

### SCHRIFTGEWICHT (SCHG)

     SCHRIFTGEWICHT „fett“ ; Ändert das Schriftgewicht auf "fett"
     SCHG „normal“ ; Setzt das Schriftgewicht zurück

### SCHRIFTSTIL (SCHS)

     SCHRIFTSTIL „kursiv“ ; Ändert den Schriftstil auf "kursiv"
     SCHS „normal“ ; Setzt den Schriftstil zurück

## BILD

BILD kann verwendet werden für

- gruppierte Formen;

- den Beginn neuer Linienformen;

- das Speichern von SVG-Bildern und SVG/SMIL-Animationen;

- Konsistenz bei Position und Linienform am linken Seitenrand.

### Gruppierte Form

     ; BILD [ LibreLogo_Befehle ]
     BILD [ VOR 100 Kreis 100 ] ; Eine Baum-ähnliche gruppierte Form

Siehe auch "Gruppe" in der LibreOffice-Writer-Hilfe.

     ZU Baum Ort
       FLIEGEN POSITION Ort RICHTUNG 0 FAHREN
       BILD [ VOR 100 KREIS 100 ] ; Eine Baum-ähnliche gruppierte Form
     ENDE

     BILD [ Baum [230, 400] Baum [300, 400] ] ; Eine gruppierte Form innerhalb einer gruppierten Form

### Neue Linienform beginnen

     BILD ; Beginn einer neuen Linienform
     VOR 10 BILD VOR 10 ; Zwei Linienformen

### SVG-Bilderer speichern

     BILD „Beispiel.svg“ [ KREIS 5 ] ; Speichert das Bild als SVG-Bilddatei im Benutzerordner
     BILD „Desktop/Beispiel.svg“ [ VOR 100 KREIS 5 ] ; Wie oben, mit relativem Dateipfad
     BILD „/home/user/Beispiel.svg“ [ KREIS 5 ] ; Mit absolutem Dateipfad unter Unix/Linux
     BILD „C:\Beispiel.svg“ [ KREIS 5 ] ; Mit absolutem Pfad unter Windows

### SVG/SMIL-Animationen speichern

     BILD „Animation.svg“ [ KREIS 5 WARTE 1000 KREIS 99 ] ; Speichert eine SVG/SMIL-Animation (beachten Sie WARTE)
     BILD „Animation2.svg“ [ KREIS 5 WARTE 1000 KREIS 99 WARTE 2000 ] ; Wie oben, aber die Verwendung von WARTE nach dem letzten Objekt bewirkt eine Schleife: Nach 2 Sekunden wird die Animation im SMIL-konformen Browser neu gestartet

### Konsistenz am linken Seitenrand

Sie können BILD verwenden, um die Konsistenz von Position und Linienform am linken Seitenrand eines Writer-Dokuments zu erhalten:

     BILD [ KREIS 20 POSITION [-100, 100] KREIS 20 ]

## Schleifen

### WIEDERHOLE (WDH)

     ; WIEDERHOLE Anzahl [ Befehle ]

     WIEDERHOLE 10 [ VOR 10 LINKS 45 KREIS 10 ] ; Führt die Anweisungen 10-mal aus

     ; Anzahl ist optional

     WDH [ POS BEL ] ; Endlosschleife

### ZÄHLER

Zählvariable für Schleifen (auch mit FÜR und SOLANGE zu verwenden).

     WIEDERHOLE 100 [ VOR ZÄHLER LINKS 90 ]

### FÜR IN

Schleife für Listenelemente:

     FÜR i IN [1, 5, 7, 9, 11] [
      VOR i
      LINKS 90
    ]

Schleife für Buchstaben in einer Zeichenfolge:

     FÜR i IN „Text“ [
       SCHREIBE i
       VOR 10
    ]

### SOLANGE

     SOLANGE WAHR [ POSITION BELIEBIG ] ; Endlosschleife
     SOLANGE ZÄHLER <= 10 [ VOR 50 LINKS 36 ]; Wie WIEDERHOLE 10 [ … ]

### ABBRUCH

Beendet die Ausführung der Schleife.

     WIEDERHOLE [ ; Endlosschleife
       POSITION BELIEBIG
       WENN ZÄHLER = 100 [ ABBRUCH ] ; Wie WIEDERHOLE 100 [ … ]
     ]

### WEITER

Springt zur nächsten Wiederholung der Schleife.

     WIEDERHOLE 100 [
       POSITION BELIEBIG
       WENN ZÄHLER % 2 = 0 [ WEITER ]
       KREIS 10 ; Zeichnet an jeder zweiten Position einen Kreis
     ]

## Bedingungen

### WENN

     ; WENN Bedingung [ wenn wahr ]
     ; WENN Bedingung [ wenn wahr ] [ wenn falsch ]

     WENN a < 10 [ GIB „klein“ ]
     WENN a < 10 [ AUSGABE „klein“ ] [ AUSGABE „groß“ ]

### UND, ODER, NICHT

Logische Operatoren.

     WENN a < 10 UND NICHT a = 5 [ AUSGABE „0, 1, 2, 3, 4, 6, 7, 8 oder 9“ ]
     WENN a < 10 UND a != 5 [ AUSGABE „0, 1, 2, 3, 4, 6, 7, 8 oder 9“ ] ; Wie oben

## Unterprogramme

### ZU, ENDE

Neues Wort (oder neues Programm).

     ZU Dreieck
       WIEDERHOLE 2 [ VOR 100 RECHTS 120 ] FÜLLEN
     ENDE

     WIEDERHOLE 10 [ Dreieck FLIEGEN POSITION BELIEBIG LAUFEN ]

### RÜCKGABE

Gibt den Wert einer Funktion zurück.

     ZU Zufallsbuchstabe
       RÜCKGABE ZUFÄLLIG „qwertzuiopasdfghjklyxcvbnm“
     ENDE

     AUSGABE Zufallsbuchstabe + Zufallsbuchstabe + Zufallsbuchstabe ; Gibt eine Zeichenfolge aus 3 zufälligen Buchstaben zurück

### STOPP

Beendet einen Prozess.

     ZU Beispiel Zahl
       WENN Zahl < 0 [ STOPP ]
       AUSGABE WURZEL Zahl ; Gibt die Quadratwurzel zurück
     ]

     Beispiel 100
     Beispiel -1 ; Ohne Ausgabe und ohne Fehlermeldung
     Beispiel 25

## Standardvariablen

### BELIEBIG (BEL)

Standard-Zufallswert für Farben und anderes.

     STIFTFARBE BELIEBIG ; Zufällige Stiftfarbe

### WAHR

Wahrheitswert.

     SOLANGE WAHR [ POSITION BELIEBIG ] ; Endlosschleife
     AUSGABE WAHR ; Gibt WAHR zurück

### FALSCH

Wahrheitswert.

     SOLANGE NICHT FALSCH [ POSITION BELIEBIG ] ; Endlosschleife
     AUSGABE FALSCH ; Gibt FALSCH zurück

### SEITE

     AUSGABE SEITE ; Gibt eine Liste mit den Seitenmaßen in Points zurück, beispielsweise [595.30, 841.89]

### PI/π

     AUSGABE PI ; Gibt 3,14159265359 zurück

## Ein-/Ausgabe

### AUSGABE

     AUSGABE „Text“ ; Gibt "Text" in einem Dialog zurück
     AUSGABE 5 + 10 ; Gibt 15 zurück

### EINGABE

     AUSGABE EINGABE „Eingabewert?“ ; Gibt den Text zurück und fragt nach einer Eingabe in einem Dialog
     AUSGABE DEZIMAL (EINGABE „Erste Zahl?“) + DEZIMAL (EINGABE „Zweite Zahl“) ; Einfacher Rechner

## WARTE

     WARTE 1000 ; Hält die Programmausführung für 1000 ms (1 Sekunde) an

## GLOBAL

Setzt globale Variablen in Prozessen.

     GLOBAL über
     über = „LibreLogo“

     ZU Beispiel
       AUSGABE über
       GLOBAL über ; Um die globale Variable neu zu belegen
       über = „Neuer Wert für die globale Variable“
     ENDE

     Beispiel
     AUSGABE über

## Funktionen

### ZUFÄLLIG

     AUSGABE ZUFÄLLIG 100 ; Zufallszahl (0 <= x <= 100)
     AUSGABE ZUFÄLLIG „Text“ ; Gibt zufällig einen Buchstaben aus der Zeichenfolge "Text" zurück
     AUSGABE ZUFÄLLIG [1, 2] ; Zufälliges Element aus der Liste (1 oder 2)

### GANZ

     AUSGABE GANZ 3,8 ; Gibt 3 zurück (ganzzahliger Anteil von 3,8)
     AUSGABE GANZ ZUFÄLLIG 100 ; Ganzzahlige Zufallszahl (0 <= x <= 100)
     AUSGABE GANZ „7“ ; Ändert eine Ziffernfolge in eine ganze Zahl um

### DEZIMAL

     ; Wandelt eine Ziffernfolge in eine Dezimalzahl um
     AUSGABE 2 * DEZIMAL „5,5“ ; Gibt 11,0 zurück

### ZEICHEN

     ; Wandelt eine Zahl in eine Zeichenfolge um
     AUSGABE „Ergebnis: “ + ZEICHEN 5 ; Gibt "Ergebnis: 5" zurück
     AUSGABE 10 * ZEICHEN 5 ; Gibt 5555555555 zurück

### WURZEL

     AUSGABE WURZEL 100 ; Gibt 10 zurück, die Quadratwurzel aus 100

### SIN

     AUSGABE SIN 90 * PI/180 ; Gibt 1,0 zurück (Sinus von 90° im Bogenmaß)

### COS

     AUSGABE COS 0 * PI/180 ; Gibt 1,0 zurück (Kosinus von 0° im Bogenmaß)

### LOG10

     AUSGABE LOG10 100 ; Gibt 2,0 zurück (den Logarithmus von 100 zur Basis 10)

### RUNDE

     AUSGABE RUNDE 3,8 ; Gibt 4 zurück (den gerundeten Wert von 3,8)
     AUSGABE RUNDE ZUFÄLLIG 100 ; Zufallszahl (0 <= x <= 100)

### BETRAG

     AUSGABE BETRAG -10 ; Gibt 10 zurück, den Betrag des Wertes -10

### ZÄHLE

     AUSGABE ZÄHLE „Text“ ; Gibt 4 zurück, die Anzahl der Buchstaben in "Text"
     AUSGABE ZÄHLE [1, 2, 3] ; Gibt 3 zurück, die Anzahl der Elemente der Liste

### MENGE

     ; Wandelt eine Liste in eine Python-Menge (eine Liste einmaliger Elemente) um
     AUSGABE MENGE [4, 5, 6, 6] ; Gibt {4, 5, 6} zurück
     AUSGABE MENGE [4, 5, 6, 6] | MENGE [4, 1, 9] ; Gibt {1, 4, 5, 6, 9} zurück, die vereinigte Menge beider Listen
     AUSGABE MENGE [4, 5, 6, 6] & MENGE [4, 1, 9] ; Gibt {4} zurück, die Schnittmenge beider Listen
     AUSGABE MENGE ([4, 5, 6, 6]) - MENGE [4, 1, 9] ; Gibt {5, 6} zurück, die Differenz beider Listen
     AUSGABE MENGE [4, 5, 6, 6] ^ MENGE [4, 1, 9] ; Gibt {1, 5, 6, 9} zurück, die symmetrische Differenz beider Listen

### FOLGE

     ; Python-artige Listengeneration
     AUSGABE LISTE FOLGE 10 ; Gibt [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] zurück
     AUSGABE LISTE FOLGE 3 10 ; Gibt [3, 4, 5, 6, 7, 8, 9] zurück
     AUSGABE LISTE FOLGE 3 10 3 ; Gibt [3, 6, 9] zurück

     FÜR i IN FOLGE 10 50 10 [ ; Schleife mit den Zahlen [10, 20, 30, 40]
    VOR i
    LINKS 90
     ]

### LISTE

     ; Entfernt doppelte Elemente aus einer Liste
     AUSGABE LISTE (MENGE [1, 3, 5, 5, 2, 1]) ; Gibt [1, 3, 5, 2] zurück

### TUPEL

Konvertierung in ein Python-Tupel (eine nicht änderbare Liste)

     AUSGABE TUPEL [4, 5]

### SORTIERT

Gibt eine sortierte Liste zurück.

     AUSGABE SORTIERT [5, 1, 3, 4]; Gibt [1, 3, 4, 5] zurück

### ERSETZT

Ersetzt eine Zeichenfolge mittels regex-Mustern (reguläre Ausdrücke).

     AUSGABE ERSETZT (“t”, “T”, “text”) ; Gibt “Text” zurück, wobei “t” durch “T” ersetzt wurde
     AUSGABE ERSETZT (“(.)”, “\\1\\1”, “text”) ; Gibt “tteexxtt” zurück, wobei jeder Buchstabe verdoppelt wurde

### SUCHE

Sucht nach einer Zeichenfolge mittels regex-Mustern.

     WENN SUCHE („\t”, „Wort“) [ AUSGABE „Buchstabe ist im Wort.” ]

### FINDEALLE

Findet alle Zeichenfolgen innerhalb der Eingabezeichenfolge, die dem angegebenen regex-Muster entsprechen.

     AUSGABE FINDEALLE (“\w+”, “Hunde, Katzen.”) ; Gibt [“Hunde”, “Katzen”] zurück, die Liste aller Worte.

### MIN

     AUSGABE MIN [1, 2, 3] ; Gibt 1 zurück, das kleinste Element der Liste

### MAX

     AUSGABE MAX [1, 2, 3] ; Gibt 3 zurück, das größte Element der Liste

## Farbkonstanten

     STIFTFARBE „SILBER“ ; Setzt die angegebene Farbe
     STIFTFARBE [1] ; Setzt die Farbe über IDs
     STIFTFARBE „~SILBER“ ; Setzt einen zufälligen Silberton

ID | Name
--- | ---
0 | schwarz
1 | silber
2 | grau
3 | weiß
4 | rotbraun
5 | rot
6 | lila
7 | magenta
8 | grün
9 | hellgrün
10 | dunkelgrün
11 | gelb
12 | dunkelblau
13 | blau
14 | blaugrün
15 | türkis/cyan
16 | rosa
17 | dunkelrot
18 | orange
19 | gold
20 | violett
21 | hellblau
22 | dunkelbraun
23 | braun
24 | ohne

Bitte unterstützen Sie uns!