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 : 9083
Catégorie(s) : Maths, Algorithme
Langages dispo pour ce code :
- VB6, VBA
- Tcl
- Python
- Fortran
- Voir tous les langages pour ce code snippet



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....