3.2 伪代码和绘制RSVP流程图
流程图绘制是一个用来制定目标对整个系统控制流程的RSVP,是一个可以包括任何一种循环、选择或决策的指令行线性序列。通过使用表示某种工作类型的特殊框符号,流程图解释了这个过程。方框内显示的文本描述了一个任务、过程或指令。
流程图是一种状态图(本章稍后会进行讨论),因为它们也包含被转换为动作和活动的状态。决策和重复的事情很容易表示,并且作为一个分支的结果也可以简单描述。有些人建议在写伪代码之前进行流程图绘制。伪代码具有易于转换为一种编程语言或用于编制一个程序的优势。流程图很容易更改,使用流程图软件修改流程图只需要增加一点工作量即可完成。
表3-4列出了伪代码和流程图绘制各自的优缺点。两者都是制定步骤的有力工具。在一个特定时间内、一个项目里,具体选用哪个属于个人喜好问题。
表3-4 伪代码和流程图绘制各自的优缺点
流程图绘制中常用的四种符号为:
·开始和停止:开始符号表示流程图的开始,标签是出现在符号里的“开始”。停止符号表示流程图的结束,标签是出现在符号里的“停止”字样。它们是唯一以关键词为标签的符号。
·输入和输出:输入和输出符号包含用于输入的数据(例如用户提供)和处理结果的数据(输出)。
·决策:决策符号包含一个问题或一个必须做出的决定。
·过程:过程符号包含一个规则或某个动作发生的简短描述(几句话)。
图3-4展示了流程图绘制的常用符号。
图3-4 流程图绘制的常用符号
每个符号有一个入站或出站箭头指向一个符号或来自另一个符号。开始符号只有一个出站箭头,停止符号只有一个入站箭头。“开始”符号表示流程图的开始,以出现在符号的里的“开始”字样为标签。“停止”符号表示流程图的结束,以出现在符号的里的“停止”字样为标签。它们是唯一以关键词为标签的符号。决策符号包含一个问题或一个必须做出的决定。过程符号包含一个规则或某个动作发生的简短描述(几句话)。决策符号有一个入站箭头和两个出站箭头,每个箭头表示一个经由过程的决策路径,该过程始于此符号:
·真/是
·假/否
过程、输入和输出符号有一个入站箭头和一个出站箭头。符号包含描述规则或动作、输入或输出的文本。图3-5给出了“点燃蜡烛”的流程图。
注意,流程图的开始,在“开始”符号下面,BR-1等待直到唱歌开始。对唱歌是否已经开始做出决定。两种选择:如果唱歌还没有开始,“假/否”为问题答案,BR-1继续等待;如果唱歌开始进行,“真/是”为问题答案,BR-1进入一个循环或决定。
如果有蜡烛点燃,那就是决策。如果“是”,获得下一根蜡烛的位置,定位机器人手臂至点燃蜡烛芯合适位置的距离,然后点燃蜡烛芯。一个输入符号用于接收点燃下一根蜡烛的位置。BR-1准备点燃所有的蜡烛,一旦完成任务就停止。