Prof. Franz Schweiggert Abteilung Angewandte Informationsverarbeitung 29. Oktober 2004
Christian Ehrhardt Blatt 2


Uni Logo



Allgemeine Informatik 3 (WS 2004/2005)


Abgabetermin 9.11.2004

Wann werd' ich Millionär? (5 Punkte)

Auf ein Sparbuch werden 1000 EUR einbezahlt. Diese werden jährlich mit 2% verzinst, die Zinsen werden auf das Sparbuch gutgeschrieben. Schreibt ein Programm, das ausgibt, wie hoch das Guthaben nach 1, 2, 3, ... Jahren ist. Die Ausgabe soll so lange fortgesetzt werden, bis ein Guthaben von einer Million EURO erreicht ist. Erweitert das Programm anschließend so, daß das Startguthaben und der Zinssatz von der Standardeingabe gelesen werden.

Caesar-Verschlüsselung (5 Punkte)

Caesar soll nahezu seine gesamt Korrespondenz verschlüsselt haben. Dazu kam ein Verfahren zum Einsatz, bei dem sämtliche Buchstaben im Alphabet um $k$ Zeichen verschoben wurden. Wäre also z.B. $k = 3$, dann würde sich folgende Tabelle ergeben:
Original A B C D E F $\dots$ U V W X Y Z
Verschlüsselt D E F G H I $\dots$ X Y Z A B C
Für Kleinbuchstaben gilt die Ersetzung natürlich analog, alle anderen Zeichen bleiben unverändert.
Eure Aufgabe ist es, ein kleines Programm zu schreiben, das für einen (mit Hilfe eines Makros) fest vorgegebenen Schlüssel diese Verschlüsselung an einem gegebenen Text durchführt. Der Text soll von der Standardeingabe gelesen werden, der verschlüsselte Text wird auf die Standardausgabe geschrieben.
Wie muß das Programm modifiziert werden, um verschlüsselte Texte wieder entschlüsseln zu können?
Hinweis: Mit ASCII-Zeichen (Buchstaben) kann in C genau so gerechnet werden, wie in Modula oder Oberon mit den entsprechenden ASCII-Codes. Jedes Zeichen entspricht dabei beim Rechnen direkt seinem ASCII-Code. Das bedeutet, daß eine Konvertierung, wie sie die Funktionen CHR bzw. ORD in Oberon oder Modula vornehmen, nicht notwendig ist.



Christian Ehrhardt 2004-10-29