MATRIZ
A minha professora pediu para fazer um exercÃcio que multiplicasse todos os elementos da matriz não nulos.
o módulo que utilizei para ler a matriz:
Public Function lermatriz() As Double(,)
Dim n, m As Integer
Dim x(,) As Double
n = Val(InputBox([Ô]nº de linhas=[Ô]))
m = Val(InputBox([Ô]nº de colunas=[Ô]))
ReDim x(n, m)
For i = 1 To n
For j = 1 To m
x(i, j) = Val(InputBox([Ô]([Ô] & i & [Ô],[Ô] & j & [Ô])[Ô]))
Next
Next
Return x
End Function
o programa em si:
Dim x(,) As Double
Dim mult As Double
mult = 1
x = lermatriz()
For i = 1 To UBound(x, 1)
For j = 1 To UBound(x, 2)
If x(i, j) <> 0 Then
mult = mult * x(i, j)
End If
Next
Next
MsgBox(mult)
o programa lê a matriz correctamente, mas ao multiplicar apenas multiplica o maior valor da matriz por 1, e ignora os outros valores
alguém me pode ajudar a perceber onde está o erro
obrigado
o módulo que utilizei para ler a matriz:
Public Function lermatriz() As Double(,)
Dim n, m As Integer
Dim x(,) As Double
n = Val(InputBox([Ô]nº de linhas=[Ô]))
m = Val(InputBox([Ô]nº de colunas=[Ô]))
ReDim x(n, m)
For i = 1 To n
For j = 1 To m
x(i, j) = Val(InputBox([Ô]([Ô] & i & [Ô],[Ô] & j & [Ô])[Ô]))
Next
Next
Return x
End Function
o programa em si:
Dim x(,) As Double
Dim mult As Double
mult = 1
x = lermatriz()
For i = 1 To UBound(x, 1)
For j = 1 To UBound(x, 2)
If x(i, j) <> 0 Then
mult = mult * x(i, j)
End If
Next
Next
MsgBox(mult)
o programa lê a matriz correctamente, mas ao multiplicar apenas multiplica o maior valor da matriz por 1, e ignora os outros valores
alguém me pode ajudar a perceber onde está o erro
obrigado
Mas CISCO,
Desculpe ...
... está multiplicando po 1 mesmo!
veja: [Ô]mult = 1[Ô]
Geralmente quando a gente multiplica uma matriz é por outra ...
... mas pode-se multiplicar cada elemento da raiz por um número especÃfico.
Qual valor que está ignorando?!?
O que você quer que o programa faça?
[][ô]s,
Tunusat.
Desculpe ...
... está multiplicando po 1 mesmo!
veja: [Ô]mult = 1[Ô]
Geralmente quando a gente multiplica uma matriz é por outra ...
... mas pode-se multiplicar cada elemento da raiz por um número especÃfico.
Qual valor que está ignorando?!?
O que você quer que o programa faça?
[][ô]s,
Tunusat.
Eu sei... é suposto o programa ver todos os valores da matriz e multiplicar todos os valores diferentes de 0, por exemplo:
2 3
3 0
a resposta da msgbox deveria de ser 3*3*2=18
mas em vez de fazer isso multiplica 1 pelo ultimo numero (excepto 0), neste caso, 1*3=3
2 3
3 0
a resposta da msgbox deveria de ser 3*3*2=18
mas em vez de fazer isso multiplica 1 pelo ultimo numero (excepto 0), neste caso, 1*3=3
Tópico encerrado , respostas não são mais permitidas