Code : Tout sélectionner
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.0
Author: blacksoul305
Script Function: Permet de calculer une ou des valeurs de X dans une expression algébrique.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Global $Form1 = GUICreate("Tester les valeurs de X avec une expression algébrique - Algorithme.", 591, 287, 192, 124)
Global $Group1 = GUICtrlCreateGroup("Résultats", 328, 40, 241, 193)
Global $Label1 = GUICtrlCreateLabel("Expression algébrique : ", 344, 72, 200, 17)
Global $Label2 = GUICtrlCreateLabel("Nombre de tests : ", 344, 104, 160, 17)
Global $Label3 = GUICtrlCreateLabel("Valeur de x à tester : ", 344, 136, 160, 17)
Global $Label4 = GUICtrlCreateLabel("Signe du résultat : ", 344, 168, 160, 17)
Global $Label5 = GUICtrlCreateLabel("Valeur du résultat : ", 344, 200, 160, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $Group2 = GUICtrlCreateGroup("Expression algébrique", 24, 64, 265, 153)
Global $Input1 = GUICtrlCreateInput("2*x*x+20", 160, 96, 121, 21)
Global $Label6 = GUICtrlCreateLabel("Expression algébrique : ", 40, 96, 116, 17)
Global $Label7 = GUICtrlCreateLabel("Valeurs de x à tester : ", 40, 128, 109, 17)
Global $Input2 = GUICtrlCreateInput("-10", 160, 128, 33, 21)
Global $Label8 = GUICtrlCreateLabel("à ", 200, 128, 13, 17)
Global $Input3 = GUICtrlCreateInput("10", 224, 128, 33, 21)
Global $Button2 = GUICtrlCreateButton("Lancer le test", 48, 160, 121, 33)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Ouvrir le fichier enregistré", 104, 248, 169, 25)
$Button4 = GUICtrlCreateButton("Supprimer le fichier enregistré", 296, 248, 169, 25)
GUISetState(@SW_SHOW)
Global $fichier = @ScriptDir&"\calculs.ini"
Global $onlyOneTest = False
Global $test = 1
Global $calcul = 0
Global $lirePremiereValeurDeX = 0
Global $lireDerniereValeurDeX = 0
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
ShellExecute($fichier)
Case $Button4
FileDelete($fichier)
Case $Button2
$startChrono = TimerInit()
$lirePremiereValeurDeX = GUICtrlRead($Input2)
If $lirePremiereValeurDeX = 0 Then
GUICtrlSetData($Input2,1)
$lirePremiereValeurDeX = 1
EndIf
$lireDerniereValeurDeX = GUICtrlRead($Input3)
If $lireDerniereValeurDeX = 0 Then $onlyOneTest = True
$exprAlgebrique = GUICtrlRead($Input1)
If $onlyOneTest = True Then
$nouvelleExpression = StringReplace($exprAlgebrique,"x",$lirePremiereValeurDeX)
$calcul = Execute($nouvelleExpression)
$test = 1
_Display()
_Log()
Else
Do
$nouvelleExpression = StringReplace($exprAlgebrique,"x",$lirePremiereValeurDeX)
$calcul = Execute($nouvelleExpression)
_Display()
_Log()
$test+=1
$lirePremiereValeurDeX+=1
Until $lirePremiereValeurDeX = $lireDerniereValeurDeX+1
EndIf
ToolTip("Le programme a mis "&Round(TimerDiff($startChrono)/1000,2)&" secondes pour calculer l'emsemble des valeurs de X.",5,0)
_Initialize()
EndSwitch
WEnd
Func _Display()
GUICtrlSetData($Label1,"Expression algébrique : "&$exprAlgebrique)
GUICtrlSetData($Label2,"Nombre de tests : "&$test)
GUICtrlSetData($Label3,"Valeurs de x à tester : "&$lirePremiereValeurDeX)
If $calcul < 0 Then
GUICtrlSetData($Label4,"Signe du résultat : Négatif")
ElseIf $calcul > 0 Then
GUICtrlSetData($Label4,"Signe du résultat : Positif")
Else
GUICtrlSetData($Label4,"Signe du résultat : Nul")
EndIf
GUICtrlSetData($Label5,"Valeur du résultat : "&$calcul)
EndFunc
Func _Log()
IniWrite($fichier,"calcul"&$test,"Expression",$exprAlgebrique)
IniWrite($fichier,"calcul"&$test,"valeur de x à tester",$lirePremiereValeurDeX)
If $calcul < 0 Then
IniWrite($fichier,"calcul"&$test,"Signe du résultat","Négatif")
ElseIf $calcul > 0 Then
IniWrite($fichier,"calcul"&$test,"Signe du résultat","Positif")
Else
IniWrite($fichier,"calcul"&$test,"Signe du résultat","Nul")
EndIf
IniWrite($fichier,"calcul"&$test,"Valeur du résultat",$calcul)
EndFunc
Func _Initialize()
$onlyOneTest = False
$test = 1
$calcul = 0
$lirePremiereValeurDeX = 0
$lireDerniereValeurDeX = 0
EndFunc