Declaracion de matriz

04/07/2003 - 13:46 por Oscar | Informe spam
Saludos.
Quiero declarar una matriz con un numero de elementos k
desconozco. Alguna sugerencia? Gracias.

Preguntas similare

Leer las respuestas

#1 Javier Balkenende
04/07/2003 - 14:02 | Informe spam
Dim NombreMatriz()
Dim k As Long

k = 12
ReDim NombreMatriz(k)


"Oscar" escribió en el mensaje
news:5aaa01c34221$f4f13bb0$
Saludos.
Quiero declarar una matriz con un numero de elementos k
desconozco. Alguna sugerencia? Gracias.





Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.493 / Virus Database: 292 - Release Date: 25/06/2003
Respuesta Responder a este mensaje
#2 Leonardo Azpurua
04/07/2003 - 14:50 | Informe spam
"Oscar" escribió en el mensaje
news:5aaa01c34221$f4f13bb0$
Saludos.
Quiero declarar una matriz con un numero de elementos k
desconozco. Alguna sugerencia? Gracias.



Hola, Oscar:

VB te permite utilizar arreglos (matrices unidimensionales) dinámicos:

Dim unArreglo() As unTipo
Dim nElementos as Long

nElementos = X
Redim unArreglo(1 To nElementos)

Lo que no puedes hacer es declarar matrices n-dimensionales dinámicas.

Aunque tambien para eso hay una solución:

Dim nFilas as Long, nColumnas as Long
Dim unaMatriz() as unTipo

nFilas = Xf: nColumnas = Xc
Redim unaMatriz(1 To nFilas * nColumnas)

Y mediante la función CalcularIndice(iFila, iColumna) puedes convertir las
coordenadas a un indice sobre un arreglo lineal, así:

Function CalcularIndice(iColumna, iFila) as Long
CalcularIndice = (iColumna - 1) * nFilas + iFila
End If

Con la unica limitante de que en lugar de escribir
unaMatriz(x, y)
deberás escribir
unaMatriz(CalcularIndice(x, y))

Siempre es mejor escribir un poco más que no poder hacer las cosas.

Salud!

Leonardo
MS - MVP
Respuesta Responder a este mensaje
#3 Leonardo Azpurua
05/07/2003 - 07:09 | Informe spam
"Manuel Romero" escribió en el mensaje
news:
Para matrices n-dimensionales, si puedes utilizar Redim

Dim Matriz() As Single

Redim Matriz(3,3)
' ******
' tu codigo
' ******
Redim Matriz(5,8) <= matriz nueva con todos los elementos borrados

La limitante es que al utilizar Preserve, solo puedes redimensionar la
ultima dimension



Pues tienes razón.

Leonardo
MS-MVP ...es decir, que debo estar más seguro de lo que escribo :-(
Respuesta Responder a este mensaje
#4 Manuel Romero
07/07/2003 - 16:30 | Informe spam
Don't worry, amigo Leonardo

"Leonardo Azpurua" <l a z p u r u a g (arroba) c a n t v (punto) n e t>
escribió en el mensaje news:%

"Manuel Romero" escribió en el mensaje
news:
> Para matrices n-dimensionales, si puedes utilizar Redim
>
> Dim Matriz() As Single
>
> Redim Matriz(3,3)
> ' ******
> ' tu codigo
> ' ******
> Redim Matriz(5,8) <= matriz nueva con todos los elementos borrados
>
> La limitante es que al utilizar Preserve, solo puedes redimensionar la
> ultima dimension

Pues tienes razón.

Leonardo
MS-MVP ...es decir, que debo estar más seguro de lo que escribo :-(


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida