punto 15 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. problema transcurrirDia(j:JJOO) {
  2. //Modificar:
  3. // * Resultados (AKA Ranking) de la competencias ( dados por capacidades )
  4. // * Realizar antidoping a un atleta de cada competencia (al azar)
  5. // * El control antidoping le da positivo a lo sumo a 5% de los controles
  6. modifica j;
  7. asegura jornadaActual(j) \in [jornadaActual(pre(j))+1,cantDias(pre(j))]
  8. asegura año (j) == año(pre(j));
  9. asegura mismos(atletas(j),atletas(pre(j)));
  10. asegura cantDias(j)==cantDias(pre(j));
  11. asegura (\forall dia <- [1..jornadaActual(j))-1] )
  12. mismos(cronograma(j,dia), cronograma(pre(j),dia));
  13. asegura |cronograma(j,jornadaActual(j))|==|cronograma(pre(j),jornadaActual(j))|
  14. -- Cambian las competencias de jornadaActual
  15. asegura (\forall i <- [0, |cronograma(j, jornadaActual(j))| -1])
  16. categoria(cronograma(j,jornadaActual(j))[i]) ==
  17. categoria(cronograma(pre(j),jornadaActual(j))[i])
  18. asegura (\forall i <- [0, |cronograma(j, jornadaActual(j))| -1])
  19. mismos(
  20. participantes(cronograma(j,jornadaActual(j))[i]),
  21. participantes(cronograma(pre(j),jornadaActual(j))[i]))
  22. asegura (\forall c <- cronograma(j, jornadaActual(j)))
  23. finalizada(c)==True \wedge
  24. mismos(ranking(c), participantes(c)) \wedge
  25. (∀x ← [0..|ranking(c)| − 2])
  26. capacidadEnOrden(x,c)
  27. asegura (\forall c <-cronograma(j, jornadaActual(j)))
  28. ( |lesTocoControlAntiDoping(c)|==1 \wedge lesTocoControlAntiDoping(c)[0] \in atletas(c)) \vee
  29. |lesTocoControlAntiDoping(c)|==0
  30. asegura (\forall c <-cronograma(j, jornadaActual(j)))
  31. |listaDoping(c,atletas(c))|*20 <=
  32. sum( [ |lesTocoControlAntiDoping(comp)| | comp <- cronograma(j,jornadaActual(j))])
  33. aux capacidadEnOrden(x: ent, c:competencia) : Bool =
  34. capacidad(ranking(c)[x], prm(categoria(c))) ≥ capacidad(ranking(c)[x + 1], prm(categoria(c)));
  35. aux listaDoping (c:competencia, a:[atleta]) : [atleta] =
  36. [x|x ← a, leDioPositivo(c, x)] ;
  37. }