理论教育 程序设计基础:算法表示方法分析

程序设计基础:算法表示方法分析

时间:2023-11-20 理论教育 版权反馈
【摘要】:程序设计中,有几种不同的算法表示方法:自然语言、传统流程图、N-S结构流程图、伪代码、PAD图等。使用自然语言的算法表示如下。

程序设计基础:算法表示方法分析

程序设计中,有几种不同的算法表示方法:自然语言、传统流程图、N-S结构流程图、伪代码、PAD图等。下面简单介绍前三种。

1.自然语言

使用人们日常生活中比较习惯的语言表示,这种表示比较通俗易懂,容易理解。但也存在表述烦琐、容易出现歧义、表达不清晰等问题。这种算法表示一般不能在算法流程中使用,但可以作为算法流程中的文字表述的补充。

【例1-1】瓶子A中装酒,瓶子B中装醋,将酒和醋交换瓶子。

分析:瓶子A中的酒和瓶子B中的醋不能直接交换,需要第三个瓶子C。交换前应该考虑C瓶是不是空的。

使用自然语言的算法表示如下。

步骤1:查看C瓶是不是空的。

步骤2:如果C瓶是空的,转步骤4。

步骤3:C瓶不是空的,把C瓶清空。

步骤4:将瓶子A中的酒倒入瓶子C:A→C。

步骤5:将瓶子B中的醋倒入瓶子A:B→A。

步骤6:将瓶子C中的酒倒回瓶子B:C→B。

完成交换。

2.传统流程图

传统流程图使用框图来表示算法流程。用框图表示算法,比较直观形象,易于理解,表示也比较简单清晰。图1-2所示是美国国家标准化协会(ANSI)规定的常用的流程图符号。

978-7-111-34450-6-Chapter01-2.jpg

图1-2 几种常用的传统流程图符号

a)起止框 b)处理框 c)输入输出框 d)判断框 e)流程线 f)连接点

程序基本的流程结构有三种,用以下传统流程图来表示。

(1)顺序结构

顺序结构按算法的步骤先后顺序逐行执行,其间没有条件判定和循环重复过程。顺序结构是程序中最简单的结构。顺序结构见图1-3a。

978-7-111-34450-6-Chapter01-3.jpg

图1-3 顺序结构与条件结构图

a)顺序结构 b)条件结构

(2)条件结构(www.daowen.com)

条件结构又称为分支结构或选择结构。这种结构中至少有一个条件判断,根据条件的是否成立(通常表示为结果为“真(true)”或者“假(false)”),来确定程序执行不同的操作。图1-3b是两种不同的条件结构。图1-4a是一个简单的条件结构的实例,例子中根据条件“成绩≥60”是否成立,确定程序的分支走向。

(3)循环结构

程序流程中,往往有大量重复性的操作,如计算学生的平均成绩,其计算方法对于每个学生都是相同的,每个学生都要重复一样的计算。这种重复计算就需要使用循环结构来进行。循环结构中的循环次数应该是有限的,否则就称为无限循环或死循环。因此循环都有一个对循环次数进行限定的条件判断。循环结构如图1-5所示,图中是两种不同类型的循环。

循环分为“当”型结构和“直到”型结构。图1-5a为“当”型结构,也就是当条件满足时,执行循环操作,如果条件不满足则结束循环操作。当型循环是先判断条件,然后执行循环。图1-5b为“直到”型结构,直到型循环先进入循环,然后判断条件,直到条件不满足时结束循环操作。直到型循环是先执行循环,然后判断条件。“直到”型结构至少完成一次循环。

图1-4b是一个循环结构的例子。该循环程序对整数1~100进行累加。

978-7-111-34450-6-Chapter01-4.jpg

图1-4 条件结构与循环结构示例

a)条件结构例子 b)循环结构例子

978-7-111-34450-6-Chapter01-5.jpg

图1-5 程序的循环结构图

a)“当”型循环结构 b)“直到”型循环结构

传统的流程图绘制简单,阅读起来比较直观,但由于使用了流程线,并且对流程线没有严格的要求,因此如果流程线使用得不合理,流程图会变得很杂乱,流程图的可读性会降低。流程图越大,可读性就越差。

3.N-S结构流程图

N-S结构流程图本质上和传统的结构流程图是相同的。但这种结构流程图取消了流程线,全部算法集中在矩形框内。N-S结构流程图功能明确,流程的入口和出口清晰,并且可以嵌套,特别适用于面向结构的程序流程描述。与传统的流程图相比,N-S结构流程图可读性要好一些。与前面传统的结构图(图1-3~图1-5)相对应,以下结构图(图1-6~图1-8)分别是三种不同的N-S结构流程图和示例结构图。

978-7-111-34450-6-Chapter01-6.jpg

图1-6 N-S结构流程图—顺序结构与条件结构

978-7-111-34450-6-Chapter01-7.jpg

图1-7 N-S结构流程图—条件结构与循环结构示例

a)条件结构例子 b)循环结构例子

978-7-111-34450-6-Chapter01-8.jpg

图1-8 N-S结构流程图—循环结构

a)“当”型循环结构 b)“直到”型循环结构

顺序、条件、循环三种算法结构,是程序设计最基本的结构,也是学习程序设计必须掌握的最基本的内容。

有关流程图的具体应用,将以后面相关的程序中体现。

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

我要反馈