首页 百科知识 结构化程序设计

结构化程序设计

时间:2022-10-23 百科知识 版权反馈
【摘要】:为了解决这一问题,意大利的Bobra和Jacopini于1966年提出了结构化程序设计的思想,它是软件发展的一个重要里程碑。从图2.1可以看出结构化程序的三种基本结构可以用框图和流程线表示,但当程序较复杂时,流程线自然会增多,从而导致程序的结构不清晰,不便于阅读。结构化程序设计强调程序结构的规范化,提倡清晰的结构。

2.1.3 结构化程序设计

随着计算机的发展,人们编写的程序越来越复杂。对于一个包含数千万条代码、结构复杂的程序,其程序的可读性往往较低,而程序的质量和可靠性也很难得到保证。为了解决这一问题,意大利的Bobra和Jacopini于1966年提出了结构化程序设计的思想,它是软件发展的一个重要里程碑。结构化程序设计的实质是控制编程的复杂性,其基本思想是像搭积木一样,只要有几种简单的结构即可构成任意复杂的程序。Bobra和Jacopini所提到的简单结构即顺序、选择和循环三种结构,由这三种控制结构组成的程序就是结构化程序。

1.三种基本结构

(1)顺序结构:程序流程沿着一个方向进行,它是最简单的一种结构。如图2.1(a)所示,先执行模块A然后再执行模块B,模块A和模块B分别代表若干条语句。

(2)选择结构:程序的流程发生分支,根据一定的条件选择执行其中某一模块,也可称为分支结构。如图2.1(b)所示,条件成立时执行模块A,否则执行模块B。

(3)循环结构:程序流程是不断重复执行某一模块后退出循环,也可称为重复结构。循环结构可以分为当型(while)循环和直到型(until)循环两种类型。当型循环结构如图2.1(c)所示,它的流程是先判断条件是否成立,若成立,则执行循环体模块A,否则退出循环。直到型循环结构如图2.1(d)所示,它是先执行循环体模块A,然后判断条件是否成立,当条件不成立时继续执行循环体,否则退出循环。

2.结构化流程图(N-S图)

从图2.1可以看出结构化程序的三种基本结构可以用框图和流程线表示,但当程序较复杂时,流程线自然会增多,从而导致程序的结构不清晰,不便于阅读。美国学者I.Nassi和B.Shneiderman于1973年提出了一种新的绘制流程图的方法N-S图,它是以这两位学者名字的首字母命名的。N-S图的重要特点就是完全取消了流程线,这样算法被迫只能从上到下顺序执行,从而避免了算法流程的任意转向,保证了程序的质量。图2.2采用NS图来描述顺序、选择和循环三种基本结构,图2.2的(a)~(d)与图2.1的(a)~(d)的传统流程图相对应。

img39

图2.1 三种控制结构的传统流程图

img40

图2.2 三种控制结构的N-S流程图

与图2.1中传统的流程图相比,图2.2中的N-S流程图既形象直观,画出来后又节省篇幅,大大方便了结构化程序的设计,并能有效地提高算法设计的质量和效率。对初学者来说,使用N-S图还能培养良好的程序设计风格。

3.结构化程序设计方法

结构化程序设计强调程序结构的规范化,提倡清晰的结构。当面临一个复杂的问题时,人们往往不可能一开始就能了解问题的全部细节,更不用说立刻写出一个结构清晰、算法正确的程序。那怎样才能得到一个结构化的程序呢?一般采取以下四种方法:自顶向下、逐步细化、模块化、结构化编码。从这四个方法可以看出,结构化程序设计的基本思想是将一个完整的、较复杂的问题分解成若干相对独立的、较简单的子问题。若这些子问题还较复杂,可再分解它们,然后针对分解后的子问题逐一进行分析、求解和编码。

具体地说,当需要求解一个实际问题即使是划分后的子问题时,怎样才能编写出程序呢?一般可按图2.3所示的步骤进行。

本小节中我们只是介绍描述算法的工具和结构化程序设计的方法,并没有涉及到要求解的具体问题,在后续的小节中我们将针对特定的实例,给出问题的算法描述和编写程序的具体过程。

img41

图2.3 程序设计步骤

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈