介绍常见的流程图符号及流程图的例子。

本章例1 - 1的算法的流程图如图1 - 2所示。本章例1 - 2的算法的流程图如图1 - 3所示。

在流程图中,判断框左边的流程线表示判断条件为真时的流程,右边的流程线表示条件为假时的流程,有时就在其左、右流程线的上方分别标注“真”、“假”或“T”、“F”或“Y”、“N”

另外还规定,流程线是从下往上或从右向左时,必须带箭头,除此以外,都不画箭头,流程线的走向总是从上向下或从左向右。

2. 算法的结构化描述

早期的非结构化语言中都有go to语句,它允许程序从一个地方直接跳转到另一个地方去。

执行这样做的好处是程序设计十分方便灵活,减少了人工复杂度,但其缺点也是十分突出的,一大堆跳转语句使得程序的流程十分复杂紊乱,难以看懂也难以验证程序的正确性,如果有错,排起错来更是十分困难。这种转来转去的流程图所表达的混乱与复杂,正是软件危机中程序人员处境的一个生动写照。而结构化程序设计,就是要把这团乱麻理清。

经 过研究,人们发现,任何复杂的算法,都可以由顺序结构、选择(分支)结构和循环结构这三种基本结构组成,因此,我们构造一个算法的时候,也仅以这三种基本结构作为“建筑单元”,遵守三种基本结构的规范,基本结构之间可以并列、可以相互包含,但不允许交叉,不允许从一个结构直接转到另一个结构的内部去。正因为整个算法都是由三种基本结构组成的,就像用模块构建的一样,所以结构清晰,易于正确性验证,易于纠错,这种方法,就是结构化方法。遵循这种方法的程序设计,就是结构化程序设计。

相应地,只要规定好三种基本结构的流程图的画法,就可以画出任何算法的流程图。

(1) 顺序结构

顺序结构是简单的线性结构,各框按顺序执行。其流程图的基本形态如图1 - 4所示,语句

的执行顺序为:A→B→C。

(2) 选择(分支)结构

这种结构是对某个给定条件进行判断,条件为真或假时分别执行不同的框的内容。其基本形状有两种,如图1-5 a)、b)所示。图1-5 a)的执行序列为:当条件为真时执行A,否则执行B;图1 - 5 b)的执行序列为:当条件为真时执行A,否则什么也不做。

(3) 循环结构

循环结构有两种基本形态: while型循环和do - while型循环。

a. while 型循环

如图1 - 6所示。

其执行序列为:当条件为真时,反复执行A,一旦条件为假,跳出循环,执行循环紧后的语句。

b. do-while型循环

如图1 - 7所示。

执行序列为:首先执行A,再判断条件,条件为真时,一直循环执行A,一旦条件为假,结束循环,执行循环紧后的下一条语句。

在图1 - 6、图1 - 7中,A被称为循环体,条件被称为循环控制条件。要注意的是:

1) 在循环体中,必然对条件要判断的值进行修改,使得经过有限次循环后,循环一定能

结束,如图1 - 3中的i = i - 1。

2) 当型循环中循环体可能一次都不执行,而直到型循环则至少执行一次循环体。

3) 直到型循环可以很方便地转化为当型循环,而当型循环不一定能转化为直到型循环。

例如,图1 - 7可以转化为图1 - 8。

七,用N-S图描述算法

N - S图是另一种算法表示法,是由美国人I . Nassi和B.Shneiderman共同提出的,其根据是:

既然任何算法都是由前面介绍的三种结构组成,所以各基本结构之间的流程线就是多余的,因此,N - S图也是算法的一种结构化描述方法。

N - S图中,一个算法就是一个大矩形框,框内又包含若干基本的框,三种基本结构的N - S图描述如下所示:

1. 顺序结构

如图1 - 9所示,执行顺序先A后B。

2. 选择结构

对应于图1 - 5的N - S图为图1 - 1 0。图1-10 a)条件为真时执行A,条件为假时执行B。图1 - 1 0

b 条件为真时执行A,为假时什么都不做。

3. 循环结构

1) while型循环的N - S图如图1 - 11所示,条件为真时一直循环执行循环体A,直到条件为假时才跳出循环。

2) do-while型循环的N - S图如图1 - 1 2,一直循环执行循环体A,直到条件为假时才跳出循环。

本章例1 - 1的N - S图如图1 - 1 3,例1 - 2的N - S图如图1 - 1 4。应该说,N - S图比流程图更直观易懂,而且相对简练一些。

八,用PAD图描述算法

PAD (Problem Analysis Diagram),是近年来在软件开发中被广泛使用的一种算法的图形表示法,与前述的流程图、N - S图相比,流程图、N - S图都是自上而下的顺序描述,而PAD图除了自上而下以外,还有自左向右的展开,所以,如果说流程图、N - S图是一维的算法描述的话,则PAD图就是二维的,它能展现算法的层次结构,更直观易懂。

下面是PAD图的几种基本形态:

1. 顺序结构:

如图1 - 1 5所示。

2. 选择结构

(1) 单分支选择,条件为真执行A,如图1-16 a)。

(2) 两分支选择,如图1-16 b),条件为真执行A,为假执行B。

(3) 多分支选择,如图1-16 c),当I = I1时执行A,I= I2时执行B,I = I3时执行C,I = I4时执行D。

3. 循环结构

如图1 - 1 7所示。图1-17 a)为while型循环,图1-17 b)为do - while型循环。

本章例1 . 1的PA D图如图1 - 1 8,例1 - 2的PA D图如图1 - 1 9

转帖网址:http://www.360doc.com/content/17/0829/15/46916002_683040190.shtml

流程图符号及流程图的例子相关推荐

  1. 使用draw.io绘制简洁大方的流程图

    draw.io的使用方法: 使用draw.io绘制简洁大方的流程图 draw.io 怎么使用 在线画图工具draw.io简单使用介绍 使用draw.io绘制简洁大方的流程图 [技能]流程图.框图.时序 ...

  2. 游戏策划入门(5)——开始绘制系统的结构流程图

    开始绘制系统的结构流程 在完成了游戏的主框架后,你自己脑子里面应该非常清楚你的游戏是什么样子了.那么,怎么保证别人能够知道你的想法呢?详细的说明文档是一种办法,可是大量的文字信息只会让程序人员不断的打 ...

  3. Web流程图的绘画指南

    转载自雷锋网  http://www.leiphone.com/flowcharts-web-design.html Web流程图的绘画指南 小盒   2012-08-30 16:00   1条评论  ...

  4. 关于系统设计中的流程图

    在平时的软件开发和方案总体设计中,往往需要绘制各种各样的流程图,比如业务流程图.数据流程图.系统流程图等等.由于各种图所反应的侧重点不一样,这三种图所使用的场景也会有差异,本文介绍了各种图的使用场合和 ...

  5. 产品设计-9.制作产品流程图

    制作产品流程 流程图是对过程.流程的一种图像表示. 通常用一些图框来表示各种类 型的操作,在框内写出各个步骤,然后用带箭头的线把它们连接起来, 以表示执行的先后顺序. 形象直观,各种操作一目了然,不会 ...

  6. wps文档怎么画流程图6_wps流程图怎么画-利用wps制作标准流程图的方法 - 河东软件园...

    wps2016/ target=_blank class=infotextkey>wps office是金山开发的一套办公软件,最开始的时候这个软件只有三个组件:word/excel/ppt.但 ...

  7. 全面解读流程图|附摩拜ofo案例分析(附内推)

    梗概 对于任何产品设计来说,构建流程都是一个绕不开的环节.其奠定了后续的产品框架,是用户体验的基石.本文将从定义和分类出发,结合实际案例,深入浅出地阐述流程图的作用以及画法. 定义 流程--顾名思义: ...

  8. 六西格玛工具|流程图的概念和绘制步骤

    1.流程图 流程图(flow chart或flow diagram)是展现过程步骤和决策点顺序的图形文档,是将一个过程的步骤用图的形式表示出来的一种图示技术.图1给出的就是一个流程图的例子. 图1 流 ...

  9. Markdown编辑器的使用方法

    本文目录 Markdown介绍 快捷键 1.标题 2.粗体/斜体/删除线/字体底色 3.上标/下标 4.无序排列 5.有序排列 6.待办事项 7.引用 8.脚注 9.自动注释 10.链接  a) 地址 ...

最新文章

  1. Gmail全球大规模宕机
  2. 应用程序通用开发框架
  3. mybatis 控制台打印sql脚本
  4. 高质量的工程代码为什么难写
  5. (超简单思路)U - C语言实验——单词统计
  6. Qt表格中以旋转框的形式数据交互
  7. 单源最短路径(最短路)
  8. 论发SCI论文和生孩子的共同点:那我这篇怀的也太久了!
  9. pdf2swf process阻塞问题
  10. vue src动态加载请求获取的图片
  11. 《杂记》- 之- 使用windows终端命令查看文件的MD5
  12. MATLAB GUI中显示数学公式
  13. 保险箱Pro-加密保护您的照片、视频、账号、联系人、日记
  14. php 发socket数据库,php socket连接数据库
  15. 汉白玉产地在哪里_汉白玉产地在哪里?
  16. 外媒分析:为何说苹果一定没造车!
  17. java调用clsid_java – Utgard – 拒绝访问
  18. Python-docx生成word文档
  19. gorm记一次joins查询不出数据
  20. CRM客户关系管理系统界面截图

热门文章

  1. 【论文解析】Deep Generative Models on 3D Representations: A Survey
  2. 移动端导航的七种设计模式
  3. rae众筹首个新目标,Tinkering开发板来了~
  4. java手机编译器ios_iOS编译器
  5. 断网别慌,WIFI上网修复技巧:联想智能引擎帮你恢复网络
  6. 【跟学C++】面向对象三大特征——继承(Study20)
  7. ANDROID Porting系列一、ANDROID编译系统
  8. python降维方法_机器学习数据降维方法总结(附python代码)
  9. 新闻丨可信区块链电信应用组正式成立
  10. vmware上的Linux没法下载vmware tools、没法安装vim和gcc或者其他软件,怎么办