Convertir des chiffres romains en chiffres arabes

Soyez le premier à donner votre avis sur cette source.

Vue 58 449 fois - Téléchargée 1 612 fois

Description

Ce programme fait suite à une remarque d'EBArtSoft au sujet de cette "diabolique" écriture romaine... Je vous propose donc ici un petit programme destiné à convertir en chiffres arabes un nombre donné sous forme de chiffres romains. Je précise que la fonction inverse (transformer des chiffres arabes en chiffres romains) n'est pas programmée.

Comment fonctionne l'écriture romaine ?

Ce n'est pas une notation positionnelle comme l'écriture arabe. Elle utilise des symboles (je n'ai retenu que I = 1, V = 5, X = 10, L = 50, C = 100, D = 500 et M = 1000, mais il existait des notations pour de plus grandes valeurs) qui se combinent de deux manières :

1. Juxtaposition simple : par exemple XII = 10 + 1 + 1 = 12 sachant que la règle usuelle est : au plus trois (quelquefois quatre) symboles identiques juxtaposés. Par exemple "III" est acceptable, mais pas "IIIII". Pour ma part, je pourrais vous justifier cela avec une remarque qui n'est pas forcément la bonne : essayer d'aligner des bâtonnets et cherchez à partir de quelle quantité vous ne pouvez plus dire d'un coup d'oeil combien il y en a... la réponse est 4.

2. Juxtaposition par retranchement : dans XL, L est le symbole de plus forte valeur, et pourtant il est PRECEDE du symbole X. Dans ce cas, il faut effectuer L - X = 50 - 10 = 40. On remarquera qu'il y a AU PLUS un seul symbole de moindre valeur. Il est en effet inutile de noter XXL puisque XXL = XXX qui est une écriture correcte.

Voilà donc pour l'idée générale. La programmation ne pose aucune difficulté. Je n'ai pas cherché à soigner le visuel. Le code en revanche est assez largement commenté. Dernière précision, je m'arrête au symbole mille (M) car il me semble que l'utilisation qui est faite de l'écriture romaine ne justifie pas de s'attaquer aux grands nombres... Là encore, c'est très personnel !

J'ai choisi Débutant car c'est très facile (concepts et programmation), et la rubrique Maths parce qu'il est question de nombres... mais alors il ne s'agit que de mathématiques légères ;-)

Source / Exemple :


'Voir le fichier zip

Conclusion :


Comme d'habitude, si quelqu'un a une erreur à rapporter, ou quelque chose à dire, il ne faut pas hésiter.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Cacophrene
Messages postés
263
Date d'inscription
lundi 29 mars 2004
Statut
Membre
Dernière intervention
4 mars 2008
-
Salut !

Bon, il y a déjà des sources qui transforment de l'arabe vers le romain... (notamment http://www.vbfrance.com/code.aspx?id=7641 qui ressemble beaucoup à ma présentation, toute ressemblance fortuite bien entendu). En tout cas, s'il s'avère que la source fait redondance (ce qui ne semble pas être le cas, sauf si j'ai mal cherché), j'espère qu'un admin voudra bien la supprimer.

Cordialement,
Cacophrène
Cacophrene
Messages postés
263
Date d'inscription
lundi 29 mars 2004
Statut
Membre
Dernière intervention
4 mars 2008
-
Re !

Bien cherché. Je n'en ai pas trouvé. Mais n'hésitez pas à virer ma source si c'est le cas.

Cacophrène
siadli
Messages postés
15
Date d'inscription
mercredi 29 janvier 2003
Statut
Membre
Dernière intervention
25 mars 2018
-
desolé je recommence ma phrase oublier un mot.pourquoi tu la joue a la défensif, toute source du même sujet sont les bienvenus même la tienne.
cs_EBArtSoft
Messages postés
4531
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
5 -
A bah bravo... je suis obligé d'admettre le bien fondé de cette source. En plus tu explique le fonctionnement de cet algorithme "tribal" ! lol (je vais pouvoir faire des manipulation de bits en notation romaine coool ! lol)

Merci Cacophrene et à bientôt
Cacophrene
Messages postés
263
Date d'inscription
lundi 29 mars 2004
Statut
Membre
Dernière intervention
4 mars 2008
-
Salut à tous !

@Siadli
D'habitude j'évite de poster quand il y a déjà une source sur le sujet, sauf si la mienne apporte du nouveau. Or là je n'ai pas pris cette précaution, et c'est la raison pour laquelle je tiens à indiquer que si ma source fait redondance, elle devient inutile et ne présente plus d'intérêt sur VBFr (pour des choses aussi simples, on ne peut d'ailleurs même pas parler "d'approches différentes"...)

@EBArtSoft
Merci pour ton commentaire et bonne chance pour tes manips ;-)

Cordialement,
Cacophrène

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.