Datos personales: Diego Fraguas Tejero Especialidad electricidad, grupo 40 NIA: 576427 Documentación: Para poder cumplir con el enunciado de la práctica, declaramos un tipo de vector bidimensionaal de dos componentes de 20 de tamaño cada una. En el primer procedimiento del programa: tamaño, pedimos al usuario que introduzca el tamaño del tablero, utilizando una variable de entrada y salida llamada n, que utilizaremos posteriormente para trabajar con el vector. La variable n ha de estar comprendida en el intervalo [4,20]. En segundo lugar encontramos el procedimiento reglas, que pedirá al usuario los valores de las variables x,y,z que regirán posteriormente el comportamiento del juego. Todas ellas han de estar comprendidas en el intervalo [1,8], ya que 8 es el número máximo de células vecinas. En tercer lugar el procedimiento turnos pedirá al usuario el número de turnos que desea que dure la simulación El procedimiento ejecución, realizará una serie de preguntas al usuario, condicionadas por el enunciado, donde se le solicitará la forma en la que desea ejecutar el programa. En primer lugar llamará al procedimiento turnos. Mediante una variable local r preguntará al usuario si deseaa modificar el valor de las reglas, si introduce 1, llamara al procedimiento reglas, si por el contrario introduce 2, asignará a las variables el valor por defecto. Finalmente pedirá el modo de ejecución, paso a paso o solo resultados. El procedimiento genmun, rellena el vector aleatoriamente. Primero se pide la probabilidad de que una célula nazca viva (p). Posteriormente se recorre el vector mediante dos bucles for-to-do anidados, uno recorre i y otro j, asignando a todas las celdas 0. Posteriormente se utiliza la misma metodología pero recorriendo solamente [2,n-1] consiguiendo así que los bordes sean 0. Para que el resto de celdas sea rellenado de manera aleatoria utilizamos la función random, que nos devolverá un valor real para la variable a, comparando las variables a y p mediante un bucle if, el procedimiento decidirá si la célula nace viva o muerta. La función cargar_mundo, facilitada a los alumnos a través del add, nos permite cargar un fichero con un estado inicial. El procedimiento menu, mediante una variable de entrada y salida m, cuyo valor será introducido por el usuario permite saber que opción elegir. La función mirarvecinas, asigna a una variable num el valor del sumatoriode las diferentes casillas vecinas del vector celulas[i,j]. El procedimiento comprobar, en función del valor que le devuelve la función anterior y una serie de condiciones, decide como será el siguiente estado, recorriendo el vector principal mediante dos for y escribiendo un vector auxiliar celulas2[i,j], consiguiendo así que no haya errores en el cálculos. Posteriormente le restamos 1 a la variable t para que el programa sepa que ha transcurrido un turno, e igualamos los valores del vector principal al auxiliar, permitiendo así que se calcule el siguiente estado correctamente. Por último el procedimiento dibujar, recorre el vector dibujando las componentes, mediante write dibuja en línea, y con writeln salta de línea. El programa principal inicialmente asigna a matriz, una variable booleana, el valor false y a num el valor 0. Llamamos a randomize para que el programa sea verdaderamente aleatorio. Llamamos al procedimiento menu, utilizamos un bucle repeat-until para que hasta que el usuario no pulse la opción salir vuelva al menu. Si el usuario introduce 1 o 3, la variable matriz pasa a ser verdadera (true) Si pulsa 2 y matriz es falso, no ejecutará la ejecución ya que el vector estaría vacio, ,si por el contrario es verdadero, llamará al procedimiento ejecución y en función del valor de modo, realizara un modo de ejecución u otro. Si es 1, realizara el modo paso a paso, repitiendose el procedimiento comprobar y dibujar hasta que t sea 0, si por el contrario introduce 2, se repetirá solamente el procedimiento comprobar, realizando los cálculos pertinentes, y una vez fuera del bucle el procedimiento dibujar nos dibujará el estado final. ---------------------------- (añadido tras someter) ---------------------------- 17:04:09 11/12/09 -> Segun los datos introducidos los ficheros son: G06P12D2 -> Los autores del trabajo son: Fraguas Tejero, Diego Nombres originales de los archivos entregados -> VIDA_ok.PAS, docuentacion vida.txt