/** * Cette classe permet de tester l'évaluation de quelques expressions. * * @version 1.0 * @author .... */ public class ExempleExpressionArithmetique { /** * Cette méthode permet d'évaluer un noeud et d'afficher toutes ses représentations. * * @param noeud Le noeud à afficher et évaluer. * @param tag Le tag à afficher */ public static void evaluerNoeud(Noeud noeud, String tag) { System.out.println(" [[ "+tag+" ]]"); System.out.println("\t[Infixé]\t"+noeud.notationInfixee()); System.out.println("\t[Préfixé]\t"+noeud.notationPrefixee()); System.out.println("\t[Postfixé]\t"+noeud.notationPostfixee()); System.out.println("\t[Résultat]\t"+noeud.evalue()); System.out.println(" [[ FIN ]]"); System.out.println(); } /** * ((3+2+6) * (8-7)) */ public static void evaluation1() { final Noeud racine = new OperateurMult(); final Noeud opGauche = new OperateurPlus(); final Noeud opGaucheDroite = new OperateurPlus(); final Noeud opDroite = new OperateurMoins(); opGauche.ajouteFils(new Nombre(3)); opGauche.ajouteFils(new Nombre(2)); opGauche.ajouteFils(new Nombre(6)); opDroite.ajouteFils(new Nombre(8)); opDroite.ajouteFils(new Nombre(7)); racine.ajouteFils(opGauche); racine.ajouteFils(opDroite); evaluerNoeud(racine, "((3+2+6) * (8-7))"); } /** * (-(((5*3)/(2+6)) / (8-7))) */ public static void evaluation2() { final Noeud racine = new OperateurMoins(); final Noeud principal = new OperateurDiv(); final Noeud opGauche = new OperateurDiv(); final Noeud opGaucheDroite = new OperateurPlus(); final Noeud opGaucheGauche = new OperateurMult(); final Noeud opDroite = new OperateurMoins(); opGaucheGauche.ajouteFils(new Nombre(5)); opGaucheGauche.ajouteFils(new Nombre(3)); opGauche.ajouteFils(opGaucheGauche); opGauche.ajouteFils(opGaucheDroite); opGaucheDroite.ajouteFils(new Nombre(2)); opGaucheDroite.ajouteFils(new Nombre(6)); opDroite.ajouteFils(new Nombre(8)); opDroite.ajouteFils(new Nombre(7)); principal.ajouteFils(opGauche); principal.ajouteFils(opDroite); racine.ajouteFils(principal); evaluerNoeud(racine, "(-(((5*3)/(2+6)) / (8-7)))"); } /** * Fonction principale qui évalue toutes les expressions. */ public static void main(String args[]){ // Exemple 1 evaluation1(); // Exemple 2 evaluation2(); } }