Modelar una máquina expendedora utilizando la semántica de Mealy
Este ejemplo muestra cómo utilizar la semántica de Mealy para modelar una máquina expendedora. Los diagramas de Mealy calculan las salidas solo en las transiciones, no en los estados. Para obtener más información, consulte Design Considerations for Mealy Charts.

Lógica de la máquina expendedora de Mealy
En este ejemplo, la máquina expendedora solicita 15 centavos para dispensar una lata de refresco. El comprador puede introducir una moneda de 5 centavos o una de 10 centavos, una a la vez, para comprar el refresco. El gráfico se comporta como una máquina de Mealy porque su salida soda depende tanto de la entrada de moneda como del estado actual:
got_0: no se ha recibido ninguna moneda o no se requieren más monedas.
Si se recibe una moneda de 5 centavos (
coin == 1), la salidasodapermanece en 0, pero el estadogot_nickelse convierte en activo.Si se recibe una moneda de 10 centavos (
coin == 2), la salidasodapermanece en 0, pero el estadogot_dimese convierte en activo.Si la entrada de moneda no es una moneda de 10 centavos o 5 centavos, el estado
got_0permanece activo y no se dispensa ningún refresco (salidasoda = 0).
got_nickel: se ha recibido una moneda de 5 centavos.
Si se recibe otra moneda de 5 centavos (
coin == 1), el estadogot_dimese convierte en activo, pero no se dispensa una lata (sodapermanece en 0).Si se recibe una moneda de 10 centavos (
coin == 2), se dispensa una lata (soda = 1), las monedas se depositan y el estado activo se convierte engot_0porque no se requieren más monedas.Si la entrada de moneda no es una moneda de 10 centavos o 5 centavos, el estado
got_nickelpermanece activo y no se dispensa una lata (salidasoda = 0).
got_dime: se ha recibido una moneda de 10 centavos.
Si se recibe una moneda de 5 centavos (
coin == 1), se dispensa una lata (soda = 1), las monedas se depositan y el estado activo se convierte engot_0porque no se requieren más monedas.Si se recibe una moneda de 10 centavos (
coin == 2), se dispensa una lata (soda = 1), se depositan 15 centavos y el estado activo se convierte engot_nickelporque se requiere una moneda de 5 centavos (cambio).Si la entrada de moneda no es una moneda de 10 centavos o 5 centavos, el estado
got_dimepermanece activo y no se dispensa una lata (salidasoda = 0).
Reglas de diseño en una máquina expendedora de Mealy
Este ejemplo de una máquina expendedora de Mealy ilustra las siguientes reglas de diseño de Mealy:
El gráfico calcula las salidas en las acciones de condición.
No hay acciones de estado o acciones de transición.
El valor de entrada
coindetermina el valor de salidasoda.