Anlyser une fonction mathématique pour ensuite la desiner

ggolp Messages postés 2 Date d'inscription jeudi 21 décembre 2006 Statut Membre Dernière intervention 6 novembre 2007 - 5 nov. 2007 à 23:11
ggolp Messages postés 2 Date d'inscription jeudi 21 décembre 2006 Statut Membre Dernière intervention 6 novembre 2007 - 6 nov. 2007 à 13:04
Bonjour a tous,
Je suis actuellement en train de coder un programme qui me déssine une fonction mathématique dans un repère xy (en VB6).
J'ai tout d'abord écrit la fonction X² dans le code puis j'ai réussi a la tracer dans son repère au centre de la page en utilisant PSet, jusque la tout va bien.
Ensuite j'ai décidé de laisser la possiblité a l'utilisateur de modifier tous les parametres (ensemble de définition, pas, et d'autres petits gadjets comme le rendu ou la couleur du tracé), tout ça dans des textboxs, ça marche. Mais quand il est venu la question de pouvoir modifier la fonction elle même, je n'y suis plus arrivé. Si je prend la valeur du textbox a tracer ça ne marche pas car la procédure qui m'a permis de tracer la fonction utilise des valeurs de type long et  la valeur se trouvant dans un textbox est de type string donc j'ai l'erreur "type mismatch".

J'ai essayé de convertir directement avec CLng cela ne fonctionne pas.
J'essaye donc de creer une fonction analysant la chaine de caractere (avec des instr, left, right, split, ect...) se trouvant dans le textbox mais rien a faire je n'y arrive pas.

Je join un lien ou on peut telecharger le source si vous avez besoin : http://telecharger.kriklok.free.fr/sources/fonction.zip

J'aimerai avoir une legere orientation dans la façon dont je devrai proceder.
Merci d'avance pour votre aide.

7 réponses

mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
6 nov. 2007 à 00:47
Salut,

Si ton problème c'est la chaine, pour prendre la valeur dans le string, utilise val(text1.text)
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
6 nov. 2007 à 00:49
Cependant, ça marchera pas avec le X en question (vient de regarder ta source). J'essaie de voir comment tu peux faire.
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
6 nov. 2007 à 01:01
Bon, j'ai regardé ton code, il faut que tu mettes des .text partout  (text1.text), et des val quasiment partout aussi (val(text1.text))
Ensuite, pour que ton programme "lise" ta fonction donnée au text7, je te suggère de programmer un code qui te le lit, parce que ça ne marche pas avec val.
(Sauf si quelqu'un connait déjà une formule toute faite, dans ce cas je suis intéressé aussi ;-) )
Donc attends un peu voir si qqn a une telle fonction, et sinon, il faut que tu fasses un code qui te lise la fonction en tenant compte des caractères suivants:
0 1 2 3 4 5 6 7 8 9 + - * / . ( ) ^
Et ta fonction construit automatiquement ta formule "hors string".
C'est assez complexe, mais faisable si tu tiens en compte des règles de calcul.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 nov. 2007 à 08:36
Bonjour,

Pour ce qui est de l'interprêtation de Text7 :  Eval   (exemples existant sur ce forum).
0

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

Posez votre question
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
6 nov. 2007 à 09:44
il existe de nombreux exemple d'évaluation d'expression sur le forum et notament dans les codes sources
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
6 nov. 2007 à 10:51
Salut, j'ai trouve une source qui peut t'aider (j'ai réussi à le faire marcher perso):
http://www.vbfrance.com/codes/EVALUER-EXPRESSION-MATHEMATIQUE_20949.aspx

Il y a quelques bugs avec qqs fonctions, mais globalement, ça marche bien.
La fonction est assez compliquée, et relativement difficile à mettre en application cela dit.

entre autres, j'ai mis:

X = Val(Text1.Text)
ModifVar "X", X
Do Until X >= Val(Text2.Text)
'modifie les variables
X = X + Val(Text3.Text)
ModifVar "X", X
Y = Evaluer(Text7.Text)

et

Private Sub Form_Load()
MsgBox ("Created by Ggolp Concept")
tra = False
AddVar "X", Val(Text1.Text)
End Sub

Après, à toi d'intégrer son truc dans ton programme et de faire marcher tout ça.

Christophe
0
ggolp Messages postés 2 Date d'inscription jeudi 21 décembre 2006 Statut Membre Dernière intervention 6 novembre 2007
6 nov. 2007 à 13:04
Merci pour cette aide je vais voir ce que je peu faire avec et je vous dirai si j'y suis arrivé ou pas ^^
0
Rejoignez-nous