El asunto es que en una "marea" de codigo es facil perderse:
http://www.dreamsongs.com/ObjectsHaveNotFailedNarr.html
Cita:
Muestrame tus flujos y esconde tus tablas, y me mantendrás estupefacto. Muestrame tus tablas y usualmente no necesitare tus flujos, estos serán obvios.
Show me your flowchart and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowchart; it'll be obvious.
--Fred Brooks, in Chapter 9 of The Mythical Man-Month
|
Por lo que veo del codigo, esta muy complicado. Tiene DEMASIADAS constantes, abreviaciones y demás que no dejan claro qué es que. Es mas simple escribir funciones cortas que resuelven tareas especificar, y unirlas reduciendo al minimo el uso de variables de estado. Para simular el uso de "tablas" y hacer evidente la estructura del programa, usa en Delphi Records(mejor pa este caso)/Objetos.
Asi, por ejm:
Código Delphi
[-]
type
TPlaneta = (SE_MERCURY, SE_VENUS, ...);
TPlanetaMedicion = Record
nombre: TPlaneta
..
..
end;
procedure medir(planeta : TPlaneta): TPlanetaMedicion;
Nota bien lo interesante. Usando records/clases como si modelaras las "tablas" de una BD vas dandole forma a la
estructura conceptual del programa, y al usuarlo en funciones/metodos se vuelve claro
cual es el flujo de este: "medir TPlaneta me retorna un TPlanetaMedicion".
El programa se AUTO DOCUMENTA cuando usas los nombres/clasificaciones/tipos de datos adecuados. De allí es copiar datos y calcular. Ademas, en Delphi tienes enumeraciones y sets, que son superiores (logicamente) que clavar constantes como ocurre con SE_MERCURY y similares.
Aunque pueden haber expeciones, si un metodo/funcione tiene "muchas" lineas *tal vez* es buena idea partirlo en sub rutinas (o agregas marcas con comentario en las secciones).
El truco que dice
Fred Brooks es que estructurar los datos clarifica el programa mientras el codigo "duro" lo obscurece.
Con respecto a copiar arrays, es mejor que aprendas como usar iteraciones y LOW/HIGH para capturar las posiciones del mismo:
http://www.delphibasics.co.uk/Article.asp?Name=Arrays