jeffreynaz
Messages postés32Date d'inscriptionlundi 24 janvier 2011StatutMembreDernière intervention26 octobre 2011
-
24 janv. 2011 à 15:31
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023
-
24 janv. 2011 à 18:22
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
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023124 24 janv. 2011 à 16:16
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 http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
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 http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
jeffreynaz
Messages postés32Date d'inscriptionlundi 24 janvier 2011StatutMembreDernière intervention26 octobre 2011 24 janv. 2011 à 17:32
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