|
5. Aufgabe im Wettbewerb 03/04
März 2004 | Informatik
Messwertkomprimierung
Ein elektronisches physikalisches System nimmt kontinuierlich eine
Reihe von Messungen vor und speichert diese in auf einem angeschlossenen
Rechner in einer ASCII-Datei ab. Das physikalische System wird durch
ein PHP-Skript simuliert, das ASCII-Dateien ausgibt. Solche Datenreihen
können durch Aufruf der Links Datenreiche1
bzw. (zum Testen mit kleineren Datenreihen) Datenreiche2
aus dem Internet beliebig oft erzeugt und heruntergeladen werden.
Jede so erzeugte Datei enthält zwischen ein und zehn Messreihen,
die alle von ähnlicher Gestalt sind: Nach einem kurzen Kopf
folgen zwischen 10 und 5000 Datenreihen (manchmal wird eine Warnung
angezeigt). Da am Tag Tausende solcher Datensätze anfallen
und gespeichert werden müssen, soll dies komprimiert geschehen.
Aufgabe
- Entwickelt ein unter Windows oder Linux lauffähiges Programm
oder Skript, das eine von einem der obigen Skripte erzeugte Datei
einliest und als Ausgabe eine neue, möglichst kleine komprimierte
Datei erzeugt (diese wird natürlich keine "menschenlesbare"
Textdatei mehr sein).
- Entwickelt ein zweites Programm oder erweitert das erste so,
dass es aus einer beliebigen so komprimierten Datei die ursprüngliche
Datei rekonstruiert. Die Komprimierung soll verlustfrei sein:
Die ursprüngliche Datei soll 1:1, d.h. auf Byteebene, aus
der komprimierten Datei wiederhergestellt werden können.
Hinweise
- Es sind alle gängigen Programmiersprachen, insbesondere
Java, C, C++, Perl... zulässig.
- Das Programm sollte als Quelltext und bei kompilierten Sprachen
zusätzlich als ausführbare Datei eingereicht werden
(bitte auf Viren prüfen!).
- Frei erhältlicher Quellcode von Dritten darf verwendet
werden, muss aber gekennzeichnet werden.
- Programme von Dritten (z.B. gzip) dürfen aufgerufen werden,
wenn diese frei erhältlich sind bzw. in einer Standard Windows
bzw. Linux-Installation enthalten sind bzw. der Lösung beigelegt
werden.
- Dem Programm sollte eine (kurze) Beschreibung beiliegen, welche
die Bedienung erklärt.
- Dem PHP-Skript erzeugt die Datenreihen mit Hilfe eines
(Pseudo-)Zufallszahlengenerators, die Daten haben keinen konkreten
physikalischen Hintergrund.
Abgabe und Lösung
Die Lösungen für diese Aufgabe (oder Rückfragen)
bitte per E-Mail
apollo13@unikik.uni-hannover.de
oder mit der Post an:
uniKIK
Universität Hannover
z.Hd. Kai Haseloh
Welfengarten 1
30167 Hannover
Einsendeschluss für diese Aufgabe ist der 2. April 2004, 23:59h
(drei Wochen Bearbeitungszeit). Auch Gruppen, welche die ersten
Aufgaben nicht gelöst haben, können noch am Wettbewerb
teilnehmen. (Die Anmeldung erfolgt dann zusammen mit der Einsendung):
- Euer Teamname (hier ist Kreativität gefordert)
- Die Namen aller Mitglieder des Teams (Vor- und Nachname, Klassenstufe)
- Name und E-Mail Adresse des Teamchefs (über ihn läuft
der gesamte Schriftverkehr)
- Name Eurer Schule
- Name und E-Mail-Adresse eines Lehrers als Ansprechpartner an
Eurer Schule
|
|
|