Algorithmus der 4. Woche
Zahlen auf Deutsch aussprechen
Dies ist ein Beitrag zur Initiative Algorithmus der Woche des Fakultätentags Informatik.
Zum entwickelten Algorithmus ein paar Anmerkungen und Ergänzungen:
- In Pascal sind Zahldarstellungen (wie in den meisten anderen Sprachen) beschränkt; auch das Stringhandling ist wenig komfortabel. Ich habe daher das Programm in der für diese Zwecke wesentlich günstigeren Skriptsprache Ruby verfasst. Die Folien zum Beitrag verwenden ausschließlich Ruby-Sprachmittel.
- Wer das Programm ZahlenDeutsch.rb ausprobieren möchte, sollte sich den Ruby-one-click-installer (und dazu am besten noch die Mondrian-IDE) herunterladen.
- Die Aufgabe, Textdarstellungen zu Zahlen zu erzeugen, findet sich auch in Lehrbüchern, z.B. in der Java- Einführungs-CD ProgrammLive von D. Gries und P. Gries, die im Wiley-Verlag erschienen ist. Auch der Abschnitt 5.1 des Haskell-Lehrbuchs Introduction to Functional Programming using Haskell von R. Bird beschreibt eine Lösung (für englische Zahldarstellungen).
- Die Aufgabe, Textdarstellungen zu einer Zahl zu bestimmen, ist jedermann geläufig, ebenso der Algorithmus zu ihrer Lösung. Bei der Analyse erfordern die Eigenheiten der deutschen Sprache besondere Sorgfalt.
- Das Haskell-Programm von Bird demonstriert eine funktionale Herangehensweise und benötigt zur Konversion von Zahlen unter einer Million bereits neun kompliziert aufeinander abgestimmte Funktionen. Wenn man die Lösung in gleicher Weise fortführen würde, ergäben sich je Dreiergruppe drei weitere Funktionen. Im Unterschied dazu läßt sich unsere Lösung sehr leicht auf immer größere Zahlenbereiche erweitern: je neuer Dreiergruppe braucht man nur jeweils einen weiteren Eintrag in den Arrays singular und plural.
- Unser Programm läßt sich in verschiedener Weise ausbauen: Relativ einfach ist es, den Zahlenbereich auf die Null und die negativen Zahlen auszudehnen. Auch die Erweiterung des Zahlbereichs bis hin zu Oktillionen sollte keine Probleme machen. Dagegen wird Übertragung des Programms auf andere Sprachen (z.B. französisch oder spanisch) umso schwieriger, je weiter die Sprache von der Struktur des Deutschen entfernt ist.
Viel Spaß beim Experimentieren wünscht Lothar Schmitz!