Lista<Funcion> Teatro::funcionesAgotadas() const
{
Lista<Funcion> funcions = funciones();
Lista<Funcion> agotadas;
int i = 0;
while (i<funcions.longitud())
{
if (funcionAgotada(funcions.iesimo(i)))
agotadas.agregar(funcions.iesimo(i));
i++;
}
return agotadas;
}
bool Teatro::funcionAgotada(Funcion f1) const{
int entradasvendidas = entradasParaUnaFuncion(f1).longitud();
int capacidad = capacidadSala( salade( f1.sala() ) );
return (entradasvendidas == capacidad);
}
//busca una sala por nombre
Sala Teatro::salade(std::string nombre)const{
Lista<Sala> sals = salas();
Sala salaRes;
int cant = 0;
bool salida = false;
std::string n;
while ((cant < sals.longitud()) && !salida)
{
n = sals.iesimo(cant).nombre();
if (n.compare(nombre) == 0) //son iguales
{
salaRes = sals.iesimo(cant);
salida = true;
}
cant++;
}
return salaRes;
}
//devuelve la capacidad de una sala
int Teatro::capacidadSala(const Sala s1) const{
int s = 0;
int f = 0;
int capacidad = 0;
while (s < s1.sectores())
{
while (f < s1.filas(s))
{
capacidad = capacidad + s1.butacas(s,f);
f++;
}
f = 0;
s++;
}
return capacidad;
}