结构化算法是由一些基本结构顺序组成的.在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本的结构范围内.一个非结构化的算法可以用一个等价的结构化算法代替,其功能不变.
跟结构化算法比较起来,非结构化算法有以下缺点.
流程不受限制的随意转来转去,使流程图豪无规律.使人在阅读的时候难以理解算法的逻辑.难以阅读,也难以修改.从而使算法的可靠性和可维护性难以保证.
1.
结构化的算法:由三种基本结构构成的算法结构是结构化的算法。
2.
因为结构化的算法不存在无规律的转向,只在本基本结构内才允许存在分支和向前或向后的跳转。不会出现死循环,使算法的质量得到保证和提高,所以,要提倡结构化的算法。
结构化程序设计方法的主要原则可以概括为:
1、自顶向下:程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。
2、逐步求精:对复杂问题,应设计一些子目标作为过渡,逐步细化。
3、模块化:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。
4、限制使用goto语句:结构化程序设计方法的起源来自对GOTO语句的认识和争论。肯定的结论是,在块和进程的非正常出口处往往需要用GOTO语句,使用GOTO语句会使程序执行效率较高;在合成程序目标时,GOTO语句往往是有用的,如返回语句用GOTO。否定的结论是,GOTO语句是有害的,是造成程序混乱的祸根,程序的质量与GOTO语句的数量呈反比,应该在所有高级程序设计语言中取消GOTO语句。取消GOTO语句后,程序易于理解、易于排错、容易维护,容易进行正确性证明。作为争论的结论,1974年Knuth发表了令人信服的总结,并证实了:GOTO语句确实有害,应当尽量避免。完全避免使用GOTO语句也并非是个明智的方法,有些地方使用GOTO语句,会使程序流程更清楚、效率更高。争论的焦点不应该放在是否取消GOTO语句上,而应该放在用什么样的程序结构上。其中最关键的是,应在以提高程序清晰性为目标的结构化方法中限制使用GOTO语句。
跟结构化算法比较起来.难以阅读,也难以修改.从而使算法的可靠性和可维护性难以保证,非结构化算法有以下缺点.
流程不受限制的随意转来转去,使流程图豪无规律.使人在阅读的时候难以理解算法的逻辑结构化算法是由一些基本结构顺序组成的.在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本的结构范围内.一个非结构化的算法可以用一个等价的结构化算法代替,其功能不变
结构化,方便理解,阅读,维护