punto 10 969 B

123456789101112131415
  1. 10.
  2. problema losMasFracasados (j: JJOO, p:Pais) = result:[Atleta]{
  3. //Interpretación: Devuelve los atletas del país p que no
  4. //ganaron medallas en las competencias acabadas hasta ahora,
  5. //ordenados desde el que en más competencias participó hasta el que que menos.
  6. asegura noGanaronMedallas: (paraTodo x <- [noGanoMedallas(atl, comp) | atl <- result, comp <- todasLasCompetencias(j), finalizada(comp)]) x;
  7. asegura todosDelPais: (paraTodo x <- result) nacionalidad(x) == p;
  8. asegura (paraTodo x <- result, y <- atletas(j), nacionalidad(y)==p) competenciasEnLasQueParticipó(j, x) >= competenciasEnLasQueParticipó(j, y);
  9. }
  10. aux competenciasEnLasQueParticipó(j: JJOO, a:Atleta) : int =
  11. long([z | z<- todasLasCompetencias(j), en(a, participantes(z))]);
  12. aux noGanoMedallas(atl: Atleta, comp: Competencia) : Bool = (ciaNumber(ranking(comp)[0]) != ciaNumber(atl) && ciaNumber(ranking(comp)[1]) != ciaNumber(atl) && ciaNumber(ranking(comp)[2]) != ciaNumber(atl));