Examen 2/2016 - Problema 3 - ADA.

Examen 2/2016 - Problema 3 - ADA.

de Maria Jose Yañez Dacosta -
Número de respuestas: 2

Hola,

En este ejercicio se tiene una rueda para hamsters.

Los hamsters no pueden entrar a la misma si son menos de tres y el ingreso se tiene que hacer de a grupos de a tres. Lo mismo para salir.


Ademas, como el ingreso y la salida se hacen por el mismo lugar, para poder entrar hay que esperar que terminen de salir los que esten saliendo y lo mismo al reves.

Tengo algunas dudas conceptuales sobre la solucion planteada y sobre algo que se me ocurrio.

Sobre la solucion planteada :
Solucion

No entiendo porque  se resolvio asi, porque para mi se tiene que atender lo primero para lo que tenga 3 hamsters pidiendolo.
Por ejemplo, para esta solucion, si llega primero una call entry para entrar, no se estarian aceptando mas encuentros que no sean encuentros para entrar. Pero podrian luego de esto llegar 3 call entry para salir,  y van quedar esperando para poder salir hasta que se pueda hacer el entrar (lleguen dos entry call mas para entrar) y se deberia dejar salir porque se completo antes las condiciones de salir.

A mi se me habia ocurrido hacer algo asi:

SELECT

           WHEN entrar'.count>=3 =>

            ACCEPT entrar();

            ACCEPT entrar();

            ACCEPT entrar();

OR

           WHEN salir'.count>=3 =>

            ACCEPT salir();

            ACCEPT salir();

            ACCEPT salir();


 Es decir, acepto el encuentro si hay al menos 3 procesos esperando por que lo acepten, y ahi si dar prioridad a los que cumplan antes la condicion.

Desde ya muchas gracias por cualquier aclaracion.

Saludos!.

       



En respuesta a Maria Jose Yañez Dacosta

Re: Examen 2/2016 - Problema 3 - ADA.

de Manuel Freire -

Hola,

En la letra al final del párrafo que habla sobre la rueda dice: "una vez que un hamster quiere entrar no deberá permitir que salgan hamsters hasta que haya entrado el grupo y viceversa"

Entonces es justamente el objetivo que una vez que un hamster manifiesta que quiere entrar no se permita salir a ninguno (o viceversa). Todo lo demás que vos decís está bien: la solución tuya "arma" primero los grupos antes de frenar a alguien y la oficial lo que hace es una vez que alguien manifiesta sus intenciones ya reservarle el pasaje. Es un tema de lo que pide la letra.

Espero que haya ayudado y cualquier cosa repreguntá.

Saludos!