Raku-Kurs / Grundlagen / Positionale Datentypen / Übungen / Eine Zahl schreiben

Lösung: Eine Zahl schreiben

Das folgende Programm hat ein eingebautes Array mit den Namen der Zahlen von 0 bis 20 und den Namen der Zehner: 20, 30 usw. In der Kette von bedingten Überprüfungen wird die Zahl einer der Regeln des Buchstabierens zugeordnet.

Code

my $n = @*ARGS[0];

my @names = <
    zero one two three four five six seven eight nine ten
    eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen twenty
    thirty fourty fifty sixty seventy eighty ninety >;

if $n < 20 {
    say @names[$n];
}
elsif $n % 10 { # Zweistellige nicht-runde Zahlen, z.B. 34
    say @names[$n / 10 + 18] ~ '-' ~ @names[$n % 10];
}
else { # Vielfache von 10, z.B. 50
    say @names[$n / 10 + 18];
}

🦋 Finde das Programm in der Datei spell-a-number.raku.

Beispiel

Führe das Programm ein paar Mal aus, um alle drei Zweige der ifelsifelse-Konstruktion zu überprüfen.

$ raku exercises/positionals/spell-a-number.raku 5
five

$ raku exercises/positionals/spell-a-number.raku 12
twelve

$ raku exercises/positionals/spell-a-number.raku 67
sixty-seven

$ raku exercises/positionals/spell-a-number.raku 80
eighty

Kursnavigation

Typisierte Variablen / Allomorphe   |   Assoziative Datentypen

Diese Seite wurde automatisch mit ChatGPT 4o übersetzt. Originaler englischer Text.

Übersetzungen dieser Seite: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська