Certamen 3 Programación IWI – 131 2 sem. 2009 a) Responda cada una de sus preguntas en una hoja por separado, si usted responde más de un pregunta en una hoja sólo se le revisará una sola pregunta. b) 2.- En cada una de las hojas escriba su nombre, rol y paralelo al que asiste (sino nombre del profesor). c) 3.- Sólo las preguntas realizadas con lápiz pasta tienen derecho a recorrección. 4.- Tiempo de duración del Certamen: 90 minutos 1.- La mascota virtual Sansanotchi (30%) Usted es parte del equipo de desarrollo del software interno de la primera mascota virtual desarrollada en Java y deberá aplicar sus conocimientos de orientación a objetos Sansanotchi tiene 5 niveles de alegría 5 niveles de salud 5 nivel de hambre Una variable que indica que está vivo o muerto Un botón de alimentar y entretener. Sansanotchi funciona de la siguiente forma Al encenderlo, sus tres niveles están bien, es decir, alegría=5, salud=5, hambre=0 y está vivo=true. (Constructor), esos valores son pasados como parámetros. Desarrolle el método entretener(), el cual no recibe parámetros y tampoco devuelve algo, lo único que hace es incrementar alegría en 1. Desarrolle el método Alimentar(), el cual no recibe parámetros y tampoco devuelve algo, lo único que hace es disminuir hambre en 1. Desarrolle el método Avanzar_tiempo, el cual realiza lo siguiente: o Mantiene un ciclo que durará hasta que la mascota muera, el incremento del ciclo será de uno y este representará el transcurso de una hora. o Cada 4 horas su nivel de hambre aumenta en 1 (no más de 5), cuándo esto suceda la mascota debe avisar que tiene hambre. Por cada hora que el nivel permanezca en 5 el nivel de salud baja 1. o Su nivel de alegría baja 1 cada 3 horas (no menos de cero), ante lo cual debe señalar que se encuentra aburrido. Si su nivel de alegría llega a cero, su nivel de salud baja 1 por cada hora que permanezca alegría=0. o Finalmente si su nivel de salud llega a 0, se muere después de 3 horas. Lo que se pide a usted es: Codificar la clase Sansanotchi con su constructor y métodos respectivos. Help: Use contadores de horas para los diferentes estados. public class sansanotchi { int alegria; int salud; 10% atributos int hambre; boolean vivo; public sansanotchi(int a, int b, int c, boolean flag) { this.alegria=a; this.salud = b; 10% constructor this.hambre = c; this.vivo = flag; } public void entretener() { this.alegria++; 10% por c/u métodos entretener y alimentar } public void alimentar() { this.hambre = this.hambre--; } public void Avanzar_tiempo() { int i=1; int cont_s=0; 10% por el contador de tiempo while(this.vivo != false) 10% ciclo que maneja viva la mascota { StdOut.println("Ha transcurrido "+i+" horas"); if(this.salud==0) { cont_s++; if(cont_s==3) 10% manejo contador de horas de salud = 0 this.vivo = false; } else { if(i%3==0) { 15% manejo de alegría StdOut.println("Estoy Aburrido"); if(this.alegria >0) this.alegria--; } if(this.alegria==0) this.salud--; if(i%4==0) { StdOut.println("Tengo Hambre"); 15% manejo de Hambre if(this.hambre<5) this.hambre++; } if(this.hambre==5) this.salud--; i++; }//else }//while }//avanzar_tiempo() public static void main(String[] args) { sansanotchi A = new sansanotchi(5,5,0,true); A.Avanzar_tiempo(); } }//class 2.- Rutear el siguiente programa considerando que el archivo "archivo.txt" contiene b,c,a d,f,u public class Ruteo1 { public static String[][] fileToArray(String file){ In archivo = new In(file); String [][] salida=new String[3][3]; int ind=0; while(!archivo.isEmpty()){ String linea = archivo.readLine(); salida[ind++]=linea.split(","); } return salida; } public static void m20(String[] arr){ String m=arr[0]; String aux; int ind=0; for(int i=1;i<arr.length;i++) { if(arr[i].compareTo(m)>0){ m=arr[i]; ind=i; } } aux=arr[0]; arr[0]=arr[ind]; arr[ind]=aux; } public static void main(String args[]){ String[][] arreglo = fileToArray("archivo.txt"); for(int i=0;i<3;i++){ m20(arreglo[i]); StdOut.println(arreglo[i][0]); } } } 3.- Pregunta Certamen: Archivos Escribir un programa en Java denominado Estadisticas.java que lea de un archivo las mediciones de uso de CPU y entregue el promedio de uso de cada una. El archivo se encuentra lleno y se llama data.txt Cada línea del archivo representa una muestra y consiste en el nombre del servidor.area.utfsm.cl (como String) seguido del signo gato (#) y el uso de CPU para la muestra (un double). Aquí está un ejemplo de la entrada en el archivo data.txt: alumnos.mat.utfsm.cl#10.3 gestionproyectos.inf.utfsm.cl#15.9 pincoya.fis.utfsm.cl#1.5 listas.elo.utfsm.cl#9.0 El programa debería almacenar el promedio de uso de los servidores y el nombre del servidor con mayor uso (nombre servidor aparece antes del primer punto), el cual debiera ser guardado en el archivo de salida llamado resultados.txt, de acuerdo al siguiente formato CPU con mayor uso de servidor: gestionproyectos Promedio Uso CPU en Universidad: 9.175