非结构化的程序流程图是什么

非结构化的程序流程图是什么,第1张

结构化程序流程图的几种基本形式,并用给出的程序等价变换的规则及方法分别将其转换成等价的结构化程序流程图。图示的程序的循环控制结构有两个出口,显然不符合结构化程序的定义,因此是非结构化的程序。

1.结构化程序:

结构化程序设计由迪克斯特拉(E.W.dijkstra)在1969年提出,是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变单纯而明确,为设计一些较大的软件打下了良好的基础。

由于模块相互独立,因此在设计其中一个模块时,不会受到其它模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为我们可以充分利用现有的模块作积木式的扩展。

按照结构化程序设计的观点,任何算法功能都可以通过由程序模块组成的三种基本程序结构的组合: 顺序结构、选择结构和循环结构来实现。

结构化程序设计的基本思想是采用"自顶向下,逐步求精"的程序设计方法和"单入口单出口"的控制结构。自顶向下、逐步求精的程序设计方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图;"单入口单出口"的思想认为一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一定是一个单入口单出口的程序。据此就很容易编写出结构良好、易于调试的程序来。

结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用goto语句,总的来说可使程序结构良好、易读、易理解、易维护。

2.非结构化程序:

而非结构化程序设计是历史上最早的能够创造图灵完备算法的程序设计模式。 在它之后,历史上又出现了结构化(过程化)程序设计、面向对象程序设计。

非结构化程序设计被批评最严重的方面就是会产生很难读懂的代码(戏称“意大利面条”),在创建大型工程方面有时会被认为是很差的,不过,因为赋予程序设计者很大的自由,被人称赞为如同莫扎特在谱曲。

非结构化程序设计语言既有高级语言,也有低级语言。 其中包括早期版本的BASIC(比如MSX BASIC和GW-BASIC),JOSS、FOCAL、MUMPS、TELCOMP、COBOL、机器语言、早期的汇编系统(不包括过程化的metaoperators)、汇编调试器和一些脚本语言(比如MS-DOS batch文件语言)。

1、结构化程序设计

在结构化程序设计中,任何程序段的编写都基于3种结构:分支结构、循环结构和顺序结构。程序具有明显的模块化特征,每个程序模块具有惟一的出口和入口语句。结构化程序的结构简单清晰,模块化强,描述方式贴近人们习惯的推理式思维方式,因此可读性强。

2、面向对象程序设计

面向对象程序设计方法是尽可能模拟人类的思维方式,使得软件的开发方法与过程尽可能接近人类认识世界、解决现实问题的方法和过程,也即使得描述问题的问题空间与问题的解决方案空间在结构上尽可能一致,把客观世界中的实体抽象为问题域中的对象。

程序设计的分类

1、按照结构性质,有结构化程序设计与非结构化程序设计之分。前者是指具有结构性的程序设计方法与过程。它具有由基本结构构成复杂结构的层次性,后者反之。

2、按照用户的要求,有过程式程序设计与非过程式程序设计之分。前者是指使用过程式程序设计语言的程序设计,后者指非过程式程序设计语言的程序设计。

3、按照程序设计的成分性质,有顺序程序设计、并发程序设计、并行程序设计、分布式程序设计之分。按照程序设计风格,有逻辑式程序设计、函数式程序设计、对象式程序设计之分。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11375091.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存