Algorithme Convertir nombre Entier en nombre Romain

Chipinou - 29 nov. 2012 à 21:36
cptpingu Messages postés 3839 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 29 juin 2024 - 30 nov. 2012 à 11:09
Boujour,

Je suis en année préparatoire d'informatique et j'ai besoin d'assistance pour résoudre un problème algorithmique. (je n'ai aucune base de programmation)

Pour convertir 16 ( nombre entier ) en XVI ( Chiffre romain ).

Je pensais faire 2 tableaux tout d'abord

Un tableau T 1 :
X
V
I

Et un tableau T2:
10
5
1

Ensuite pour l'algorithme j'ai commencé comme sa :

Début
n : entier positif
n= 16
n div 10 = d // d: nombre de dizaine
u= n(d*10) // u: unités

Et après je suis bloqué pouvez m'aider svp ?
Car je ne vois pas comment dire tout d'abord que 10 c'est X
Et je vois pas comment continuer cet algorithme

Merci à vous

2 réponses

cptpingu Messages postés 3839 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 29 juin 2024 124
30 nov. 2012 à 11:09
Bonjour.

Tout d'abord, merci de ne pas faire de "up". D'une part, ici ça ne remonte pas le sujet, d'autre part c'est très mal vu, et tu risques de tout simplement te faire clore le sujet.
"comme sa" => "comme ça" (Comment peut-on confondre "sa" et "ça" ?)

Pour gérer la conversion Nombre -> Romain, pas besoin de tableau.
Tu n'as besoin que de: % (modulo), / (division), + (addition), des si (if) et condition tant que (while). (Après tu affiches directement ce que tu trouves, c'est bien plus simple).

Pour la méthode, en voici une facile (pas forcément la plus élégante): tu commences par les unités "Romaines" les plus grandes. Tu essaies de voir pour chaque signe romain, combien de fois tu peux caser un D, puis un L, puis un X. Une fois que tu es en dessous de X, il ne te reste qu'a associer chaque chiffre de 0 à 9 à un affichage particulier.

Quand on code, on ne fait jamais "un gros paté", c'est-à-dire que l'on code jamais tout d'un coup sans vérifier, et après on prie pour que ça fonctionne. On code petit à petit, morceau par morceau.

Typiquement, ici, tu devrais commencer par écrire une fonction qui prend un entier compris entre 0 et 9, et affiche à l'écran la conversion romaine (très simple). Une fois cette fonction faite, tu pourras la réutiliser dans ton algorithme. Mais cette fonction doit être créée et testée avant.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Rejoignez-nous