课程导言
【前面了解了程序和算法的关系,知道了算法是解决问题的具体方法和步骤,也学会了用文字去描述算法。哪还有没有其它描述算法的方式呢?毕竟文字看起来比较费劲。流程图就是一种描述算法的图形化描述,用流程图可以清晰地描述出算法的思路和过程。通过本篇的学习,你将了解到如何用流程图来描述算法。】
流程图是算法的图形化描述。俗话说:一张图胜过千言万语,用流程图可以清晰地描述出算法的思路和过程。
1、从生活中认识流程图
说到流程图,同学们可能会感到比较陌生和不理解,其实在我们生活中,经常会看到流程图,也会读懂流程图,并能按照流程图的要求去执行流程图中的各个步骤。例如,我们去图书馆借书就要遵循图书馆制定的流程,当初次使用车站自动售票机购票时,就要仔细看自动购票流程图。看流程图的目的,就是让我们能够明确每一个步骤,而不会出现差错。
图1 借书与自动售票流程图
现在家庭中一般都有电冰箱、洗衣机等家用电器,家用电器包装箱里面都会附带使用说明书,使用说明书包含了产品的使用方法、注意事项以及一般故障排除流程等内容,当家用电器发生故障时,可以先根据使用说明书的故障排除流程进行故障检查,多半故障原因是因使用不当造成的。下图是某一洗衣机不启动的故障原因排除流程图:
图2 洗衣机不启动故障排除流程图
流程图明确给出了排除因使用不当原因而造成洗衣机不启动故障的排查方法和流程,可以参照流程图给出的步骤,逐步排查洗衣机不能启动的原因。
按照流程图给出的步骤进行排查:
第一步需要检查电源是否接通,如果电源有问题,则解决电源问题后,故障排除。如果电源没有问题,则进入第二个步骤。
第二步需要检查洗衣机门是否关严,如果洗衣机门没有关严,则关严洗衣机门,故障排除。如果洗衣机门已关严,则进入第三个步骤。
第三步需要检查洗衣机进水部分,查看水龙头是否打开,没有水压,洗衣机也不能启动,如果水龙头没有打开,则打开水龙头,故障排除。如果水龙头已打开且有水压,则进入第四个步骤。
第四步需要检查是否按下了启动键并有蜂鸣声,如果没有按下启动键,则按下启动键,故障排除。如果已按下启动键且有蜂鸣声,则需要给售后服务打电话报修。
2、认识流程图的符号
前面看了洗衣机故障排除流程图,同学们一定很奇怪,流程图的椭圆框、菱形框、平行四边形、长方形以及带线的箭头都表示什么意义?画流程图是不是可以用其它形状画呢?
其实,流程图是可以允许用其它图形符号画的,只要自己能看明白,能记住流程就行。问题是,如果你希望其他人也能看懂你的流程图,可能就有点麻烦了,你需要给他们解释你流程图中采用的每个图形所表示的含义是什么,当需要给多个人解释时,这时你一定在想,如果这些图形表示的含义他们都知道该多好,就不用我一个个去讲,去沟通了。
因此,规范的流程图可以帮助人们对流程的统一认识,便于沟通和讨论,有助于工作效率的提高。它使用一组预定义的符号来说明如何执行特定任务,这些预先定义的符号已经标准化,从而让全世界的开发人员都可以采用这些符号而不会引起混淆。表1-1对流程图中使用的符号进行了汇总。
3、如何绘制流程图?
先请同学们思考一个计算长方形面积的问题,并给出算法,用文字描述出来。
问题的解决可分为下面几个步骤:
(1)设置num1和num2两个变量,接收用户输入的长度和宽度,并存储到num1和num2两个变量;
(2)判断num1和num2是否大于0,如果大于0,继续下一个步骤,否则提示用户长度和宽度输入错误,算法结束;
(3)计算num1和num2的乘积,并将乘积结果存储到result变量;
(4)显示result变量的值到屏幕。
流程图可以采用多个工具软件进行绘制,下面所列是常用的绘制流程图的工具软件,建议使用Microsoft Visio软件绘制,本课程流程图采用Microsoft Visio 2013软件绘制,流程图见图2-3。
(1)Microsoft Visio 2010或更高版本
(2)在线流程图绘制工具processon.com
(3)PPT、Word等软件
图3 计算长方形面积算法流程
使用Microsoft Visio 2013绘制流程图步骤如下:
(1)Visio 2013是一款比较强大的画图工具,不仅用于软件、办公室用图表,还可以绘制工程图表,启动Visio2013后,Visio会展现各种特色的图表,双击图表,就进入绘制页面了。如图4所示。
图4 Visio2013可绘制的图表类型
(2)选择类别,Visio进入类别页面,找到流程图类别,用鼠标单击流程图,进入流程图选择页面。如图5所示。
图5 Visio2013类别选择页
(3)在流程图新建页面,选择基本流程图,用鼠标单击基本流程图,在弹出的创建对话框中,单击创建按钮,进入绘图页面。如图6所示。
图6 创建基本流程图
(4)在绘图页面中,左侧的是图形符号窗口,可以在这里选择不同的图形符号拖拽到绘图区域,右侧用灰色线条框住的区域是绘图区域,如图7所示。
图7 流程图绘图页面
(5)绘制流程图,先从开始符号绘制,在左侧符号区域选择开始/结束图形符号,按下鼠标左键,用鼠标拖拽到绘图区域的适当位置,并输入“开始”文字,如图8所示。
图8 绘制开始符号
(6)算法的第一个步骤是接收用户输入的长度和宽度,并存储到num1和num2变量中,此时要用到输入/输出符号,在左侧符号区域选择输入/输出符号,按下鼠标左键,用鼠标拖拽到开始符号的下方适当位置,输入“接收num1和num2”内容。并在开始符号和输入/输出符号之间绘制流程线,流程线的箭头指向输入/输出符号。如图9所示。
图9 绘制流程图输入/输出符号
(7)算法的第二个步骤是判断输入的num1和num2是否大于零,根据判断情况执行不同的分支。此时要用到判断符号,在左侧符号区域选择判定符号,按下鼠标左键,用鼠标拖拽到输入/输出符号下方适当位置,并输入判定内容。如图10所示。
图10 绘制流程图判断符号
(8)如果num1或num2 小于零,提示用户输入错误。此时拖拽输入/输出符号到判定符号的左侧适当位置,输入“显示输入错误”内容,并用流程线连接判定符号和输入/输出符号,在流程线上标注“否”。如图211所示。
图11 绘制判定流程否分支
(9)算法的第三个步骤是,如果num1或num2 大于零,则执行两数相乘操作。此时应选用流程符号,拖拽流程符号到判定符号的下方适当位置,输入活动内容,并在判定符号和流程符号之间绘制流程线,流程线上标注“是”。如图12所示。
图12 绘制判定流程“是”分支
(10)算法的第四个步骤是将result变量输出到屏幕,此时应选用输入/输出符号,拖拽输入/输出符号到流程符号下方的适当位置,并绘制流程线,输入活动内容。如图213所示。
图13 绘制输出/输出符号
(11)算法流程图的绘制到此结束,拖拽开始/结束符号到绘图区域适当位置,并在结束符号和“显示输入错误”符号、“显示result”符号之间绘制流程线。在“显示输入错误”符号和结束符号之间绘制流程线,主要是算法规定当输入的num1和num2小于零时,提醒用户并退出程序。如图214所示。
图14 绘制流程结束符号
使用图形表示算法是非常好的思路,绘制流程图的过程就是整理思路的过程。通过绘制流程图,可以对算法进行一次完整的梳理,及时发现问题,调整思路。流程图一定要有开始和结束;菱形框表示判断,判断必须有两个分支,或者满足条件或者不满足条件;平行四边形框表示输入输出框,用于输入数据和输出数据的处理;矩形框表示处理过程,用于数值计算和业务处理;引线表示流程的方向。
■ 课程小结
1. 流程图是算法的图形化描述。流程图用图形化的方式描述了算法从开始到结束的所有步骤,通过流程图可以直观的了解算法执行的过程,是人们之间交流算法很重要的图形化工具。
2. 人们为了方便地使用流程图交流算法,而不至于因图形符号的问题引起对算法过程理解的混淆。人们规定了一组预定义的图形符号来表示算法的过程,并给出每个图形符号的说明。标准的流程图符号包括开始/结束符号、输入/输出符号、流程符号、子流程符号、判断符号、流程线6种图形符号,用这6种图形符号可以绘制任何类型的流程图。
3. 绘制流程图的工具有很多,比较常用的有Visio、PPT等工具软件。绘制流程图时,必须要有开始和结束,并要遵循流程图各符号表示的含义。当需要输入数据或输出数据时,就要用输入/输出符号;当需要对条件进行判断时,就要用判断符号;当需要执行计算过程时,就要用流程符号。另外,流程线的箭头指向算法当前步骤的下一个步骤,表示算法执行过程的走向。
■ 思考与练习
1. 思考一个求三个数最大值的算法,算法步骤通过流程图绘制出来。
作业要求:接受用户输入的三个数值,求出最大值,将计算结果输出到显示器。
2. 请给出第一篇思考与练习第4题算法的流程图描述。
转载自原文链接, 如需删除请联系管理员。
原文链接:用流程图描述算法,转载请注明来源!