class SalaComputo {
/**nombre de la sala*/  String nombre;
/**maximo de computadoras*/ int capacidad;
Computadora[] computadoras;
/**Crear una sala con un nombre y una capacidad*/
SalaComputo(String n, int cap) {
  nombre=n; capacidad=cap;
  computadoras = new Computadora[capacidad];
  for(int i=0;i<capacidad;i++) 
     computadoras[i] = new Computadora();
}//SalaComputo
/**toma una computadora en la posicion i y
la asigna al usuario especificado, retorna true
si asigno, retorna false si no pudo asignar*/
boolean asignar(int i,String usuario) {
   if ( (i>=0 && i<capacidad) && 
       (!computadoras[i].ocupada) ) {
    computadoras[i].usuario = usuario;
    computadoras[i].ocupar(); return true;
   } else { return false; }//if
}//asignar
/**regresa true si la sala esta llena*/
boolean estaLlena() {
  boolean bandera = true;
  for(int i=0;(i<capacidad) && bandera;i++) 
     bandera= bandera && computadoras[i].ocupada; 
  return bandera;
}//estaLlena
/**busca en la sala de computadoras por una 
computadora no ocupada, retorna la posicion
de la computadora (entre 0 y capacidad -1) o -1
si no encontro lugar disponible*/
int buscarLugar() {
 int disponible = -1;
 if ( !estaLlena() ) {//aplicar si no esta llena
  for(int i=0;(i<capacidad) && (disponible==-1);i++){
     if (!computadoras[i].ocupada) disponible=i;
   }//for
 }//if
 return disponible;
}//buscarLugar
/**Desocupar la computadora en la posicion i
(entre 0 y capacidad -1 ) e indica true si la
pudo desocupar, false en caso contrario*/
boolean desasignar(int i) {
 if ( (i>=0 && i<capacidad) ) {
   if (computadoras[i].ocupada) {
    computadoras[i].usuario=""; 
    computadoras[i].desocupar();
   }//if
   return true;
 } else {  return false; }//if
}
}//SalaComputo





