drnicholas001
Messages postés37Date d'inscriptionvendredi 10 septembre 2004StatutMembreDernière intervention21 avril 2007
-
23 sept. 2005 à 20:55
drnicholas001
Messages postés37Date d'inscriptionvendredi 10 septembre 2004StatutMembreDernière intervention21 avril 2007
-
25 sept. 2005 à 07:25
Salut, j'ai des expression du genre 5*V+8^2 et j'aimerais que mon programme sois capable de reconnaitre que V est ma variable. Je pensais faire une sorte de boucle qui vérifie caractère par caractère, et quand ya a un qui est pas un nombre ou un symbole (+-*,) lui dire que cest sa ma variable. Mais je ne sais pas vraiment comment faire :s
Radiohead4ever
Messages postés71Date d'inscriptionsamedi 7 février 2004StatutMembreDernière intervention21 novembre 2006 24 sept. 2005 à 00:40
Private Sub Main()
Dim strLeTexte As String
Dim Character As String
Dim Vvaleur As Integer
Dim i As Integer
strLeTexte = "5*V+8^2"
Vvaleur = 6
For i = 1 To Len(strLeTexte)
Character = Mid(strLeTexte, i, 1)
'Si le charactère n'est pas numérique...
If IsNumeric(Character) = False Then
Select Case Character
'Liste des exceptions...
Case "+"
Case "-"
Case "/"
Case "*"
Case "^"
'Liste des variables...
Case "V"
'Si on se rend ici, c'est que le charactère
'est, dans ton cas, la variable V.
'Pour remplacer ce caractère par la valeur
'de la variable qu'il représente :
'Note : Toutes les apparitions de se charactère
'dans le string seront remplacées.
strLeTexte = Replace(strLeTexte, Character, Vvaleur)
Case Else
'Si on se rend ici, c'est que le charactère
'n'est pas reconnu comme une exception, ni
'une variable.
MsgBox "Le caractère " & Character & " n'est pas reconnu."
End Select
End If
Next i
MsgBox strLeTexte 'et voici le résultat
End Sub
'///////////////////////////////////////////////
Si ce code répond à ta question, appuis sur le boutton "Accpeter cette réponse". Ainsi, tous pourrons en profiter. Si tu as des questions, post-les, je tâcherai d'y répondre.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 23 sept. 2005 à 21:41
sous réserve, mais à mon avis, ce n'est pas possible.
ton expression va être prise en un bloc, comme une string.
ta variable contenue dans ta string ne sera prise que comme partie de string, et plus variable.
faisable en PHP, mais à mon avis, pas en VB
drnicholas001
Messages postés37Date d'inscriptionvendredi 10 septembre 2004StatutMembreDernière intervention21 avril 2007 23 sept. 2005 à 22:58
Ya des fonctions en VB qui permette de modifier les string, cest juste que je l'ai connais pas :S sinon avez vous d'autre idée qui revienne au même résultat?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 23 sept. 2005 à 23:17
ba oui, dans le principe, enlever et/ou repérer un caractère, c'est possible. mais pas l'interpréter en variable pour autant (à ma connaissance).
des codes traitant du sujet, çà ne manque pas.
les fonctions essentielles sont :
Instr(débutchaine, chaine, chaineàtrouver) <- retourne la position de la chaîne à trouver
mid
left
right
len
etc.....
soit plus précis, quitte à expliquer un peu le but de ta source
si tu veux mettre un txtbox contenant "5"
un 2e avec "2+7-9^6+x*16.5"
et que le but est de remplacer x par le contenu de ta txtbox1 (donc 5), c'est faisable aussi, mais tu mélanges un peu tout alors...
bref, je ne vais pas m'étendre sur le sujet si je suis à côté
PCPT
Vous n’avez pas trouvé la réponse que vous recherchez ?
drnicholas001
Messages postés37Date d'inscriptionvendredi 10 septembre 2004StatutMembreDernière intervention21 avril 2007 24 sept. 2005 à 00:03
Non je pense que je me suis mal exprimé. le résultat que je devrais avoir c'est :
5*V+8^2 donne V
6+7*Al^2 donne Al
Je disais que V était un variable mais je parlais mathématiquement. En faire j'ai déja faite mon programme qui peut déterminer la valeur de X dans un calcul mais lutilisateur est obligé d'utiliser X. J'aimerais que s'il utilise V au lieu de X ben le programme va savoir que V c'est la "variable" à derterminer et il va cherche pour V et pas X.
cs_hassen
Messages postés338Date d'inscriptionmardi 28 janvier 2003StatutMembreDernière intervention 4 novembre 2008 24 sept. 2005 à 14:57
t'a qu'a utiliser le l'ocx de microsoft : 'Microsoft Script Control 1.0'
tu doit le referencier : menu projet/Réference et tu coche 'Microsoft Script Control 1.0'
f(V)=5*V+8^2
Public Function EvaluerExpression(V As Double) As Double
Dim x As New ScriptControl
Dim Expression As String
Expression = Replace("5*V+8^2", "V", Replace(V, ",", "."))
drnicholas001
Messages postés37Date d'inscriptionvendredi 10 septembre 2004StatutMembreDernière intervention21 avril 2007 24 sept. 2005 à 21:18
Salut Radiohead4ever, ta source est presque exactement ce que je cherchais. en faite j'ai fait quelques modifications :
Private Sub Main()
Dim strLeTexte As String
Dim Character As String
Dim Vvaleur As Integer
Dim i As Integer
strLeTexte = "5*V+8^2"
Vvaleur = 6
For i = 1 To Len(strLeTexte)
Character = Mid(strLeTexte, i, 1)
'Si le charactère n'est pas numérique...
If IsNumeric(Character) = False Then
Select Case Character
'Liste des exceptions...
Case "+"
Case "-"
Case "/"
Case "*"
Case "^"
'se qui reste ce son des lettres, donc notre variable.
Case Else
charactere = charactere & Mid(strLeTexte, i, 1)
End Select
End If
Next i
MsgBox strLeTexte 'et voici le résultat
End Sub
Ainsi, si on a 5*V+8^2 sa retourne V, si on a 5*P+8^2^, sa restourne P, si on a 5*lol+8^2 sa retourne lol.
Et un ami ma fait penser à quelques choses, on pourrait aussi simplement prendre l'equation et faire plus replace et ainsi effacer tout les chiffres de 0 à 9, les +-*/(), log, sin, cos, tan et etc...
Merci
Radiohead4ever
Messages postés71Date d'inscriptionsamedi 7 février 2004StatutMembreDernière intervention21 novembre 2006 25 sept. 2005 à 02:41
Oui si tu veux.. mais je ne croyais pas que c'était ton objectif.. Je croyais que tu voulais simplement remplacer les variables de ton expression par leur valeur numérique. Mais bon, je crois que tu réussira à te débrouille pour fignoler le code à ta façon. Sur ce, bonne prog et si tu rencontre un problème, re-post le.
drnicholas001
Messages postés37Date d'inscriptionvendredi 10 septembre 2004StatutMembreDernière intervention21 avril 2007 25 sept. 2005 à 07:25
Merci beaucoup , la communauté de VB France est vraiment cool!
Je suis en train de travailler sur un énorme prog pour l'apprentissage des mathématiques que je vais bientôt poster sur VB France.