Fonction equation

tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 - 23 mai 2006 à 19:23
tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 - 8 juin 2006 à 17:22
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

katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
24 mai 2006 à 12:55
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.
0
tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 33
27 mai 2006 à 17:25
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.. .
0
HSylvio Messages postés 116 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 14 juin 2012
31 mai 2006 à 15:48
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
0
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
31 mai 2006 à 18:08
;) 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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 33
8 juin 2006 à 17:22
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...

0
Rejoignez-nous