当前位置: 首页 > news >正文

无锡中小企业网站制作为什么要进行网络整合营销?

无锡中小企业网站制作,为什么要进行网络整合营销?,定制软件公司,wordpress会员分销状态机思路在单片机程序设计中的应用 状态机的概念 状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中#xff0c;必然有状态机的身影浮现。 比如说一个按键命令解析程序#xff0c;就可以被看做状态机#xff1a;本来… 状态机思路在单片机程序设计中的应用 状态机的概念 状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中必然有状态机的身影浮现。 比如说一个按键命令解析程序就可以被看做状态机本来在A状态下触发一个按键后切换到了B状态再触发另一个键后切换到C状态或者返回到A状态。这就是最简单的按键状态机例子。实际的按键解析程序会比这更复杂些但这不影响我们对状态机的认识。 进一步看击键动作本身也可以看做一个状态机。一个细小的击键动作包含了释放、抖动、闭合、抖动和重新释放等状态。 同样一个串行通信的时序不管它是遵循何种协议标准串口也好、I2C也好也不管它是有线的、还是红外的、无线的也都可以看做由一系列有限的状态构成。 显示扫描程序也是状态机通信命令解析程序也是状态机甚至连继电器的吸合/释放控制、发光管LED的亮/灭控制又何尝不是个状态机。 当我们打开思路把状态机作为一种思想导入到程序中去时就会找到解决问题的一条有效的捷径。有时候用状态机的思维去思考程序该干什么比用控制流程的思维去思考可能会更有效。这样一来状态机便有了更实际的功用。 程序其实就是状态机。 也许你还不理解上面这句话。请想想看计算机的大厦不就是建立在“0”和“1”两个基本状态的地基之上么 状态机的要素 状态机可归纳为4个要素即现态、条件、动作、次态。这样的归纳主要是出于对状态机的内在因果关系的考虑。“现态”和“条件”是因“动作”和“次态”是果。详解如下 ①现态是指当前所处的状态。 ②条件又称为“事件”。当一个条件被满足将会触发一个动作或者执行一次状态的迁移。 ③动作条件满足后执行的动作。动作执行完毕后可以迁移到新的状态也可以仍旧保持原状态。动作不是必需的当条件满足后也可以不执行任何动作直接迁移到新状态。 ④次态条件满足后要迁往的新状态。“次态”是相对于“现态”而言的“次态”一旦被激活就转变成新的“现态”了。 如果我们进一步归纳把“现态”和“次态”统一起来而把“动作”忽略降格处理则只剩下两个最关键的要素即状态、迁移条件。 状态机的表示方法有许多种我们可以用文字、图形或表格的形式来表示一个状态机。 纯粹用文字描述是很低效的所以就不介绍了。接下来先介绍图形的方式。 状态迁移图STD 状态迁移图STD是一种描述系统的状态、以及相互转化关系的图形方式。状态迁移图的画法有许多种不过一般都大同小异。我们结合一个例子来说明一下它的画法如图1所示。 图1 状态迁移图 ①状态框用方框表示状态包括所谓的“现态”和“次态”。 ②条件及迁移箭头用箭头表示状态迁移的方向并在该箭头上标注触发条件。 ③节点圆圈当多个箭头指向一个状态时可以用节点符号小圆圈连接汇总。 ④动作框用椭圆框表示。 ⑤附加条件判断框用六角菱形框表示。 状态迁移图和我们常见的流程图相比有着本质的区别具体体现为在流程图中箭头代表了程序PC指针的跳转而在状态迁移图中箭头代表的是状态的改变。 我们会发现这种状态迁移图比普通程序流程图更简练、直观、易懂。这正是我们需要达到的目的。 状态迁移表 除了状态迁移图我们还可以用表格的形式来表示状态之间的关系。这种表一般称为状态迁移表。 表1就是前面介绍的那张状态迁移图的另一种描述形式。 表1 状态迁移表 ①采用表格方式来描述状态机优点是可容纳更多的文字信息。例如我们不但可以在状态迁移表中描述状态的迁移关系还可以把每个状态的特征描述也包含在内。 ②如果表格内容较多过于臃肿不利于阅读我们也可以将状态迁移表进行拆分。经过拆分后的表格根据其具体内容表格名称也有所变化。 ③比如我们可以把状态特征和迁移关系分开列表。被单独拆分出来的描述状态特征的表格也可以称为“状态真值表”。这其中比较常见的就是把每个状态的显示内容单独列表。这种描述每个状态显示内容的表称之为“显示真值表”。同样我们把单独表述基于按键的状态迁移表称为“按键功能真值表”。另外如果每一个状态包含的信息量过多我们也可以把每个状态单独列表。 ④由此可见状态迁移表作为状态迁移图的有益补充它的表现形式是灵活的。 ⑤状态迁移表优点是信息涵盖面大缺点是视觉上不够直观因此它并不能取代状态迁移图。比较理想的是将图形和表格结合应用。用图形展现宏观用表格说明细节。二者互为参照相得益彰。 用状态机思路实现一个时钟程序 接下来我将就状态机的应用结合流程图、状态迁移图和状态迁移举一个实际例子。下面这张图是一个时钟程序的状态迁移图如图2所示。 图2 时钟程序状态迁移图 把这张图稍做归纳就可以得到它的另一种表现形式——状态迁移表如表2所示。 表2 时钟程序状态迁移表 状态机应用的注意事项 基于状态机的程序调度机制其应用的难点并不在于对状态机概念的理解而在于对系统工作状态的合理划分。 初学者往往会把某个“程序动作”当作是一种“状态”来处理。我称之为“伪态”。那么如何区分“动作”和“状态”。本匠人的心得是看二者的本质“动作”是不稳定的即使没有条件的触发“动作”一旦执行完毕就结束了而“状态”是相对稳定的如果没有外部条件的触发一个状态会一直持续下去。 初学者的另一种比较致命的错误就是在状态划分时漏掉一些状态。我称之为“漏态”。 “伪态”和“漏态”这两种错误的存在将会导致程序结构的涣散。因此要特别小心避免。 更复杂的状态机 前面介绍的是一种简单的状态结构。它只有一级并且只有一维如图3所示。 图3  线性状态机结构 如果有必要我们可以建立更复杂的状态机模型。 1 多级状态结构 状态机可以是多级的。在分层的多级状态机系统里面一个“父状态”下可以划分多个“子状态”这些子状态共同拥有上级父状态的某些共性同时又各自拥有自己的一些个性。 在某些状态下还可以进一步划分子状态。比如我们可以把前面的时钟例子修改如下 把所有和时钟功能有关的状态合并成1个一级状态。在这个状态下又可以划分出3个二级子状态分别为显示时间、设置小时、设置分钟 同样我们也可以把所有和闹钟功能有关的状态合并成1个一级状态。在这个状态下再划分出4个二级子状态分别为显示闹钟、设置“时”、设置“分”、设置鸣叫时间。 我们需要用另一个状态变量寄存器来表示这些子状态。 子状态下面当然还可以有更低一级的孙状态子子孙孙无穷尽也从而将整个状态体系变成了树状多级状态结构如图4所示。 图4 树状多级状态结构 2 多维状态结构 状态结构也可以是多维的。从不同的角度对系统进行状态的划分这些状态的某些特性是交叉的。比如在按照按键和显示划分状态的同时又按照系统的工作进程做出另一种状态划分。这两种状态划分同时存在相互交叉从而构成了二维的状态结构空间。 举一个这方面的例子如空调遥控器如图5所示。 图5 多维状态机结构 同样我们也可以构建三维、四维甚至更多维的状态结构。每一维的状态都需要用一个状态变量寄存器来表示。 无论多级状态结构和多维状态结构看上去多么迷人匠人的忠告是我们依然要尽可能地简化状态结构能用单级、单维的结构就不要给自己找事去玩那噩梦般的复杂结构。 简单的才是最有效的。 结束语 对状态机的理解需要一个由浅入深的过程。这个过程应该是与实践应用和具体案例思考相结合的。当一种良好的思路成为设计的习惯它就能给设计者带来回报。愿这篇手记里介绍的基于状态机的编程思路能给新手们带来一些启迪帮助大家找到“程序设计”的感觉。
http://www.zqtcl.cn/news/104079/

相关文章:

  • 苏州建网站要多少钱八爪鱼采集器 wordpress
  • 确定网站风格thinkphp相比Wordpress
  • 网站全屏代码wordpress无法连接ftp
  • 做ppt配图好用的网站重庆制作网站有哪些
  • 门户网站建设进度安卓手机开发者模式
  • 招商网站建设需要什么网站开发 在线数据库
  • 创建网站代码网站二级页怎么做
  • 网站建设 前沿文章建设网站网站建设公司
  • dede网站seo微信开店怎么注册开店流程
  • 苏华建设集团有限公司网站wordpress 普通文本 quot
  • 网站首页倒计时功能怎么做学网站开发技术
  • 上海网站备案流程欧宇公司网络建设方案
  • 网站营销型办公室装修费用会计分录
  • 个人网站网页设计模板学校ftp服务器做网站
  • 黄江网站建设外贸公司用的采购储运财务软件
  • 优化网站公司做网站建设
  • 门户网站的盈利模式网站建设中备案
  • 代码需求网站织梦怎么关闭网站
  • 浙江工信部网站备案查询东圃做网站
  • icp网站域名怎么填写官方网站建设银行年利息是多少钱
  • 沈阳做网站好的信息流优化师证书
  • 做招聘网站创业seo优化工作
  • 如何维护网站建设外卖网站建设价钱
  • 南宁保洁网站建设乌克兰服装网站建设
  • ppt链接网站怎么做的nas云存储做视频网站
  • 上海网站制作公司联系方式设计素材网站照片
  • 林州网站建设价格网络舆情是什么意思
  • 网站外链平台的建设方法平台类型(至少5个)?兰州道路建设情况网站
  • 网站建立健全举报工作机制设计电子商务网站主页
  • 广州市建设工程交易服务中心网站沈阳百度推广哪家好