首页 百科知识 顺序功能图常用的编程方法有

顺序功能图常用的编程方法有

时间:2022-10-16 百科知识 版权反馈
【摘要】:常见的程序流程图由逻辑框和流向线组成,其中逻辑框是表示程序操作功能的符号,流向线用来指示程序的逻辑处理顺序。图1.2.8是表示一些步骤需要重复执行的N-S流程图,它是程序设计中必不可少的一种结构。算法通过选用的某种程序设计语言在计算机上得以实现,以达到使用计算机求解问题的目的。因此程序设计语言的性能和设计风格与程序设计的质量有着直接的关系。

1.2.2 算法的表示

一个程序应包括:对数据的描述和对操作的描述。

对数据的描述:指定数据的类型和组织形式,即数据结构(data structure)。

对操作的描述:为解决一个问题而采取的方法和步骤,也就是算法(algorithm)。

著名计算机科学家沃斯(Nikiklaus Wirth)曾简洁地描述程序为:

程序=数据结构+算法

目前该公式已经扩展为:

程序=算法+数据结构+程序设计方法+语言工具和环境

即程序还受程序设计的思想和集成环境的影响。

在设计出解决问题的算法后,需要采用适当的方法描述算法,描述算法的工具很多,常用的有自然语言、伪码、程序流程图、N-S图等。

例如,用键盘输入10个整数,求其中正整数的累加和并输出在显示屏上。

1.自然语言描述算法

用自然语言描述算法,比较容易理解和进行交流,但容易发生二义性。

用自然语言在描述一些复杂的算法时,很难将复杂的逻辑流程描述清楚,而且算法在转换成程序时也比较困难,因此这种表达方法适合于简单问题的描述。

针对例子,用自然语言描述的算法是:

(1)用键盘输入一个整数;

(2)如果该数大于0,将它加到累加和中,否则不加;

(3)如果还没有输入完10个数,转步骤(1);

(4)输入完10个数后,输出累加和。

2.伪代码描述算法

伪代码接近自然语言和形式化语言,以一种简单易于理解的方式描述算法的逻辑过程。由于伪代码不是一种具体的程序设计语言,它没有固定的必须遵循的语法描述,能最大限度地使用自然语言。因此用伪代码表示的算法不仅易于理解,易于交流,无二义性,而且便于转换为程序。伪代码也可以称为类程序设计语言。

针对求正整数的累加和的例子,用伪代码描述的算法是:

img17

img18

该算法定义了一个存放10次计数值的变量count,一个保存正整数累加和的变量sum并分别初始化为0。用键盘读入的数先放入x变量,再判定x是否为正整数,如果为真,将x累加到sum中,否则不累加。继续从键盘读入数,进行处理,直至读完10个数。

算法中的大写单词构成了程序设计语言的框架结构。

3.程序流程图描述算法

流程图使用特定的图形符号并加上简单的文字说明来表示数据处理的过程和步骤。它能指出计算机执行操作的逻辑顺序,表达简单、清晰。通过程序流程图,设计者能很容易了解系统执行的全过程以及各部分之间的关系,便于优化程序并排除设计中的错误。

流程图是描述算法的良好工具,得到了普遍的使用。常见的程序流程图由逻辑框和流向线组成,其中逻辑框是表示程序操作功能的符号,流向线用来指示程序的逻辑处理顺序。如图1.2.4所示列出了程序流程图的常用符号,它们的功能简单说明为:

img19

图1.2.4 流程图的表示符号

(1)起止框:表示程序的开始和结束,框内标以“开始”和“结束”字样。以圆角方框表示。

(2)处理框:表示一种处理功能或程序段,框内用文字简述其功能。以(直角)方框表示。

(3)判断框:表示在此进行判断以决定程序的流向,框内注明判断条件,判断结果标注在出口的流向线上,一般用“Y”表示条件满足,用“N”表示条件不满足。以菱形框表示,一个入口,两个出口。

(4)连接框:框内注有字母,当流程图跨页时,或者流程图比较复杂,可能出现流向线交叉时,用它来表示彼此之间的关系,相同符号的连接框表示它们是相互连接的。以圆圈表示。

(5)流向线:表示程序处理的逻辑顺序。以单向箭头表示。

针对求正整数的累加和的例子,用程序流程图描述的算法如图1.2.5所示。

img20

图1.2.5 程序流程图

从图1.2.5中可见,流向线返回的部分将重复执行10次。程序流程图直观明了,各种操作一目了然,操作之间的逻辑关系非常清晰。但由于使用了流向线,各个框比较稀疏,占位置太大,对于步骤多的流程图,不容易进行总体把握。

4.N-S流程图

根据1973年美国学者Nassi和Schneiderman提出的方法,形成了N-S流程图(也称为方框图)。N-S流程图是一种适于结构化程序设计的算法描述工具。由于流程图各步骤之间,一般总是按照从上到下顺序执行,N-S流程图中取消了流向线,一旦需要改变顺序时,再用专门的框来表示。如图1.2.6所示的流程图的判断框,其等价的N-S流程图如图1.2.7所示。图1.2.8是表示一些步骤需要重复执行的N-S流程图,它是程序设计中必不可少的一种结构。其中,图1.2.8(a)称为“直到型”框,表示指定的操作一直被重复执行,直到条件不成立为止;图1.2.8(b)称为“当型”框,表示当条件成立时,指定的操作被重复执行。

img21

图1.2.6 判断框的流程图表示

img22

图1.2.7 判断框的N-S流程图表示

img23

img24

图1.2.8 表示“重复操作”的N-S流程图

针对求正整数的累加和的例子,用N-S流程图描述的算法如图1.2.9所示。

img25

图1.2.9 N-S图描述的算法

算法描述只与问题的求解步骤有关,与使用什么程序设计语言无关,它是与具体程序设计语言无关的一种通用的描述形式,具有语言无关性。

算法通过选用的某种程序设计语言在计算机上得以实现,以达到使用计算机求解问题的目的。因此程序设计语言的性能和设计风格与程序设计的质量有着直接的关系。目前,常用的程序设计语言有数百种之多,尽管任何一种程序设计语言均可作为编程工具完成编码、实现功能,但是由于每一种程序设计语言都有其自身的特点,它们对问题的处理及解决方式却不尽相同。选择程序设计语言时应根据任务及语言的特点综合考虑,以确保软件编码实现的质量。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈