Tema: Llenar array
Ver Mensaje Individual
  #33  
Antiguo 20-02-2020
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
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
__________________
El malabarista.

Última edición por mamcx fecha: 20-02-2020 a las 21:22:27.
Responder Con Cita