Validation d'une formule mathématique
Bonjour,
je cherche une solution pour valider le format d'une formule de calcul mathématique, par exemple:
2*(1+3/4) est valide
2*1++5 n'est pas valide
2*(4+5 n'est pas valide
La validation doit s'effectuer avec des opérateurs basiques uniquement (+ - / *)
Existe-t-il des solutions pour vérifier cela?
Une expression régulière? un algorithme?
Autrement : une librairie java ou javascript
Je ne trouve aucune solution existante sur ce sujet, et il a l'air complexe de mettre en place une telle vérification
Auriez vous une piste?
merci
Validation d'une formule mathématique
Bonjour, :D
Citation:
... Auriez vous une piste? ...
# Mettre la formule sous forme de chaîne de caractères, après élimination des éventuels espaces (' '):
# Repérer tous les doublets interdits de caractères consécutifs ('+*', '+/', '*/', ...etc);
# Compter algébriquement les parenthèses en parcourant la formule, et en codant
Np:= Np + 1 pour toute parenthèse ouvrante '(',
Np:= Np - 1 pour toute parenthèse fermante ')';
le bilan doit être nul: Npfinal = Npinitial = 0 .
Cela ne doit pas poser de difficulté dans le cas d'une formule numérique; dans le cas d'une formule algébrique, il faut voir quels sont les symboles autorisés.
Le signe "moins" peut aussi poser problème, dans la mesure où il peut intervenir en tant qu'opérateur unaire de changement de signe; la paire '+-' sera acceptable ou non, suivant les règles de syntaxe du logiciel traitant la formule.