Prof. Dr. Franz Schweiggert Abteilung Angewandte Informationsverarbeitung 30. Oktober 2001
Christian Ehrhardt Blatt 2


Uni Logo



Allgemeine Informatik 3 (WS 2001/2002)


Abgabetermin 6. November 2001 vor den Übungen

Antiquarisches (5 Punkte)

Leider hat sich der Computer Ihres Übungsleiters einen ansteckenden Virus eingefangen. Daher mußte beim Erstellen dieses Übungsblattes auf eine etwas betagtere Schreibmaschine zurückgegriffen werden. Wie einige von Ihnen vielleicht wissen, besitzt eine Schreibmaschine einen beweglichen Wagen auf dem eine Walze zum Transport des Papiers angebracht ist. Zusätzlich kann der Wagen auch noch angehoben und wieder abgesenkt werden. Dies hat auf die tatsächlich gedruckten Zeichen die gleiche Wirkung wie heute die Capslock Taste.
Erstaunlicher Weise ist die verwendete Schreibmaschine bereits in der Lage, die gedrückten Tasten elektronisch aufzuzeichnen. Ihre Aufgabe ist es, ein Programm zu schreiben, das diese aufgezeichneten Daten in lesbaren Text konvertiert.
Jedes Mal, wenn eine Taste gedrückt wird, sendet die Schreibmaschine einen Tastencode bestehend aus 5 Bits (das höherwertige Bit wird zuerst gesendet). Der Zusammenhang zwischen Tastencodes und gedruckten Zeichen ist wie folgt:



Tastencode Angehoben Nicht angehoben
0 - 25 A - Z a - z
26 Doppelpunkt (:) Punkt (.)
27 Strichpunkt (;) Komma (,)
28 Plus (+) Minus (-)
29 Stern (*) Schrägstrich (/)
30 kein Wirkung Anheben
31 Anhebung beenden keine Wirkung



Die Tasten 30 und 31 dienen dazu, den Wagen anzuheben bzw. abzusenken. Diese Operationen sind permanent, d.h. nachdem die Taste 30 betätigt wurde, bleibt der Wagen so lange angehoben, bis die Taste 31 betätigt wird.
Ihr Programm soll eine Bitfolge (repräsentiert durch eine Folge von Nullen und Einsen), die von der Standardeingabe gelesen wird, in Text konvertieren. Zwischen zwei Bits (nicht nur zwischen zwei Zeichen) können beliebig viele Leerzeichen und Newlines stehen, die ignoriert werden sollen. Sie können davon ausgehen, daß die Länge einer ununterbrochene Folge von Bits nicht größer als 80 Zeichen ist und daß die Eingabe nur Nullen, Einsen, Leerzeichen und Newlines enthält. Die Eingabe:

         1111010100011
	 01 11111 00   00100100 001100010001
	 000 10010 10011 0010010001 10011
sollte zu der Ausgabe
         UNbegeistert
führen.

Und zurück (5 Punkte)

Um Ihr Werk gleich zu testen, schreiben Sie ein zweites Programm, das die Konvertierung in die umgekehrte Richtung vornimmt. Ihr Übungsleiter hofft, daß es damit möglich wird, die Schreibmaschine als eine Art einfachen Drucker zu verwenden.
Bei der Ausgabe sollten die Tastencodes zum Anheben und Absenken des Wagens nicht unnötig verwendet werden. Die Bits in der Ausgabe sollen sinnvoll gruppiert werden, und eine Zeile sollte nicht länger als ca. 70 Zeichen sein.


Hinweis: Für beide Aufgaben stehen Eingabedateien zur Verfügung mit denen Sie Ihre Programme testen können. Bei der zweiten Aufgabe empfiehlt es sich, bei der Ausgabe nach jeweils 12 Bytes (60 Bits) eine neue Zeile zu beginnen.

Hinweis: Die in den Übungen kurz angesprochene Funktion iswhite heißt in Wirklichkeit isspace.



Christian Ehrhardt 2001-10-30