Lernpfad:Lerntheke Marsrover/25: Unterschied zwischen den Versionen
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 29: | Zeile 29: | ||
Der Rover hat einige ''Anfragen'', die als Bedingung genutzt werden können: | Der Rover hat einige ''Anfragen'', die als Bedingung genutzt werden können: | ||
{| {{prettytable}} | {| {{prettytable}} | ||
|+ | |+ Anfragen des Mars-Rovers | ||
|- | |- | ||
|''Anfrage'' | |''Anfrage'' | ||
Zeile 50: | Zeile 50: | ||
|} | |} | ||
{{Aufgabe:Start|Icon=Greenfoot Rover.png}} | |||
# Teste die Lösung des Problems oben. | |||
# Implementiere eine Schleife, die den Rover bis zum nächsten Hügel fahren lässt. | |||
{{Aufgabe:End}} | |||
{{Lösung:Start}} | |||
# <syntaxhighlight lang="Java"> | |||
public void act() { | |||
while( !gesteinVorhanden() ) { | |||
fahre(); | |||
} | |||
analysiereGestein(); | |||
} | |||
</syntaxhighlight> | |||
# <syntaxhighlight lang="Java"> | |||
public void act() { | |||
while( !huegelVorhanden("vorne") ) { | |||
fahre(); | |||
} | |||
} | |||
</syntaxhighlight> | |||
{{Lösung:End}} | |||
{{Aufgabe:Start|Icon=Greenfoot Rover.png}} | |||
Der Rover steht neben einem Rechteck aus Hügeln und soll einmal um den gesammten Hügel fahren. Dazu legt er zunächst eine Marke ab und fährt dann solange, bis er die Marke wieder erreicht hat. | |||
[[Datei:Rover Karte25 Rechteck.jpg|center]] | |||
{{Aufgabe:End}} | {{Aufgabe:End}} | ||
{{Lösung:Start}} | |||
# <syntaxhighlight lang="Java"> | |||
public void act() { | |||
while( !gesteinVorhanden() ) { | |||
fahre(); | |||
} | |||
analysiereGestein(); | |||
} | |||
</syntaxhighlight> | |||
# <syntaxhighlight lang="Java"> | |||
public void act() { | |||
while( !huegelVorhanden("vorne") ) { | |||
fahre(); | |||
} | |||
} | |||
</syntaxhighlight> | |||
{{Lösung:End}} | |||
{{Inhalt/Lerntheke}} | {{Inhalt/Lerntheke}} |
Version vom 9. November 2020, 23:53 Uhr
Vor dem Rover befindet sich ein Gestein. Er weiß aber nicht, wie weit es entfernt ist. Es könnte fünf, oder auch 50 Felder entfernt sein.
Das Problem kann einfach gelöst werden, indem man eine Schleife benutzt. Eine Schleife wiederholt eine Reihe von Befehlen solange, wie eine Bedingung wahr ist. Daher nennt man so eine Schleife auch bedingte Wiederholung.
Das Problem oben lässt sich dann in Pseudocode so aufschreiben:
solange kein Gestein vorhanden ist wiederhole fahre vorwärts ende wiederhole analysiere Gestein
Als Programmablaufplan wird die Schleife so dargestellt:
In Java schließlich wird das Schlüsselwort while
benutzt:
while( !gesteinVorhanden() ) {
fahre();
}
analysiereGestein();
Innerhalb der runden Klammern steht die Bedingung. Eine Bedinung ist immer entweder wahr (true
) oder falsch (false
). Mit dem Ausrufungszeichen kann die Bedungung negiert werden (aus true
wird false
und umgekehrt).
Der Rover hat einige Anfragen, die als Bedingung genutzt werden können:
Anfrage | boolean huegelVorhanden(String richtung)
|
Prüft, ob sich in der angegebenen Richtung ("rechts", "links" oder "vorne") ein Hügel befindet. | |
Anfrage | boolean gesteinVorhanden()
|
Prüft, ob auf dem Feld des Rovers ein Gestein vorhanden ist. | |
Anfrage | boolean markeVorhanden()
|
Prüft, ob auf dem Feld des Rovers eine Marke vorhanden ist. |
- Teste die Lösung des Problems oben.
- Implementiere eine Schleife, die den Rover bis zum nächsten Hügel fahren lässt.
public void act() { while( !gesteinVorhanden() ) { fahre(); } analysiereGestein(); }
public void act() { while( !huegelVorhanden("vorne") ) { fahre(); } }
Der Rover steht neben einem Rechteck aus Hügeln und soll einmal um den gesammten Hügel fahren. Dazu legt er zunächst eine Marke ab und fährt dann solange, bis er die Marke wieder erreicht hat.
public void act() { while( !gesteinVorhanden() ) { fahre(); } analysiereGestein(); }
public void act() { while( !huegelVorhanden("vorne") ) { fahre(); } }
Das ist Greenfoot | Der Mars-Rover | Die Welt des Mars-Rover | Das ist Java | Die Rover-Arena | Greenfoot benutzen | Java Syntax | Variablen | Methoden | Bedingte Anweisungen | Schleifen | Objekte | Arrays | Die Fähigkeiten des Rovers | Steine analysieren I | Steine analysieren II | Strukturiertes programmieren | Programme strukturieren I | Programme strukturieren II | Fallunterscheidungen I | Anfragen | Fallunterscheidungen II | Variablen | Objektvariablen | Wiederholungen I | Wiederholungen II | Rover-Liebe | Steine analysieren III | Gefangen im Labyrinth I | Marken-Maler | Fleißige Rover | Gefangen im Labyrinth II | In der Rover-Arena | Parameter