【无标题】一个异步状态转换器

任务描述

本关任务:编写一个异步状态转换器

相关知识

状态机是一个对真实世界的抽象,而且是逻辑严谨的数学抽象,所以明显非常适合用在数字领域。可以应用到各个层面上,例如硬件设计,编译器设计,以及编程实现各种具体业务逻辑的时候。现在请你实现一个异步的有限状态机

一个有限状态机包含如下几个要素:
状态:系统所处的状态,在运行过程中又可以分为当前状态和下一阶段状态;一个状态机至少要包含两个状态。例如门,有 open 和 closed 两个状态。
事件:也可以理解为每一次运行的输入;事件就是执行某个操作的触发条件或者口令。对于门,“按下开门按钮”就是一个事件。
条件:根据输入事件执行的判定条件,条件是基于状态的,当前所处的每一种状态,都可以有自己对应的一套判定条件,来决定下一步进入哪一种状态;也就是从一个状态变化为另一个状态。例如“开不开门”根据有没有钥匙的条件。
动作:确定切换路径后,执行的附加操作。事件发生以后要执行动作。例如事件是“按开门按钮”,动作是“开门”。
变换:就是从一个状态变化为另一个状态。例如“开门过程”就是一个变换。
举例:街上的自动售货机中明显能看到状态机逻辑。假设有一台只卖2元一瓶的汽水的售货机,只接受五毛和一块的硬币。初始状态是”未付款“,中间状态有”已付款5毛“,”已付款1块“,”已付款1.5块“,”已足额付款“,四个状态。状态切换的触发条件是”投一块硬币“和”投5毛硬币“两种,”到达足额付款“状态,还要进行余额清零和弹出汽水操作。
在下图中,可以看到系统有 S1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值