Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
schule:klassen:2019:10abc:zustandsdiagramme [2020/01/05 17:19]
martin [Zustandsdiagramm]
schule:klassen:2019:10abc:zustandsdiagramme [2020/01/05 17:31]
martin [Umsetzung als Computerprogramm:]
Zeile 7: Zeile 7:
  
 ==== Zustandsdiagramm ==== ==== Zustandsdiagramm ====
-{{:​schule:​klassen:​2019:​10abc:​pasted:​20200105-171717.png?​500}}+{{:​schule:​klassen:​2019:​10abc:​pasted:​20200105-171717.png?​700}}
  
 ==== Umsetzung als Computerprogramm:​ ==== ==== Umsetzung als Computerprogramm:​ ====
Zeile 96: Zeile 96:
  
 </​code>​ </​code>​
 +
 +===== Aufgabe: Zwischenstopp-Taste =====
 +Die Stoppuhr erhält eine weitere Taste Z („Zwischenzeit“),​ mit der man die Anzeige anhalten kann, während die Uhr im Hintergrund weiterläuft. Erweitere sowohl das Zustandsdiagramm (mit Bleistift) als auch das Programm entsprechend!
 +
 +{{:​schule:​klassen:​2019:​10abc:​pasted:​20200105-172537.png?​600}}
 +
 +<code java>
 +Uhr u = new Uhr();
 +
 +// Die Timer-Klasse führt die Methode run des Objekts u
 +// alle 1000 ms immer wieder aus:
 +Timer.repeat(u,​ 1000); ​
 +
 +
 +public class Uhr implements Runnable {
 +   
 +   int zustand = 1;
 +   int sekunden = 0;
 +   int minuten = 0;
 +
 +   ​public void drückeZ() {
 +      ​
 +      if(zustand == 2) {
 +         ​zustand = 4;
 +         ​return;​
 +      }
 +      ​
 +      if(zustand == 4) {
 +         ​zustand = 2;
 +         ​return;​
 +      }
 +
 +      ausgabe();
 +
 +   }
 +   
 +
 +   ​public void drückeS() {
 +      ​
 +      if(zustand == 1) {
 +         ​zustand = 2;
 +         // Uhr starten
 +         ​return;​
 +      }
 +
 +      if(zustand == 2) {
 +         
 +         ​zustand = 3;
 +         // Zwischenstopp
 +         ​return;​
 +
 +      }
 +
 +      if(zustand == 3) {
 +         ​zustand = 2;
 +         // wieder starten
 +         ​return;​
 +      }
 +
 +      if(zustand == 4) {
 +         ​zustand = 2;
 +         ​return;​
 +      }
 +
 +      ausgabe();
 +
 +   }
 +   
 +   ​public void drückeR() {
 +
 +      zustand = 1;
 +      // reset
 +      sekunden = 0;
 +      minuten = 0;
 +
 +      ausgabe();
 +      return;
 +      ​
 +   }
 +   
 +   ​public void run() {
 +      ​
 +      if(zustand == 2 || zustand == 4) {
 +         
 +         ​sekunden++;​
 +
 +         ​if(sekunden == 60) {
 +            minuten++;
 +            sekunden = 0;
 +         }
 +
 +      }
 +
 +      ausgabe();
 +
 +   }
 +
 +   ​public void ausgabe() {
 +      if(zustand != 4) { 
 +         ​System.clearScreen();​
 +         ​System.out.println(minuten + " : " + sekunden);
 +      }
 +   }
 +
 +}
 +
 +</​code>​
 +
Drucken/exportieren
QR-Code
QR-Code schule:klassen:2019:10abc:zustandsdiagramme (erstellt für aktuelle Seite)