IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

creation d'une fonction par l'utilisateur


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut creation d'une fonction par l'utilisateur
    je voudrai atteindre ceci :
    l'utilisateur introduit dans une textbox une fonction d'un paramètre
    par ex : 3*a^2+4
    je souhaiterais que le texte affiché dans cette textbox devienne la fonction
    f(a) et ensuite dans mon programme je voudrais calculer f(a) pour différentes valeurs du paramètre a et afficher la valeur correspondante
    Quelqu'un peut-il m'indiquer la marche à suivre pour atteindre ce but ?
    Merci pour toute info sur ce sujet

  2. #2
    Membre éclairé
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Points : 777
    Points
    777
    Par défaut
    essaye ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim a As Integer
    a = 2
    MsgBox Eval(3 * a ^ 2 + 4)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    je me suis mal expliqué
    la fonction est introduite par l'utilisateur , elle est quelconque
    et seulement lorsqu'elle a été introduite je souhaite calculer sa valeur pour
    différentes valeurs de a

  4. #4
    Membre éclairé
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Points : 777
    Points
    777
    Par défaut
    sur ta form, tu as un textebox qui contient la formulaire (ex: 2*A^4) et dans un autre textebox tu inscrit la valeur que tu souhaite donnée à A ?

    C'Est ca que tu veux faire ?

  5. #5
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 218
    Points
    1 218
    Par défaut
    voila

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     dim fonction as string
    Dim a as integer
    private sub OKbouton_clic
    On error goto chifre
    fonction=text1.text
    a=text2.text
    MsgBox Eval(fonction)
    exit sub
    chifre: msgbox "vous n'avez pas entrer la bonne syntaxe (la variable s'écrit  a )", vbOk only
    End sub
    bonne chance

  6. #6
    Membre éclairé
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Points : 777
    Points
    777
    Par défaut
    Citation Envoyé par méphistopheles
    voila

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     dim fonction as string
    Dim a as integer
    private sub OKbouton_clic
    On error goto chifre
    fonction=text1.text
    a=text2.text
    MsgBox Eval(fonction)
    exit sub
    chifre: msgbox "vous n'avez pas entrer la bonne syntaxe (la variable s'écrit  a )", vbOk only
    End sub
    bonne chance
    que fait tu avec la variable a ? rien

    Tu as surement oublier ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fonction = replace(fonction,"a",a)

  7. #7
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 218
    Points
    1 218
    Par défaut
    désolé swim, je croyais que si l'utilisateur écrivais le a, vb était capable de le reconaitre comme variable sans le replace.

    je m'excuse de ma profonde ignorance.

    salut

  8. #8
    Membre éclairé
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Points : 777
    Points
    777
    Par défaut
    ce n'était pas un reproche

    c'est juste que si tu fais
    et bien, c'est une string qui peux valoir qqechose dans ce genre "2*4^A"

    si tu fais une variable qui s'appel A, le compilateur ne peux pas savoir que tu veux remplacer le caractère A par la variable A. Donc il faut faire un replace.

  9. #9
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 218
    Points
    1 218
    Par défaut
    merci en fait, ça va m'aider pour mon apli ça

    et bonne chance à michelk.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    désolé, cela ne marche pas
    VB ne comprend pas la fonction Eval 'non définie'
    n'y aurait-il pas quelque chose d'autre pour y remédier ?
    merci de votre aide

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    je vais essayer d'expliquer ce que je veux faire pour ceux que ça interesse :
    je veux appliquer ma méthode de résolution numérique des équations différentielles 1er,2ième ou 4ième ordre
    par exemple 1er ordre : dV/dt + f(t).V = g(t)
    on cherche à calculer V en fonction de t
    Dans cette équation f(t) et g(t) sont des fonctions de t également mais suivant leur valeur qui est une donnée de l'utilisateur, le résultat V(t) diffère
    je voudrais que l'utilisateur puisse introduire f(t) et g(t) sous forme d'une formule littérale dans une textbox
    le programme ensuite doit calculer la valeur de f(t) et de g(t) pour t variant
    de 0 à 1 par pas de 0.001 pour aboutir à la solution V(t)
    j'espère avoir été un peu plus clair qu'auparavant
    merci

  12. #12
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 218
    Points
    1 218
    Par défaut
    c'est pas tres clair
    c'est quoi ton but?
    Citation Envoyé par michelk
    dV/dt + f(t).V = g(t)
    ça veut dire quoi f(t).V (je comprend pas ce que vient faire ton V là.)

    dV/dt c'est une valeur ou tu compte vraiment calculer la dérivée?

    j'est pere que tu ne compte pas définir ton code en fonction de t: il faut d'habord définir f(t) comme une variable, variable que tu peux dans une autre partie calculer en fonction de t. idem pour g(t)

    bon salut

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    bon, je vois que j'ai réussi à vous embrouiller . . .
    dV/dt + f V = g est l'écriture d'1 equa dif 1er ordre
    V,f,et g sont des fonctions de t et on recherche la fonction V

    par exemple : dV/dt + V/3t =(2t+3)

    on recherche la fonction V(t) qui réponde à cette équation qui lie la fonction elle même V avec sa dérivée dV/dt

    dans cet exemple je voudrais que l'utilisateur écrive :
    f(t) = 1/(3*t) et g(t) = 2*t +3
    et je veux calculer f(t) et g(t) pour t=0 à 1 step 0.001

    si je sais faire cela ensuite je sais comment résoudre l'équa dif
    merci

  14. #14
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 218
    Points
    1 218
    Par défaut
    tu sait au fait comment on calcule les dérivées avec vb? moi j'en ai aucune idée.

    salut

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    calcul de la dérivée :
    je suppose qu'il faut deux valeurs V(t1) et V(t2) de la fonction pour deux valeurs très proches de la variable t1 et t2
    et dV/dt = (V(t2)-V(t1)) / (t2-t1)
    et c'est d'autant plus vrai que t2-t1 petit
    au fait, je n'ai pas besoin de calculer la dérivée de la fonction pour
    résoudre l'équation différentielle
    salut

  16. #16
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Un petit exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Option Explicit
     
    ' Ajouter référence msscript.ocx
     
    Private Sub Form_Load()
     
        MsgBox Y("3 * x^2 + 4", 1) ' 3 * 1^2 + 4
     
    End Sub
     
     
    Function Y(ByVal equation As String, x As Single) As Single
     
        Dim s As New ScriptControl
     
        s.Language = "vbscript"
     
        Y = s.Eval(Replace(equation, "x", x))
     
    End Function

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut


    BRAVO ! et merci à tous pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/05/2006, 16h20
  2. Réponses: 8
    Dernier message: 10/03/2006, 18h28
  3. [T-SQL] Creation d'une fonction (syntaxe)
    Par MaxiMax dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 18/08/2005, 16h27
  4. creation d'une fonction dynamiquement...
    Par bibile dans le forum Général Python
    Réponses: 2
    Dernier message: 04/08/2005, 11h38
  5. Creation d'une fonction temporaire avec droit datareader
    Par Bjuice2 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/10/2004, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo