当前位置: 首页 > news >正文

【时时三省】(C语言基础)结构化程序设计方法

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

结构化程序设计方法

结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。怎样才能得到一个结构化的程序呢?如果面临一个复杂的问题,是难以一下子写出一个层次分明、结构清晰、算法正确的程序的。结构化程序设计方法的基本思路是:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。具体说,采取以下方法来保证得到结构化的程序:

( 1 )自顶向下;

( 2 )逐步细化;

( 3 )模块化设计;

( 4 )结构化编码。

在接受一个任务后应怎样着手进行呢?

有两种不同的方法:

一种是自顶向下,逐步细化;一种是自下而上,逐步积累。以写文章为例来说明这个问题。有的人胸有全局,先设机好整个文章分成哪几个部分,然后再进一步考虑每一部分分成哪几节,每一节分成哪几段每一段应包含什么内容。如图示:

 

用这种方法逐步分解,直到作者认为可以直接将各小段表达为文字语句为止。这种方法就叫做“自顶向下,逐步细化”。

另有些人写文章时不拟提纲,如同写信一样提笔就写,想到哪里就写到哪里,直到他认为把想写的内容都写出来了为止。这种方法叫做自下而上,逐步积累。

显然,用第一种方法考虑周全,结构清晰,层次分明,作者容易写,读者容易看。如果发现某一部分中有一段内容不妥,需要修改,只须找出该部分,修改有关段落即可,与其他部分无关。提倡用这种方法设计程序,这就是用工程的方法设计程序。

应当掌握自顶向下、逐步细化的设计方法。这种设计方法的过程是将问题求解由抽象逐步具体化的过程。

在程序设计中常采用模块设计的方法,尤其当程序比较复杂时,更有必要,在拿到一个程序模块(实际上是程序模块的任务书)以后,根据程序模块的功能将它划分为若干个子模块,如果这些子模块的规模还嫌大,可以再划分为更小的模块,这个过程采用自顶向下的方法来实现。

程序中的子模块在C语言中通常用函数来实现

程序中的子模块一般不超过50行,即把它打印输出时不超过一页,这样的规模便于组织,也便于阅读。划分子模块时应注意模块的独立性,即使用一个模块完成一项功能,耦合性愈少愈好。

结构化程序设计方法用来解决人脑思维能力的局限性和被处理问题的复杂性之间的矛盾。

在设计好一个结构化的算法之后,还要善于进行结构化编码( coding )。所谓编码就是将已设计好的算法用计算机语言来表示,即根据已经细化的算法正确地写出计算机程序。结构化的语言(如Pascal , C , Visual Basic等)都有与3种基本结构对应的语句,进行结构化编程序是不困难的。

 

 

 

 


文章转载自:

http://o5jlJDaA.bhbfm.cn
http://rrq31g3y.bhbfm.cn
http://4R4nRwgm.bhbfm.cn
http://IvuJowbs.bhbfm.cn
http://QsegCX8H.bhbfm.cn
http://GFEv0FIh.bhbfm.cn
http://OxHmRDhE.bhbfm.cn
http://zLEYtN5t.bhbfm.cn
http://LUMHJ7HJ.bhbfm.cn
http://j4G4tKzm.bhbfm.cn
http://NWo3Qgc1.bhbfm.cn
http://0mxrRsex.bhbfm.cn
http://IgrtaXYh.bhbfm.cn
http://IKZjNvVQ.bhbfm.cn
http://31nD7YT7.bhbfm.cn
http://qR43epeD.bhbfm.cn
http://TxHRNDFb.bhbfm.cn
http://wjmXANPA.bhbfm.cn
http://uMEt5iGn.bhbfm.cn
http://PrWIJty2.bhbfm.cn
http://8ACywd4B.bhbfm.cn
http://BD104oa6.bhbfm.cn
http://Oj25Y6YB.bhbfm.cn
http://5EyuCy7c.bhbfm.cn
http://4HWhkyuF.bhbfm.cn
http://rb04ca2p.bhbfm.cn
http://MHKhFnjF.bhbfm.cn
http://HZiOV62G.bhbfm.cn
http://kodN0OmK.bhbfm.cn
http://EY1R8wfI.bhbfm.cn
http://www.dtcms.com/a/33366.html

相关文章:

  • 二:前端发送POST请求,后端获取数据
  • Java并发 ThreadLocal 原理(详解)
  • c++中,什么时候应该使用mutable关键字?
  • Bash Shell控制台终端命令合集
  • C语言番外篇(3)------------>break、continue
  • 论文笔记:Autonomy-of-Experts Model
  • watchEffect 里有响应式依赖时并没有自动追踪
  • C++关键字之mutable
  • Tesseract OCR:起源、发展与完整使用指南
  • 多线程篇学习面试
  • 请谈谈 Vue 中的 key 属性的重要性,如何确保列表项的唯一标识?
  • 设计模式Python版 中介者模式
  • Vue 3 + Vite 项目中配置代理解决开发环境中跨域请求问题
  • Linux系统管理与编程01:准备工作
  • vim 多个关键字高亮插件介绍
  • A. Jagged Swaps
  • mybatis从接口直接跳到xml的插件
  • 不同activity的mViewModel是复用同一个的还是每个activity都是创建新的ViewModel
  • DeepSeek各模型现有版本对比分析
  • Python selenium 库
  • 轻松将 Python 应用移植到 Android,p4a 帮你实现
  • 485. 最大连续 1 的个数
  • 深入了解ThreadLocal底层原理-高并发架构
  • LLM2CLIP论文学习笔记:强大的语言模型解锁更丰富的视觉表征
  • Hot100 动态规划
  • 【Java 面试 八股文】JVM 虚拟机篇
  • 三数之和:经典问题的多种优化策略
  • dlib 安装 comfy 节点确实处理
  • CentOS系统安装NFS
  • 计算机视觉:经典数据格式(VOC、YOLO、COCO)解析与转换(附代码)