Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Duda en trabajo con arreglos (https://www.clubdelphi.com/foros/showthread.php?t=68466)

dextervc 15-06-2010 18:08:15

Duda en trabajo con arreglos
 
Hola a todos tengo el siguiente problema

Tengo un arreglo dinamico de este tipo

Type
AMatriz = array of array od Extended;

el problema es que cuando le doy asignar la dimension de la matriz utilizo

SetLength()

Pero cuando es una cantidad muy grande me da un error de memoria por ejemplo con
Var
A:AMatriz;
Begin
SetLength(A,10000,10000);

como puedo solucionar este error de memoria. si alguien conoce como puedo trabajar con arreglos muy grandes.

Gracias de atemanos saludos Dexter

roman 15-06-2010 18:41:18

Pero, ¡eso es 1Gb de memoria! :eek: Si te marca error, tendrás que aumentar la memoria de tu computadora.

// Saludos

Casimiro Noteví 15-06-2010 20:43:34

Cita:

Empezado por dextervc (Mensaje 367314)
[..]SetLength(A,10000,10000);

como puedo solucionar este error de memoria. si alguien conoce como puedo trabajar con arreglos muy grandes. [..]

10.000x10.000 = 100.000.000 bytes
100.000.000 bytes / 1024 = 97.656 KBytes
97.658 KBytes / 1024 = 95.3 Mbytes

Si no me he confundido, son casi 100 Mbytes :)

Un extended tiene 10 bits, por lo tanto, lo que ha dicho roman, 1 Giga :D

Ñuño Martínez 16-06-2010 09:39:18

Un pequeño [off-topic]:

Cuidado con los false friends: que una palabra castellana (o española) se escriba de forma parecida a la palabra inglesa (o cualquier otro idioma) no implica que signifiquen lo mismo; esto ocurre incluso cuando ambos idiomas tienen la misma raíz (por ejemplo, el francés "Bizarre" [extraño, raro] y el castellano "Bizarro" [valiente, entregado]).

En el caso que nos atañe (y mal que me pese, por una vez coincido con la RAE):
Cita:

Empezado por Real Academia de la Lengua Española
arreglo.

1. m. Acción y efecto de arreglar.

2. m. Regla, orden, coordinación.

3. m. Avenencia, conciliación.

4. m. Transformación de una obra musical para poder interpretarla con instrumentos o voces distintos a los originales.

5. m. coloq. amancebamiento.

~ de cuentas.

1. m. Acto de tomarse la justicia por su mano o vengarse.

~ parroquial.

1. m. Reforma de las categorías y demarcaciones de las parroquias de una diócesis.

con ~ a.

1. loc. prepos. Conformemente con, según.

Ergo "Arreglo" no es correcto ni por casualidad.

Casimiro Noteví 16-06-2010 11:12:15

Cita:

Empezado por Ñuño Martínez (Mensaje 367383)
[..] Ergo "Arreglo" no es correcto ni por casualidad.

Sí, me resulta extrañísimo ver palabras como: arreglo, forma, grilla, etc.

roman 16-06-2010 16:12:32

Es perfectamente válido, al igual que lo es para un arreglo de flores. Se trata de una disposición, una forma de ordenar, un conjunto de números. No porque se parezca al vocablo array.

// Saludos

gonzalo_enero 16-06-2010 20:54:47

Que entiendes por dinámico ?
 
Para empezar dices que quieres que sea dinámico pero pones una dimensión exacta :-? ......
Si quieres que sea dinámica no pongas una dimensión (Create un dato y un puntero a NULL inicialmente), solicita un espacio de memoria, de esa manera sabras que podes almacenar un elemento mas....
Como tu caso es una Matriz... solicita si te puede dar un espacio como para una fila entera :-) y asi según lo necesites ....


Prefiero que me expliques mas detenidamente que es lo que quieres hacer porque porque asi te podre ayudar con un poco de código para tus Nodos y tu clase :-D

rgstuamigo 16-06-2010 21:32:50

Cita:

Empezado por gonzalo_enero (Mensaje 367465)
Para empezar dices que quieres que sea dinámico pero pones una dimensión exacta :-? ......
Si quieres que sea dinámica no pongas una dimensión (Create un dato y un puntero a NULL inicialmente), solicita un espacio de memoria, de esa manera sabras que podes almacenar un elemento mas....
Como tu caso es una Matriz... solicita si te puede dar un espacio como para una fila entera :-) y asi según lo necesites ....


Prefiero que me expliques mas detenidamente que es lo que quieres hacer porque porque asi te podre ayudar con un poco de código para tus Nodos y tu clase :-D

Creo que lo que está hablando el amigo dextervc es de cómo trabajar con "matrices dinámicas multidimensionales" y no "lista dinámicas" para las cuales efectivamente se suele usar punteros dentro de una estructrura de dato llamada Nodo, pero en éste caso se esta trabajando con Matrices dinámicas multidimensionales".;)
Para mas detalles ver la ayuda de Delphi buscando en el indice "Multidimensional dynamic arrays".
Saludos ...:)


La franja horaria es GMT +2. Ahora son las 00:36:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi