结构化程序设计注重程序的可理解性和可修改性,强调从程序结构和风格上来研究程序设计,它将问题分解为若干个过程,每一个过程称为模块。模块化实际上是把一个复杂的大程序的编写分解为若干个既相互联系、又相对独立的小程序的编写,使得程序易于编写、理解和修改。好的程序设计方法需要有相应的程序设计语言支持,Pascal是第一个结构化设计语言,后来又出现了至今仍然非常流行的C语言。
1.程序设计的三种基本结构
从程序流程的角度来看,程序由三种基本结构组成,分别是顺序结构、选择结构和循环结构。由这三种基本结构可以组合出任意复杂的程序。换句话说,任何一个结构程序都可以由这三种基本控制结构来表示。
(1)顺序结构
顺序结构是最基本、最常用的结构。顺序结构就是按照程序语句的书写顺序一条一条地执行,并且每个语句都会被执行到。如图3-1所示,这是一个顺序结构,程序会先执行语句A,然后执行语句B。
图3-1 顺序结构
(2)选择结构
选择结构表示程序的处理需要根据某个特定的逻辑条件的成立与否,选择其中的一个分支执行,每个分支完成不同的功能。如图3-2所示,程序开始会判断条件是真是假,如果条件为真,则执行语句A,如果条件为假,则执行语句B。
图3-2 选择结构
(3)循环结构
用计算机解决实际问题时,常常需要处理重复的内容,循环结构又称为重复结构。根据给定的条件,判断是否需要重复执行相同的程序段,利用循环结构可以简化大量的代码,如图3-3所示。
程序进入图3-3的循环结构后,开始会判断条件是真是假,如果是真,则执行语句A,执行完语句A会继续条件判断,如果是真,则继续进入语句A执行,如此循环往复直到条件为假,则退出循环。
图3-3 循环结构
2.C语言
C语言之所以命名为C,是因为C语言源自Ken Thompson发明的B语言。1970年贝尔实验室使用B语言编写了第一个高级语言版的UNIX操作系统。但是由于B语言功能有限,在1972年,贝尔实验室在B语言的基础上设计出了C语言,并且以C语言为基础编写了UNIX。最初,C语言是为了编写UNIX操作系统而进行研发的,但是由于C语言强大的功能和众多的优点以及UNIX的日益广泛使用,使得C语言迅速推广,广泛应用于大、中、小和微型计算机上。
C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等平台上进行编译。
(1)语句
C语言的语句(Statement)是对自然语言语句的模拟,为了让计算机完成一些任务,必须用语句详细描述完成任务需要的一系列步骤,每一步的工作都由语句来体现。C语言中语句有很多,下面只挑其中一部分作介绍。
1)if-else语句
if语句能够实现选择结构。
下面是一个C语言if-else语句的简单例子:
上面例子中,程序先判断C变量是否大于5,如果(if)C大于5则将2赋值给变量A,如果C不大于5(else),则将2赋值给变量B。
2)while语句(www.daowen.com)
while语句能够实现循环结构。有关循环结构的介绍,同学们可以回顾前面的图3.3。
下面是一个C语言while语句的简单例子:
int A=1;
int C=7;
while(C>5)
C=C-1;
A=2;
while的中文意思是“当”,上面例子中,首先定义两个变量A和C,并分别赋值为1和7,然后程序进入while循环语句判断C是否大于5,当C>5时就执行后面的C=C-1语句,直到C不大于5为止,C不大于5时程序跳出while循环并执行后面的语句A=2。
为了帮助同学们理解,我们来详细分析一下上面例子的执行流程。首先定义两个变量A和C并分别赋值为1和7,然后程序进入while循环判断C是否大于5,此时C=7大于5于是执行C=C-1,执行C=C-1之后C的值为6,继续判断C是否大于5,此时C=6大于5于是执行C=C-1,执行C=C-1之后C的值为5,继续判断C是否大于5,此时C=5不大于5,因此程序退出while循环,执行while循环后面的语句,A=2。
3)复合语句
复合语句指由大括号“{ }”括起来的一组语句。如果要在只执行一条语句的地方执行多条语句,那么可以将多条语句用一对大括号“{ }”括起来构成一条复合语句。
例如上面的while循环中,我们不仅想在每次判断C是否大于5之后执行C=C-1,还想执行A=A+1,那么可以把while循环改成下面这样:
C程序书写时,每个语句必须以分号“;”结束,对于复合语句,用大括号括起来即可,不用也不能在大括号后面添加分号。
(2)函数
数学中的函数是一种符号表达,它描述的是一种现象的计算过程,比如“sin”函数,而高级语言中的函数表示一段程序语句的执行。通过函数,我们可以将很多条语句组合起来用一个名字来表示。C语言程序由函数构成,C程序可以包含多个函数,但最少也要包含一个函数,这个函数就是main函数(又称主函数),C程序的执行是从main函数开始的。下面是一个main函数的简单示例:
上面,大括号“{ }”中的内容称为函数体,里面包含我们用C语言书写的一系列语句,上述程序从“int A=1”语句开始执行,到“A=2”语句程序执行完毕并退出。
一个函数可以调用另一个函数,像下面这样:
图3-4 函数调用
上面程序中main函数调用一个名为study的函数,当main函数调用study函数时,程序会停止执行main函数中的其他语句,转而去执行study函数中的语句,等study函数中的语句执行完后才会回到main函数继续执行其他语句。程序执行流程如图3-4所示。
将所有代码全都放到主函数中通常不是个好的编程习惯,通过将一些复杂的代码放到函数中,可以实现功能的模块化。利用函数编写程序,既可以提高程序的清晰度,还有利于代码的重用。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。