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.NET Discussion :

Entrer une équation dans mon appli


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Entrer une équation dans mon appli
    Bonjour,
    je suis débutant en vb, je voudrais créer un programme qui me calcule les valeurs d'une équation, (genre parabole ou autre),
    le problème est que je voudrais entrer mon équation par mon appli. Et je ne sais pas comment l'utiliser une fois dans la textbox.
    Pourriez vous me donner un conseil.
    Je vous remercie d'avance.

  2. #2
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour,

    On ne peut programmer aisément un algorithme polyvalent « toutes fonctions ».
    Il faut programmer l’algorithme correspondant à l’équation qu’on veut calculer.

    Pour l’équation du 2ème degré :

    Y = a.x.x + b.x + c

    Il faut donc encoder les coefficients a, b et c dans les TextBox (ou bien les extraire d’une chaine qui contiendrait toute l’expression dans une seule TextBox) et programmer l’obtention des valeurs numériques (réelles ==> Single ou Double).

    Soit :

    Dim A as Double
    Dim B as Double
    Dim C as Double

    Et pour les calculs et résultat(s) :

    Dim D as Double
    Dim X as Double
    Dim X2 as Double

    Si A = 0 Alors
    X = -1 * B / C (à noter qu’il s’agit dans ce cas d’une équation du 1er degré)
    Afficher X
    Sinon
    D = B * B – 4 * A * C
    Si D < 0 Alors
    Afficher « Pas de racine réelle »
    Quitter
    Sinon
    Si D = 0 Alors
    X = -1 * B / 2 * A
    Afficher X
    Sinon
    X = (-1 * B + D ) / 2 * A
    X2 = (-1 * B - D ) / 2 * A
    Afficher X, X2
    Fin Si
    Fin Si
    Fin Si

    J'espère que cela t'aidera ...

  3. #3
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    RECTIFICATION ... ERREUR DE DACTYLOGRAPHIE ...

    Pour l'équation du 1er degré : X = -1 * C / B
    et non -B/C comme écrit dans le message précédent !!!
    Vraiment désolé de produire une telle ânerie, j'espère qu'elle ne mettra personne en défaut.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    merci pour la réponse mais en fait je voudrais éviter de devoir réécrire mon code à chaque équation.
    ensuite je voudrais pouvoir tracer mes courbes, mais ça c'est une autre histoire...

  5. #5
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour

    Ton seul ami est dans ce cas est la libraire mathématique Math.NET Numerus ....
    pour l'installer :
    Menu Outils=>Gestionnaire package Nuget =>Gerer les packages pour la solution (Click )

    La doc est disponible en ligne ,il suffit de taper sur Google "mathnet numerics findroots"...
    bon code...

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    bonsoir,
    OK, merci du conseil je vais installer ça.

    [Edit]
    voila j'insiste un peu mais pour expliquer ce que veux faire je dirais que je voudrais retrouver la fonction qui me permettais d'entrer une équation
    directement dans mon programme comme je faisais en Basic avec la fonction def fn (si je me souvient bien), existe-t-elle en vb.
    Merci, désolé d'être insistant.

  7. #7
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    Bonjour

    L'equivalent de FNAB en VB.Net est :
    code .vb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
          Private Function FNAB() As Double
     
        Return FNAB
        End Function
    Le Net Framework dispose en plus de fonctions toutes pretes (fonctions transcendales qui ne peuvent etre exprimes par des polynomes rationnels)
    il suffit de taper "Math." et choisir ...
    Pour plus clarté voici l'exemple GW-BASIC suivant :
    '400 X=1: Y=2
    '410 DEF FNAB(X, Y)= X^3/Y^2
    '420 Z=FNAB(X,Y)

    traduction en code .vb( net):
    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
    21
    22
    23
    24
     
    L'exemple GW-BASIC suivant :
    '400 X=1: Y=2
    '410 DEF FNAB(X, Y)= X^3/Y^2
    '420 Z=FNAB(X,Y)
     
    Public Class FormFN
     
     
        Private X, Y As Double
        Private Z As Double
        Private Sub btnCalculate_Click(sender As System.Object, e As System.EventArgs) Handles btnCalculate.Click
            X = 1 : Y = 2
            Z = FNAB(X, Y)
            lblResultat.Text = Z.ToString()
        End Sub
        'Ce code equivaut à  /DEF FN  
        Private Function FNAB(X As Double, Y As Double) As Double
            FNAB = X ^ 3 / Y ^ 2
            Return FNAB
        End Function
     
     
    End Class
    voici un 2eme exemple plus élaboré pour une fonction polynôme Cubique (ordre 3 ) à une variable X (mais qui peut être étendu à un polynôme d’ordre 4 ou 5 ou n ) ...

    code .vb

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    'fonction de degre 3( cubique)
    ' y = 2*x^3 - 5*x^2 + 6*x - 15 
    Public Class FormFNPOLY
        Dim Y0 As Double = 0.0 'valeur ou on evalue   y0=fx(x0)
        Dim X0 As Double = 5.0
        Dim TableCoeffs() As Double = {} 'declare un tableau 
        Public Sub New()
     
            ' Cet appel est requis par le concepteur.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
            btnCalculate.Enabled = False
        End Sub
        Private Sub bntInputNbCoeffs_Click(sender As System.Object, e As System.EventArgs) Handles btnInputNbCoeffs.Click
     
            'initialize le  tableau pour la fonction 
            TableCoeffs = {2, -5, 6, -15}
     
            If TableCoeffs Is Nothing Then Return 'tableau non initialise 
            If TableCoeffs.Length < 0 Then Return 'tableau  initialise mais vide 
     
            AfficheCoeffs(TableCoeffs)
     
            btnCalculate.Enabled = True
        End Sub
        'Un exemple plus consistant :polynome à N Coefficents 
        Private Sub AfficheCoeffs(LaTable() As Double)
            lblDisplayCoeffs.Text = ""
            Dim s As String = String.Empty
            For n As Integer = 0 To LaTable.Length - 1
                s += CStr(LaTable(n)) + " ; "
            Next
            s = s.TrimEnd(" ; ")
            lblDisplayCoeffs.Text = s
        End Sub
     
        Private Sub btnCalculate_Click(sender As System.Object, e As System.EventArgs) Handles btnCalculate.Click
            X0 = 1.0
            Y0 = FNPOLY(X0, TableCoeffs)
            lblEvaluate.Text = CStr(Y0)
            btnCalculate.Enabled = False
        End Sub
        'Un exemple plus consistant :polynome à 4 Coefficents (cubique)
        Private Function FNPOLY(x0 As Double, LeTableau() As Double) As Double
     
            FNPOLY = 0
            For n As Integer = 0 To LeTableau.Length - 1
                FNPOLY += LeTableau(n) * Math.Pow(x0, n)
            Next
            Return FNPOLY
        End Function
     
     
    End Class
    Pour le trace d'une fonction je ferais un autre post ,faute de temps !!!
    bon code...

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    merci beaucoup de ta réponse c'est celle que j'attendais.
    maintenant je vais pouvoir terminer mon programme.

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/10/2015, 19h37
  2. Afficher une page HTML dans mon appli ?
    Par stuffy dans le forum Tkinter
    Réponses: 2
    Dernier message: 15/07/2008, 18h03
  3. pluger une API java dans mon appli
    Par dz_robotix dans le forum C++Builder
    Réponses: 2
    Dernier message: 22/05/2008, 17h42
  4. Integrer une musique dans mon programme
    Par Tutux84 dans le forum C
    Réponses: 2
    Dernier message: 29/01/2005, 12h41
  5. [] Utiliser AVI d'une DLL dans mon programme
    Par seb.49 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/05/2003, 14h52

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