Console
Clique sur « Exécuter » pour lancer le programme.
Code CoddyRun
@ Fonctions de base (Unités et Dizaines)
fonction nom_unite(n)
selon n
cas 1 : retourne "un"
cas 2 : retourne "deux"
cas 3 : retourne "trois"
cas 4 : retourne "quatre"
cas 5 : retourne "cinq"
cas 6 : retourne "six"
cas 7 : retourne "sept"
cas 8 : retourne "huit"
cas 9 : retourne "neuf"
cas 10 : retourne "dix"
cas 11 : retourne "onze"
cas 12 : retourne "douze"
cas 13 : retourne "treize"
cas 14 : retourne "quatorze"
cas 15 : retourne "quinze"
cas 16 : retourne "seize"
cas 17 : retourne "dix-sept"
cas 18 : retourne "dix-huit"
cas 19 : retourne "dix-neuf"
sinon selon : retourne ""
fin selon
fin fonction
fonction nom_dizaine(n)
selon n
cas 20 : retourne "vingt"
cas 30 : retourne "trente"
cas 40 : retourne "quarante"
cas 50 : retourne "cinquante"
cas 60 : retourne "soixante"
sinon selon : retourne ""
fin selon
fin fonction
@ Logique pour les nombres inférieurs à 100
fonction convertir_dizaines(n)
si n = 0 alors
retourne ""
sinon si n < 20 alors
retourne nom_unite(n)
sinon si n < 70 alors
d est un nombre
d vaut arrondi_inferieur(n / 10) * 10
u est un nombre
u vaut n mod 10
base est un texte
base vaut nom_dizaine(d)
si u = 0 alors
retourne base
sinon si u = 1 alors
retourne base + " et un"
sinon
retourne base + "-" + nom_unite(u)
fin si
sinon si n < 80 alors
u est un nombre
u vaut n mod 10
si u = 1 alors
retourne "soixante et onze"
sinon
retourne "soixante-" + nom_unite(10 + u)
fin si
sinon si n < 90 alors
u est un nombre
u vaut n mod 10
si u = 0 alors
retourne "quatre-vingts"
sinon
retourne "quatre-vingt-" + nom_unite(u)
fin si
sinon
u est un nombre
u vaut n mod 10
retourne "quatre-vingt-" + nom_unite(10 + u)
fin si
fin fonction
@ Logique pour les centaines
fonction convertir_centaines(n)
c est un nombre
c vaut arrondi_inferieur(n / 100)
reste est un nombre
reste vaut n mod 100
res est un texte
res vaut ""
si c = 1 alors
res vaut "cent"
sinon si c > 1 alors
res vaut nom_unite(c) + " cent"
// Gestion du pluriel de 'cent' s'il n'est suivi d'aucun nombre
si reste = 0 alors
res vaut res + "s"
fin si
fin si
texte_reste est un texte
texte_reste vaut convertir_dizaines(reste)
si c = 0 alors
retourne texte_reste
sinon si reste = 0 alors
retourne res
sinon
retourne res + " " + texte_reste
fin si
fin fonction
@ Logique pour les milliers
fonction convertir_milliers(n)
milles est un nombre
milles vaut arrondi_inferieur(n / 1000)
reste_milles est un nombre
reste_milles vaut n mod 1000
res_milles est un texte
res_milles vaut ""
si milles = 1 alors
res_milles vaut "mille"
sinon si milles > 1 alors
res_milles vaut convertir_centaines(milles) + " mille"
fin si
texte_reste est un texte
texte_reste vaut convertir_centaines(reste_milles)
si milles = 0 alors
retourne texte_reste
sinon si reste_milles = 0 alors
retourne res_milles
sinon
retourne res_milles + " " + texte_reste
fin si
fin fonction
@ Logique pour les millions
fonction convertir_millions(n)
millions est un nombre
millions vaut arrondi_inferieur(n / 1000000)
reste_millions est un nombre
reste_millions vaut n mod 1000000
res_millions est un texte
res_millions vaut ""
si millions = 1 alors
res_millions vaut "un million"
sinon si millions > 1 alors
res_millions vaut convertir_centaines(millions) + " millions"
fin si
texte_reste_millions est un texte
texte_reste_millions vaut convertir_milliers(reste_millions)
si millions = 0 alors
retourne texte_reste_millions
sinon si reste_millions = 0 alors
retourne res_millions
sinon
retourne res_millions + " " + texte_reste_millions
fin si
fin fonction
@ Logique générale pour les milliards (jusqu'à 999 999 999 999)
fonction convertir_nombre_complet(n)
si n = 0 alors
retourne "zéro"
fin si
milliards est un nombre
milliards vaut arrondi_inferieur(n / 1000000000)
reste_milliards est un nombre
reste_milliards vaut n mod 1000000000
res_milliards est un texte
res_milliards vaut ""
si milliards = 1 alors
res_milliards vaut "un milliard"
sinon si milliards > 1 alors
res_milliards vaut convertir_centaines(milliards) + " milliards"
fin si
texte_reste_milliards est un texte
texte_reste_milliards vaut convertir_millions(reste_milliards)
si milliards = 0 alors
retourne texte_reste_milliards
sinon si reste_milliards = 0 alors
retourne res_milliards
sinon
retourne res_milliards + " " + texte_reste_milliards
fin si
fin fonction
@ Programme principal
saisie est un nombre
continuer est un booléen
continuer vaut vrai
affiche "=== CONVERTISSEUR DE NOMBRES EN LETTRES ==="
tant que continuer
demande "Entrez un nombre entre 0 et 999999999999 (ou -1 pour quitter) : " dans saisie
si saisie = -1 alors
affiche "Au revoir !"
continuer vaut faux
arrête
fin si
si saisie < 0 ou saisie > 999999999999 alors
affiche "Erreur : Le nombre doit être compris entre 0 et 999 999 999 999."
sinon
resultat est un texte
resultat vaut convertir_nombre_complet(saisie)
affiche convertir_texte(saisie) + " s'écrit : " + resultat
affiche "---------------------------------------------------"
fin si
fin tant que