none
Programme en VB RRS feed

  • Question

  • Bonjour a tous, j'ai un petit souci, je vien de débuter avec visual studio, et on a un devoir à rendre. On doit créer un programme qui permet de tester l'alcoolémie a partir de la formule de wikipédia. Voila le programme que j'ai fait avec le code:

    Public Class form1
        Private Sub cmd_quitter_Click(sender As Object, e As EventArgs) Handles cmd_quitter.Click
            Dim reponse As MsgBoxResult

            reponse = MsgBox("Voulez-vous vraiment quitter?", MsgBoxStyle.OkCancel)

            If reponse = MsgBoxResult.Ok Then
                End
            End If
        End Sub

        Private Sub lbl_quantite_Click(sender As Object, e As EventArgs) Handles lbl_quantite.Click

        End Sub

        Private Sub txt_biere_TextChanged(sender As Object, e As EventArgs) Handles txt_biere.TextChanged

        End Sub

        Private Sub Label1_Click(sender As Object, e As EventArgs) Handles lbl_ans.Click

        End Sub

        Private Sub Label1_Click_1(sender As Object, e As EventArgs) Handles lbl_temps.Click

        End Sub

        Private Sub cmd_alcool_Click(sender As Object, e As EventArgs) Handles cmd_alcool.Click
            Dim alcool As Single
            Dim a As Single
            Dim b As Single
            Dim c As Single
            Dim d As Single
            Dim h As Single
            Dim f As Single
            Dim g As Single
            Dim poids As Single
            Dim genre As Single

            a = Val(txt_biere.Text)
            b = Val(txt_apero.Text)
            c = Val(txt_vincui.Text)
            d = Val(txt_vin.Text)
            h = Val(txt_digestif.Text)
            f = Val(txt_champagne.Text)
            g = Val(txt_cocktail.Text)
            poids = Val(txt_poid.Text)
            If cmd_homme.Checked = genre = 0.7 Then
            Else genre = 0.6
            End If
            alcool = (((a * 10 * 0.05) + (b * 10 * 0.43) + (c * 10 * 0.16) + (d * 10 * 0.12) + (h * 10 * 0.43) + (f * 10 * 0.12) + (g * 10 * 0.15)) * 0.8) / (poids) * genre


            lbl_resultat.Text = Str(alcool)

        End Sub

        Private Sub txt_age_TextChanged(sender As Object, e As EventArgs) Handles txt_age.TextChanged

        End Sub

        Private Sub txt_poid_TextChanged(sender As Object, e As EventArgs) Handles txt_poid.TextChanged

        End Sub

        Private Sub frm_alcool_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        End Sub
    End Class

    Je ne vous demande pas la solution, mais lorsque je teste le programme, il ne me donne pas le bon résultat... si vous trouver d'où vien le probleme, pourriez vous m'aider à le résoudre :) Merci d'avance

    Laura

    mardi 27 octobre 2015 10:01

Réponses

Toutes les réponses

  • Bonjour,

    Vous pouvez donner un exemple avec des valeurs et le résultat attendu ?

    Une chose importante, il est préférable d'utiliser Single.Parse plutôt que Val (pour être sur des arrondis.)


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    mardi 27 octobre 2015 12:57
  • Par exemple, pour une femme de 55kg, qui boit 2 bières, soit a=2 et le reste=0, on doit obtenir 0.6, mais quand je le fait, j'obtient 0.0044 ce qui n'est pas logique...
    mardi 27 octobre 2015 13:48
  • Ce doit etre un pb de parenthèses ou de formule car :

    2*10*0.05 = 1

    1*0.8 = 0.8

    0.8 / 55 = 0.145454

    0.145454 * .6  = 0.0087272...


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    mardi 27 octobre 2015 14:07
  • je ne comprend pas pourquoi cela ne fonctionne pas, j'ai tout essayé. il faut convertir le volume en mL, et sur la formule de wikipédia ca fonctionne, mais sur VB cela beug
    mardi 27 octobre 2015 17:00
  • Bonjour,

    Il y a un problème au genre:

    If cmd_homme.Checked Then

    genre = 0.7

    Else

    genre = 0.6
    End If

    et à la fin de la formule les parenthèses sont mal placées:

             alcool = (((a * 10 * 0.05) + (b * 10 * 0.43) + (c * 10 * 0.16) + (d * 10 * 0.12) + (h * 10 * 0.43) + (f * 10 * 0.12) + (g * 10 * 0.15)) * 0.8) / (poids * genre)

    A/B*C est interprété comme (A/B)*C

    mardi 27 octobre 2015 23:46
  • Si vous parlez de la page suivante sur Wikipédia, alors votre formule devrait être :

    alcool = (((a * 10 * 0.05d) + (b * 10 * 0.43d) + (c * 10 * 0.16d) + (d * 10 * 0.12d) + (h * 10 * 0.43d) + (f * 10 * 0.12d) + (g * 10 * 0.15d)) * 0.8d) / (1d * poids * genre)


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    mercredi 28 octobre 2015 06:20
  • c'était bien un problème de parenthèses, merci beaucoup de votre aide ;)
    mercredi 28 octobre 2015 11:39
  • Merci ;) il y avait bien un souci au niveau de mes parenthèses ;)
    mercredi 28 octobre 2015 11:39