Índices de matrices

16/02/2004 - 16:05 por Jose | Informe spam
¿Es posible utilizar una variable como índice en una matriz?

Estoy intentando hacer algo como
.
DIM natriz()
contador=0
..
matriz(contador)=7
..
contador=contador+1

y me da error : "El subíndice está fuera del intervalo"

Gracias

Preguntas similare

Leer las respuestas

#1 Manuel Vera
16/02/2004 - 16:16 | Informe spam
El error que te está dando es porque sobrepasaste la cantidad de elementos
de la matriz. Muestra estos valores en pantalla para que lo compruebes:

response.write "<br>maximo valor de indice: " & ubound(matriz)
response.write "<br>indice actual: " & contador

Si actual es mayor a maximo, alli esta el error.

Saludos
MV

"Jose" wrote in message
news:
¿Es posible utilizar una variable como índice en una matriz?

Estoy intentando hacer algo como
.
DIM natriz()
contador=0
..
matriz(contador)=7
..
contador=contador+1

y me da error : "El subíndice está fuera del intervalo"

Gracias




Respuesta Responder a este mensaje
#2 urko
16/02/2004 - 16:19 | Informe spam
es posible pero tienes que redimensionar el array

dim matriz()
contador=1

matriz(contador)=7
..
contador=contador+1
REDIM PRESERVE matriz(2)



"Jose" escribió en el mensaje
news:
¿Es posible utilizar una variable como índice en una matriz?

Estoy intentando hacer algo como
.
DIM natriz()
contador=0
..
matriz(contador)=7
..
contador=contador+1

y me da error : "El subíndice está fuera del intervalo"

Gracias




Respuesta Responder a este mensaje
#3 danicastillo
16/02/2004 - 16:20 | Informe spam
es posible, pero debes dimensionar la matriz primero

dim matriz(100)


si no conoces a priori el tamaño q necesitas, deberas usar redim (con el
modificador preserve, creo que en asp se usaba pero igual me lio con vb ...
pruebalo) de todas formas no hagas un redim por cada elemento pq es bastante
consumidor de tiempo, si es algo que vas a usar mucho (bucles y demas) lo
mejor es para insertar:

if ubound(matriz)<contador then
redim preserve matrix(ubound(matriz)+ 100)
end if
matriz(contador)=.

el +100 es "asignar" 100 elementos mas , depende de tu aplicacion seria un
+1 o un +1000 ... ;) , depende de el termino aprox de elementos que manejes
y cuantas veces vayas a llamar a esa funcion, la pega de ponerlo grande esq
usas mas recursos de los necesarios, la pega de ponerlo pequeño esque llamas
mas veces a la funcion de redimensionado

por ejemplo: imagina que calculas q necesitas entre 4000 y 5000 datos
normalmente, yo haria un dim al principio con 4000, luego incrementaria de
100 en 100 , eso me daria un "desperdicio" de espacio por ejemplo en el caso
peor de 5100 de dimension para 5001 datos, cosa de un 1/50 de tamaño extra
que no es mucho, con unas 10 llamadas a la funcion de redimensionado , que
tampoco es demasiado, sin embargo si inicializaras a 4000 tambien pero
incrementando de 1 en 1 no desperdicias memoria, pero llamarias 1000 veces a
la funcion de redimensionar


-o|o|--
-o|o| dani castillo
-o|o| http://www15.brinkster.com/danic/
-o|o| tutorial y trucos asp, vb, diseño
-o|o|--
"Jose" escribió en el mensaje
news:
¿Es posible utilizar una variable como índice en una matriz?

Estoy intentando hacer algo como
.
DIM natriz()
contador=0
..
matriz(contador)=7
..
contador=contador+1

y me da error : "El subíndice está fuera del intervalo"

Gracias




Respuesta Responder a este mensaje
#4 Matias Iacono
16/02/2004 - 16:30 | Informe spam
Lo que pasa que no tiene un valor especifico... basicamente, no te dejaria
hacerlo en ningun lenguaje...

Lo que tendrias que hacer es REDIMENSIONAR al valor que quieras...

Deberias usar REDIM

"Jose" escribió en el mensaje
news:
¿Es posible utilizar una variable como índice en una matriz?

Estoy intentando hacer algo como
.
DIM natriz()
contador=0
..
matriz(contador)=7
..
contador=contador+1

y me da error : "El subíndice está fuera del intervalo"

Gracias




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