|
|
51CTO旗下网站
|
|
移动端

2.2.3 三角形问题的经典实现

《软件测试:一个软件工艺师的方法(原书第4版)》第2章程序示例,本章给出了3个单元层次程序实例的伪代码。本节为大家介绍三角形问题的经典实现。

作者:马琳/李海峰 译来源:机械工业出版社|2017-11-15 17:18

【51CTO技术沙龙】10月27日,让我们共同探索AI场景化应用实现之道

2.2.3 三角形问题的经典实现

作为本书程序示例的第一个,这个三角形程序的“经典”实现很类似于FORTRAN语言。图2-1给出了这种实现的流程图。图2-2给出了升级版的流程图。流程图中各处理框的编号对应于接下来给出的程序伪代码中注释号(类似FORTRAN)。(此处的编号同Pressman(1982)所采用的一致。)这种实现形式展示了它的历史传承,在2-2-4节中还会给出一种更好的实现。

这里采用变量match来记录每对边相等的情况。FORTRAN风格典型的复杂性被变量match表现出来了:可以看出,三个关于三角不等式测试一个都没用到。如果有两条边相等,如a和c,那么只需要测试a+c与b关系即可。(因为b一定大于0,a+b一定大于c,因为c与a相等。)显然这种方法可以有效减少所需的比较次数。这种实现方法效率高,但也损失了程序的易懂性,测试的难度也加大了。在后面研究程序执行的不可行路径时,我们会发现这还是非常有用。这是本书保留它的最大原因。在此,有6条路径可以到达“非三角形”框(12-1至12-6),有3条达到“等腰三角形”框(15-1至15-3)。

下面给出伪代码。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Cisco网络技术教程(第2版)

本书作为思科认证体系中的入门级教材,主要讲述了网络的基本知识和思科设备的基本命令,以及路由、交换等深层次网络知识的入门知识,其体系...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊