第六章详细设计 6.1结构化程序设计 62详细设计工具 63面向数据结构的设计方法 退出
6.1 结构化程序设计 6.2 详细设计工具 6.3 面向数据结构的设计方法 退出 第六章 详细设计
6.1结构化程序设计 A p (a)顺序结构 (b)选择结构 exp 或 exp F (c)循环结构 三种基本的控制结构
6.1 结构化程序设计 A B (a) 顺序结构 (b) 选择结构 B exp A F T A exp T F exp A F T (c) 循环结构 或 三种基本的控制结构
结构化程序设计技术是一种设计程序的技术 它采用自顶向下逐步求精的设计方法和单入口单出 口的控制结构,并且只包含顺序、选择和循环三种 控制结构。 逐步求精方法是由 Wirth提出的一种早期的自顶 向下的设计策略。面对现实的复杂问题,我们首先 不要一下子就力图触及到问题解法的细节,而应当 先从问题的全局出发,用较自然的抽象语句来表示 问题,从而得到抽象算法。这时的算法主要是描述 “做什么”,或者说是把问题描述为几个子问题或 子功能。接下来对子问题,也就是对抽象算法进行 细化,在这一阶段设计的算法中,已经开始含有程 序设计语言的成分。随着算法的不断细化,越来越 多地开始完成“如何做”,算法中程序设计语言的 成分也越来越多,当最后把算法全部细化为程序设 计语言描述时,程序设计也就随之完成了
逐步求精方法是由Wirth提出的一种早期的自顶 向下的设计策略。面对现实的复杂问题,我们首先 不要一下子就力图触及到问题解法的细节,而应当 先从问题的全局出发,用较自然的抽象语句来表示 问题,从而得到抽象算法。这时的算法主要是描述 “做什么” ,或者说是把问题描述为几个子问题或 子功能。接下来对子问题,也就是对抽象算法进行 细化,在这一阶段设计的算法中,已经开始含有程 序设计语言的成分。随着算法的不断细化,越来越 多地开始完成“如何做” ,算法中程序设计语言的 成分也越来越多,当最后把算法全部细化为程序设 计语言描述时,程序设计也就随之完成了。 结构化程序设计技术是一种设计程序的技术, 它采用自顶向下逐步求精的设计方法和单入口单出 口的控制结构,并且只包含顺序、选择和循环三种 控制结构
DO A CASE I exp CASE CASE 32 CASE n T (a) DO UNTIL型循环结构 (b) DO CASE型多分支结构 其他常用的控制结构
DO CASE I (a) DO_UNTIL 型循环结构 exp A F T CASE 1 CASE 2 … CASE n (b) DO_CASE 型多分支结构 其他常用的控制结构
6.2详细设计工具 62.1程序流程图 622盒图 623PAD图 624过程设计语言 62.5判定表 626判定树 退出
6.2 详细设计工具 6.2.1 程序流程图 6.2.2 盒图 退出 6.2.3 PAD图 6.2.4 过程设计语言 6.2.5 判定表 6.2.6 判定树
621程序流程图 起止端点 数据 处理 准备或预处理预先定义的处理 <(、[ 条件判断 循环上界限 循环下界限 文档 流线 虚线 省略符 并行方式 注释 程序流程图中常用的符号
6.2.1 程序流程图 程序流程图中常用的符号 起止端点 数据 处理 准备或预处理 预先定义的处理 条件判断 循环上界限 循环下界限 文档 流线 虚线 省略符 并行方式 注释
程序流程图虽然比较直观,灵活,并且比较容易 掌握,但是它的随意性和灵活性却使它不可避免地存 在着一些缺点: (1)由于程序流程图的特点,它本身并不是逐步 求精的好工具。因为它使程序员容易过早地考虑程序 的具体控制流程,而忽略了程序的全局结构; 2)程序流程图中用箭头代表控制流,这样使得 程序员不受任何约東,可以完全不顾结构程序设计的 精神,随意转移控制; (3)程序流程图在表示数据结构方面存在不足
程序流程图虽然比较直观,灵活,并且比较容易 掌握,但是它的随意性和灵活性却使它不可避免地存 在着一些缺点: (1)由于程序流程图的特点,它本身并不是逐步 求精的好工具。因为它使程序员容易过早地考虑程序 的具体控制流程,而忽略了程序的全局结构; (2)程序流程图中用箭头代表控制流,这样使得 程序员不受任何约束,可以完全不顾结构程序设计的 精神,随意转移控制; (3)程序流程图在表示数据结构方面存在不足
622盒图(NS图) 第一个任务 条件 Case条件 第二个任务 ELSE THEN 值1值2 值n 第三个任务 部分部分 Casel Case2 Casen 部分部分 部分 (a)顺序结构 (b)选择结构 (c)多分支结构 循环条件 DO UNTIL 部分 A DO WHILE 部分 循环条件 (d)循环结构 (e)调用子程序A N-S图的基本符号
值 1 Case1 部分 第一个任务 Case条件 第二个任务 第三个任务 (a) 顺序结构 F 条件 T ELSE 部分 THEN 部分 (b) 选择结构 (c) 多分支结构 循环条件 DO_WHILE 部分 循环条件 DO_UNTIL 部分 (d) 循环结构 A (e) 调用子程序 A 值 2 Case2 部分 … 值 n Casen 部分 6.2.2 盒图(N-S图) N-S图的基本符号
N-S图有以下一些特点: (1)功能域(即某一个特定控制结构的作用域) 有明确的规定,并且可以很直观地从N-S图上看出来; (2)它的控制转移不能任意规定,必须遵守结构 化程序设计的要求; (3)很容易确定局部数据和全局数据的作用域; (4)很容易表现嵌套关系,也可以表示模块的层 次结构
N-S图有以下一些特点: (1)功能域(即某一个特定控制结构的作用域) 有明确的规定,并且可以很直观地从N-S图上看出来; (2)它的控制转移不能任意规定,必须遵守结构 化程序设计的要求; (3)很容易确定局部数据和全局数据的作用域; (4)很容易表现嵌套关系,也可以表示模块的层 次结构
62.3PAD图 B B (a)顺序结构 (b)选择结构 WHILE P UNTILPH s (c)WHLE型循环结构 (d) UNTIL型循环结构 Al P2 ()语句标号 Pn An (g)定义 (e)多分支结构 PAD图的基本符号
A B (a) 顺序结构 A B P (b) 选择结构 WHILE P S (c) WHILE 型循环结构 UNTIL P S (d) UNTIL 型循环结构 A1 A2 P = An … P 1 P 2 Pn (e) 多分支结构 (f) 语句标号 (g) 定义 6.2.3 PAD图 PAD图的基本符号