주요 콘텐츠

밀리 의미 체계를 사용하여 자판기 모델링하기

이 예제에서는 밀리 의미 체계를 사용하여 자판기를 모델링하는 방법을 보여줍니다. 밀리 차트는 상태에서가 아니라 천이에서만 출력값을 계산합니다. 자세한 내용은 Design Considerations for Mealy Charts 항목을 참조하십시오.

밀리 자판기의 논리

이 예제에서 자판기가 탄산음료 캔 하나를 배출하려면 15센트가 필요합니다. 구매자는 5센트 동전이나 10센트 동전을 하나씩 삽입하여 탄산음료를 구매할 수 있습니다. 차트는 밀리 머신과 유사하게 동작합니다. 출력값 soda가 입력 동전과 현재 상태 모두에 따라 달라지기 때문입니다.

got_0 — 동전을 받지 않았거나 남은 동전이 없습니다.

  • 5센트 동전을 받고(coin == 1) 출력값 soda는 0으로 유지되지만, 상태 got_nickel이 활성화되는 경우.

  • 10센트 동전을 받고(coin == 2) 출력값 soda는 0으로 유지되지만, 상태 got_dime이 활성화되는 경우.

  • 입력 동전이 10센트 동전 또는 5센트 동전이 아니고 상태 got_0이 활성 상태를 유지하고 탄산음료가 배출되지 않는(출력값 soda = 0) 경우.

got_nickel — 5센트 동전을 받았습니다.

  • 또 다른 5센트 동전을 받고(coin == 1) 상태 got_dime이 활성화되지만, 캔이 배출되지 않은(soda가 0을 유지) 경우.

  • 10센트 동전을 받고(coin == 2), 캔이 배출(soda = 1)되고, 10센트 동전이 보관되고, 남은 동전이 없어 활성 상태가 got_0이 되는 경우.

  • 입력 동전이 10센트 동전이나 5센트 동전이 아니고, 상태 got_nickel이 활성 상태를 유지하고, 캔이 배출되지 않은(출력값 soda = 0) 경우.

got_dime — 10센트 동전을 받았습니다.

  • 5센트 동전을 받고(coin == 1), 캔이 배출(soda = 1)되고, 5센트 동전이 보관되고, 남은 동전이 없어 활성 상태가 got_0이 되는 경우.

  • 10센트 동전을 받고(coin == 2), 캔이 배출(soda = 1)되고, 15센트가 보관되고, 5센트 동전(거스름돈)이 남아 있어 활성 상태가 got_nickel이 되는 경우.

  • 입력 동전이 10센트 동전이나 5센트 동전이 아니고, 상태 got_dime이 활성 상태를 유지하고, 캔이 배출되지 않은(출력값 soda = 0) 경우.

밀리 자판기에서 규칙 설계하기

이 밀리 자판기 예제에서는 다음 밀리 설계 규칙을 보여줍니다.

  • 차트는 조건 동작에서 출력값을 계산합니다.

  • 상태 동작 또는 천이 동작이 없습니다.

  • 입력 coin의 값이 출력 soda의 값을 결정합니다.

참고 항목

도움말 항목