Definir vector, array o tabla

Discusión en general sobre Gemix.
User avatar
necro_vampire
Posts: 1372
Joined: Fri Oct 10, 2008 12:38 am
Location: Death Soul city???
Contact:

Definir vector, array o tabla

Post by necro_vampire »

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
CicTec
Posts: 16590
Joined: Thu Jul 31, 2008 10:18 pm

Re: Definir vector, array o tabla

Post by CicTec »

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
necro_vampire
Posts: 1372
Joined: Fri Oct 10, 2008 12:38 am
Location: Death Soul city???
Contact:

Re: Definir vector, array o tabla

Post by necro_vampire »

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
CicTec
Posts: 16590
Joined: Thu Jul 31, 2008 10:18 pm

Re: Definir vector, array o tabla

Post by CicTec »

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
necro_vampire
Posts: 1372
Joined: Fri Oct 10, 2008 12:38 am
Location: Death Soul city???
Contact:

Re: Definir vector, array o tabla

Post by necro_vampire »

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
GINO
Posts: 2823
Joined: Thu Jul 31, 2008 10:25 pm
Contact:

Re: Definir vector, array o tabla

Post by GINO »

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
CicTec
Posts: 16590
Joined: Thu Jul 31, 2008 10:18 pm

Re: Definir vector, array o tabla

Post by CicTec »

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
Dluk
Posts: 2423
Joined: Sun Jan 04, 2009 3:51 pm
Location: En el campo de batalla
Contact:

Re: Definir vector, array o tabla

Post by Dluk »

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
CicTec
Posts: 16590
Joined: Thu Jul 31, 2008 10:18 pm

Re: Definir vector, array o tabla

Post by CicTec »

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
Dluk
Posts: 2423
Joined: Sun Jan 04, 2009 3:51 pm
Location: En el campo de batalla
Contact:

Re: Definir vector, array o tabla

Post by Dluk »

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
Post Reply

Return to “General”