首页 百科知识 描述程序流程的图表是什么

描述程序流程的图表是什么

时间:2022-10-17 百科知识 版权反馈
【摘要】:在设计出解决问题的算法后,需要采用适当的方法描述算法,描述算法的工具很多,常用的有自然语言、伪码、程序流程图、N-S图等。常见的程序流程图由逻辑框和流向线组成,其中逻辑框是表示程序操作功能的符号,流向线用来指示程序的逻辑处理顺序。图1.2.8是表示一些步骤需要重复执行的N-S流程图,它是程序设计中必不可少的一种结构。

1.2.2 算法的表示

在设计出解决问题的算法后,需要采用适当的方法描述算法,描述算法的工具很多,常用的有自然语言、伪码、程序流程图、N-S图等。下面根据给出的例子分别简要介绍这几种方法。例如,用键盘输入10个整数,求其中正整数的累加和并输出在显示屏上,请写出相应的算法。

1.自然语言描述

用自然语言描述算法,比较容易理解和进行交流,但有时不够明确,容易发生二义性。例如,“输出主修计算机专业并且成绩低于3分或者即将毕业的学生姓名”这句话可以理解为下面的两种情况。

·输出计算机专业成绩低于3分的学生的姓名,以及即将毕业(不管其专业和成绩)学生的姓名。

·输出计算机专业中,成绩低于3分或者即将毕业的学生的姓名。

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

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

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

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

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

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

2.伪码描述

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

针对上面的例子,我们用伪码描述的算法是:

BEGIN

SET 0→sum

SET 0→count

WHILE count〈10

BEGIN

READ a integer data to x from keyboard

IF x〉0

sum+x→sum

count+1→count

END

END-WHILE

PRINT sum

END

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

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

3.程序流程图描述

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

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

img34

图1.2.4 流程图的表示符号

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

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

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

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

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

针对例子,用程序流程图描述的算法如图1.2.5所示。

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

4.N-S流程图

img35

图1.2.5 程序流程图

根据1973年美国学者Nassi和Schneiderman提出的方法,形成了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)称为“当型”框,表示当条件成立时,指定的操作被重复执行。

img36

图1.2.6 判断框的流程图表示

img37

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

img38

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

针对例子,用N-S流程图描述的算法如图1.2.9所示。

img39

图1.2.9 N-S图描述的算法

从上面4种算法描述方法中可以看出,算法描述只与问题的求解步骤有关,与使用什么程序设计语言无关,它是与具体程序设计语言无关的一种通用的描述形式,具有语言无关性。

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

算法+数据结构=程序设计

其中,数据结构是程序中处理的数据的表示方法,而算法是程序设计的核心,其重要性不言而喻。

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

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

我要反馈