structure répétition en vb.net, etudiant newbee

structure répétition en vb.net, etudiant newbee - C#/.NET managed - Programmation

Marsh Posté le 20-11-2004 à 18:49:58    


pour un TP très simple je dois faire un formulaire de placement
 
mes objets sont;
 
une boite du montant initial (txtmontant.text)
une boite du taux annuel (txttaux.text)
une boite du nombre d'année (txtcycle.text)
 
j'ai un bouton calculer et une boite multiligne (txtfinal.text) permettant d'afficher pour chaque ligne la valeur du placement par rapport au nombre d'année.
 
mais sans même afficher, la base de mon code est pourrit et ne calcule pas de la bonne facon, priorité d'opérateur ou variable mal déclaré, je comprend rien à la base de VB, et même si mon pseudo-code est bon comme ligne directrice, une fois dans VB c'est tout autre..
 
 
 
 
Private Sub cmdcalculer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdcalculer.Click
 
        Dim cycle As String = 1
        Dim resultat As String = Val(txtmontant.Text)
        Dim final As String
 
 
 
        Do
 
            resultat = Val(resultat) * (1 + (Val(txttaux.Text) / 100))
            final = resultat + vbNewLine
            cycle = Val(cycle) + 1
 
        Loop While Val(cycle) <= Val(txtcycle.Text)
 
        txtfinal.Text = final
 
 
 
    End Sub
 
 
 
 
 
 
en gros je suis sur que vous comprenez mon code, mais bon, il marche pas dutout, ma boite de resultat se réinitialise a toutes les boucle malgré le vbnewline etc....
 
 
 
le niveau de difficulté d'un tel prog est vraiment, mais vraiment facile, donc si tu comprend pas, pas la peine de poster.. y'a beaucoup de connaisseur avancé ici, et y'a qu'eux pour m'aider rapidement..
 
 :??:


---------------
ceci est un bloc de texte
Reply

Marsh Posté le 20-11-2004 à 18:49:58   

Reply

Marsh Posté le 20-11-2004 à 21:14:07    

Vectteur a écrit :


 
Private Sub cmdcalculer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdcalculer.Click
 
        Dim cycle As String = 1
        Dim resultat As String = Val(txtmontant.Text)
        Dim final As String
        Do
 
            resultat = Val(resultat) * (1 + (Val(txttaux.Text) / 100))
            final = resultat + vbNewLine
            final =final + vbNewLine + resultat
            cycle = Val(cycle) + 1
 
        Loop While Val(cycle) <= Val(txtcycle.Text)
 
        txtfinal.Text = final
    End Sub
 
en gros je suis sur que vous comprenez mon code, mais bon, il marche pas dutout, ma boite de resultat se réinitialise a toutes les boucle malgré le vbnewline etc....


 
Remplace la ligne en gras par celle en rouge, ca ira mieux deja...


Message édité par Tamahome le 20-11-2004 à 21:15:57
Reply

Marsh Posté le 20-11-2004 à 21:22:51    

cool, j'ai finit par trouver mais ça m'a pris du temps.. merci !
 
là je dois dessiner un carré constitué de '*' dans une boite de texte multiligne en utilisant les répétitions.
 
le pseudo-code du professeur fonctionne avec variable 'ligne' et 'colone';
 
POUR Ligne de 1 a 8 saut 1
     POUR colone de 1 a 8 saut 1
          ECRIRE '*'
     FIN POUR
           changement de ligne
FIN POUR
 
ce qui me bloque ce sont les variables ligne et colone dans ma boite de texte, elle corresponde à quoi ?
 
car j'en comprends que pour les colone 1 à 8 il ecrit un asterix, puis je fais ligne = ligne + 1, et il repasse la boucle jusqu'à la ligne 8, mais ligne c'est quoi ?
 
comment VB fait le lien entre 'ligne' et ma boite de texte qui sert à dessiner le resultat ?


---------------
ceci est un bloc de texte
Reply

Marsh Posté le 20-11-2004 à 21:50:31    

ok c'est bon, mais il me fait un 4X4 avec pourtant 1 à 8...
 
Dim line As Integer = 1
        Dim column As Integer = 1
        Dim test As String
        If rbplein.Checked = True Then
            For line = 1 To 8
                For column = 1 To 8
                    test = test + "*"
                    column = column + 1
                Next
                test = test + vbNewLine
                line = line + 1
            Next
            txtform.Text = test
        End If
 
 
 
bonne nuit


---------------
ceci est un bloc de texte
Reply

Marsh Posté le 21-11-2004 à 09:22:58    

Vectteur a écrit :

ok c'est bon, mais il me fait un 4X4 avec pourtant 1 à 8...
 
Dim line As Integer = 1
        Dim column As Integer = 1
        Dim test As String
        If rbplein.Checked = True Then
            For line = 1 To 8
                For column = 1 To 8
                    test = test + "*"
                    column = column + 1
                Next
                test = test + vbNewLine
                line = line + 1
            Next
            txtform.Text = test
        End If
bonne nuit


 
le code en gras est inutile, et meme pire, il pourrit ton code. Le mot clé "Next" s'occupe deja d'incrémenté ta variable de boucle (par défaut, le pas est de 1 et positif). Donc la tu incrementes deux fois en fait : comme tu comptes de 2 en 2, tu écris 4 étoiles au lieu de 8...

Reply

Marsh Posté le 21-11-2004 à 09:25:51    

oh..  
 
merci de la reponse, j'ai finit par me déboguer par essaie erreur sans vraiment comprendre la logique du code..s'pas tres constructif :)


---------------
ceci est un bloc de texte
Reply

Marsh Posté le 21-11-2004 à 09:27:47    

Vectteur a écrit :

oh..  
 
merci de la reponse, j'ai finit par me déboguer par essaie erreur sans vraiment comprendre la logique du code..s'pas tres constructif :)


 
Euh si c'est pour un TP, j'imagine que tu as eu des cours avec... c'est pas expliqué dedans ca ? Je veux dire, c'est pas spécifique à un langage en particulier, c'est le comportement normal et standard d'un "Next"...

Reply

Marsh Posté le 21-11-2004 à 10:20:14    

je suis dans un programme accéléré, ayant négligé un peu la prog au profit de math et de reseau..j'ai perdu le fils un peu
 
1 cours pour les IF
1 pour les CASE IS
1 pour les repetition
 
quand t'as jamais touché a ca c lourd de maitriser tout a fond.. du coup jai installé VB chez moi afin recommencer tout seul au lieu de copier des bout de code en classe qui me font passer sans comprendre..


---------------
ceci est un bloc de texte
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed