Wie programmiert man Zahlen in Wörter in Pascal?

3 Antworten

naja du teillst in 2 dreiergruppen. also wenn die zahl weniger als 4 ziffern hat gibts nur eine dreiergruppe

hat sie zwei dreiergruppen steht "tausend" zwischen diesen.

dann betrachte nur noch die zahlen 000 bis 999 (je gruppe)

innerhalb dieser teilst du weiter in die hunderter zahl und die restliche 2-stellige zahl. Du ergänst die Zahl also mit führenden Nullen wenn diese nicht 3 stellen hat.

nach den hundertern wenn nicht 0 kommt das wort "hundert"

nun nur noch 00 bis 99 in wörter verwandelt. das kannst du zwar stupide mit case 00,01,02,03,....99 aber wenn du überlegst gibts da auch noch paar etwas kompliziertere regeln ums kürzer zu machen

null ist die ausnahme ... also wenn die eingabe "0"ist kommt "null" raus. bei 1000 kommt nicht eintausendnull raus, sondern dann fällt die zweite gruppe weg.


verreisterNutzer  20.06.2022, 16:32

Weißt du wie man diese Regeln nennt?

0
iqKleinerDrache  20.06.2022, 16:35
@verreisterNutzer

nein, aber du weisst ja dass wir im deutschen bis 12 extra namen haben. dann natürlich für 20, 30, 40, 50, 60, 70, 80 ,90. die zahlen dazwichen lassen sich jedoch durch zusammensetzen von vorherigen rausbringen 13 = 3 10. 21 = 1 und 20. (etwas abgeandelt nicht einsundzwanzig sondern einundzwanzig)

0

Bau es dir zusammen: 12 ist ein Array eins bis zwölf. Ab dann weißen die weiteren zahlen Gemeinsamkeiten auf. 13 23 24 drei-zehnt drei-undzwanzig drei-unddreißig und immer so weiter. Die drei kommt also häufiger vor. Kann man also zusammenbauen. Nun die 100er Reihe. 333

Hier nehme man die Zahl drei setze das Wort hindert dahinter, fügt drei wieder an und setzt ein "und", setzt die dreißig. So kann man das immer weiter machen, ohne wirklich jede einzelne Zahl vor zu schreiben

Spontan würde mir da einfallen mit Arrays zu arbeiten und die Zahlenwörter damit zusammen zu setzen bei der Ausgabe.