Practico 6 ejercicio 3

Practico 6 ejercicio 3

de Pablo Matias Lugli Martinez -
Número de respuestas: 0

Buenas, la solución que se me ocurrió fue la siguiente : 

program ej6;

var

cliente-caja,caja-cliente: array[1..N] of Mailbox(int)

Auto-admin,Admin-auto:Mailbox

begin
...
end

Procedure Auto(nro_t)  

begin                                                  

SEND(Auto-admin,NULL)

caja=RECEIVE(Admin-auto)

SEND(cliente-caja[c],nro_t)

ticket=RECEIVE(caja-cli[caja])

end;

procedure Caja(nro_c)

begin

while true {

     nro_t = RECEIVE(Auto-caja[nro_c])

     ticket=pago(nro_t)

    SEND(Cajas-cli[nro_c],ticket)

}

end

procedure Admin()

begin

while true {

   RECEIVE(Auto-admin);

   nro_c=Obtener_Caja_Mas_Vacia(Cliente-caja)

   SEND(Admin-auto,nro_c)

}

end

La duda es: Primero, si esta bien y si esto me garantiza que el cajero al momento de dar el ticket, se lo de al auto "correcto" que realizo el pago.