Partage
  • Partager sur Facebook
  • Partager sur Twitter

addition d'une chaine de chiffre

26 septembre 2011 à 1:34:49

comment je fais pour additionner une chaine de chiffres
apres avoir changé mon mot en lettre.

ex:
V= 5
X= 10

si je met XV: il vont me donner 105
mais moi je veux que ca donne 15
j'aimerai faire 10+5
vous comprenez
je vous remerci d'avance car ca me serai tres utile pour mon tp
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2011 à 1:46:09

Et bien il suffit de trans-typer la variable en faisant

res = Integer.parseInt(X) + Integer.parseInt(V);
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2011 à 1:50:03

ok merci je vais essayer
et si j ai des variable qu un utilisateur doit rentrer je met "" a la place de V j'imagine ^^
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2011 à 2:00:32

Heu oui tu devrais avoir un truc du genre :
DataInputStream source = new DataInputStream(System.in);
try
          { System.out.println("Entrez un premier nombre");
            String n1 = source.readLine(); //tu pourrais aussi faire source.readInt();
            System.out.println("Entrez un second nombre");
            String n2= source.readLine(); 
          }
        catch (IOException e)
          { 
             System.out.println("Erreur lors de la saisie");
          }
resultat = Integer.parseInt(n1) + Integer.parseInt(n2); 

System.out.println("La somme des deux nombres est "+resultat);
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2011 à 2:01:02

resultat = Integer.parseInt(m) + Integer.parseInt(d)+ Integer.parseInt(c) + Integer.parseInt(l)+ Integer.parseInt(x) + Integer.parseInt(v)+ Integer.parseInt(i);

sachant que je sais deja la valeur de x=10
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2011 à 2:06:49

comment on fait les tableau comme tu fais j te monterai ce que j ai fait
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2011 à 2:07:27

oups excuse, moi je viens juste de comprendre ton problème en fait !

En gros, tu associes à chaque lettre une valeur !
Exemple :
S = 1;
A = 2;
L = 3;
U = 4;
et T = 5;

et donc si quelqu'un rentre "salut" comme chaine, tu dois retourner comme résultat 1+2+3+4+5 = 15; c'est bien ça ?


Pour que ton code apparaisse en couleur, tu dois cliquer sur "Plus d'option" puis utiliser la balise "code" et insérer ton code dedans.

Oui montre moi ton code ça sera plus simple ^^
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2011 à 2:11:52

bref je pige pas trop je vais te montrer tout de suite pour pas que tu parte ou mais ca ressemble a ca mon code c est la derniere ligne que j ai de la misere

public class ConvertiArabeRomain
{
public static void main (String[] args)
{
char romainarabe = 'a' ;
char araberomain = 'r' ;
char valeur = ' ' ;
int nombrearabe ;
String nombreromain ;


System.out.println("Voulez-vous convertir de arabe vers romain r ou de romain vers arabe a");
valeur = Keyboard.readChar() ;

// valeur = r ou a

if (valeur == 'a')

{ System.out.println ("quel nombre romain voulez-vous convertir en arabe ?");valeur = Keyboard.readChar() ;
nombrearabe = Keyboard.readInt() ;
}
// ca compile


String I = "1" ;
String V = "5" ;
String X = "10" ;
String L = "50" ;
String C = "100" ;
String D = "500" ;
String M = "1000" ;
String CM = "900" ;
String CD ="400" ;
String XC ="90" ;
String XL = "40" ;
String IX ="9" ;
String IV ="4" ;

int i = 0 ;
i = Integer.parseInt(I);

int v = 0 ;
v = Integer.parseInt(V);

int x = 0 ;
x = Integer.parseInt(X);

int l = 0 ;
l = Integer.parseInt(L);

int c = 0 ;
c = Integer.parseInt(C);

int d = 0 ;
d = Integer.parseInt(D);

int m = 0 ;
m = Integer.parseInt(M);

int cm = 0 ;
cm = Integer.parseInt(CM);

int cd = 0 ;
cd = Integer.parseInt(CD);

int xc = 0 ;
xc = Integer.parseInt(XC);

int xl = 0 ;
xl = Integer.parseInt(XL);

int ix = 0 ;
ix = Integer.parseInt(IX);

int iv = 0 ;
iv = Integer.parseInt(IV);

if ( m>d&&d>c&&c>l&&l>x&&x>v&&v>i)
{
resultat = Integer.parseInt(m) + Integer.parseInt(d)+ Integer.parseInt(c) + Integer.parseInt(l)+ Integer.parseInt(x) + Integer.parseInt(v)+ Integer.parseInt(i);
System.out.println ("la reponse est de ?" + resultat);
}
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2011 à 2:24:52

Ok, je reposte ton code histoire d'y comprendre qqch.
Sur le coup je comprends ce que tu veux faire et c'est loin d'être trivial (y'a plein de cas particulier).
Il faut que tu suive le mode opératoire à lettre pour resoudre ce probleme Numération_romaine#Mode_op.C3.A9ratoire
Actuellement ton code ne fait pas du tout ça...


public class ConvertiArabeRomain
{
public static void main (String[] args)
{
char romainarabe = 'a' ;
char araberomain = 'r' ;
char valeur = ' ' ;
int nombrearabe ;
String nombreromain ;


System.out.println("Voulez-vous convertir de arabe vers romain r ou de romain vers arabe a");
valeur = Keyboard.readChar() ;

// valeur = r ou a

if (valeur == 'a')

{ System.out.println ("quel nombre romain voulez-vous convertir en arabe ?");valeur = Keyboard.readChar() ;
nombrearabe = Keyboard.readInt() ;
}
// ca compile


String I = "1" ;
String V = "5" ;
String X = "10" ;
String L = "50" ;
String C = "100" ;
String D = "500" ;
String M = "1000" ;
String CM = "900" ;
String CD ="400" ;
String XC ="90" ;
String XL = "40" ;
String IX ="9" ;
String IV ="4" ;

int i = 0 ;
i = Integer.parseInt(I);

int v = 0 ;
v = Integer.parseInt(V);

int x = 0 ;
x = Integer.parseInt(X);

int l = 0 ;
l = Integer.parseInt(L);

int c = 0 ;
c = Integer.parseInt(C);

int d = 0 ;
d = Integer.parseInt(D);

int m = 0 ;
m = Integer.parseInt(M);

int cm = 0 ;
cm = Integer.parseInt(CM);

int cd = 0 ;
cd = Integer.parseInt(CD);

int xc = 0 ;
xc = Integer.parseInt(XC);

int xl = 0 ;
xl = Integer.parseInt(XL);

int ix = 0 ;
ix = Integer.parseInt(IX);

int iv = 0 ;
iv = Integer.parseInt(IV);

if ( m>d&&d>c&&c>l&&l>x&&x>v&&v>i)
{
resultat = Integer.parseInt(m) + Integer.parseInt(d)+ Integer.parseInt(c) + Integer.parseInt(l)+ Integer.parseInt(x) + Integer.parseInt(v)+ Integer.parseInt(i);
System.out.println ("la reponse est de ?" + resultat);
}
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2011 à 2:28:49

bpn debord je comprend rien j vais retenter
merci d'avoir essayer :(
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2011 à 11:47:19

si j'ai bien compris tu veux convertir du chiffre romain en arabe et vice versa
déjà as tu un algorithme pour decouper la chaine "valeur" que tu lis?

apres au niveau de la structure j'aurai mis une hashmap<String,Integer> pour contenir les valeurs
et puis tu fais des put("M",1000") etc...
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2011 à 17:09:21

Oui et si tu n'as pas vu les hashmap (on ne connait pas ton niveau), en lisant la chaîne à l'envers et avec un switch, ça doit le faire aussi (mais c'est moins beau ^^ )
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2011 à 19:07:59

je suis en train de travailler dessus c'est assez difficile pour quelqun qui commence en programmation
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2011 à 19:12:44

Si tu lis bien le mode opératoire du lien que je t'ai envoyé, ça devrait se faire tout seul !


Citation : Wikipedia


http://fr.wikipedia.org/wiki/Num%C3%A9 [...] .C3.A9ratoire
Pour connaître la valeur d’un nombre écrit en chiffres romains, il faut lire le nombre de droite à gauche, il suffit d'ajouter la valeur du chiffre, sauf s'il est inférieur au précédent, dans ce cas, on le soustrait. Ainsi :

XVI = 1 + 5 + 10 = 16 ;
XIV = 5 - 1 + 10 = 14, car I est inférieur à V ;
DIX = 10 - 1 + 500 = 509, car I est inférieur à X ;
MMMMCMXCIX = 10 - 1 + 100 - 10 + 1 000 - 100 + 1 000*4 = 4 999 ;
MMMMDCCCLXXXVIII = 4 888, est le nombre romain le plus long en quantité de symboles.



Évidemment avec une hashmap, ça tient en très très peu de lignes !
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2011 à 19:28:53

j'ai remarqué en ecrivant les 50 premier nombre qu il a une exception tous les 5 nombres
bref je suis en train de travailler dure la dessus. dommage qu il faut que je parte en cours dans 30 minutes. je continurai apres ^^

dans le fond j ai compris quelque chose,,,
je lis de droite a gauche
apres je compte le nombre de lettre dans ma string
ensuite les if et les else embarquent
il y a 2 regles: ceux dit regulier +
et les soustractions

il reste qu a savoir comment comment additionner les valeur des x ensemble ce qui reviens a ma question du debut. ma aller voir si ce que j ai dit fonctionne j publirai ce que j ai fait surement ce soir. (cette nuit pour vous ^^)



on oublie ca! je vais faire une autre methode
qui s intitule les boucles
tant et aussi longtemps qu il y aura un m je marquerai 1000
^^
  • Partager sur Facebook
  • Partager sur Twitter