结构化设计题型总结

一、考察内容

判断是否是结构化设计,并且设计等价结构化程序。

  1. 是否是结构化的?(为什么是非结构化的?)
  2. 将给出的程序改写成等价的结构化程序
  3. 会使用过程设计工具表达结构化程序
  4. 简化结构化设计

二、注意要点

针对上述几个提问方式记录注意要点:

1.是否是结构化的?(为什么是非结构化的?)

一般所说的结构化即按照狭义的结构程序的定义衡量,符合定义要求的程序。
所以要观察的是以下几个方面:

  1. 仅仅通过顺序、选择和循环三种基本控制结构进行连接
  2. 每个代码块只有一个入口和一个出口

一般情况下,题目给出的程序是非结构化的,问题往往发生于有多个入口或出口

2.将给出的程序改写成等价的结构化程序
  1. 对于多个出口的情况,使用flag,将原来两个出口(或多个)的情况改成一个出口控制flag,一个出口检测flag和原判断条件。
  2. 将原来的判断条件放下一起,变成循环,如果原来q,p两个判断条件,变成q&p的循环成立条件,不成立则输出。(循环是一个新的代码块,在内部)
  3. 使用Ashcroft-Manna方法,将原来的多重判断结构变为switch case,并增加do case do until,以及辅助变量i用于判断
3.会使用过程设计工具表达结构化程序

参考过程设计工具之间的改写

4.简化结构化设计

即尽量将原来合并到一起的路径分开成两条路径。从流程图上看是复杂了,但是实际是简化。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为软件设计师,需要熟悉各种数据结构及其应用,以下是一些常见的数据结构: 1. 数组操作:包括数组的遍历、查找、排序、插入、删除等操作,需要熟练掌握数组的基本概念和使用方法。 2. 栈和队列:栈和队列是两种常见的线性数据结构,需要了解它们的基本概念、实现方式以及在算法中的应用。 3. 链表:链表是一种非线性数据结构,需要掌握链表的基本实现方式、遍历方式、节点的插入和删除等操作,以及链表在算法中的应用。 4. 树:树是一种重要的非线性数据结构,包括二叉树、平衡树、红黑树、B树等,需要了解树的基本概念、遍历方式、节点的插入和删除等操作,以及树在算法中的应用。 5. 图:图是一种复杂的非线性数据结构,包括有向图和无向图,需要了解图的基本概念、遍历方式、最短路径算法、最小生成树算法等,以及图在算法中的应用。 6. 哈希表:哈希表是一种基于哈希函数实现的数据结构,需要了解哈希表的基本概念、实现方式和哈希冲突解决方法,以及哈希表在算法中的应用。 7. 字符串操作:包括字符串的匹配、替换、反转、压缩、加密等操作,需要熟练掌握字符串的基本概念和使用方法。 以上是一些常见的数据结构,掌握它们对于软件设计师的编程能力和算法理解能力都有很大的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值