Wichtig bei dieser Aufgabe war, daß das Konstruktionsprinzip
vernünftig und schlüssig erläutert wurde.
Anschließend sollten einige Beispiele zeigen, wie die
Wortstücke für Einer, Zehner usw. aneinandergesetzt werden. Nur Beispiele
mit Zahlen von 1 bis 20 waren zu wenig.
Die übliche Vorgehensweise ist folgende: (übernommen aus
einer Einsendung)
„Die maximal sechsstellige eingegebene Zahl wird zunächst
in zwei dreistellige Komponenten zerlegt, welche nacheinander in gleicher
Weise bearbeitet werden. Für jeden dieser Blöcke wird nun überprüft, ob
Hunderter, Zehner und Einer vorhanden sind und das Z ahlwort entsprechend
zusammengesetzt. Bei der Übersetzung des zweiten Blocks tritt allerdings
ein Umstand auf, der besonderer Berücksichtigung bedarf: Es heißt nämlich
„eins“ und nicht „ein“, wie z. B. bei „einhundert“ oder „einundzwanzig“.
Deshalb wird na ch Umwandlung des zweiten Blocks der Buchstabe
„s“ angefügt, wenn die Zahl der Einer gleich 1 und die Zahl der Zehner
gleich 0 war.“
Eine sehr schöne formale Darstellung lieferte Tiark Rompf:
(sorry, die fehlt noch, denn unser Scanner ist noch nicht einsatzbereit)
Wegen der vielen Ausnahmen lohnt es sich, für die Zahlen von 1 bis 20 und die Zehner Konstanten zu vereinbaren. Sonst sind Sonderbehandlungen für 11, 12, 16, 17, 20, 30, 60 und 70 nötig. Oder man nimmt für 7 generell „sieb“, dann muß man aber bei der Einer - und der Hunderter-Stelle ein „en“ anhängen.
Es war erstaunlich, wie viele verschiedene Schreibweisen
es für „Dreißig“ gibt ...
Die gerade erwähnten Sonderfälle (16, 17, 30, 60 und
70) wurden sehr häufig übersehen.
Auch mit der „eins“ gab es Probleme, entweder hieß es
„Einhunderteinstausend“ oder „Einhundertein“.
Ein Fehler in einer Ziffer (etwa „siebhundert“ oder „dreizig“)
führte zu einem Punkt Abzug.
Bei der Umwandlung leistet die MOD-Funktion (modulo) gute Dienste. Offenbar ist sie nicht allen Teilnehmern bekannt, daher hier ganz kurz: MOD liefert den Rest bei ganzzahliger Division, also z. B. 735 mod 100 = 35.
Aufgabenstellung
vorherige Aufgabe vorherige
Lösung
nächste Aufgabe nächste
Lösung
zurück