Programación. Variables En las variables, debemos introducir N0 y N (dándole a N0 un valor) y cambiar el tipo de estas dos variables a int (entero). Al ser de este tipo, las vamos a poder usar como dimensión para los arrays (conjunto de datos). Arrays Además, definimos dos variables double, que indiquen la posición (x e y). En el apartado de dimensión indicamos, para estas dos variables, que queremos que sean arrays de N0 datos, se escribe como [N0] Añadimos dos arrays más de dimensión N0, uno tipo Object (c, por ejemplo) y otro tipo entero (indice) Por último, falta añadir variables para el tiempo, el intervalo temporal, el tiempo propio y su intervalo asociado, el tiempo de vida medio, la velocidad de los muones (en unidades de la velocidad de la luz, para que sea más comodo) y una variable para usar los números aleatorios. Si se prefiere se puede definir, también, una variable para γ Inicialización En inicialización debemos dar valores a las variables con dimensión, para ello es recomendable usar un bucle. Y también debemos inicializar algunas variables, por si queremos en el programa compilado cambiar la velocidad o el tiempo de vida media. Bucle Para conocer como se realiza un bucle véase bucle.pdf. A la variable x le damos valores espaciados por 1, para que no estén excesivamente juntos, además el indice lo ponemos a cero, y la variable objeto le asignamos el color negro (esto nos servirá luego para en la vista, darle color a los muones). for(int i=0; i<N0; i++){ x[i]=(double)i; y[i]=50.0; c[i]=java.awt.Color.black; indice[i]=0;} En la cuarta lı́nea invocamos a un objeto, el color negro. Debemos estar atentos a las mayúsculas. Variables Debemos inicializar gamma si la hemos definido, el tiempo, el tiempo propio, el intervalo de tiempo (el de tiempo propio es el que podremos cambiar a voluntad) y el número de partı́culas N1 . Evolución y Ligaduras Además de hacer pasar el tiempo (el del laboratorio y el propio) y de indicar que pare cuando lleguen al suelo, debemos hacer que bajen y que decaigan. Para esto, necesitamos otro bucle que recorra desde 0 hasta N0, moviendo y (con la discretización conocida) y llamando a un número aleatorio Math.random() Ası́, para la partı́cula i-ésima, si no ha decaı́do (indice[i]==0), invocamos el número aleatorio, si es menor que dtp/tm, a esa partı́cula le damos el color blanco (java.awt.Color.white, o cualquiera que sea el color del fondo), al indice de la partı́cula le damos 1 y le restamos 1 a N. Vista La vista no requiere demasiadas complicaciones. Estructura Ventana · Panel de botones · Panel central * Panel de dibujo: Muones caiendo a la Tierra (con fondo blanco para que se dejen de ver cuando decaigan). * Panel con Ejes: Gráfica que del número de partı́culas, en función del tiempo. 1 La variable N0 no debemos cambiarla en el programa, ya que define la dimensión de los arrays y genera algunos conflictos. Conjunto de partı́culas Para añadir los muones, en Elementos de Dibujo 2D buscamos ConjuntoPartı́culas y lo colocamos en el panel de dibujo. En Elementos le damos el número de muones (N0), la posición, y en color la variable objeto (c).