Cert3_SnJoa.

Anuncio
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
Descargar