发布时间:2023-05-18 11:00
当算法中包含多重嵌套的条件选择时,使用判定表能够清楚地表达。
判定表 | 组成 |
---|---|
左上部分 | 所有条件 |
左下部分 | 所有可能做的动作 |
右上部分 | 各种条件组合,每一列表示一种可能组合 |
右下部分 | 每一列对应每一种条件组合的动作 |
当算法中包含多重嵌套的条件选择时,用程序流程图、盒图、PAD图等不易清楚描述,判定表可以清晰地表示复杂的条件组合与应作的动作之间的对应关系。
判定表由四部分组成:
左上部列出所有条件
左下部是所有可能做的动作
右上部表示各种条件组合
右下部是和每种条件组合相对应的动作
缺点:(1)不能同时清晰地表示顺序和重复等处理特性
(2)初次接触这种工具的人需简短的学习过程
(3)数据元素的值多于两个时,判定表的简洁程度也将下降。
对于这个不理解没有关系,直接看题目就能够掌握了。eg:假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定表进行表达。
我们先将所有情况进行列出,就是面对行李是否<30kg,是否为国内乘客,是否为头等舱,是否是残疾乘客我们托运行李的价格不一样
T代表满足情况,F代表不满足,X代表我们应该付的价格(我个人建议你根据这个模板自己写其实更简单,顺序不同没有关系,其实就是排列组合所有情况)
2.程序流程图是什么?下面这个图就是程序流程图,程序流程图与普通流程图的基本图形相似,通常由起止框、处理框、流程线、判断框、输出输入框构成。
起止框:表示程序流程的开始与结束,通常只有一个开始框和一个结束框。
处理框:表示程序流程中需要执行或处理的内容。
流程线:表示程序执行的方向与顺序。
判断框:表示对程序流程中的某一条件进行判断,用来决定执行某一操作。
输出输入框:表示程序流程中资料的输入或结果的输出,一般用做数据处理。
程序流程图是流程图的其中一种分类,又称程序框图,指用特定图形符号加上对应的文字描述表示程序中所需要的各项操作或判断的图示,程序流程图除了说明程序的流程顺序外,着重于说明程序的逻辑性。
程序流程图(程序框图)
程序流程图:是一种描述程序的控制结构流程和指令执行情况的有向图。
历史悠久、使用广泛、直观描绘控制流程、便于初学者掌握。
程序流程图的缺点:
1)程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。
2)程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。
3)程序流程图不易表示数据结构。
盒图(N-S图):盒图没有箭头,不允许随意转移,只允许程序员用结构化设计方法来思考问题。
N-S图特点:
(1)功能域明确,可从盒图一眼看出。
(2)不可能任意转移控制。
(3)很容易确定局部和全程数据的作用域。
(4)很容易表现嵌套关系,也可以表示模块的层次结构。
PAD图
PAD(Problem Analysis Diagram)是问题分析图。
日立公司发明和推广(1973)。
PAD图表示方法:
用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。
PAD图的优点:
1)使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序;
2)PAD图所描绘的程序结构十分清晰。
图中最左面的竖线是程序的主线,即第一层结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数;
3)用PAD图表现程序,通俗易懂,程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点;
4)容易将PAD图转换成高级语言源程序,这种转换可以用软件工具自动完成;
5)可用于表示程序逻辑,也可用于描绘数据结构;
6)PAD图的符号支持自顶向下、逐步求精的方法。
判定树
判定树是判定表的变种。
优点:形式简单,无需任何说明,可直接看出其含义,易于掌握和使用。