[2018][Julio] [Problema 1]

[2018][Julio] [Problema 1]

de Leonela Ruth Pereira Perez -
Número de respuestas: 3

buen dia,

tengo una duda respecto a la  solucion de la interrupcion autoDetectado().

Cuando guardan el auto, le ponen posición en 0. No deberia calcularse un out(LEERDISTANCIA) y un IN(DECIMETROS) ya desde el principio? o debemos asumir que los autos siempre van a ser detectados en lo que seria la distancia cero para el radar?  


En respuesta a Leonela Ruth Pereira Perez

Re: [Examen Julio 2018] [Problema 1]

de Federico Rivero -

Estimada,

Cómo estás? La solución asume que la detección funciona 'perfecto' en el sentido de que la interrupción ocurre al momento de detectarse y por lo tanto la distancia debería ser 0. Pero es cierto que sería más prolijo y correcto revisar la distancia en ese momento.

Saludos,

        Federico

En respuesta a Federico Rivero

Re: [Examen Julio 2018] [Problema 1]

de Leonela Ruth Pereira Perez -
Bárbaro, muchas gracias.
Aprovecho el hilo para plantear otra duda que me surgio luego...
Si luego de detectar ambas infracciones o quedar fuera del alcance del radar, decidiera sacar el auto del array, sería incorrecto?
la letra dice: "/*Se puede asumir que nunca existirán más de 50 autos en el campo de detección del sistema.*/" A lo cual interpreté que no iba a tener mas de 50 autos al alcance del radar, pero según la corrección, lo que tendria que haber entendido es que el dominio son 50 autos.

Muchas gracias!!
En respuesta a Leonela Ruth Pereira Perez

Re: [Examen Julio 2018] [Problema 1]

de Federico Rivero -
La solución remueve los autos ante cualquiera de esas dos condiciones! El tema de la doble multa lo hace de forma muy "pizarrera" sacando de a uno los bits de las infracciones:

autos[i].ocupado &= ~CHK_LUZ;

Fijate que ahí CHK_LUZ es 1000 0000 y luego al negarlo queda 0111 1111 y haciendo and con eso apaga el bit más significativo.

Más abajo en el timer, si la posición dio 0 es porque el auto se fue de rango del radar y también lo quita.

Saludos,
Federico