ERRO VBA

CISCO 20/03/2014 16:48:19
#436306
Boas

tenho um exercício que é suposto calcular o produto escalar de 2 vetores e depois multiplicar esse escalar por outro vetor, utilizando módulos...

aqui estão os módulos:

Module Module1
Public Function ler_vetor() As Double()
Dim x() As Double
Dim n As Integer
n = Val(InputBox([Ô]nº d comp=[Ô]))
ReDim x(n)
For i = 1 To n
x(i) = Val(InputBox(i & [Ô] º=[Ô]))
Next
Return x
End Function
Public Function prod_esc(ByVal x() As Double, ByVal y() As Double) As Integer
Dim soma As Integer
soma = 0
For i = 1 To UBound(x)
soma = soma + x(i) * y(i)
Next
Return soma
End Function
Public Function vetor_k(ByVal k As Double, ByVal x() As Double) As Double()
Dim y() As Double
ReDim y(UBound(x))
For i = 1 To UBound(x)
y(i) = k * x(i)
Next
Return y
End Function
End Module

e o programa em si é:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x(), y(), z(), w(), P As Double
x = ler_vetor()
y = ler_vetor()
z = ler_vetor()
P = prod_esc(x, y)
MsgBox([Ô]é= [Ô] & P)
w = vetor_k(P, z)
ListBox1.Items.Add(w(i))
End Sub

Quando corre o programa todo, independentemente dos valores que escolho, na listbox1 apenas me aparece um 0. Até à msgbox o programa está certo (acho) visto que o produto escalar corresponde aos dados que introduzo nos vetores.
Alguém me pode dar um ajuda?
obrigado desde já
GUIMORAES 20/03/2014 17:05:22
#436308
Resposta escolhida
Você deve percorrer a matriz, veja que você só informou a variável i, mas onde ela está declarada, cade o For?

For i = 0 To UBound(w)
ListBox1.Items.Add(w(i))
Next
CISCO 20/03/2014 17:17:05
#436311
certo já funciona
obrigado amigo
Tópico encerrado , respostas não são mais permitidas