begin process at 2012 05 28 07:11:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

Algorithmie chiffres romains conversion en chiffres arabes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Algorithmie chiffres romains conversion en chiffres arabes

lundi 24 janvier 2011 à 15:31:58 | Algorithmie chiffres romains conversion en chiffres arabes

jeffreynaz

Voila je débute en algo et j'aimerais savoir si un peu d'aide serait possible

voila mon problème :
CHIFFRES ROMAINS

symboles d’écriture : M pour 1000, D pour 500,C pour 100,L pour 50,X pour 10,V pour 5,I pour 1

règles d’écritures :

- un symbole n’apparaît pas plus de trois fois
- si un symbole devrait apparaître 4 fois on utilise le symbole de la valeur supérieures précédé du symbolique normal
- la valeur du nombre romain le plus grand est 3999

je dois écrire la fonction Romain qui reçoit le tableau en paramètre et un nombre entier qui doit être retourné sous forme romaine ou erreur si le nombre est plus grand que 3999
lundi 24 janvier 2011 à 16:16:25 | Re : Algorithmie chiffres romains conversion en chiffres arabes

CptPingu

Administrateur CodeS-SourceS
Réponse acceptée !
Poste ton code. Je te rappelle que l'on aide à corriger, mais que l'on ne fait pas les exercices des étudiants.

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
lundi 24 janvier 2011 à 17:32:41 | Re : Algorithmie chiffres romains conversion en chiffres arabes

jeffreynaz

a oui oui je ne suis pas la pour que l'on me fasse le boulot j'ai posté le sujet avant pour avoir le temps d tout copier

avant toute chose dans mon sujet ils conseillent d'utiliser les opérateurs div et mod mais comme je n'y comprend rien j'ai trouvé une autre technique qui je pense est un peu plus longue

donc voila mon algorithme





fonction ROMAIN_CHIFFRES (t_romain:s_romain, nombre : entier): caractères
VAR
mille,cent,dix,un : entier
i : entier

Début

si nombre > 3999
retourner ("Erreur le nombre est supérieur à 3999")
sinon
mille := nombre/1000
cent := (nombre - (mille*1000))/100
dix := (nombre - (mille*1000) - (cent*100))/10
un := nombre%10

//Ci dessus je découpe le nombre en milliers,centaines,dizaines,et unités

//Ci dessous l'algorithme affiche pas a pas les chiffres romain en traitant d'abord les milliers

Pour i de 0 à mille pas de 1
afficher ("M")
Fin Pour
Si cent/5 = 0
Afficher ("D")
cent := cent-5
Fin si

// Ici les centaines et je répète ce pour et ce if pour les dizaines et le unités

Pour i de 0 a cent pas de 1
afficher ("C")
Fin pour
Si dix/5 = 0
afficher ("L")
dix := dix - 5
Fin si
lundi 24 janvier 2011 à 18:22:51 | Re : Algorithmie chiffres romains conversion en chiffres arabes

CptPingu

Administrateur CodeS-SourceS
Réponse acceptée !
Ok, dans ce cas:

Quelques petites simplifications:

mille := nombre/1000
cent := (nombre - (mille*1000))/100
dix := (nombre - (mille*1000) - (cent*100))/10
un := nombre%10



mille := nombre / 1000
cent := (nombre % 1000) / 100
dix := (nombre % 100) / 10
un := nombre%10

Équivaut d'ailleurs à:

mille := (nombre % 10000) / 1000
cent := (nombre % 1000) / 100
dix := (nombre % 100) / 10
un := (nombre % 10) / 1

Pour i de 0 à mille pas de 1
afficher ("M")
Fin Pour


Ok.

Si cent/5 = 0
Afficher ("D")
cent := cent-5
Fin si



Ok, on peut aussi faire:
Si cent > 5
Afficher ("D")
cent := cent-5
Fin si


Pour i de 0 a cent pas de 1
afficher ("C")
Fin pour



Dans la consigne, il est dit que s'il y a 4 fois le même symbole, on prend le symbole du dessus précédé de I.
Si cent >= 4 alors
afficher("ID")
sinon
Pour i de 0 a cent pas de 1
afficher ("C")
Fin pour
fin si


En espérant t'avoir aidé. Le mieux serait de poster la version C de ce code, afin de le tester :)

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


Cette discussion est classée dans : nombre, chiffres, symbole, romains, algorithmie


Répondre à ce message

Sujets en rapport avec ce message

POUR LES PROS [ par rigadin ] Le sujet serai :2 joueurs s'affronte pour trouver la bonne combinaison et vont jouer de manière alternative pour trouver un nb de 5 chiffres compris e séparation chiffres d'un nombre [ par surfeurnet ] Quelqu'un connait-il une fonction permettant de séparer les différents chiffres d'un nombre ?par exemple avec le nombre 45623 obtenir 4,5,6,2,3 calculer la somme des chiffres d'un nombre donné - NTL et nombres ZZ [ par scelw ] Je dois faire un exercice.Sachant que c'est pour travailler avec des très grands nombres (de plusieurs millions de chiffres), il faut utiliser la clas Notation exponentielle [ par C2S ] Salut !J'aimerai ecrire des nombre sous notation scientifique (j'y arrive) par contre je veux des exposant sur 3 chiffres or apr defaut c'est sur 2 ch Programme avec Builder C++ [ par Kyzand ] j'ai un programme a faire mais je suis bloquéje le lis''Un nombre Armstrong est défini comme étant un nombre de n chiffres dont la somme des puissance Nombre d'entier d'un fichier composé de chiffres [ par ValToutCourt ] Bonjour à tous, j'ai un probléme en programmation, je dois recupérer le nombre d'entier stoké dans un fichier, ca parait bidon, mais j'ai deja tout es Code qui ne marche pas [ par darkwhite ] Salut a tous . Je suis debutant en C et j'ai commencé un programme qui converti un nombre binaire de huit chiffres en un nombres decimal le code est conversion nombre réel [ par bessouma06 ] bonjour à tousje cherche comment convertirun nombre réel  en un chaine de caractére.j'ai trouvé ce code sur ce site mais qui tien compte seulement  de Additionner les chiffres d'un nombre [ par Loonis ] Bonjour à tous, Je recherche une méthode pour additionner les chiffres d'un nombre en c++, exemple 15 : 1+5=6 Merci.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,201 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales