8.581
Bearbeitungen
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Karte}} | {{Karte|Hilfe=9}} | ||
Wenn ein Algorithmus zu groß und komplex wird, dann ist es hilfreich, die Strukturierte Zerlegung (siehe dazu {{Pfad|17|Karte 17}}) anzuwenden, um ihn in kleiner Teilprobleme zu zerlegen. In Java nutzt man dazu ''Methoden''. | Wenn ein Algorithmus zu groß und komplex wird, dann ist es hilfreich, die Strukturierte Zerlegung (siehe dazu {{Pfad|17|Karte 17}}) anzuwenden, um ihn in kleiner Teilprobleme zu zerlegen. In Java nutzt man dazu ''Methoden''. | ||
Zeile 17: | Zeile 17: | ||
* Bessere Lesbarkeit des Quelltextes. | * Bessere Lesbarkeit des Quelltextes. | ||
* Leichtere Aufteilung im Team. ("Ich implementiere <code>fahre</code>, du implementierst <code>drehe</code>.") | * Leichtere Aufteilung im Team. ("Ich implementiere <code>fahre</code>, du implementierst <code>drehe</code>.") | ||
{{Lösung:End}} | |||
In Java wird eine ''Methode'' so definiert: | |||
<syntaxhighlight lang="java"> | |||
public void dreimalFahre() { | |||
fahre(); | |||
fahre(); | |||
fahre(); | |||
} | |||
</syntaxhighlight> | |||
Sie besteht aus einem ''Methodenkopf'' und einem ''Methodenrumpf''. Der Rumpf enthält die Befehle, die ausgeführt werden sollen. Der Kopf besteht aus den Schlüsselwörtern <code>public void</code> und einem ''Bezeichner'' für den neuen Befehl. Den Bezeichner kannst du frei wählen, aber er sollte aussagekräftig sein. | |||
{{Aufgabe:Start|Icon=Greenfoot Rover.png}} | |||
# Implementiere eine Methode <code>public void umdrehen()</code>, die den Rover um 180 Grad dreht. | |||
# Implementiere eine Methode <code>public void vierVorUndRechts()</code>, die den Rover vier vor fahren lässt und ihn dann nach rechts dreht. | |||
{{Aufgabe:End}} | |||
{{Lösung:Start}} | |||
<syntaxhighlight lang="java"> | |||
public void umdrehen() { | |||
drehe("rechts"); | |||
drehe("rechts"); | |||
} | |||
public void vierVorUndRechts() { | |||
fahre(); | |||
fahre(); | |||
fahre(); | |||
fahre(); | |||
drehe("rechts"); | |||
} | |||
</syntaxhighlight> | |||
{{Lösung:End}} | {{Lösung:End}} | ||
Zeile 32: | Zeile 62: | ||
{{Lösung:Start}} | {{Lösung:Start}} | ||
Mögliche Zerlegung: | Mögliche Zerlegung: | ||
; rauteAbfahren() | ; <code>rauteAbfahren()</code> | ||
: | : Lösung des Problems: Die gesamte Raute wird abgefahren und die Steine gesammelt. | ||
; fahreSeite() | ; <code>fahreSeite()</code> | ||
: Fährt eine Seite der Raute ab, wenn der Rover mit Blickrichtung zur Raute steht. | : Fährt eine Seite der Raute ab, wenn der Rover mit Blickrichtung zur Raute steht. | ||
; fahreUmHuegel() | ; <code>fahreUmHuegel()</code> | ||
: Fährt um einen einzelnen Huegel an einer Seite der Raute. | : Fährt um einen einzelnen Huegel an einer Seite der Raute. | ||
Bearbeitungen