0/5 (2 avis)
Vue 5 973 fois - Téléchargée 177 fois
NPI test = new NPI(); Stack<String> npi = new Stack<String>(); float t0 = (float) 5 * 6 * 7 - 2 / 5f * 6 * 5 + 1; npi.push("5"); npi.push("6"); npi.push("*"); npi.push("7"); npi.push("*"); npi.push("2"); npi.push("5"); npi.push("/"); npi.push("6"); npi.push("*"); npi.push("5"); npi.push("*"); npi.push("-"); npi.push("1"); npi.push("+"); System.out.println("Calcul Réel : 5*6*7-2/5f*6*5+1"); System.out.println("Pile NPI : " + npi.toString()); System.out.println("Résultat NPI : " + test.go(npi)); System.out.println("Résultat Réel : " + t0 + "\n"); float t1 = (float) 11 * 54 / 85 + 5 - 4 - 5 + 2 * 5 * 5 / 5; CNpi t2 = new CNpi("11*54/85+5-4-5+2*5*5/5"); t2.splitFirstCalcul(); t2.splitSecondCalcul(); System.out.println("Calcul Réel : " + t2.getCalcul()); System.out.println("Pile NPI : " + t2.getNpi()); System.out.println("Résultat NPI : " + test.go(t2.getStackNpi())); System.out.println("Résultat Réel : " + t1);
24 mai 2010 à 16:09
ligne 113 : "for ( int j = 0; j < sscm.length; j++ )"
à remplacer par : "for ( int j = 0; j < sscd.length; j++ )"
sinon les divisions ne sont pas prises mises dans la pile (correction à vérifier, je ne suis pas expert).
et un autre problème dans la classe CNpi : 8-3 donne :
[8]
[+]
[3]
[-]
dans la pile, la classe Npi plante donc sur le "+" vu qu'elle n'a pas 2 opérandes à additionner.
Correctif : classe Npi ligne 67
Remplacer : "operateur(s.charAt(0));"
Par : if (i!=1) {
operateur(s.charAt(0));
}
Tout ça est a vérifier mais tout marche correctement dans mon appli depuis que j'ai effectué ces modifications.
13 avril 2010 à 07:17
Je ne note pas.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.