Page 1 of 1

Agrandar un ARRAY bidireccional

Posted: Mon May 01, 2006 5:46 am
by goosfancito
Estimados,

Tengo esto:

Code: Select all

Local aMatriz:={ {} }
Ahora bien, quiero hacer que dicha matriz tome 10 x 10 pisiciones.

He visto en las NG

Code: Select all

aSize( aMatriz, {10, 10 } ) 
pero en este caso pondría dos valores, yo necesito simplemente agrandar la matriz.

Alguna Idea?

He dicho.

Re: Agrandar un ARRAY bidireccional

Posted: Mon May 01, 2006 9:16 am
by wmormar
goosfancito wrote:Estimados,

Tengo esto:

Code: Select all

Local aMatriz:={ {} }
Ahora bien, quiero hacer que dicha matriz tome 10 x 10 pisiciones.

He visto en las NG

Code: Select all

aSize( aMatriz, {10, 10 } ) 
pero en este caso pondría dos valores, yo necesito simplemente agrandar la matriz.

Alguna Idea?

He dicho.
Goos,

Creo que es multidimensional.

Code: Select all

Asize( aMatriz, 10 )
aMatriz[10] := ARRAY(10)
   o
AEVAL( aMatriz,{|aItem| aItem := ARRAY(10) } )
Espero haber ayudado

Posted: Mon May 01, 2006 4:57 pm
by goosfancito
Estimado,

No se si es validero, pero a medida que resuelvo los problemas los voy respondiendo.

Objetivo: crear una matriz multidimensional (palabra larga esta che!) cuyo contenido es un vector de diferentes dimensiones.

Code: Select all

STATIC aMatriz:={ }

FUNCTION main()
   LOCAL aVector:={}

   ASize( aVector, 10 )
   AAdd( aMatriz, aVector )

   aVector:={}
   ASize( aVector, 04 )
   AADD( aMatriz, aVector )

   // Prueba
   ? "Tamaño aMatriz", Len( aMatriz )
   ? "posicion 1 10 de aMatriz", aMatriz[ 01 ][ 10 ]
  
   // el siguiente daria error porque la posicion 2 de aMatriz tiene ahora 5 posiciones
   ? "posicion 2 10 de aMatriz", aMatriz[ 02 ][ 10 ] 

   // En cambio la siguiente linea no daria error
   ? "posicion 2 5 de aMatriz", aMatriz[ 02 ][ 05 ] 

   RETURN ( NIL )
He dicho.