Definir vector, array o tabla

Discusión en general sobre Gemix.

Definir vector, array o tabla

Postby necro_vampire » Wed Oct 15, 2008 8:35 pm

kiero definir un vector sin especificar a cantidad de elemntos que contendra...

algo asi:

Code: Select all
Program tirarDado;

global
dadotirado[];
BEGIN
...
END


kreo q no se puede en div2, se podria agregar a gemix
Image
Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.
User avatar
necro_vampire
 
Posts: 1372
Joined: Fri Oct 10, 2008 12:38 am
Location: Death Soul city???

Re: Definir vector, array o tabla

Postby CicTec » Wed Oct 15, 2008 9:09 pm

Hola

se puede, si inicializas los elementos, por ejemplo:

Code: Select all
global
  dadotirado[] = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;


eso crea una tabla (vector) de 10 elementos

De todas formas lo que buscas creo que es un array dinamico, no ? si es lo que buscas, mejor que usas malloc/free para create una tabla dinamica.
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: Definir vector, array o tabla

Postby necro_vampire » Fri Oct 17, 2008 1:06 pm

La verdad me resulta un poco engorroso manejar memoria apra un dato primitivo...

kero decir no seria mejor solo manejar memoria para estructuras o casas asi...???

weno me pongo a revisar la docuemtnacion de div 2...

graxis
Image
Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.
User avatar
necro_vampire
 
Posts: 1372
Joined: Fri Oct 10, 2008 12:38 am
Location: Death Soul city???

Re: Definir vector, array o tabla

Postby CicTec » Fri Oct 17, 2008 1:29 pm

mmmmm si, pero de la forma que quieres tu, o usas memoria estatica (ej: int array[elementos]) o memoria dinamica atraves punteros y malloc/free, lo de usar la forma:
Code: Select all
global
   dadotirado[];
no es comun y personalmente no se donde la puedes haber visto, ademas, de momento el compilador asi no tiene info para saber en que cantidad alocar el array, hay que especificar necesariamente el tamano, sino hay que construirte un sistema dinamico atraves malloc/free.

Si nos explicas mejor el sistema que tienes pensado puede ser que se pueda implementar en Gemix en las proximas versiones :)
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: Definir vector, array o tabla

Postby necro_vampire » Fri Oct 17, 2008 7:36 pm

por ejemplo
que el vector indefinido
tenga por ejemplo 20 posiciones...

y cuando se llenen por ejemplo 15...
se redimenciones por si mismo a por ejemplo 25 posiciones...

y cuando se llenen 18 se redimencione a 30...

la redimencion es dimanica pero se trabaja como un array statico...

kreo es lo q usa java con sus arrayList...

pero yo lo planteo para array de datos primitivos, ya q en java los arrayList son objetos...
kreo q en C o n C++ tambien se hace...(??)
no rekeurdo...
ace años q no toco nada de C...

kreo q todo lo debe hacer el compilador...

aunq todo es mi opinion...
ya q dejaria el uso de memoria para cosas mas complejas...
como una pila,cola u una estrcuctura, manejar datos de archivos...

hablando de archivos...
no se podira conectar gemix con una base de datos...???

ya si lo piensas, gemix sta orientado al desarrollo de video jeugos...
pero se puede hacer varias cosas ams...
como por ejemplo usarlo para la distribucion de por ejemplo una histerieta...
no seria mas q el manejo de imagenes...
Last edited by necro_vampire on Fri Oct 17, 2008 7:50 pm, edited 1 time in total.
Image
Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.
User avatar
necro_vampire
 
Posts: 1372
Joined: Fri Oct 10, 2008 12:38 am
Location: Death Soul city???

Re: Definir vector, array o tabla

Postby GINO » Fri Oct 17, 2008 7:43 pm

Jeje el array list de java me imagino q usara listas enlazadas o algo asi, las cuales usan memoria dinamica y punteros al fin y al cabo. Yo creo q mas adelante podras tener lo que quieres, en cuanto el lenguaje avance un poco mas.
User avatar
GINO
 
Posts: 2823
Joined: Thu Jul 31, 2008 10:25 pm

Re: Definir vector, array o tabla

Postby CicTec » Fri Oct 17, 2008 7:47 pm

ni C ni C++ hacen nada de eso, usan la forma clasica, o sea hay que poner el tamano entre [ ] en la definicion del dato o usar punteros con malloc/free.

En C++ se puede implementar algo asi si, definendo una clase que lo haga, pero eso obviamente no es un dato primitivo, o sea en C/C++ los datos primitivos no se comportan asi, java lo hara porque ha sido implementado nativamente de esa forma y porque es un array de objetos en realidad.

Anoto tu sugerencia, a ver si se puede hacer algo en las proximas versiones, de momento hay que usar la forma clasica especificando el tamano entre [ ].
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: Definir vector, array o tabla

Postby Dluk » Mon Jan 05, 2009 11:12 pm

CicTec wrote:
Code: Select all
global
   dadotirado[];
no es comun y personalmente no se donde la puedes haber visto


Esa opción al definir arrays estaba en el primer DIV (DIV2 no se si la seguía teniendo). De todas formas, era medio arriesgado usarla en una PC limitada, porque podía pasar que, usando demasiadas posiciones de ese tipo de array, el compilador tirará un error de máximos procesos posibles en ejecución. Personalmente, creo que es mejor usar arrays definidos o usar la función malloc. De la otra forma me parecía un poco riesgoso...
Image
"El destino es como un juego... ¿No? Y ahora, esperas mi último movimiento"

Kain - Legacy of Kain: Soul Reaver
User avatar
Dluk
 
Posts: 2422
Joined: Sun Jan 04, 2009 3:51 pm
Location: En el campo de batalla

Re: Definir vector, array o tabla

Postby CicTec » Mon Jan 05, 2009 11:16 pm

Dluk wrote:
CicTec wrote:
Code: Select all
global
   dadotirado[];



Esa forma en DIV2 da error de compilacion, tienes que especificar con inicializadores el numero de elementos que dentra el array, por ejemplo:

Code: Select all
global
   dadotirado[] = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;

En ese caso se definira un array de 10 elementos, no creo que DIV 1 soporte de definir eso sin inicializar, en todo caso si se quiere un array dinamico la solucion al momento es MALLOC
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: Definir vector, array o tabla

Postby Dluk » Mon Jan 05, 2009 11:31 pm

Aunque suene a mentira depiadada (XD) DIV 1 soporta definir un vector sin inicializar, pero consume muchisímos recursos, limitando demasiado la cantidad de procesos posibles durante la ejecución. Debe ser por eso que esa posibilidad desapareció en DIV 2.

La única "ventaja" de definir un vector sin inicializar en DIV 1 es que se comportaba como si tuviera "infinitas" posiciones. Pero bueno, para hacer eso también tenemos la función malloc... ¿No? No creo que valga la pena que aparezce esta carácteristica en Gemix.

Por cierto, según tengo entendido, había algunas carácteristicas de DIV 1 que desaparecieron o fueron modificadas para DIV 2. Pero como nunca usé el DIV 2 no sabría decir cuales cambiaron o se fueron. Si tengo tiempo voy a conseguirlo y ver que logro descubrir.

Saludos ^^
Image
"El destino es como un juego... ¿No? Y ahora, esperas mi último movimiento"

Kain - Legacy of Kain: Soul Reaver
User avatar
Dluk
 
Posts: 2422
Joined: Sun Jan 04, 2009 3:51 pm
Location: En el campo de batalla

Next

Return to General

Who is online

Users browsing this forum: No registered users and 2 guests