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

 .NET Discussion :

Vb.net Cherche aide mathématique


Sujet :

.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    septembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Caïmans

    Informations professionnelles :
    Activité : Consultant en sécurité

    Informations forums :
    Inscription : septembre 2018
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Vb.net Cherche aide mathématique
    Salut,

    Bon je suis présentement à développer un petit logiciel qui me permettra de faire plussieurs calcul rapide lors d'estimation...

    Mais je fais face à un problème que je n'arrive pas a résoudre meme après plussieurs recherche et heure de lecture de code et actuce sur différent site.

    Bref lors de mon formulaire de calcul cubique + % de perte ( Calcul pour quantité de béton nécessaire ) le % ne ce calcule pas j'aimerais savoir ou je commet mon erreur voici la parti en question de mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            Dim v As Integer = CInt(TextBox1.Text)
            Dim w As Integer = CInt(TextBox2.Text)
            Dim x As Integer = CInt(TextBox3.Text)
            Dim y As Integer = CInt(NumericUpDown1.Text)
            Dim z As Integer = (((v * w) * x) + y / 100)
            TextBox4.Text = z.ToString()
    J'ai tenter aussi cette forme ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            Dim v As Integer = CInt(TextBox1.Text)
            Dim w As Integer = CInt(TextBox2.Text)
            Dim x As Integer = CInt(TextBox3.Text)
            Dim y As Integer = CInt(NumericUpDown1.Text)
            Dim z As Integer = v * w * x + y / 100
            TextBox4.Text = z.ToString()
    Merci pour votre aide !

  2. #2
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 3 696
    Points : 6 332
    Points
    6 332
    Billets dans le blog
    1
    Par défaut
    J'avoue que j'ai un peu de mal à comprendre ce que tu cherches à faire comme calcul.

    J'ai l'impression que tu as deux problèmes :

    Va diviser y par 100 puis ajouter le reste de la ligne au résultat. Je ne pense pas que ce soit ce que tu cherches à faire.

    Quant à la valeur finale, qui semble être censée être un nombre entre 0 et 1 d'après le "/ 100", tu la stockes dans un Integer.
    Accessoirement, tous les opérandes de la formule sont des Integer.
    Par conséquent, au lieu de retourner un double, ça va retourne un Integer, donc 0 ou 1.
    On ne jouit bien que de ce qu’on partage.

  3. #3
    Candidat au Club
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    septembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Caïmans

    Informations professionnelles :
    Activité : Consultant en sécurité

    Informations forums :
    Inscription : septembre 2018
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    J'avoue que j'ai un peu de mal à comprendre ce que tu cherches à faire comme calcul.

    J'ai l'impression que tu as deux problèmes :

    Va diviser y par 100 puis ajouter le reste de la ligne au résultat. Je ne pense pas que ce soit ce que tu cherches à faire.

    Quant à la valeur finale, qui semble être censée être un nombre entre 0 et 1 d'après le "/ 100", tu la stockes dans un Integer.
    Accessoirement, tous les opérandes de la formule sont des Integer.
    Par conséquent, au lieu de retourner un double, ça va retourne un Integer, donc 0 ou 1.
    Merci pour votre réponse mais je dois avouer que je suis un peu perdu et mélangé....

    Ce que je cherche a faire dans le fond et des calculers le total Cubique d'une forme

    w * x * y = z³

    2 * 2 * 2 = 8³

    et la par la suite si je veux inscrire + 10% de perte

    2 * 2 * 2 = 8³
    8³ + 10% = 8,8³

    Voila je sais pas si tu comprends un peux mieux ma question

    c'est une petite application pour calculer la quantiter nécessaire pour des travaux de construction lors d'une couler de béton d'une forme cubique + rajouter un % de perte car il faut tjr prévoir un minimum de perte....

    merci!

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2012
    Messages
    4 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2012
    Messages : 4 905
    Points : 10 173
    Points
    10 173
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Sauf horreur de ma part. Encore que cela me semble préférable de tout compter en Double et convertir le résultat final en Integer. Parce Integer tronque et n'arrondit pas. Et surtout c'est à la volée, non testé et cela manque de garde-fous. Surtout pour ne pas utiliser une mauvaise réponse et rejeter un nombre négatif. Oui le code pourrait être compacté. Mais comme cela, c'est beaucoup plus facile à déboguer

    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
    Dim ZCubeTemporaire as Double = 0
    Dim ZCubeFinal as Integer = 0
    Dim CompenseErreur as double =0
    Dim w as double = 0
    Dim x as Double = 0
    Dim y as Double = 0
    dim réponse as boolean = false
    ZCubeTemporaire = w * X * y
    CompenseErreur = ZCubeTemporaire /100
    ZcubeTemporaire =ZCubeTemporaire + CompenseErreur
    'Au besoin ajouter un arrondissement supériieur
    'à ZCubeTemporaire si le résultat final tombe trop bas
    réponse =integer.tryparse(ZcubeTemporaire,ZCubeFnal )
    select case reponse
         case true
             messageboxshow("Réponse finale = " &  " " & ZCubeFinal.tostring
         Case False
             messageBox.show("Erreur dans le calcul ou la conversion du résultat")
    end select
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Candidat au Club
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    septembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Caïmans

    Informations professionnelles :
    Activité : Consultant en sécurité

    Informations forums :
    Inscription : septembre 2018
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Bonjour,

    Sauf horreur de ma part. Encore que cela me semble préférable de tout compter en Double et convertir le résultat final en Integer. Parce Integer tronque et n'arrondit pas. Et surtout c'est à la volée, non testé et cela manque de garde-fous. Surtout pour ne pas utiliser une mauvaise réponse et rejeter un nombre négatif. Oui le code pourrait être compacté. Mais comme cela, c'est beaucoup plus facile à déboguer

    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
    Dim ZCubeTemporaire as Double = 0
    Dim ZCubeFinal as Integer = 0
    Dim CompenseErreur as double =0
    Dim w as double = 0
    Dim x as Double = 0
    Dim y as Double = 0
    dim réponse as boolean = false
    ZCubeTemporaire = w * X * y
    CompenseErreur = ZCubeTemporaire /100
    ZcubeTemporaire =ZCubeTemporaire + CompenseErreur
    'Au besoin ajouter un arrondissement supériieur
    'à ZCubeTemporaire si le résultat final tombe trop bas
    réponse =integer.tryparse(ZcubeTemporaire,ZCubeFnal )
    select case reponse
         case true
             messageboxshow("Réponse finale = " &  " " & ZCubeFinal.tostring
         Case False
             messageBox.show("Erreur dans le calcul ou la conversion du résultat")
    end select

    Merci de votre aide! J'ai modifier votre code un petit peu pour l'adapter au textbox que j'utilise j'arrive a calculer mon cube mais pas mon % de facteur d'erreur qui ne se rajoute pas. Si vous pouvez m'éclairer un peu plus merci!

    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
    Public Class Form1
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
     
            Dim ZCubeTemporaire As Double = 0
            Dim ZCubeFinal As Integer = 0
            Dim CompenseErreur As Double = TextBox4.Text
            Dim w As Double = TextBox1.Text
            Dim x As Double = TextBox2.Text
            Dim y As Double = TextBox3.Text
            Dim réponse As Boolean = False
            ZCubeTemporaire = w * x * y
            CompenseErreur = ZCubeTemporaire / 100
            ZCubeFinal = ZCubeTemporaire + CompenseErreur
            'Au besoin ajouter un arrondissement supériieur
            'à ZCubeTemporaire si le résultat final tombe trop bas
            réponse = Integer.TryParse(ZCubeTemporaire, ZCubeFinal)
            TextBox5.Text = ZCubeFinal
        End Sub
    End Class

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2012
    Messages
    4 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2012
    Messages : 4 905
    Points : 10 173
    Points
    10 173
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Si c'est systématiquement 10 % de pertes (désolé, je n'avais pas remarqué le 10 %)

    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CompenseErreur = ZCubeTemporaire /100
    Mets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CompenseErreur = ZCubeTemporaire * 10 /100
    et sans utiliser de TextBox

    Si ta compensation d'erreur n'est pas systématiquement à 10 %, cela dépend de la façon dont elle est indiquée dans le TextBox. Si quelqu'un met 0,1; un autre 10 %, un autre 10, un autre 20 etc. C'est à toi de gérer cela. (Quand je parle d'un garde-fou, c'est à toi de voir. ) Tu peux imposer une entrée genre 10 que tu convertis dans ton code en 10/100 ou en 0,10; 10 %, que tu convertis toi-même en 0,1 ou en 10/100 ou 0,1 que tu utilises directement. Mais l'entrée détermine le calcul à effectuer

    P.S.

    Si jamais tu as

    Ces lignes vont planter; parce que option strict à on interdit les conversions implicites de VB.
    SI cela ne plante pas, c'est parce que tu as option strict à Off et tu dois redoubler de prudence, parce que la conversion implicite mal maîtrisée peut être source d'ho(e)rreurs difficiles à déceler

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim CompenseErreur As Double = TextBox4.Text
     Dim w As Double = TextBox1.Text
     Dim x As Double = TextBox2.Text
     Dim y As Double = TextBox3.Text
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  7. #7
    Candidat au Club
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    septembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Caïmans

    Informations professionnelles :
    Activité : Consultant en sécurité

    Informations forums :
    Inscription : septembre 2018
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Bonjour,

    Si c'est systématiquement 10 % de pertes (désolé, je n'avais pas remarqué le 10 %)

    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CompenseErreur = ZCubeTemporaire /100
    Mets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CompenseErreur = ZCubeTemporaire * 10 /100
    et sans utiliser de TextBox

    Si ta compensation d'erreur n'est pas systématiquement à 10 %, cela dépend de la façon dont elle est indiquée dans le TextBox. Si quelqu'un met 0,1; un autre 10 %, un autre 10, un autre 20 etc. C'est à toi de gérer cela. (Quand je parle d'un garde-fou, c'est à toi de voir. ) Tu peux imposer une entrée genre 10 que tu convertis dans ton code en 10/100 ou en 0,10; 10 %, que tu convertis toi-même en 0,1 ou en 10/100 ou 0,1 que tu utilises directement. Mais l'entrée détermine le calcul à effectuer

    P.S.

    Si jamais tu as

    Ces lignes vont planter; parce que option strict à on interdit les conversions implicites de VB.
    SI cela ne plante pas, c'est parce que tu as option strict à Off et tu dois redoubler de prudence, parce que la conversion implicite mal maîtrisée peut être source d'ho(e)rreurs difficiles à déceler

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim CompenseErreur As Double = TextBox4.Text
     Dim w As Double = TextBox1.Text
     Dim x As Double = TextBox2.Text
     Dim y As Double = TextBox3.Text
    Merci je vais étudier cela!

    Mais non le pourcentage de perte n’est pas systématiquement à 10%

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/06/2006, 15h49
  2. [.NET]Cherche ligne pour écrire dedans
    Par fab3131 dans le forum MFC
    Réponses: 7
    Dernier message: 02/06/2006, 14h21
  3. [Système][Class-Path]cherche aide sous java pour fedoracore ou linux
    Par mickey hollywood dans le forum Général Java
    Réponses: 4
    Dernier message: 29/03/2005, 01h13
  4. Debutant en C cherche aide pour fonctions!!!!
    Par benji17c dans le forum C
    Réponses: 5
    Dernier message: 30/09/2003, 12h47
  5. [TP]Cherche aide en VESA
    Par SoulForce dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 11/07/2003, 11h20

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