1.3 结构化程序设计和模块化结构
1.3.1 结构化程序
结构化程序由三种基本结构组成。
1.顺序结构。在本书第3章中将要介绍的如赋值语句、输入、输出语句都可构成顺序结构。当执行由这些语句构成的程序时,将按这些语句在程序中的先后顺序逐条执行,没有分支,没有转移。顺序结构可用图1.3所示的流程图表示,其中(a)是一般的流程图,(b)是N-S流程图。
2.选择结构。在本书第4章中将要介绍的if语句、switch语句都可构成选择结构。当执行到这些语句时,将根据不同的条件去执行不同分支中的语句。选择结构可用图1.4所示的流程图表示,其中(a)是一般的流程图,(b)是N-S流程图。
3.循环结构。在本书第5章中将介绍不同形式的循环结构。它们将根据各自的条件,使同一组语句重复执行多次或一次也不执行。循环结构的流程图如图1.5和图1.6所示,每个图中(a)是一般的流程图,(b)是N-S流程图。图1.5是当型循环流程图。当型循环的特点是:当指定的条件满足(成立)时,就执行循环体,否则就不执行。图1.6是直到型循环流程图。直到型循环的特点是:执行循环体直到指定的条件满足(成立)时就不再执行循环体。
已经证明,由三种基本结构组成的算法可以解决J任何复杂的问题。由三种基本结构所构成的算法称为结构化算法;由三种基本结构所构成的程序称为结构化程序。
例1.1 先后输人若干个整数,要求打印出其中最大的数,当输入的数小于0时结束。用N-S流程图表示算法。
解题的思路是:先输人一个数,在没有其他数参加比较之前,它显然是当前最大的数,把它放到变量ma:中。让max始终存放当前已比较过的数中的最大值。然后输入第二个数,并与max比较,如果第二个数大于max,则用第二个数取代max中原来的值。如此先后输人和比较,每次比较后都将值大者放在max中,直到输入的数小于0时结束。最后max中的值就是所有输入数中的最大值。
根据此思路,画出N-S流程图(见图1.7)。变量x用来控制循环次数,当x>0时,执行循环体;在循环体内进行两个数的比较和输入x值。从图1.7可见,在循环体的矩形框内包含一个选择结构。
1.3.2 模块化结构
当计算机在处理较复杂的任务时,所编写的程序经常由上万条语句组成,需要由许多人来共同完成。这时常常把这个复杂的任务分解为若干个子任务,每个子任务又分成很多个小子任务,每个小子任务只完成一项简单的功能。在程序设计时,用一个个小模块来实现这些功能,每个程序设计人员分别完成一个或多个小模块。我们称这样的程序设计方法为“模块化”的方法,由一个个功能模块构成的程序结构为模块化结构。
由于把一个大程序分解成若干相对独立的子程序,每个子程序的代码一般不超过一页纸,因此对程序设计人员 [1] ;经过编译后,生成文件的后缀是 [2] ;经过连接后,生成文件的后缀是 [3] 。
1.3 结构化程序由 [1] 、 [2] 、 [3] 三种基本结构组成。
C语言辅导笔记: