Fonction equation

Signaler
Messages postés
248
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
15 mars 2007
-
Messages postés
248
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
15 mars 2007
-
Bonjour!


Enfaite, cela fait
des semaines que j'essaye de trouver un moyen de créer une fonction qui
prendrai en argument un string (sous la forme d'une equation avec
inconnue, etc...) et qui renverrait un string avec l'equation simplifié
"d'un cran"....


ex :


resoudre("15*2+3=x")     -renverrait -> "30+3=x"

resoudre("2x-3+1=26")   -renverrait -> "2x-2=26"

resoudre("5x=25")           -renverrait -> "x=25/5"

etc....


A mon avis ça ne doit pas etre très simple, voir très possible...!!


Mais bon, si quelqu'un a le courage (je dirais meme le cran!) de s'y aventurer, ce serait trop cool !

Il était une fois, tralalala.. .

5 réponses

Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
3
Salut :)

Sans trop s' aventurer dans les détails,


il faut scanner le string d'entrée caractère par caractère.

Si c'est un opérateur: extrait l' opérande 1.

Si on a déjà isolé un opérateur, ou dernier caractère: extrait l' opérande 2


Après avoir isolé les operandes et l' opérateur,

il ne reste qu' à calculer selon l' importance de l' opérateur,

et retourner le nouveau buffer.


J' assume que tu connais la syntaxe pour écrire une boucle bien entendu.
Messages postés
248
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
15 mars 2007
24
Merci beaucoup, mais est-ce que tu pourrais me donner un exemple d'un code répondant à ceci s'il te plait...?

Je ne le reproduirais pas identiquement bien sur!


MARCI BEAUCOUP!

Il était une fois, tralalala.. .
Messages postés
116
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
14 juin 2012

Je n'sais pas s'il t'as repondu en msg prive mais bon ... ca s'appelle "conjugaison" je crois;
le mieux est que tu crees un arbre où tout noeud est un opérateur, les feuilles sont des nombres.
Tu dois créer ton arbre en ajoutant les noeuds soit à le racine soit à la place du noeud que tu viens de placer (ssi (), + /)

ex :
3*(5+2) =>  *
                   /   \
                3      +
                        /\
                      5  2


3+5*2 =>     +

                   /   \

                3      *

                        /\

                      5  2
Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
3
;) Non il n'a pas envoyé de code en MP, et il est méssant car un
programmeur ne copie/colle pas de code même s'il est tombé d'un très
bel arbre
Messages postés
248
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
15 mars 2007
24
Oui, mais je ne veux pas resoudre un calcul, je veux resoudre une equation a une inconnue en faite!


Bref, j'aimerais savoir comment faire pour isoler les inconnues d'un membre, etc...