Aller au contenu

Petit problème en VB


Benaddar

Messages recommandés

L'énoncé de l'exercice est le suivant et se décline en trois étapes avec Visual basic 6.0 en utilisant qu'un seul module:

- Saisir 2 tableaux v et w;

- De bâtir et d'afficher deux tableaux construit à partir de v et w dont les zéros en fin de tableau. Le report des zéros en fin de liste fera l'objet d'une seule procédure paramétrée utilisée deux fois: une pour v et une pour w.

- D'afficher le nombre d'éléments non nul pour v et w

Voici le code que j'ai déja tapé:

Option Explicit

Dim v(1 To 10) As Integer
Dim w(1 To 10) As Integer
Dim i As Integer
Dim j As Integer
Dim cptw As Integer



Sub main()
'1----------------------------------------

'saisie de v
For i = 1 To 10
v(i) = InputBox("Case" + Str(i) + " de v")
Next

'saisie de w
For i = 1 To 10
v(i) = InputBox("Case" + Str(i) + " de w")
Next


'2----------------------------------------

'affichage de v
'MsgBox ("V:")

'affichage de w
'MsgBox ("W:")

'3----------------------------------------

'affichage du nombre d'éléments non nuls de v
j = 0
For i = 1 To 10
 If v(i) <> "0" Then
j = j + 1
 End If
Next
MsgBox ("V comporte " + Str(j) + " éléments non nuls")

'affichage du nombre d'éléments non nuls de w
j = 0
For i = 1 To 10
 If w(i) < 0 Then
j = j + 1
 End If
Next
MsgBox ("W comporte " + Str(j) + " éléments non nuls")

End Sub

Mon principal problèle est que je n'arrive pas à afficher les tableau (enfin leur contenu), ensuite j'ai un petit soucis pour le compte des éléments non nuls, en effet si je n'utilise pas deux variable différente ça ne fonctionne pas (dans mon code j'utilise j pour les deux tableaux mais sa ne fonctionne que lorsque je l'utilise sur un seul tableau. Je ne connais pas trop VB et je fais cela pour aider quelqu'un donc si vous pouviez me donner le maximum de détail afin que je puisse retranscrire au mieu merci =) .

Lien vers le commentaire
Partager sur d’autres sites

Déja je ferais un check si l'utilisateur rentre qqch, si c'est correct, et le cas ou il veut presser cancel.

donc qqch dans le style :

Dim sInput As String

Dim bFinished As Boolean

'saisie de v

bFinished = false

For i = 1 To 10

If not bFinished Then

sInput = InputBox("Case" + Str(i) + " de v")

If StrPtr(sInput) = 0 Then

'Cancel on met donc 0 par défaut sur tout le reste du tableau

v(i) = 0

bFinished = true;

Else

If Len(sInput) = 0 Then

'Si l'utilisateur ne remplit rien on met 0 par défaut par exemple

v(i) = 0

Else

v(i) = sInput

End If

End If

Else

v(i) = 0

End if

Next

Ensuite, idem pour W.

Et puis pour l'affichage : ben au moment ou tu fais ton check pour voir les non nulls tu dim un string que tu remplis

dim sV as String

dim iCount as Integer

for i = etc ...

if v(i) <> 0 then

iCount = iCount + 1

sV = sV + chr(10) + chr(13)

end if

next

msgbox("Contenu de V : " + sV);

Voila, dans le style. Bon ca fait bien 10 ans que j'ai plus codé en vb donc la syntaxe tu adaptes! c'est plus pour les idées ici.

ensuite oublie pas de pas tout laisser dans le sub main() et de passer par une procédure comme demandé dans l'énoncé.

bàt.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...