[Ex] Calculer X dans une expression algébrique

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

[Ex] Calculer X dans une expression algébrique

#1

Message 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
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

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

#2

Message 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)
Cordialement,
TT22
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

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

#3

Message 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 :?
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

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

#4

Message 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)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

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

#5

Message 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 !
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

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

#6

Message 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)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

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

#7

Message 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:
Cordialement,
TT22
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

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

#8

Message 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:
Étudiant en 2ème année de Licence Informatique.
Répondre