states:zut_to_java:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
states:zut_to_java:start [2021/01/17 16:47] – [Musteraufgabe 1: Fortsetzung des Kühlschrank-Projekts] Martin Pabst | states:zut_to_java:start [2021/12/29 11:29] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 239: | Zeile 239: | ||
</ | </ | ||
+ | | ||
===== Aufgabe 2: Umsetzung der Stoppuhr als Java-Projekt ===== | ===== Aufgabe 2: Umsetzung der Stoppuhr als Java-Projekt ===== | ||
Zeile 246: | Zeile 247: | ||
**Hier ein mögliches Zustandsübergangsdiagramm: | **Hier ein mögliches Zustandsübergangsdiagramm: | ||
{{ : | {{ : | ||
- | Schreibe **ausgehend von diesem Zustandsübergangsdiagramm** die **Klasse Stoppuhr**. Dabei soll ihr Zustand durch ein Attribut '' | + | Schreibe **ausgehend von diesem Zustandsübergangsdiagramm** die **Klasse Stoppuhr**. Dabei soll ihr Zustand durch ein Attribut '' |
**Bemerkung 1:** Die eigentliche Funktion der Uhr (Zeit messen) soll nicht programmiert werden. Damit klar ist, was zu tun ist, hier ein kurzes Testprogramm zusammen mit seiner Ausgabe. **Kopiere diese Anweisungen nach Erstellung der Klasse Stoppuhr an den Anfang Deines Programms, dann kannst Du auf einfach Art und Weise testen, ob alles funktioniert.** | **Bemerkung 1:** Die eigentliche Funktion der Uhr (Zeit messen) soll nicht programmiert werden. Damit klar ist, was zu tun ist, hier ein kurzes Testprogramm zusammen mit seiner Ausgabe. **Kopiere diese Anweisungen nach Erstellung der Klasse Stoppuhr an den Anfang Deines Programms, dann kannst Du auf einfach Art und Weise testen, ob alles funktioniert.** | ||
<code myJava> | <code myJava> | ||
Zeile 269: | Zeile 270: | ||
</ | </ | ||
\\ \\ | \\ \\ | ||
- | [[.stoppuhr_java: | + | [[.stoppuhr_java: |
- | + | ||
- | <WRAP center round tip 60%> | + | |
- | Wie man die Uhr zum Laufen bringt, zeige ich Euch auch noch. Versprochen! | + | |
- | </ | + | |
===== Aufgabe 3: Mikrowellenherd ===== | ===== Aufgabe 3: Mikrowellenherd ===== | ||
- | Ein Mikrowellenherd besitzt eine Tür zum Öffnen und Schließen sowie einen Schalter zum Ein- und Ausschalten. | + | Ein Mikrowellenherd besitzt eine Tür zum Öffnen und Schließen sowie einen Schalter zum Ein- und Ausschalten. |
+ | **Tipps: | ||
+ | * Jeder Zustand des Mikrowellenherds umfasst sowohl den Zustand der Tür als auch die Information darüber, ob die Mikrowelle ein- oder ausgeschaltet ist. Der erste Zustand ist z.B. " | ||
+ | * Auf die Pfeile des Zustandsübergangsdiagramms kann man hinter die auslösende Aktion auch noch eine **Bedingung** (die Voraussetzung für den Übergang ist) sowie eine **ausgelöste Aktion** schreiben. Letzteres ist bei dieser Aufgabe an einer Stelle sinnvoll. \\ //(Am Beispiel des Buches einer Bibliothek könnte das etwa so aussehen wie im nachfolgenden Bild.)// | ||
+ | {{ : | ||
+ | |||
+ | [[.mikrowelle: | ||
+ | |||
+ | ===== Stoppuhr mit Zeitanzeige und Tastatursteuerung! ===== | ||
+ | |||
+ | {{ youtube> | ||
+ | |||
+ | < | ||
+ | <div class=" | ||
+ | <script type=" | ||
+ | Stoppuhr s = new Stoppuhr(); | ||
+ | |||
+ | class Stoppuhr extends Actor { | ||
+ | |||
+ | int zustand; | ||
+ | |||
+ | int zähler = 0; | ||
+ | int sekunden = 0; | ||
+ | |||
+ | Text ausgabe; | ||
+ | |||
+ | | ||
+ | |||
+ | super(); | ||
+ | |||
+ | println(" | ||
+ | |||
+ | zustand = 1; | ||
+ | ausgabe = new Text(400, 300, 64, "" | ||
+ | ausgabe.setAlignment(Alignment.center); | ||
+ | |||
+ | zeitausgeben(); | ||
+ | |||
+ | schreibeZustand(); | ||
+ | } | ||
+ | |||
+ | | ||
+ | if(key == " | ||
+ | | ||
+ | } | ||
+ | if(key == " | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | | ||
+ | if(zustand == 2) { | ||
+ | | ||
+ | | ||
+ | zähler = 0; | ||
+ | sekunden++; | ||
+ | zeitausgeben(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void zeitausgeben() { | ||
+ | ausgabe.setText(sekunden); | ||
+ | |||
+ | } | ||
+ | |||
+ | void tasteSDrücken() { | ||
+ | if(zustand < 3) { | ||
+ | | ||
+ | } else { | ||
+ | | ||
+ | } | ||
+ | schreibeZustand(); | ||
+ | } | ||
+ | |||
+ | void tasteRDrücken() { | ||
+ | zustand = 1; | ||
+ | sekunden = 0; | ||
+ | zeitausgeben(); | ||
+ | schreibeZustand(); | ||
+ | } | ||
+ | |||
+ | void schreibeZustand() { | ||
+ | if(zustand == 1) { | ||
+ | | ||
+ | } else if(zustand == 2) { | ||
+ | | ||
+ | } else if(zustand == 3) { | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Aufgabe 4: Stoppuhr mit Zehntelsekundenanzeige und Zwischenzeitmessung ===== | ||
+ | Jetzt bist Du dran! Erweitere das Stoppuhr-Programm folgendermaßen: | ||
+ | * Die Stoppuhr soll die verstrichene Zeit in Sekunden und Zehntelsekunden anzeigen. Die Anzeige 16:8 bedeutet also z.B. 16 s und 8 Zehntelsekunden. | ||
+ | * Die Stoppuhr soll über eine Funktion zur Zwischenzeitanzeige verfügen, die mit der Taste z bedient wird. Details dazu kannst Du [[: | ||
+ | |||
+ | Damit Du möglichst gut zurechtkommst, | ||
+ | |||
+ | - Benenne das Attribut '' | ||
+ | - Ändere die Methode '' | ||
+ | - Ändere die Methode '' | ||
+ | - Teste Dein Programm! | ||
+ | - Schau' Dir das [[: | ||
+ | - Schreibe die Methode '' | ||
+ | - Obwohl auf den blauen Pfeilen auch vom Drücken der Tasten s und r die Rede ist, müssen die Methoden '' | ||
+ | - Teste Dein Programm abermals! | ||
+ | - Erweitere die Methode '' | ||
+ | - Erweitere die Methode '' | ||
+ | - Teste Dein Programm! | ||
+ | - Mach einen Rechtsklick auf den Dateinamen Deines Programms und wähle im Kontextmenü "Als Hausaufgabe markieren" | ||
+ | - Fertig! | ||
- | [[.mikrowelle:loesung: | + | [[.zehntelsekundenloesung:start|Hier geht's zur Lösung |
states/zut_to_java/start.txt · Zuletzt geändert: 2021/12/29 11:29 von 127.0.0.1