Page 1 sur 1

[Ex] Calculer X dans une expression algébrique

Posté : dim. 29 avr. 2012 13:11
par blacksoul305
Salut à tous !

Étant en seconde, on nous a demandé de créer un programme sur notre calculatrice permettant de calculer une valeur de X dans un expression algébrique DONNÉE. Étant fondu de l'AutoIt, je me suis permis de le faire. Cependant, en AutoIt, ce programme vous permettra de mettre n'importe quelle expression algébrique sans avoir à toucher au code source, il vous permettra aussi de calculer plusieurs valeurs de X de -10 à 10 par exemple. Vous aurez aussi un fichier log créé pour pouvoir lire les résultats si jamais vous voulez en tester beaucoup. Pour ma part j'ai testé pour x = -2000 à x = 2000 en deux minutes (oui, un tooltip est placé pour vous montrer en combien de temps le programme a calculé l'ensemble des valeurs de x). Les ventilos seront par contre moins silencieux :lol:

Remarque : L'expression algébrique doit vraiment être entrée correctement, c'est à dire avec tout les signes opérateurs.

Ex : 3*x+4*(x-8) << Le programme pourra faire la simple distributivité
Ex : 3x+4(x-8) << Les signes "*" ne sont pas entrés, ils ne seront pas détectés.

Pour tester seulement une valeur de X, entrer 0 dans la seconde InputBox.

Améliorations :
  • S'il fallait l'améliorer, ça serait peut être ajouter un bouton stop car nous sommes dans une autre boucle, la GUI ne reçoit donc pas d'évènement, je me suis renseigner à ce sujet mais j'y suis vraiment pas arrivé.
  • Trouver un moyen de faire comme les calculettes, ça veut dire que 3x = 3*x ou x(4+5) = x*(4+5).
Le code :
► Afficher le texte
Bugs ou améliorations ou simple commentaire, faites-les moi savoir !

Merci à TT22 pour m'avoir aider à trouver une stupide erreur qui me bloquait.

PS : C'est peut être pas glorieux comme programme, mais ça change des habitudes !

EDIT : Ajout de la coloration syntaxique, hé oui Tlem, j'ai le droit :lol: :P

Re: [Ex] Calculer X dans une expression algébrique

Posté : dim. 29 avr. 2012 13:18
par TT22
Pas mal ton programme :wink:
Maintenant, faut le faire avec plusieurs nombres algébriques (x, y, z et T :lol: )

PS : 49.51 secondes de -2000 à 2000 8)

Re: [Ex] Calculer X dans une expression algébrique

Posté : dim. 29 avr. 2012 14:08
par blacksoul305
Héhé, merci !

Sinon, pour expliquer la différence de temps, mon processeur, malgré le fait qu'il soit bien cadencé, n'a qu'un coeur :?

Re: [Ex] Calculer X dans une expression algébrique

Posté : dim. 29 avr. 2012 14:31
par mikell
blacksoul305 a écrit :Trouver un moyen de faire comme les calculettes, ça veut dire que 3x = 3*x ou x(4+5) = x*(4+5)
:mrgreen:

Code : Tout sélectionner

$string = "3x+4(x-8)x+x(x+1)+5(2-6x)"
$string = StringRegExpReplace($string, '([\d\)])(x)', '$1*$2' )
$string = StringRegExpReplace($string, '(x)([\d\(])', '$1*$2' )
$string = StringRegExpReplace($string, '(\d)(\()', '$1*$2' )
Msgbox(0,"", $string)

Re: [Ex] Calculer X dans une expression algébrique

Posté : dim. 29 avr. 2012 14:33
par blacksoul305
mikell a écrit :
blacksoul305 a écrit :Trouver un moyen de faire comme les calculettes, ça veut dire que 3x = 3*x ou x(4+5) = x*(4+5)
:mrgreen:

Code : Tout sélectionner

$string = "3x+4(x-8)x+x(x+1)+5(2-6x)"
$string = StringRegExpReplace($string, '([\d\)])(x)', '$1*$2' )
$string = StringRegExpReplace($string, '(x)([\d\(])', '$1*$2' )
$string = StringRegExpReplace($string, '(\d)(\()', '$1*$2' )
Msgbox(0,"", $string)
Euh, je comprend rien. Je vais travailler dessus plus tard, j'te remercie !

Re: [Ex] Calculer X dans une expression algébrique

Posté : dim. 29 avr. 2012 14:54
par mikell

Code : Tout sélectionner

$string = "3x + 4(x-8)x +  x(x+1) + 5(2-6x  )/2x(  x+1)"
[color=#FF0000] ; vire les blancs éventuels :[/color]
$string = StringRegExpReplace($string, '\h', "")
[color=#FF0000] ; remplace x par *x si x précédé par un chiffre ou une parenthèse de fin :[/color]
$string = StringRegExpReplace($string, '([\d\)])x', '$1*x' )  
[color=#FF0000]; remplace x par x* si x précède un chiffre ou une parenthèse de début :[/color]
$string = StringRegExpReplace($string, 'x([\d\(])', 'x*$1' )  
[color=#FF0000] ; remplace 'chiffre' par 'chiffre*' si 'chiffre' précède une parenthèse de début :[/color]
$string = StringRegExpReplace($string, '(\d)(\()', '$1*$2' )  
Msgbox(0,"", $string)

Re: [Ex] Calculer X dans une expression algébrique

Posté : dim. 29 avr. 2012 15:02
par TT22
Il faut que tu ajoute un système de solution d'équations :wink:
blacksoul305 a écrit :mon processeur, malgré le fait qu'il soit bien cadencé, n'a qu'un coeur :?
Alors que moi j'ai deux processeurs de 2Ghz :roll:

Re: [Ex] Calculer X dans une expression algébrique

Posté : dim. 29 avr. 2012 15:37
par blacksoul305
Ce programme est juste fait pour calculer X dans une expression algébrique, d'où le titre du sujet. J'ai pas fais un programme boite à outils regroupant tout les théorèmes etc... Imagine la taille du code après :lol: