Übersicht

 => Nummernanzeige +
 => time-Modul =
 => Digitaluhr
 => Beispiele
 => Aufgaben

Nummernanzeige

Die Klasse Nummernanzeige solltest du beim letzten Mal entwerfen. Hier ein mögliches UML-Diagramm:

Zur Dokumentation vergleiche die Datei Nummernanzeige.html. Von dieser Klasse hängt die Klasse Uhrenanzeige ab, deshalb der gestrichelte Pfeil im folgenden Diagramm.

UML-Diagramm Digitaluhr

Damit wir die Klasse Uhrenanzeige programmieren können, benötigen wir aber beispielsweise die momentane Uhrzeit sowie einen "Taktgeber" (Warum?). Beides liefert uns das time-Modul.

<<<

time-Modul

Das time-Modul bietet unterschiedliche Funktionen zur Manipulation von Zeit-Werten an. Eine Beispielsitzung:

>>> import time
>>> dir(time)
['__doc__', '__name__', 'accept2dyear', 'altzone', 'asctime',
'clock', 'ctime', 'daylight', 'gmtime', 'localtime', 'mktime',
'sleep', 'strftime', 'strptime', 'struct_time', 'time',
'timezone', 'tzname'] >>> time.localtime() (2005, 11, 23, 23, 8, 9, 2, 327, 0) >>> time.sleep(1) # 1 Sekunde Pause >>> time.localtime()[3] # Stunden 23 >>> time.localtime()[4] # Minuten 9 >>> time.localtime()[5] # Sekunden 51

Unser Taktgeber ist also die Methode time.sleep(). Über time.localtime() bekommen wir die aktuelle Zeit (& beispielsweise das aktuelle Datum). Die Funktion time.localtime() liefert ein sogenanntes Tupel zurück. Der Zugriff auf ein Tupel funktioniert ähnlich wie bei Zeichenketten (Wie genau?).

<<<

Digitaluhr

Unsere Digitaluhr holt sich einmal die Uhrzeit und setzt dann periodisch Sekunden, Minuten und Stunden hoch. Hierfür gibt es in der Klasse Nummernanzeige die Methode erhoehen, Benutzung: minuten.erhoehen(), falls mit folgender Vereinbarung:

minuten =  Nummernanzeige(60)

ein Objekt der Klasse Nummernanzeige erzeugt wurde. Bei der Anzeige der Uhrzeit muss man noch beachten, dass führende Nullen erst mal nicht mitausgegeben werden. Hier ein Demolauf:

01:29:58
01:29:59
01:30:00
01:30:01
01:30:02
<<<

Beispiele

findest du im Lehrer-Ordner rechts oben auf dem Desktop unter wspiegel u. s. w.:


Aufgaben

  1. Lade die Datei Nummernanzeige.py in dein Verzeichnis, studiere die Dokumentation und probiere die Klasse in IDLE aus.

  2. Importiere das time-Modul in IDLE und probiere einige der Methoden im Modul aus!

  3. Wenn du die Klasse Nummernanzeige und das time-Modul verstanden hast, wage dich an die Digitaluhr. Überlege, welche Methoden (=Aktionen) deine Uhr ausführen muss!
    Beachte: du musst für die Anzeige die Klasse Nummernanzeige benutzen!
    Tipp: Du brauchst wenigstens drei Objekte für die Anzeige von Stunden, Minuten und Sekunden :-)

  4. Erweitere deine Digitaluhr um die Anzeige von Tag, Monat und Jahr!

<<<
    W. Spiegel, E-Mail: walter.spiegel@web.de