In dieser Aufgabe betrachten wir die Lernumgebung RoboMind[1], in der ein kleiner Roboter programmiert werden kann. Dabei ist die Welt des Roboters wie ein Schachfeld in quadratische Felder eingeteilt (vgl. Abb. 1).
Um ein Programm zu schreiben, braucht man einen Grundbefehlsatz, welcher durch die Programmier*innen festgelegt wird. Für den kleinen Roboter wurden die unten stehenden Grundbefehle festgelegt.
forward(n): bewegt den Roboter n Schritte nach vorne
backward(n): bewegt den Roboter n Schritte zurück
left(): dreht den Roboter um 90 Grad nach links
right(): dreht den Roboter um 90 Grad nach rechts
Gegeben sind die in Abb. 2 dargestellte Ausgangssituation und die darunter stehenden Anweisungen.
forward(1)
forward(1)
right
forward(2)
left
backward(2)
left
forward(1)
forward(1)
Auf welchem Feld befindet sich der Roboter, nachdem er die Anweisungen ausgeführt hat?
Bitte auswählen
Auf dem Startfeld der Ausgangssituation.
Auf dem Feld links neben dem Startfeld.
Das Feld befindet sich außerhalb des dargestellten Feldes.
Auf dem Feld rechts neben dem Startfeld.
Vollziehen Sie die einzelnen Befehle in der gegebenen Reihenfolge nach. Merken Sie sich nach jedem Befehl die neue Position sowie Richtung des Roboters.
Aufgabe 2 von 5
Damit der Roboter mit seiner Umgebung interagieren kann, müssen wir ihm sagen, welche(n) Anweisung(en) er ausführen soll, wenn eine bestimmte Bedingung zutrifft. Die zugehörige Programmierung lautet:
if (Bedingung) { Anweisung … }
Unter welche der folgenden Bedingungen befindet sich vor dem Roboter ein leeres Feld?
Bitte auswählen
frontIsObstacle
frontIsClear
frontIsBeacon
frontIsWhite
Aufgabe 3 von 5
Wenn Sie das Gegenteil einer Bedingung meinen, verwenden Sie folgende Programmierung:
not Bedingung
Unter welchen der folgenden Bedingungen befindet sich rechts neben dem Roboter ein leeres Feld?
Bitte auswählen
rightIsClear
not rightIsClear
not rightIsObstacle
rightIsObstacle
Genau dann, wenn das Feld rechts neben dem Roboter frei ist, ist die Bedingung rightIsClear wahr und die Bedingung rightIsObstacle falsch. Damit ist in diesem Fall die Bedingung not rightIsClear falsch und die Bedingung not rightIsObstacle wahr.
Aufgabe 4 von 5
Wenn die Bedingung nicht zutrifft, kann der Roboter alternative Anweisungen ausführen. Die zugehörige Programmierung lautet:
if (Bedingung) { Anweisung … } else { alternative Anweisung … }
Gegeben sind die in Abb. 3 dargestellte Ausgangssituation und die darunter stehenden Anweisungen.
if (not frontIsObstacle)
{
right
forward(1)
} else {
left
forward(1)
}
Auf welchem Feld befindet sich der Roboter nach Ausführung aller Anweisungen?
Hinweis: Es werden eine Drehung und eine Bewegung durchgeführt. Welche Alternative ausgewählt wird, entscheidet das Feld direkt vor dem Roboter.
Bitte auswählen
Das Feld befindet sich außerhalb des dargestellten Feldes.
Auf dem Startfeld der Ausgangssituation.
Auf dem Feld rechts neben dem Startfeld
Auf dem Feld links neben dem Startfeld.
Aufgabe 5 von 5
Um den Roboter Ihre Anweisungen wiederholen zu lassen, solange eine bestimmte Bedingung zutrifft, verwenden Sie folgende Programmierung:
repeatWhile (Bedingung) { Anweisung … }
repeatWhile
repeatDuring
repeatWhereas
repeatIf
frontIsObstacle
frontIsClear
not frontIsObstacle
not frontIsClear
left
right
forward
backward
1
2
3
4
Geben Sie dem Roboter die Anweisung, so lange geradeaus zu fahren, bis sich auf dem Feld vor ihm etwas befindet (z.B. eine Palme).