• Viernes 8 de Noviembre de 2024, 13:50

Autor Tema:  rematar programilla simulacion termodinamica  (Leído 1072 veces)

leotardo de bici

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
rematar programilla simulacion termodinamica
« en: Miércoles 2 de Diciembre de 2009, 03:01 »
0
hola amigos: aqui esta provisionalmente mi simulacion de gases.

3w.cientificosaficionados.com/baldo/invento%20diario/Project1.exe   ("aun no tengo privilegios para poner enlaces")

se define una caja, unas bolitas y tal,,,  es un billar en 3D, lo dejas funcionando y por la mañana tienes las graficas de gaus, maxwell, etc, y sin tener ni idea de matematicas.

hay un proceso del que saco 7 estadisticas, lo hice hace años en turboc, pero con el c++ meti todas las estadisticas en una clase (la unica que uso) con 7 objetos.

la cosa funciona pero creo que es muy mejorable, tengo los siguientes problemas que no doy con ellos:

1º en el reset de estadisticas pongo
Código: C++
  1. void __fastcall TForm1::gaus_entra(void){
  2. //  gaus.entra();                 //esto es lo que deberia usar, y no el resto
  3.     if(!gaus.habili){return;}
  4.     gaus.Reset_matriz();
  5.     if(gaus.Cohe()){
  6.         sw_break=1;
  7.         Memo1->Lines->Add("gaus incoherente entra");
  8.         }
  9.     }   
  10. ,,,,igual en las 7 estadisticas
  11.  
  12.  
y no una comun para todas como:
 
Código: C++
  1. void    estd::entra(void){    //entrada general, reset de matriz, y comprueba/define coherencias
  2. //  if(!habili){return;}
  3. //  Reset_matriz();
  4. //  if(Cohe()){
  5. //      sw_break=1;
  6. //      Memo1->Lines->Add("incoherente entra"); }
  7.     }   
  8.  
  9.  
porque no se usar variables globales dentro de un objeto. sw_break y Memo1,,, no son parte del clase estd.   si lo tacho lo compila. ¿como hago para que lo trage?

2º hay estadisticas que se van haciendo a final de bucle (gaus, maxwell), otras tras choque con pared (pared), o tras choque entre bolas (choque), incluso otras que necesitan dos llamadas, "recorrido medio" por ejemplo, que lleva cuenta de lo que andan las moleculas entre choques,   para que lo entendais, ¿como sabe la rutina de una clase que se esta ejecutando para un objeto dado?, ¿como sabe el objeto que es ese objeto?, si lo supiese yo lo desviaria en consecuencia.  y evitaria 3 folios de listado.

3º espero irme en navidades y dejar el ordenador simulando, para ello pienso usar un fichero donde hay una lista de .INIs que contienen las variables de los problemas.
   if ((f_bats=fopen("cn.bat","rt"))!=0) {  
esto me funcionaen cn.bat esta la lista de INIs, pero seria mas elegante que cogiese el nombre que le pongo en el Edit y con el abra el fichero pero me dice que fopen no admite ansistrings. ¿ como lo paso?