用流程图描述算法
课程    Java编程基础

课程导言

前面了解了程序和算法的关系,知道了算法是解决问题的具体方法和步骤,也学会了用文字去描述算法。那还有没有其它描述算法的方式呢?毕竟文字看起来比较费劲。流程图就是一种描述算法的图形化描述,用流程图可以清晰地描述出算法的思路和过程。通过本课的学习,你将了解到如何用流程图来描述算法。】


在前面课程描述算法的步骤中,我们使用文字语言来描述算法。描述算法的目的有三个:一是梳理算法的过程和步骤,做到心中有数;二是作为编程文档,用于代码的维护和交流;三是与他人沟通或交流算法时,方便他人阅读和理解算法。

使用流程图描述算法

在与他人沟通或交流算法时,让他人快速阅读和理解算法是非常重要的,当算法步骤过多或比较复杂时,用文字描述的算法会增加沟通或交流上的困难。

01.png

在这种情况下,用图形来描述算法是一种比较好的思路。俗话说:一张图胜过千言万语,用图来描述算法可以让他人快速理解算法的过程和步骤,相对文字来说也引人入胜,与他人进行算法的沟通和交流也非常方便。

02.png

因此在描述算法时,除了使用文字描述算法外,还需要学会使用图形来描述算法,并且还要学会阅读他人使用图形描述的算法。人们为了统一算法的图形描述,预定义了一组图形符号,大家都用预定义的图形符号来描述算法,在图形符号上可以加入文字解释,说明该图形符号表示的意义。多个图形符号以及图形符号上的文字解释构成了一张图,这张图称为流程图,用图形符号描述算法的绘制过程也称为绘制流程图。

下图是计算长方形面积算法的流程图:

03.png

为了方便同学们看懂计算长方形面积算法的流程图,下面也给出了用文字描述的算法:

第一步:输入长方形的长度和宽度;

第二步:判断输入长方形的长度和宽度是否小于等于0,如果长度或宽度小于等于0,执行第三个步骤,否则执行第四个步骤;

第三步:提示用户输入的长度和宽度有错误,算法结束;

第四步:计算长度和宽度的乘积;

第五步:输出长方形的面积。

22.png

同学们对上面流程图中使用的图形符号可能会有疑问,这些图形符号都表示什么意义呢?绘制流程图必须要使用这些符号吗?

流程图中的图形符号都是预先定义好的,每个图形符号都表示在流程图中一个确定的意义。这些符号已经被标准化,标准化的意思就是大家在绘制流程图时,都会使用这些图形符号,而不会使用其它的符号。用标准化的图形符号绘制流程图的意义在于:你绘制的流程图大家都能看的懂!

04.png

认识流程图

标准化的流程图有六个图形符号,绘制流程图时也只能使用这六个图形符号。这六个图形符号分别是开始/结束、过程、输入/输出、子过程、判断、流线符号。

05.png

开始/结束图形符号

06.png

算法有开始和结束,在预定义的图形符号中也有“开始/结束”符号。“开始/结束”符号用同一个圆角矩形表示。在绘制流程图时,首先要绘制开始符号,最后绘制结束符号。

过程符号

07.png


算法的每一个步骤(输入和输出步骤、判断步骤除外)都可以使用“过程”符号来表示,矩形内可以添加过程的简要说明。

输入/输出符号

08.png


算法的输入和输出步骤可以使用“输入/输出”符号,“输入/输出”符号用平行四边形来表示。例如从键盘获取用户输入,输出内容到显示器等这些需要输入和输出的步骤,都可以使用“输入/输出”符号来表示。

子过程符号

09.png


当一个算法比较复杂时,需要绘制的流程图会非常复杂,在一个页面中不能完全展现。这时,就需要把算法分为多个子算法,分别进行绘制,这就是分而治之的原则,也符合人们解决问题的思路。在整体算法流程图中,用“子过程”符号来表示一个分解后的子算法。

判断符号

10.png


算法中的条件判断步骤可以使用“判断”符号来表示。在条件判断情况下,算法的流程并不是按既定的顺序执行,而是根据不同条件,选择不同的执行路径。

20.png

流线符号

11.png


在流程图中,算法的步骤之间用“流线”符号连接,箭头指向表示步骤的流程方向。例如输入步骤(使用输入/输出符号)的下一个步骤是计算步骤(使用过程符号),用“流线”符号连接两个步骤,流线符号的箭尾指向输入步骤,流线符号的箭头指向计算步骤。

12.png

另外,在绘制流程图时,要遵循图形符号的形状,但图像符号的大小、颜色、外观不受限制。

现在我们已经了解了流程图中六个图形符号的意义,再来看前面绘制的计算长方形面积算法的流程图,就很容易看懂了。

看流程图时,从“开始”符号顺着“流线”符号看算法的每个步骤,遇到“判断”符号(判断步骤),会有两条“流线”符号(连接两个不同步骤),分别查看这两个不同步骤的流程,依次类推。流程图最后的图形符号是“结束”符号。

如何绘制流程图?

绘制流程图的方式有很多,可以使用绘图工具,Word、PowerPoint等软件来绘制流程图,也可以在纸张上绘制流程图。下面我们使用PowerPoint软件来绘制前面的流程图(如果不会使用PowerPoint,可以在纸张上绘制)。

第一步:绘制“开始”符号,在【形状】下选择圆角矩形图形到页面,在矩形符号内输入“开始”文字。

13.png

第二步:绘制算法的第一个步骤,该步骤是输入步骤。在【形状】下选择平行四边形图形到页面,在平行四边形符号内输入说明文字。并使用“流线”符号连接“开始”符号和“输入/输出”符号。

14.png


第三步:绘制算法的第二个步骤,算法第二个步骤是判断步骤,在【形状】下选择菱形图形到页面,输入文字说明。并使用“流线”符号连接“输入/输出”符号和“判断”符号。

15.png

第四步:绘制算法的第三个步骤,算法的第三个步骤是输出步骤,是前面判断步骤的一个出口,该步骤执行输出“长度和宽度错误”信息。

16.png

第五步:绘制算法的第四个步骤,算法的第四个步骤是计算步骤,也是前面判断步骤的一个出口,该步骤用于计算长方形的面积。

17.png

第六步:绘制算法的第五个步骤,该步骤输出长方形的面积。

18.png


第七步:绘制流程图的“结束”符号,并使用“流线”符号连接算法的第三个步骤和第五个步骤到“结束”符号。

19.png


课程小结

流程图是人们描述算法经常使用的一种方式,它简单易学,只有六种图形符号,绘制的流程图也直观易理解。

绘制流程图用什么工具并不重要,重要的是要掌握流程图的绘制方法和流程图各图形符号的用法。你可以用手在纸张上绘制,也可以用画图软件来绘制。


思考与练习

1、思考一个求三个数最大值的算法,算法步骤通过流程图绘制出来。

作业要求:接受用户输入的三个数值,求出最大值,并输出计算结果。

读者留言
最新
推荐
っ薄荷微凉ヾ
2019/8/23
开始→输入num1num2num3→判断num1>num2且>num3吗?→是→显示num1→结束 否→判断num2>num3吗?→是→显示num2→结束 否→显示num3→结束
郎宏林回复:
回复日期:2019/8/23
  • 推荐[0]
  • |
  • 回复
回复评论
weather゜
2019/8/14
请问课后习题有答案吗
郎宏林回复:
回复日期:2019/8/14
  • 推荐[0]
  • |
  • 回复
回复评论
言ッ糙
2019/8/3
相加最大值吗还是什么
郎宏林回复:
回复日期:2019/8/3
  • 推荐[0]
  • |
  • 回复
回复评论
Peter
2019/7/28
馒头,我数学从来没下过140,在学校只算中上。
  • 推荐[0]
  • |
  • 回复
回复评论
馒头
2019/7/23
我都画图了!
郎宏林回复:
回复日期:2019/7/23
  • 推荐[0]
  • |
  • 回复
回复评论
馒头
2019/7/23
老师你的那个课后题有点复杂啊
郎宏林回复:
回复日期:2019/7/23
  • 推荐[0]
  • |
  • 回复
回复评论
馒头
2019/7/23
老师我高中刚毕业,数学最好,虽然只有110
郎宏林回复:
回复日期:2019/7/23
  • 推荐[0]
  • |
  • 回复
回复评论
馒头
2019/7/23
老师,我的专业是计算机类,我不太明白,学这些用处大不
郎宏林回复:
回复日期:2019/7/23
  • 推荐[0]
  • |
  • 回复
回复评论
用手机学习课程

手机、电脑同步学

用浏览器扫描二维码,即可下载APP。

郎宏林
授课老师
授课老师简介
项目经理,系统分析和架构师,从事多年中文信息处理技术。熟悉项目管理、擅长项目需求分析和设计、精通Java、C#、Python等编程语言。
  • 备案号:鲁ICP备15001146号
  • @1997-2018 潍坊米粒花网络技术有限公司版权所有