8.581
Bearbeitungen
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 66: | Zeile 66: | ||
# Probiere den Turing-Rover aus und prüfe, was diese "Turingmaschine" macht. | # Probiere den Turing-Rover aus und prüfe, was diese "Turingmaschine" macht. | ||
{{Aufgabe:End}} | {{Aufgabe:End}} | ||
{{Lösung:Start}} | |||
Der obere Teil der Klasse Rover muss wie folgt aussehen: | |||
<syntaxhighlight lang="java"> | |||
public class Rover extends Actor { | |||
private Display anzeige; | |||
private int zustand = 0; | |||
/** | |||
* Act-Methode des Rovers. Programmiere hier deinen Algorithmus und starte | |||
* ihn mit dem "Act"-Button in Greenfoot. | |||
*/ | |||
public void act() { | |||
switch( zustand ) { | |||
case 0: // Wenn in Zustand 0 | |||
zustand = zustand0(); // führe die Methode "zustand0" aus | |||
break; // und beende die act()-Methode | |||
} | |||
} | |||
public int zustand0() { | |||
if( markeVorhanden() ) {// es wurde "1" gelesen | |||
entferneMarke(); // schreibe eine "0" | |||
links(); // bewege den Kopf nach links | |||
return 0; // bleibe in Zustand 0 | |||
} else { // Es wurde "0" gelesen | |||
setzeMarke(); // schreibe eine "1" | |||
rechts(); // bewege den Kopf nach links | |||
return 1; // wechsele in Zustand 1 | |||
} | |||
} | |||
public void links() { | |||
drehe("links"); | |||
fahre(); | |||
drehe("rechts"); | |||
} | |||
public void rechts() { | |||
drehe("rechts"); | |||
fahre(); | |||
drehe("links"); | |||
} | |||
// Rest der Klasse Rover folgt hier ... | |||
} | |||
Die Turingmaschine schreibt eine "1" (eine Marke) auf das Band und macht dann nichts mehr (terminiert). | |||
</syntaxhighlight> | |||
{{Lösung:End}} | |||
{{Inhalt/Lerntheke}} | {{Inhalt/Lerntheke}} |
Bearbeitungen