Difference between revisions of "ProvaTeorica 2012.07.16"
Jump to navigation
Jump to search
(Created page with "[http://www.cs.unibo.it/~renzo/so/compiti/2012-07-16.tot.pdf Link Testo] <h2>Esercizio C.2</h2> Mia Soluzione: <syntaxhighlight lang="C"> #define RED 0 #define BLUE 1 //resti...") |
(No difference)
|
Revision as of 12:40, 27 March 2014
Esercizio C.2
Mia Soluzione:
#define RED 0
#define BLUE 1
//restituisce 1 se c'e piu del 75% blue o 75% di red
//restituisce 0 se non c'e una maggiornza
int media(color){
int mediared;
int localinto = into;
if (color != NULL){
localinto[color]++;
}
mediared = ((100*localinto[0])/(localinto[0]+localinto[1]));
if(mediared >=75 || mediared < 25){
return 1;//75% di rossi o di blue
}else{
return 0;// non c'e maggioranza
}
}
monitor limcol{
conditon oktoenter[2];
int into[2];
enter(color){
if(media(color) != 1){// attendo perche' non c'e una maggioranza
oktoenter[color].wait();
}
into[color]++;
}
exit(color){
into[color]--;
if(media(1-color) == 1){
oktoenter[1-color].signal();
}else if(media(color) == 1){
oktoenter[color].signal();
}
}
}
- Midolo