9.1 Bedingte Verarbeitung
Aufgabe 9-1: Szenario – „Plötzlicher Erdrutsch“
Ziel des vierten Szenarios ist es, dass ein Roboter von Feld (1; 2) startend das Zielfeld (4; 1) erreicht.
Allerdings ist unklar, ob der auf dem Feld (3; 2) niedergegangene Steinschlag bereits beseitigt worden ist. Der Roboter soll daher zunächst zum Feld (2; 2) fahren und dort prüfen, ob das Feld unmittelbar vor ihm frei ist.
Der Roboter kann mit Hilfe seines Attributs sensorFront auf eine Sensor-Objekt zugreifen, welches das Feld direkt vor dem Roboter untersuchen kann. Nutzen Sie die Methode istWegFrei() der Klasse Sensor, um festzustellen, ob das Feld unmittelbar vor dem Roboter frei ist. Ist dies der Fall gibt die Methode den Wert true zurück, andernfalls den Wert false.
Falls der Weg frei ist, soll der Roboter zum Zielfeld (4; 1) fahren. Ist der Weg noch blockiert, endet sein Auftrag und er soll vor dem Steinschlag stehenbleiben.
Aufgabe
- Informieren Sie sich zunächst über die bedingte Verarbeitung (vgl. „Merke: bedingte Verarbeitung“).
-
Erstellen Sie dann ein Struktogramm der Methode
steuereRobi(). Lösung
Abb. 9-3: Struktogramm der Methode steuereRobi() -
Erstellen Sie anschließend den Quellcode der Klasse
SzenarioAufgabe9_1. Lösung
JAVApackage welt;
public class SzenarioAufgabe9_1 implements Szenario{
private String name = "Aufgabe 9-1: Szenario – „Plötzlicher Erdrutsch“";
private Roboter robi;
@Override
public void erstelleRobi(Spielbrett ausgewaehltesSpielbrett){
robi = new Roboter ();
robi.starteAufFeld(1, 2, ausgewaehltesSpielbrett);
}
@Override
public void steuereRobi() {
robi.gehVorwaerts();
if(robi.getSensorFront().istWegFrei()) {
robi.gehVorwaerts();
robi.gehVorwaerts();
robi.drehLinks();
robi.gehVorwaerts();
}
}
@Override
public String getName() {
return name;
}
}Abb. 9-4: Klasse SzenarioAufgabe9_1(Quellcode)
Eine bedingte Verarbeitung ist ein Programmabschnitt, der nur ausgeführt wird, wenn eine bestimmte Bedingung erfüllt ist.
Die Bedingung wird in Form eines booleschen Ausdrucks formuliert. Ein boolescher Ausdruck ist ein Ausdruck, dessen Auswertung einen Wert des Typs boolean ergibt, das heißt, entweder true oder false. Anstelle von booleschem Ausdruck wird auch der Begriff logischer Ausdruck verwendet.
// Anweisungen, die ausgeführt werden sollen,
// wenn boolescher_Ausdruck wahr ist.
}
| boolescher Ausdruck | Erläuterung |
|---|---|
| buch.isAusleihbar() | Methode, die als Antwort einen Wert des Typs boolean zurückgibt. |
| ausleihbar | Variable vom Typ boolean. |
| anzahl >= 100 | Ungleichung |
| alter == 18 | Gleichung |