Bonjour ,

Pour un de mes logiciels, j'ai besoin de simuler des équations logiques. Je dois savoir faire des opérations AND et OR (pas plus). Cela revient respectivement à faire des * et des +.

J'ai des objets "Input" qui contiennent la valeur logique d'une entrée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
class Input
{
  public bool Value
  {
    return mValue_b;
  }
}
Je dois par exemple faire: G + (A * B * C + D * E ) * F + H.

Cette formule sera stockée dans un objet s'appelant Expression. Celui-ci a une méthode Evaluate qui permet de calculer le résultat des différents opérations (donc à chaque fois en fonction de l'opération à réaliser il faut appeler GetValue):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
class Expression
{
  public bool Evaluate()
  {
    ...
  }
}
J'ai essayé de partir sur une liste avec un appel récursif pour évaluer mon expression mais ce n'est pas vraiment génial

Pour info, les formules sont générées à partir de diagramme Ladder.

Si quelqu'un pouvait m'aider à me dépatouiller, ce serait cool