En vb.net

madeog Messages postés 81 Statut Membre -  
 Utilisateur anonyme -
Bonjour,

je veux ecrire un programme qui calcule la table de multiplication
j'ai essaye mais je suis bloquée.

voici le code que j'ai ecrit
 Dim nbre, i, J As Integer
        nbre = CInt(Txtnbre.Text)
        If nbre < 2 Or nbre > 20 Then
            MsgBox("entrer des valeurs comprises entre 2 et 20 . svp")
        Else
            Txtaffichage.Text = CStr(nbre) + Environment.NewLine
            For i = 0 To nbre
                If i <> 0 Then
                    Txtaffichage.Text = i.ToString
                Else
                    Txtaffichage.Text = ""
                End If
                For J = 1 To nbre
                    Txtaffichage.Text = J.ToString
                Next j


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.


Merci d'y penser dans tes prochains messages.

1 réponse

  1. Utilisateur anonyme
     
    Bonjour

    déjà tu mélanges VB6 et VB.Net, c'est déconseillé, principalement parce que les instruction VB6 ne sont pas objet. Mais aussi parce que dans de rares cas, il se passe des choses imprévues et qu'il est très difficile de débugger.

    Je te conseille donc d'enlever la référence à Visual Basic, voir ici pour plus d'infos https://codes-sources.commentcamarche.net/faq/11151-pourquoi-mon-code-vb6-vba-ne-marche-pas-en-vb-net

    Ensuite, il manque
        Next i
    End If
    dans le code que tu présentes, mais on va supposer qu'il s'agit d'une erreur de copier / coller.

    Voilà ton code remis en forme et en couleur (voir https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
            Dim nombre As String = "3" 'pour simuler ton textbox
            Dim resultat As String = "" 'idem
    
            Dim nbre, i, J As Integer
            nbre = Convert.ToInt32(nombre)
    
            If nbre < 2 Or nbre > 20 Then
                MessageBox.Show("entrer des valeurs comprises entre 2 et 20 . svp")
            Else
                resultat = nbre.ToString() + Environment.NewLine
                For i = 0 To nbre
                    If i <> 0 Then
                        resultat = i.ToString()
                    Else
                        resultat = ""
                    End If
                    For J = 1 To nbre
                        resultat = J.ToString()
                    Next J
                Next i
            End If


    Donc, tu commences par rentrer le nombre avec un retour charriot
    resultat = nbre.ToString() + Environment.NewLine


    Puis tu effaces ce qu'il y a dans resultat pour y mettre i ou ""
                    If i <> 0 Then
                        resultat = i.ToString()
                    Else
                        resultat = ""
                    End If
    et enfin tu effaces à nouveau ce qu'il y a dedans pour y mettre j
                    For J = 1 To nbre
                        resultat = J.ToString()
                    Next J


    Je ne sais pas quelle mise en forme tu cherches à avoir mais dans tous les cas, effacer ce qu'il y a dans la variable c'est pas bon.

    Tu peux simplement faire un truc comme ça
    resultat = resultat + i.ToString()
    ça va ajouter le texte au texte existant.
    Tu peux utiliser un StringBuilder pour construire le texte petit bout par petit bout https://docs.microsoft.com/fr-fr/dotnet/standard/base-types/stringbuilder
    Par exemple
    resultat = nbre.ToString() + Environment.NewLine
    deviendrait
    monBuilder.AppendLine(nbre.ToString())


    Tu peux aussi te servir de String.Format https://www.dotnetperls.com/format-vbnet
    Par exemple
    monBuilder.AppendLine(String.Format("Voici la table du {0}",nbre))


    0
    1. Madog
       
      Bonjour merci beaucoup
      0
    2. Utilisateur anonyme
       
      De rien

      et merci à balader d'avoir édité ton message pour que le code soit en couleur
      0