cs_Aymanovitch
Messages postés25Date d'inscriptionmercredi 24 novembre 2010StatutMembreDernière intervention17 janvier 2014
-
20 avril 2011 à 22:23
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
20 avril 2011 à 22:33
salut tout le monde j'ai un petit problème !!!
Je suis entrain de faire une calculatrice d'une expression arithmétique simple en JAVA.
j'ai réussi à faire l'analyse de l'expression mais il me reste à faire les calculs.
J'ai pensé à parcourir l'expression(en String) et lorsque je trouve un opérateur '*' ou '/' ou '+' ou '-' je fais l'opération et je remplace les entiers et l'opérateur que j'ai utilisé par le résultat dans mon expression.
Problème n°1 :je dois recommencer tant qu'il y a encore des opérateurs dans mon expression. Le problème c'est que je n'arrive pas à récupérer la nouvelle expression et j'ai exactement le même problème si j'ai deux opérateurs identiques.
Je ne sait vraiment pas quoi faire et je suit réellement bloqué.
Pour que vous puissiez comprendre où j'en suis et mon déroulement, vous pouvez trouver ci-joint une partie de mon code. Bien évidement si quelqu'un à une bien meilleure idée concernant le code, soit en l'améliorant soit en le changeant, je suis bien évidement ouvert à d'autres proposition.
Dans l'espoir que quelqu'un puisse m'aider, je vous remercie d'avance de votre aide!!
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class calcul_expression {
public void calcul(int [] ENTIER, char [] operator,String expression){
//le tableau ENTIER contiet tous les entiers de notre expression
//le tableau operateur contient tous les operateur de notre expression
int j = 0;
int [] tmp = new int [10];
int [] tmp1 = new int [10];
int m = 0;
int n = 0 ;
int resultat = 0 ;
String res = null;
for(int i = 0;i<expression.length();i++){
if(expression.charAt(i)=='*'){
j = i ;//on cherche l'indice de l'operateur '*' dans un notre expression.
tmp[m] = j;
m++;
}
}
for(int i=0;i<operator.length;i++){
if(operator[i]=='*'){
j = i;
tmp1[n] = j;
n++;
}
resultat = ENTIER[j] * ENTIER[j+1];//je fais la multiplication
res = String.valueOf(resultat); //je fait la conversion en String
}expression = expression.substring(0,tmp[0]-1) + res;//je concatène les deux string en suppriment les elément que j'ai utiliser pour la multiplication
System.out.println("l'expression est " +expression);//on fait l'affichage
}
public static void main(String[] args) throws IOException{
String expression;
System.out.println("Entrez l'operation que vous voulez effectuer");
BufferedReader Buf = new BufferedReader(new InputStreamReader (System.in));
expression = Buf.readLine();
}
}
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013131 20 avril 2011 à 22:33
Salut,
Codes-Sources est un site communautaire où des bénévoles apportent de l'aide à ceux qui le demande. Nous demandons pas grand chose en retour : juste un peu de reconnaissance et de respect.
Venir poser une question sur le forum en disant que c'est urgent est un manque de respect : qu'est-ce que ca t'apporte de préciser que c'est urgent ? Tu crois qu'en disant cà tu seras prioritaire par rapport aux autres membres ? Tu crois qu'on va se dépêcher à te répondre parce que tu es dans l'urgence ?
Et bien non, bien au contraire ! Dire que c'est urgent ne nous donne vraiment pas envie d'aider. Nous avons tous nos tracas quotidiens, avec nos patrons qui nous disent qu'il leur faut telle fonctionnalité pour demain matin à 8 h (si ce n'est pour la veille). Alors je traque tout ceux qui demande de l'aide de façon urgente histoire de bien leur faire comprendre qu'on y gagne rien à aider les gens, alors le moins que tu peux espérer, c'est de trouver quelqu'un qui veuille bien t'aider, l'urgence elle n'est que pour toi, et surtout pas pour nous !