Programmiergrundlagen mit Robot Karl

Die Grundstrukturen zum Programmieren sind in allen Computersprachen gleich. Es gibt Wiederholungen (Schleifen) und Entscheidungsabfragen (Verzweigungen). Zur besseren Lesbarkeit werden lange oder öfters benötigte Teile in selbstdefinierte Anweisungen geschrieben. Auch selbstdefinierte Bedingungen werden benötigt. Datentypen bzw. Variablen fehlen vollständig bei Robot Karl.

Trotzdem und vielleicht auch gerade deshalb, weil Robot Karl von Grund auf nichts kann, ist es spannend, wie man mit Hilfe der wenigen zur Verfügung stehenden Befehle mit Robot Karl auch komplexe Probleme lösen kann.  

Anweisungen

Anweisungen

Der Roboter handelt und verändert seine Umwelt. Dies kann er mit Hilfe der folgenden vordefinierten Anweisungen machen: Schritt, LinksDrehen, RechtsDrehen, Hinlegen, Aufheben, MarkeSetzen, MarkeLöschen.

Weitere Anweisungen kann man selbst definieren. 

Syntax Beispiel
 
Anweisung NameDerAnweisung
   Anweisungen
*Anweisung
Anweisung Umdrehen
   Linksdrehen
   Linksdrehen
*Anweisung
Bedingungen

Bedingungen

Ein Roboter verfügt über Sensoren, mit denen er seine Umwelt wahrnimmt. Hierzu verfügt Robot Karl über vordefinierte Bedingungen: IstWand, NichtIstWand, IstZiegel, NichtIstZiegel, IstMarke, NichtIstMarke, IstSüden, IstNorden, IstWesten ,IstOsten.

Auch Bedingungen kann man selbst definieren:

Syntax Beispiel
Bedingung NameDerBedingung

Anweisungen


*Bedingungen
Bedingung IstLinksWand
  falsch
  LinksDrehen
  wenn IstWand dann wahr *wenn
  RechtsDrehen
*Bedingung
Verzweigungen

Verzweigungen

Je nach dem, wie der Roboter seine Umwelt wahr nimmt, wird er unterschiedlich handeln.

Syntax Beispiel
wenn Bedingung dann
   Anweisungen
 sonst
   Anweisungen
*wenn
wenn IstWand dann
   Rechtsdrehen
 sonst
   Schritt
*wenn
Schleifen

Schleifen

Um den Quelltext möglicht kompakt zu halten und auch für eine höhere Flexibilität werden Schleifen eingesetzt. Hier unterscheidet man gezählte und bedingte Wiederholungen:

Syntax Beispiel
wiederhole Zahl mal
   Anweisungen
*wiederhole
wiederhole 10 mal
   Hinlegen
   Schritt
*wiederhole
Syntax Beispiel
wiederhole solange Bedingung
   Anweisungen
*wiederhole
wiederhole solange NichtIstWand
   Hinlegen
   Schritt
*wiederhole

 

Qualitätskriterien für gutes Programmieren

  1. Das Programm soll die gewünschte Funktionalität liefern: das Programm muss intensiv getestet werden.

  2. Der Quelltext soll möglichst verständlich sein: d.h. für eigene Anweisungen sollten sinnvolle und kurze Namen verwendet werden. Der Quelltext soll mit Einrückungen, Leerzeichen und Kommentaren versehen sein.

  3. Der Quelltext sollte von Anfang an möglichst flexibel geschrieben werden, so dass man für ähnliche Aufgaben Texte nicht wieder neu schreiben muss. Mögliche Erweiterungen sollten also von Anfang an in die Überlegungen einbezogen werden.

  4. Der Quelltext sollte möglichst klein und übersichtlich sein.