ayuda con las operaciones de matrises en vb

Iniciado por [sadiko], 14 Junio 2008, 19:06 PM

0 Miembros y 2 Visitantes están viendo este tema.

[sadiko]

bueno ese es mi problema que se introducen las matrices bien pero el problema es que cuando empuesa la primera operacion me marca un error me dice que el sub indice esta fuera del intervalo y me marca esta linea
d(k, l) = a(i, j) - c(i, j)

y segun el profe que me lo reviso estaba bien  :-(   aqui esta mi code

For i = 1 To 3
For j = i To 3
a(i, j) = InputBox("introduce la matriz a")
Next j
Next i
For i = 1 To 3
For j = 1 To 3
b(i, j) = InputBox("introduce la matriz b")
Next j
Next i
For i = 1 To 3
For j = 1 To 3
c(i, j) = InputBox("introduce la matriz c")
Next j
Next i
For k = 1 To 3
For l = 1 To 3
d(k, l) = a(i, j) - c(i, j)
e(k, l) = 3 * b(i, j)
f(k, l) = 4 * a(i, j)
g(k, l) = e(i, j) - f(i, j)
h(1, 1) = d(1, 1) * g(1, 1) + d(1, 2) * g(2, 1) + d(1, 3) * g(3, 1)
h(1, 2) = d(1, 1) * g(1, 2) + d(1, 2) * g(2, 2) + d(1, 3) * g(3, 2)
h(1, 3) = d(1, 1) * g(1, 3) + d(1, 3) * g(2, 3) + d(1, 3) * g(3, 3)
h(2, 1) = d(2, 1) * g(1, 1) + d(2, 2) * g(2, 1) + d(2, 3) * g(3, 1)
h(2, 2) = d(2, 1) * g(1, 2) + d(2, 2) * g(2, 2) + d(2, 3) * g(3, 2)
h(2, 3) = d(2, 1) * g(1, 3) + d(2, 2) * g(2, 3) + d(2, 3) * g(3, 3)
h(3, 1) = d(3, 1) * g(1, 1) + d(3, 2) * g(2, 1) + d(3, 3) * g(3, 1)
h(3, 2) = d(3, 1) * g(1, 2) + d(3, 2) * g(2, 2) + d(3, 3) * g(3, 2)
h(3, 3) = d(3, 1) * g(1, 3) + d(3, 2) * g(2, 3) + d(3, 3) * g(3, 3)
Next l
Next k


y otra cosa no se como iprimirlo en un label sin que se borre el primer valor
osea que mi matriz sea
1,2,3
4,5,6
7,8,9
y se impima en ese orden por que si le doy
label1=a(1,1); a(1,2); a(1,3)
me marca error en el ;  me dice que se esperava fin de la instruccion  :-\
y si le doy
label1=a(1,1)
label1=a(1,2)
etc etc  me borra el primer valor y solo se queda con el ultimo  :huh:

salu2 ::)

cassiani

#1
Cita de: [sadiko] en 14 Junio 2008, 19:06 PM
bueno ese es mi problema que se introducen las matrices bien pero el problema es que cuando empuesa la primera operacion me marca un error me dice que el sub indice esta fuera del intervalo y me marca esta linea
d(k, l) = a(i, j) - c(i, j)

Fijate que estas usando las variables I y J para las operaciones, en un par de ciclos For que usan OTRAS variables (k y l)...  cuando el antepenultimo par de For termina de usar las variables J e I estas toman el siguiente valor, o sea "4"... a(4,4) esta fuera del intervalo, además, debes usar dentro del ultimo par de For las variables de estos para las operaciones  que realizas...

Código (vb) [Seleccionar]
d(K, L) = a(I, J) - c(I, J) 'Incorrecto
d(K, L) = a(K, L) - c(K, L) 'Corecto


Para imprimirlo puedes hacer esto si lo sigues haciendo con el label, aunque para mi mejor un listbox...

Código (vb) [Seleccionar]
For K = 1 To 3
        For L = 1 To 3
            Label1.Caption = Label1.Caption & vbCrLf & h(K, L)
        Next L
Next K


O si lo prefieres, así:

Código (vb) [Seleccionar]
J = 1
    For I = 1 To 3
        Label1.Caption = Label1.Caption & h(I, J) & " " & h(I, J + 1) & " " & h(I, J + 2) & vbCrLf
    Next

[sadiko]

yea muchas gracias ya le entendi a las operaciones :D

solo una cosita para imprimirlas no hay una forma de que me salgan bien en 3 x 3 osea que salgan en este formato
1 2 3
1 2 3
1 2 3

por que me sale en forma de lista
1
2
3
1
2
3
1
2
3

pero gracias por las operaciones :D

cassiani

Cita de: [sadiko] en 15 Junio 2008, 06:13 AM
solo una cosita para imprimirlas no hay una forma de que me salgan bien en 3 x 3 osea que salgan en este formato
1 2 3
1 2 3
1 2 3


Cita de: cΔssiΔnі en 14 Junio 2008, 19:37 PM
Código (vb) [Seleccionar]
J = 1
For I = 1 To 3
        Label1.Caption = Label1.Caption & h(I, J) & " " & h(I, J + 1) & " " & h(I, J + 2) & vbCrLf
Next