前面了解了程序和算法的关系,知道了算法是解决问题的具体方法和步骤,也学会了用文字去描述算法。那还有没有其它描述算法的方式呢?毕竟文字看起来比较费劲。流程图就是一种描述算法的图形化描述,用流程图可以清晰地描述出算法的思路和过程。通过本篇的学习,你将了解到如何用流程图来描述算法。
流程图是算法的图形化描述。俗话说:一张图胜过千言万语,用流程图可以清晰地描述出算法的思路和过程。
1、从生活中认识流程图
说到流程图,同学们可能会感到比较陌生和不理解,其实在我们生活中,经常会看到流程图,也会读懂流程图,并能按照流程图的要求去执行流程图中的各个步骤。例如,我们去图书馆借书就要遵循图书馆制定的流程,当初次使用车站自动售票机购票时,就要仔细看自动购票流程图。看流程图的目的,就是让我们能够明确每一个步骤,而不会出现差错。
借书与自动售票流程图现在家庭中一般都有电冰箱、洗衣机等家用电器,家用电器包装箱里面都会附带使用说明书,使用说明书包含了产品的使用方法、注意事项以及一般故障排除流程等内容,当家用电器发生故障时,可以先根据使用说明书的故障排除流程进行故障检查,多半故障原因是因使用不当造成的。下图是某一洗衣机不启动的故障原因排除流程图:
洗衣机不启动故障排除流程图流程图明确给出了排除因使用不当原因而造成洗衣机不启动故障的排查方法和流程,可以参照流程图给出的步骤,逐步排查洗衣机不能启动的原因。
按照流程图给出的步骤进行排查:
第一步需要检查电源是否接通,如果电源有问题,则解决电源问题后,故障排除。如果电源没有问题,则进入第二个步骤。
第二步需要检查洗衣机门是否关严,如果洗衣机门没有关严,则关严洗衣机门,故障排除。如果洗衣机门已关严,则进入第三个步骤。
第三步需要检查洗衣机进水部分,查看水龙头是否打开,没有水压,洗衣机也不能启动,如果水龙头没有打开,则打开水龙头,故障排除。如果水龙头已打开且有水压,则进入第四个步骤。
第四步需要检查是否按下了启动键并有蜂鸣声,如果没有按下启动键,则按下启动键,故障排除。如果已按下启动键且有蜂鸣声,则需要给售后服务打电话报修。
2、认识流程图的符号
前面看了洗衣机故障排除流程图,同学们一定很奇怪,流程图的椭圆框、菱形框、平行四边形、长方形以及带线的箭头都表示什么意义?画流程图是不是可以用其它形状画呢?
其实,流程图是可以允许用其它图形符号画的,只要自己能看明白,能记住流程就行。问题是,如果你希望其他人也能看懂你的流程图,可能就有点麻烦了,你需要给他们解释你流程图中采用的每个图形所表示的含义是什么,当需要给多个人解释时,这时你一定在想,如果这些图形表示的含义他们都知道该多好,就不用我一个个去讲,去沟通了。
因此,规范的流程图可以帮助人们对流程的统一认识,便于沟通和讨论,有助于工作效率的提高。它使用一组预定义的符号来说明如何执行特定任务,这些预先定义的符号已经标准化,从而让全世界的开发人员都可以采用这些符号而不会引起混淆。表1-1对流程图中使用的符号进行了汇总。
3、如何绘制流程图?
先请同学们思考一个计算长方形面积的问题,并给出算法,用文字描述出来。
问题的解决可分为下面几个步骤:
(1)设置num1和num2两个变量,接收用户输入的长度和宽度,并存储到num1和num2两个变量;
(2)判断num1和num2是否大于0,如果大于0,继续下一个步骤,否则提示用户长度和宽度输入错误,算法结束;
(3)计算num1和num2的乘积,并将乘积结果存储到result变量;
(4)显示result变量的值到屏幕。
流程图可以采用多个工具软件进行绘制,下面所列是常用的绘制流程图的工具软件,建议使用MicrosoftVisio软件绘制,本课程流程图采用MicrosoftVisio软件绘制,流程图见图3。
(1)MicrosoftVisio或更高版本
(2)在线流程图绘制工具processon.