Visual Basic - Matriz casi nula a representación compacta

Life is soft - evento anual de software empresarial
 
Vista:

Matriz casi nula a representación compacta

Publicado por Sebastian (2 intervenciones) el 18/05/2016 04:42:35
Saludos, tengo el siguiente problema y no sé como puedo resolverlo, agradecería su ayuda:

Una matriz "casi nula" es una matriz con un alto porcentaje de elementos nulos (ceros). Una matriz "casi nula" con k elementos no nulos se puede representar almacenando los elementos no nulos en una matriz de k filas y tres columnas, conteniendo cada columna de esta matriz la fila, la columna y el valor de los elementos no nulos, respectivamente. Por ejemplo:

La matriz "casi nula":

0 0 3 0 0
0 0 0 0 0
0 6 1 0 0
0 0 0 0 0
0 0 0 0 1

Se puede representar por:

1 3 3
3 2 6
3 3 1
5 5 1

Crear un programa en VBA, que para cualquier matriz "A" "casi nula" de k filas y n columnas en representación normal, genere otra matriz "B" en representación más compacta similar a la del ejemplo y mostrar ambas en la hoja 1 en excel.

De Antemano, gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Matriz casi nula a representación compacta

Publicado por Andres Leonardo (1798 intervenciones) el 18/05/2016 15:58:55
Dime sin programa cual es la logica para que

La matriz "casi nula":

0 0 3 0 0
0 0 0 0 0
0 6 1 0 0
0 0 0 0 0
0 0 0 0 1

Se puede representar por:

1 3 3
3 2 6
3 3 1
5 5 1

Como entiendo que 00300 se haga 133 ???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

Matriz casi nula a representación compacta

Publicado por Sebastian (2 intervenciones) el 18/05/2016 16:03:53
Observa que el primer elemento en este caso el 3, se encuentra en la primera fila (1), tercera columna (3) y su valor es 3. De esta manera pasamos de tener 00300 a tener 133.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Matriz casi nula a representación compacta

Publicado por Andres Leonardo (1798 intervenciones) el 19/05/2016 20:01:16
Pues es sencillo .... el tema es donde tienes los elementos pero

1
2
3
4
5
6
For i = 1 To l  'largo de la matriz casi nula 
    For j = 1 To a ' Ancho de la Matriz casi nula 
         if matrizcasinula(i, j)   <> 0  then
               d = i & " - " j & " - " matrizcasinula(i, j) & chr (13)
    Next j
Next i
to
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Matriz casi nula a representación compacta

Publicado por Andres Leonardo (1798 intervenciones) el 20/05/2016 03:53:14
me olvidaba decir qeu en la variable D vas a tener el

133
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar