Bonjour à tous :)
Je dois faire pour dans quelques jours (oulà ! déjà !! :p) un TP de gestion et manipulation et gestion d'expressions mathématiques. Par exemple, l'utilisateur rentre une expression (sous forme de chaîne) telle que "2*x-5*cos(y)", et je dois dériver par rapport à une variable, évaluer pour des valeurs données de x et y, etc...
J'en suis actuellement au point de vérification de syntaxe (pour voir si y'a pas d'erreur dans la saisie) et en même temps je transforme l'expression en arbre.
Je dois faire ce TP en JAVA et j'ai choisi les expressions régulières pour analyser la syntaxe de l'expression.
Mon problème se situe à ce niveau : pour reconnaître une expression du type E1 + E2 (ou E1 - E2), comment faut-il faire pour ne pas prendre n'importe quel signe (un signe qui n'est pas entre ( ), et aussi en fait pour prendre le bon ?
Par exemple "(.+)(-)(.+)" marche pour l'expression "3-(2+5)", mais pas pour "3-(2-5)" (car JAVA prend alors en compte uniquement 2-5. (Je mets trois fois des () pour l'analyse récursive).
Merci d'avance pour vos réponses :)
Géorhan
Il n'y a pas de mauvais programmeur. C'est cette p..... de machine de m... qui n'en fait qu'à sa tête !