Lernpfad:Lerntheke Marsrover/20: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 22: Zeile 22:
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Lösung:Start}}
{{Lösung:Start}}
* <code>boolean huegelVorhanden( String pRichtung )</code> - prüft, ob in der angegebenen Richtung ein Hügel vorhanden ist.  
* <code>boolean huegelVorhanden( richtung )</code> - Prüft, ob in der angegebenen Richtung ein Hügel vorhanden ist.  
* <code>boolean gesteinVorhanden()</code> - prüft, ob auf dem aktuellen Feld des Rovers ein Gestein vorhanden ist.  
* <code>boolean gesteinVorhanden()</code> - Prüft, ob auf dem aktuellen Feld des Rovers ein Gestein vorhanden ist.  
* <code>boolean markeVorhanden()</code> - prüft, ob auf dem aktuellen Feld des Rovers eine Marke vorhanden ist.  
* <code>boolean markeVorhanden()</code> - Prüft, ob auf dem aktuellen Feld des Rovers eine Marke vorhanden ist.  
{{Lösung:End}}
{{Lösung:End}}


Zeile 39: Zeile 39:
# Erweitere das Programm so, dass auf allen Feldern ohne Gestein eine Marke abgelegt wird.  
# Erweitere das Programm so, dass auf allen Feldern ohne Gestein eine Marke abgelegt wird.  
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Roverkarte|.\n.\n.\n.\n.\n...R...[.G].[.G][.G][.G][.G][.GH][.GH][.G][.G]H}}
{{Roverkarte|.\n.\n.\n.\n.\n.R..[.G].[.G][.G][.G][.GH][.GH][.G][.G]H}}


{{Inhalt/Lerntheke}}
{{Inhalt/Lerntheke}}

Version vom 1. Oktober 2020, 10:21 Uhr

Fallunterscheidungen I

Bei der Programmierung kommt es häufig vor, dass der weitere Ablauf des Programms von einer Entscheidung abhängt. Zum Beispiel:

Wenn vorne kein Hügel ist
dann fahre,
sonst drehe rechts

oder

Wenn gesteinVorhanden()
dann analysiereGestein()

Solche Verzweigungen oder Fallunterscheidungen kennst du auch schon von Programmablaufplänen:

PAP Verzweigung.svg

Der Rover kann schon einige Entscheidungen treffen. Sie sind in einer besonderen Art von Methoden implementiert: den Anfragen.

Greenfoot Rover.png
Arbeitsauftrag
  1. Lade eine Zufallswelt und platziere den Rover an verschiedenen Stellen. Probiere dann die Anfragen des Rovers aus und finde heraus, was sie überprüfen.
Lösung
  • boolean huegelVorhanden( richtung ) - Prüft, ob in der angegebenen Richtung ein Hügel vorhanden ist.
  • boolean gesteinVorhanden() - Prüft, ob auf dem aktuellen Feld des Rovers ein Gestein vorhanden ist.
  • boolean markeVorhanden() - Prüft, ob auf dem aktuellen Feld des Rovers eine Marke vorhanden ist.


In Java werden Verzweigungen mit Bedingten Anweisungen umgesetzt:

if( gesteinVorhanden() ) {
  analysiereGestein();
}
Greenfoot Rover.png
Arbeitsauftrag

Lade für die Aufgaben die unten gezeigte Karte.

  1. Implementiere in der act()-Methode einen Algorithmus, der den Rover bis zum nächsten Hügel vorwärts fahren lässt.
  2. Erweitere den Algorithmus so, dass der Rover auf dem Weg alle Gesteine analysiert.
  3. Erweitere das Programm so, dass auf allen Feldern ohne Gestein eine Marke abgelegt wird.
Kartendaten:
".\n.\n.\n.\n.\n.R..[.G].[.G][.G][.G][.GH][.GH][.G][.G]H"