Advertisement
xopsuei

Untitled

May 13th, 2013
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.   @brief  Allibera un rang de dies de l'agenda d'un funcionari si no te cites agafades, el
  3.   rang pot ser més gran que this->dia + D en anquest cas s'ignorel els dies que son fora de
  4.   l'agenda.
  5.  
  6.   \pre 0 < id_funcionari <= N this->dia < principi <= final
  7.   \post si el funcionari amb identificació id no te cites actives en el periode de dies entre
  8.   principi i final, marca tots els dies com a no hàbils.
  9. */
  10. void Agenda::allibera(const int id_funcionari, const int principi, int final){
  11.   final = (final > dia + D) ? dia + D : dia;
  12.  
  13.   int i = principi;
  14.   bool lliure = true;
  15.   while(i <= final and lliure){
  16.     int j = 0;
  17.     while(j < H and lliure){
  18.       lliure = cites[i%MOD][id_funcionari - 1][j].es_lliure();
  19.       ++j;
  20.     }
  21.     ++i;
  22.   }
  23.  
  24.   if(lliure){
  25.     i = principi;
  26.     while(i <= final){
  27.       int j = 0;
  28.       while(j < H){
  29.         cites[i%MOD][id_funcionari - 1][j].deshabilita();
  30.         ++j;
  31.       }
  32.       ++i;
  33.     }
  34.   }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement