Les Snippets

Connexion

Conversion Nombre Arabe en Nombre Romain

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 27/08/2010 08:58:04 et initié par Renfield [Liste]
Vue : 5757
Catégorie(s) : Maths, Algorithme
Langages dispo pour ce code :
- VB6, VBA
- Tcl
- Python



Langage : VB6 , VBA
Date ajout : 27/08/2010
Posté par Renfield [Liste]
Public Function ToRoman(ByVal vnNumber As Integer) As String    Do While vnNumber >= 1000        ToRoman = ToRoman & "M"        vnNumber = vnNumber - 1000    Loop    If vnNumber >= 900 Then        ToRoman = ToRoman & "CM"        vnNumber = vnNumber - 900    End If    If vnNumber >= 500 Then        ToRoman = ToRoman & "D"        vnNumber = vnNumber - 500    ElseIf vnNumber >= 400 Then        ToRoman = ToRoman & "CD"        vnNumber = vnNumber - 400    End If    Do While vnNumber >= 100        ToRoman = ToRoman & "C"        vnNumber = vnNumber - 100    Loop    If vnNumber >= 90 Then        ToRoman = ToRoman & "XC"        vnNumber = vnNumber - 90    End If    If vnNumber >= 50 Then        ToRoman = ToRoman & "L"        vnNumber = vnNumber - 50    ElseIf vnNumber >= 40 Then        ToRoman = ToRoman & "XL"        vnNumber = vnNumber - 40    End If    Do While vnNumber >= 10        ToRoman = ToRoman & "X"        vnNumber = vnNumber - 10    Loop    If vnNumber = 9 Then        ToRoman = ToRoman & "IX"    Else        If vnNumber >= 5 Then            ToRoman = ToRoman & "V"            vnNumber = vnNumber - 5        End If        If vnNumber = 4 Then            ToRoman = ToRoman & "IV"        Else            Do While vnNumber >= 1                ToRoman = ToRoman & "I"                vnNumber = vnNumber - 1            Loop        End If    End If End Function
By Renfield
Langage : Tcl
Date ajout : 06/11/2010
Posté par gersoo [Liste]

package require Tcl 8.5 namespace path ::tcl::mathop

# Chiffre Arabe vers Romain

proc romain {n} {      set resultat {}      foreach {chiffre valeur} {         M 1000 CM 900 D 500 CD 400 C 100 XC 90          L 50 XL 40 X 10 IX 9 V 5 IV 4 I 1      } {         append resultat [string repeat $chiffre [/ $n $valeur]]         set n [% $n $valeur]      }      return $resultat

} # Chiffre Romain vers Arabe proc niamor {romain} {      + {*}[string map {         IV {4 } IX {9 } XL {40 } XC {90 } CD {400 } CM {900 }         I {1 } V {5 } X {10 } L {50 } C {100 } D {500 } M {1000 }      } $romain]
} puts [romain 1881] puts [niamor CCLV]
Langage : Python
Date ajout : 17/05/2011
Posté par pecten [Liste]
BASIC_ROMAN_NUMBERS = [ "M", "CM", "D", "CD", "C", "XC",
            "L", "VL", "XL", "X", "IX", "V", "IV", "I" ]
BASIC_VALUES = [ 1000, 900, 500, 400, 100, 90,
        50, 45, 40, 10, 9, 5, 4, 1 ]
def int2rom(val):
    remainder=val
    s=''
    if val<1 or val>3999: return "ERROR"
    for i in range(len(BASIC_VALUES)):
    while remainder>=BASIC_VALUES[i]:
        s+=BASIC_ROMAN_NUMBERS[i]
        remainder -= BASIC_VALUES[i]
    return s
def rom2int(s):
    index=0
    value=0
    for i in range(len(BASIC_ROMAN_NUMBERS)):
    sRom= BASIC_ROMAN_NUMBERS[i]
    lensRom=len(sRom)
    while s[index:index+lensRom]==sRom:
        value += BASIC_VALUES[i]
        index += lensRom
    if int2rom(value)!="ERROR":
    return value
    else: return "%s: ILLEGAL ROMAN NUMBER => %d?"%(s,value)
print '1492 %s' %int2rom(1492) #=> abrege: MCDXCII ok
print '1854 %s' %rom2int('MDCCCLIV') #=> 1854 ok
print '45a %s' %rom2int('VL') #45 abbrege ok
print '1911a %s' %rom2int('MCMXI') #1911 abrege ok

Remarque :
conversion nombre Arabe en romain et conversion inverse.
traite aussi le romain abrégé.

Snippets en rapport avec : Convertir, Nombre, Romain, Arabe



Codes sources en rapport avec : Convertir, Nombre, Romain, Arabe

{C / C++ / C++.NET} CONVERTISSEUR NOMBRE ARABE EN NOMBRE ROMAIN
voici un petit programme qui transcris un nombre arabe en nombre romain. explications : on vér...

{C / C++ / C++.NET} CONVERTISSEUR NOMBRE ARABE => NOMBRE ROMAIN (1 À 4999)
Convertisseur de nombre arabe en nombre romain (de 1 à 4999). Aucune bibliothèque mathématique ut...

{Visual Basic, VB6, VB.NET, VB 2005} CHIFFRE EN LETTRE FONCTION
Une petite fonction simlpe pour transformer un chiffre en lettre. Exemple: "15193" >> dix ...

{SQL} CONVERSION DE NOMBRE EN LETTRES (SQL)
Je me suis inspiré du code c# trouvé ici (http://files.codes-sources.com/fichier.aspx?id=21491&f=con...

{Delphi} DATE EN ARABE
C'est un petit programme qui convertit la date du jour en langue Arabe. La fonction intégrée conver...

{Javascript / DHTML} CONVERSION DES NOMBRES EN LETTRE
Permet de convertir des nombres(chiffres) en leur équivalent en lettre (ex: 1=un). Respecte l'accord...

{Visual Basic, VB6, VB.NET, VB 2005} CLASSE QUI PERMET DE CONVERTIR UN NOMBRE EN LETTRES
Ce code est celui d'une classe permettant de réaliser de la convertion d'une valeur numérique en le...

{Visual Basic, VB6, VB.NET, VB 2005} VBA EXCEL CONVERTIR EN NOMBRE, APPLIQUER UN FORMAT MONETAIRE OU POURCENTAGE
Convertir en nombre (format standard) ou appliquer un format de type monétaire (deux décimales sans ...

{PHP} CONVERTISSEUR CHIFFRES ARABES CHIFFRES ROMAINS ET DATE ROMAINE
Ce code est une fonction qui permet de convertir les chiffres arabes en chiffres romains... si ca pe...

{Visual Basic, VB6, VB.NET, VB 2005} TRANSFORMER UN NOMBRES EN LETTRES (TRÈS OPTIMISER)
tu lui donne un chiffre entre 1 et 999.999.999 et te le transforme en lettres....