Cita:
Empezado por Casimiro Notevi
Es que así es casi imposible poder ayudarte
|
OK (Gracias por la ayuda). Voy a responderte a algunas de tus dudas e intentaré ponerlo más claro, pero ya verás que al ahorrarme poner todo el codigo lo que hago es simplificar la exposición.
Cita:
Empezado por Casimiro Notevi
SetLength(listaArray,0); ¿cero?, entonces no ingresarás nada aquí,
|
Sí, si se insertan datos. En la llamada a lista2Array se pasan los nodos de lalista de punteros a listaArray (pasar listaPunteros a Array) -> Al final del blucle.
for i:=o to n do ¿qué es 'o' y 'n'?
perdón '0' y 'n', no es relevante, simplemente el proceso se repite. en el proceso real i es un año de una lista de [añoInicio..añoFin].
listaPunteros := generaLista(T); ni idea de lo que hace esa función
etc. a partir de una tabla 'T': 3x14, cada celda tiene un valor de probabilidad 'p'. Bien pues la función genera todas las combinaciones de combinar 1 columna de las 14 filas.
Lo importante es que devuelve 3 elevado a 14 elementos enlazados en una lista de punteros con esos valores de probabilidad. Luego esa lista es ordenada, para tener toda la lista de valores de probabilidad ordenados de mayor a menor, por último se pasa de la lista de punteros a array (con la susodicha función lista2Array()).
No sé si comentar el código mucho mejor... pero creo que poniendo todo el tocho, al ser un tema de cálculo, va a ser más dificil de entender.
La clave está en ver como liberar la memoria en la lista de punteros y array en cada iteración... Que me da la sensación que aunque haga el 'Dispose' a la lista de punteros, el recolector de memoria o gestor no hace uso de la memoria (no sé hasta cuando)..
Saludos.