流程图(FlowChart)是描述我们进行某一项活动所遵循顺序的一种图示方法。它虽然并不统计学的范畴,但在很多质量专家仍把它纳入统计技术的范围之 内,因为在质量管理的过程中,流程图是我们经常使用的一个工具。一个好的流程图可以直观地描述整个活动中所有过程的物流、信息流,让人很容易知悉整个过 程。质量管理过程中常用的流程图有产品生产流程图、产品检验流程图、服务流程图等。在这里大家可以简单了解一个它的使用方法,以便让你日后所做的流程图更 为专业化、标准1.流程图中使用的符号 开始与结束标志,是个椭圆形符号。用来表示一个过程的开始或结束。“开始”或“结束”写在符号内。
1.流程图中使用的符号
流程图常用的形式有两种:
1)上下流程图
上下流程图是最常见的一种流程图,它仅表示上一步与下一步的顺序关系。如下图是一家公司采购件进货过程。
流程图符号及流程图的例子
介绍常见的流程图符号及流程图的例子。
本章例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
流程一般也是绘制的,在一次和朋友探讨流程的时候,朋友画出的流程图符号可以说是五花八门,流程图中各个符号也是有讲究的,现在就常见的流程图符号及含义与大家一起分享如下:
1、 开始和结束的标志:椭圆,符号为:
用来表示一个过程的开始或结束。“开始”或“结束”写在符号内。
2、 过程(或活动)的标志:矩形,符号为:
用来表示在过程的一个单独的步骤。活动的简要说明写在矩形内。
3、 判定(或决策)的标志:菱形,符号为:
用来表示过程中的一项判定或一个分岔点,判定或分岔的说明写在菱形内,常以问题的形式出现。对该问题的回答决定了判定符号之外引出的路线,每条路线标上相应的回答。
4、 连线(或流线)的标志:箭头,符号为:
用来表示层层步骤在顺序中的进展。连线的箭头表示一个过程的流程方向。
5、 文挡标志(不好形容)符号为:
用来表示属于该过程的书面信息, 生成的任何供人阅读的信息,例如打印结果。文 件的题目或说明写在符号内。
6、 连接标志:圆圈,符号为:
用来表示流程图的待续。圈内有一个字母或数字。在相互联系的流程图内,连接符号使用同样的字母或数字,以表示各个过程是如何连接的。
7 、数据的标志:平行四边形,符号为:
用来表示数据任何种类的输入或输出,例如接收或发布信息, , 其中可注明数据名来源用途或其它的文字说明,此符号并不限定数据的媒体。
8 、预定义过程(不好形容)符号为:
用来表示图表中已知或已确定的另一个过程,但未在图表中详细列出。
9 、准备的标志:六边形,符号为:
用来表示准备阶段。
10 、并行方式的标志:一对平行线,符号为:
用来表示同步进行两个或两个以上并行方式的操作。
一般情况绘制流程图使用微软Office 中Word 自带的流程图或者是微软的Visio 。