je cherche un programme qui convertit les chiffres arabes en nb romani et inversement en langage C ...
Merci de maider les gars
je cherche un programme qui convertit les chiffres arabes en nb romani et inversement en langage C ...
Merci de maider les gars
ça doit pas être très difficile dans le sens arabes->romains
mais dans l'autre sens il faut faire de l'analyse de chaînes de caractères
C'est assez simple à faire. J'ai ça en Pascal sur un autre PC. Mais raisonne sur une feuille de papier, tu trouveras tout seul !
A+
j'ai l'impression que OLI57 (nouveau venu) est un étudiant à qui un prof a demandé un exercice et qui veut qu'on fasse son travail à sa place
On dirait bien, c'est un cas d'école qui est souvent demandé quand on débute.
Surtout que ce n'est pas bien difficile.
J'ai donne la reponse a qqun alors je me dois de la donner ici a tous le monde:
Je sais ca va faire des personnes pas contentes qui se disent que ce n'est pas leurs rendre service, et blablabla,
Mais au bout d'une semaine, je pense qu'ils auront trouve ou du moins cherche, enfin cela est aussi un moyen de voir qu'il existe plusieurs solutions et de comparer ce qu'ils ont fait (je ne dis pas que ma solution est la meilleur loin de la, mais elle est honorable)
Voici une solution:
Je me base de la sorte parceque je ne me souviens plus des vrai valeurs:
I==1
V==5
X==10
C==50
D==100
L==500
M==1000
Voici le pseudo-code:
et voici de que ca donne en c++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 entier n; //nombre arabe entier t; //temporaire chaine_de_caracetere string; //nombre romain entier mul; //coef multiplicateur si (n!=0 && n<4000){ //si je suis compris entre 0 et 3999 t=n/1000; //on recupere le nb de milliers tantque (t!=0) //tant qu on a des milliers { string+='M'; //on ajoute M n-=1000; //on retire 1000 t--; //un millier a deja ete pris en compte } mul=100; CarMax='M'; CarMoy='L'; CarMin='D'; while(n!=0) //tant que le nombre n'est pas completement en romain { t=n/mul; si(t==9){ string+=CarMax; string+=CarMin; n-=9*mul; } sinon{ si(t==4){ string+=CarMin; string+=CarMoy; n-=4*mul; } sinon //du si 4 { si(t>4){ string+=CarMoy; n-=5*mul; } tantque (t!=0) { string+=CarMin; n-=mul; t--; } } } //on se prepare pour la suite selon (CarMax){ cas 'M': CarMax=CarMin; CarMoy='C'; CarMin='X'; cas 'D': CarMax=CarMin; CarMoy='V'; CarMin='I'; } mul/=10; } }
Enfin voila, c t pas trop dur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 unsigned int n; //nombre arabe cin>>n; //saisie de n //30 lignes de code si (n!=0 && n<4000){ //si je suis compris entre 0 et 3999 int t(n/1000); //temporaire String string=""; //nombre romain while (t--) //tant qu on a des milliers { string+='M'; //on ajoute M n-=1000; //on retire 1000 } int mul(100); char CarMax('M'); char CarMoy('L'); char CarMin('D'); while(n) //tant que le nombre n'est pas completement en romain { t=n/mul; switch(t){ case 9: string+=CarMax; string+=CarMin; n-=9*mul; break; case 4: string+=CarMin; string+=CarMoy; n-=4*mul; break; case 5: string+=CarMoy; n-=5*mul; //c normal qu'il n'y ai pas de break, c pour gere 6,7 et 8 default: while(t--){ string+=CarMin; n-=mul; } } //on se prepare pour la suite //possibilite de faire plus propre en utilisant un tableau contenant les caracteres, et trouve les prochains simplement avec l'indice -2 switch (CarMax){ case 'M': CarMax=CarMin; CarMoy='C'; CarMin='X'; case 'D': CarMax=CarMin; CarMoy='V'; CarMin='I'; } mul/=10; } }
Bonne continuation
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager