Archiv verlassen und diese Seite im Standarddesign anzeigen : Zahlen in Zahlwörter umwandeln
GChaufen
05.10.2003, 15:50
Hiho,
ich habe mir über folgendes Problem Gedanken gemacht:
Wie könnte man in Turbo Pascal ein Programm schreiben, dass Zahlen in Zahlworte umwandelt? (Also z.b. "125" in "einhundertfünfundzwanzig")
Mir geht es da jetzt nicht um einen kompletten Quelltext, sondern mehr um einen Ansatz.
Bye,
der hAufen
Diogenes
05.10.2003, 20:18
Wegen Allgemeiner Art zu "Algorithmen" verschoben, aber sonst ... Respekt.
Diogenes
05.10.2003, 20:34
So, weiter.
Ich würde das tun, was die Sprache auch tut: in Dreiergruppen einteilen. Die Gruppe ermittelt man, indem man den Integer-Rest einer Division durch 3 vom maximalen Stellenindex nimmt, der wiederum durch Integer( lg N) ermittelt wird (Pascal: Trunc( log( N)/Log(10)) div 3), wobei lg natürlich der 10er-Logarithmus ist und N die Zahl.
Gruppenindex 0: kein Suffix;
Index 1: "Tausend";
2: "Millionen";
3: "Milliarden" usw.
Erreichen durch Stringarray, wibei Gruppenindex den String indiziert.
Innerhalb einer Dreiergruppe den Huderter mit "hundert" suffigieren, dann die Einerstelle kommen lassen, plus "und" plus Zehnerstelle. Eventuelle Auslassungen und Ausnahmen durch nichtvorhandensein (Stelle = 0). Ein 2-dimensionales Arrray aus Strings geht da vermutlich am einfachsten.
Das Dezimalkomma, sofern möglich heißt natürlich "Komma".
Darauf folgen die Ziffern, z.B, ..."Komma-eins-vier-eins-fünf-neun-drei-sechs" etc. ad infinitum et nauseam.
GChaufen
15.10.2003, 15:18
Hiho
Mhm, da ich ja nun nicht der ultimative Freak bin, hab ich das wahrscheinlich noch nicht ganz so gerallt.. (achso: ich wollte dann so Zahlen bis zu 5 Stellen nehmen - wieviele Gruppen bräuchte man dann und die teilstrings müssen dann schon in den Arrays drin stehen, ja?!?)...
Bye,
der hAufen
Diogenes
18.10.2003, 16:41
Ja, die Teilzahlen sollten schon in Arrays drinstehen. Zugriff über die Ziffern als Index, ganz einfach.
Gruppen brauchst Du 2: Die niedrigste Gruppe ohne Suffix und die nächsthöhere, mit dem Suffix "tausend".
Klingelt's langsam?(<- nicht bös gemeint: Aber wenn man's nicht vorgekaut bekommt, sondern die hiesige Hilfe benutzt, um selbst draufzukommen, sitzt es nachher besser. Das weiß ich aus Erfahrung.)
GChaufen
18.10.2003, 17:57
mhm, müsste ich dann nicht mit den stellen der Zahl arbeiten, also positionen oder so.. aber das ginge doch nur bei strings.. *grg*
hAufen
GChaufen
19.10.2003, 01:04
Ach 's hat sich erledigt, habs jetzt gepackt, zwar auf umständlichen Wegen, aber es läuft,
vielen Dank noch mal!
hAufen
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.