Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONVERTIR DES CHIFFRES ROMAINS EN CHIFFRES ARABES


Information sur la source

Catégorie :Maths Classé sous : conversion, chiffre, romain, arabe, mathématique Niveau : Débutant Date de création : 28/08/2005 Date de mise à jour : 28/08/2005 21:19:55 Vu / téléchargé: 23 747 / 659

Note :
8 / 10 - par 5 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
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

  • 'Voir le fichier zip
'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.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

28 août 2005 21:19:55 :
Orthographe.

Commentaires et avis

signaler à un administrateur
Commentaire de Cacophrene le 28/08/2005 21:32:37

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

signaler à un administrateur
Commentaire de Cacophrene le 28/08/2005 21:33:44

Re !

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

Cacophrène

signaler à un administrateur
Commentaire de siadli le 28/08/2005 22:50:45

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.

signaler à un administrateur
Commentaire de EBArtSoft le 29/08/2005 08:48:57 administrateur CS

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

signaler à un administrateur
Commentaire de Cacophrene le 29/08/2005 11:02:51

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

signaler à un administrateur
Commentaire de zouzoudu76 le 31/03/2006 16:51:18

Salut, je viens de lire le programme je suis pas tres forte en vba, j'aimerai traduire ton prog en C, quelqu'un pourrai m'expliquer ce que fais cette ligne de commande "Mid(sRom, iCompt + 1, 1)" et comment je pourrais le traduire en C.
Merci beaucoup

signaler à un administrateur
Commentaire de jean_marc_n2 le 26/05/2006 13:57:30

Hello,

L'utilisation de iCompt et l'effet de bord sur cette variable entre FConvRomAr() et FCalc() est franchement une abomination, sachant qu'en plus (ajouter l'insulte à l'offense) iCompt est un indice de boucle! Un indice de boucle ne devrait être utilisé que pour compter, on ne doit en toute rigueur pas s'en servir pour autre chose. Mais alors le faire modifier par une fonction extérieure :-( Une solution toute simple est de passer un paramètre Byref de plus à FCalc.

Note: l'emploi systématique de Byval et Byref devant les noms de variables dans les subs et fonctions est conseillé, car ceci permet de montrer l'intention du programmeur. Ca contribue à une meilleur lisibilité du code.

A part ça, bonne idée en soi, même si l'implémentation me laisse dubitatif.


signaler à un administrateur
Commentaire de NICK123 le 30/11/2007 18:55:58

hi,
Ces chiffre sont internationnal !!!!
et pour les afficher en arabe il faut changer la langue en arabe !!!!

Cordialement.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Fonction de conversion NumToText en Arabe ou bien des sites vb en arabe [ par brahim ] Bonjour,Je cherche la fonction qui convertie des chiffres en texteen arabe sinon j'aimerais bien que l'on m'oriente versdes sites visual basic en arab Conversion de chiffre vers les lettres [ par malcom78 ] Bonjour à tous, J'ai un projet pour ceux qui veulent se prendre un peu la tête en vba , Mais aussi je prends la tete dessus ne vous inquiètez pas mais conversion de texte en chiffre [ par ffaabbss ] bonjour,je vais etre bref c'est plus simple. J'aimerai faire ceci:dim variable as stringvariable = 56ab3cText5 = tabS1(Mid(variable, 5, 1))ceci pour v Ascii conversion chiffre <=> lettre [ par deetsrider ] Je voudrais rajouter +1 au code ascii de chaque lettre tapée dans un textbox puis le reinscrire dans l autre textbox avec son nouveau code ..."a" devi conversion chiffres du format texte en format chiffre [ par vicma ] Dans fichier .csv convertit en format .xls, les cellules reste en format texte.Je souhaiterais faire un macro pour convertir ma cellule active en chif conversion de chiffre en lettre [ par zober ] Salut tt le mondeVoila, je programme sous access une application pour gerer les ventes de produits d'une soci&#233;t&#233;. Je veux convertir dans l'e conversion plutot difficile [ par vinceRR ] Bonjour a tous , Voila , j'aurai besoin d'un procédé simple , un programme serait encore mieux pour pouvoir convertir un chiffre décimal en hexadécima conversion chiffre en lettre [ par aakpa ] Bonjour,Dans une application VB6, je voudrais avois la possibilité de convertir automatiquement les nombres saisis en lettre. Exemple 18 en dix huit.M chiffre romain [ par biclou ] pouvez vous me dire comment s'écrie 500 010 en chiffre romain merci d'avance . césar CONVERSION CHIFFRE LETTRE MONNAIE LIVRE PENCE [ par florianelle ]


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,874 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.