Skip to content

Réduire \ Développer une expression

Antoine Tran edited this page Mar 5, 2019 · 4 revisions

Afin de réduire une expression, deux options sont possibles :

  • Simplement donner une expression sous forme de chaîne de caractères au Réducteur, qui renverra le résultat sous forme de chaîne de caractères
  • Utiliser MaskOperator. Ce cas est utile si le résultat de la réduction doit être utilisé à nouveau pour un calcul, ou pour être stocké dans un MaskExpression

Première option : utiliser ReducerFactory

package test;
import net.akami.mask.utils.ReducerFactory;

public class MainTester {

    public static void main(String... args) {
        System.out.println(ReducerFactory.reduce("(8x+y-3)*(1+2-2)+12^(0+4-3)"));
    }
}
Output : 8x+y+9

Deuxième option : Utiliser MaskOperator

package test;
import net.akami.mask.math.*;

public class MainTester {

    public static void main(String... args) {
        MaskExpression aReduire = new MaskExpression("(8x+y-3)*(1+2-2)+12^(0+4-3)");
        MaskExpression vide = new MaskExpression();
        MaskOperator operateur = MaskOperator.begin();

        String result = operateur.reduce(operateur, vide, true).asExpression();
        System.out.println(result);
    }
}
Output : 8x+y+9

Les variables aReduire et vide sont donc les deux MaskExpression concernés. On effectue l'opération reduce, en partant de aReduire et en écrivant le résultat dans vide. Ensuite, le boolean mis à true indique que le prochain calcul sera effectué à partir du résultat de l'opération, en l'occurence 8x+y+9. Puis, on effectue l'opération asExpression qui convertir donc la valeur de vide (8x+y+9) en chaîne de caractère.