Compter en nombres romains
la fonction ROMAIN() transforme effectivement les nombres en chiffres romains jusqu'à 3999. Il paraîtrait que les romains n'avaient pas été plus loin dans leur méthode, ce qui fait qu'au delà de 3999, il n'y a pas d'autre nombre que les M pour les milliers.
10 152 s'écrirait ainsi MMMMMMMMMMCLII. Voici donc une fonction que j'ai nommée NBRE_ROMAIN() qui, elle, va au maximum possible des milliers.
Elle ne parle pas de millions, nombre non prévu par les romains. De même, elle compte en nombres romains inventés au moyen âge sur le principe de 4=IV au lieu de 4 =IIII comme faisaient les romains (ils étaient fadas ceux là:-))
De même 900 = CM et non DCCCC =NBRE_ROMAIN(E6;2) donnera la valeur DCCCC
=NBRE_ROMAIN(E6;1) donnera la valeur CM J'ai utilisé la méthode que voici: Pour les milliers, j'ai divisé le nombre par 1000 et pris l'entier Pour les centaines j'ai pris le nombre moins les milliers et divisé l'entier par 100 Pour les dizaines Le nombre - les milliers et les centaines divisé par 10 puis le reste.
Function NBRE_ROMAIN(NBR As Integer, Vers As Integer) 'pour les milliers MR = Int(NBR / 1000) If MR > 0 Then For I = 1 To MR TMR = TMR & "M" Next End If 'pour les centaines CR = Int((NBR - (MR * 1000)) / 100) If Vers = 1 And CR >= 9 Then TCR = "CM" End If If Vers <> 1 And CR >= 9 Then TCR = "DCCCC" End If If CR >= 5 And CR < 9 Then For K = 6 To CR C = "C" & C Next TCR = "D" & C End If If CR >= 4 And CR < 5 Then TCR = "CD" End If If CR > 0 And CR < 4 Then For J = 1 To CR TCR = TCR & "C" Next End If 'pour Les dizaines DR = Int((NBR - ((MR * 1000) + (CR * 100))) / 10) If DR >= 9 Then TDR = "XC" End If If DR >= 5 And DR < 9 Then For L = 6 To DR d = d & "X" Next TDR = "L" & d End If If DR >= 4 And DR < 5 Then TDR = "XL" End If If DR < 4 Then For L = 1 To DR TDR = TDR & "X" Next End If 'pour les unités UR = NBR - ((MR * 1000) + (CR * 100) + (DR * 10)) If Vers = 1 And UR >= 9 Then TUR = "IX" End If If Vers <> 1 And UR >= 9 Then TUR = "VIIII" End If If UR >= 5 And UR < 9 Then For L = 6 To UR U = U & "I" Next TUR = "V" & U End If If UR >= 4 And UR < 5 Then TUR = "IV" End If If UR < 4 Then For U = 1 To UR TUR = TUR & "I" Next End If NBRE_ROMAIN = TMR & TCR & TDR & TUR End Function
Auteur : Laurent Daures
Mots clefs associés à cette page : fonction, nombre, romain
- Vous devez vous identifier ou créer un compte pour écrire des commentaires
