CONVERSION ENTIER-CHIFFRE ROMAIN; CHIFFRE ROMAIN-ENTIER

Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
- - Dernière réponse : cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
- 10 juil. 2009 à 17:48
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50275-conversion-entier-chiffre-romain-chiffre-romain-entier

cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
11 -
Tu peux avoir du beau code, mais y'en aura toujours pour programmer comme des porcs ... Ce qui n'est pas du tout conseillé en C(++) et en ASM.
Pistol_Pete
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6 -
C'est sur, mais j'ai jamais dit que le VB était du beau code...
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
11 -
Ouais mais ce n'est pas ce qu'on appelle du beau code !
Par exemple :

Dim x As String : x = "10"
Dim y As Integer : y = 15
MsgBox x+y
'Vive l'embrouille !
Pistol_Pete
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6 -
D'après ce que j'ai compris de la msdn, Str = Str1 + 50; marcherai en VB. En interne, (fonction de la surcharge de +), le 50 sera convertie en char* avec un itoa avant d'être concaténé à Str1.
A+
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
11 -
"concaténer des nombres" => pas plutôt "additionner des nombres" ?
Sinon oui t'as bien compris ce que je voulais dire.
Pistol_Pete
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6 -
Merci Adeon, je ne connais rien en VB mais je viens de regarder sur la msdn, le & ne sert qu'à concaténer 2 strings, alors que le + peu concaténer des nombres. Donc effectivement en VB, il aurait mieux fallu le &.
En C++, je ne pense pas que l'opérateur & soit surchargé.
A+
cs_Adeon
Messages postés
293
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
10 avril 2015
2 -
Ce qu'il veut dire c'est que en C++, le + sur les chaine n'est pas autorisé par defaut, alors qu'en VB, si.

en visual basique, pour concatener c'est
NouvelleChaine = Premeier & Deuxième & troisième.....
Pistol_Pete
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6 -
Tout a fait d'accord avec toi Adeon, autant travailler directement avec des char*.

>>Ghuysman, j'ai pas compris ta remarque; En c++ c'est autorisé aussi de faire un '+'. Et c'est quoi le rapport avec le &? Tu l'utilises comment pour concaténer deux chaines?
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
11 -
En VB, c'est autorisé de faire + avec une string, mais on préfère utiliser &
cs_Adeon
Messages postés
293
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
10 avril 2015
2 -
haa la surcharge ! j'y avais pas pensé !
Merci
PS : ca me choque quand meme cette utilisation je trouve que c'est une mauvaise habitude à prendre en C++ ( en basic je dirais rien bien sure )
Pistol_Pete
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6 -
>>Adeon
s étant un string et comme le + est surchargé pour la classe String, tu as tout à fait le droit de faire un s=s+"M".
A+
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
11 -
@ Adeon : T'es pas le seul à penser ça ...
cs_Adeon
Messages postés
293
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
10 avril 2015
2 -
Mouai... c'est vrais que de nos jours, les chiffres romains sont très utilisés pour le stoquage de données ;-)

Pour rester serieux, ca compile ca ??? :

s=s+"M";

parceque moi perso ca me choque de voir une chaine de caractère dans un calcul.
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
11 -
J'espère que des profs de maths ne passent pas par là ...
Un chiffre est un nombre mais pas l'inverse.
Et ça m'étonnerait qu'on ne puisse entrer qu'UN chiffre !
cs_juju12
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4 -
Bon alors déjà c'est niveau débutant et sûrement pas expert... les lignes de cout<"..." y a pas besoin de 10 ans d'expérience pour comprendre.
Ensuite ça marche même pas correctement :
4 s'écrit en chiffres romains IV et non IIII,
9 IX et non VIIII,
449 CDXLIX et non CCCCXXXXVIIII,
...
à revoir donc.

bon, point positif, l'interface est OK.