
博学谷——让 IT 教学更简单,让 IT 学习更有效
1
第3章 结构化程序设计
学习目标
理解算法的概念
能够使用流程图画出顺序、选择、循环三种语句的执行流程
要求熟练使用 if、switch 语句判断各种选择情况以及嵌套使用
熟练运用 while、do-while、for 三种循环结构的思想解决实际问题
熟练应用 break、continue、goto 语句与循环语句的搭配使用
前面的章节一直在介绍 C 语言的基本语法知识,然而仅仅依靠这些语法知识还不能编写出完整
的程序。在程序中,通常需要加入业务逻辑,并根据业务逻辑关系对程序的流程进行控制。本章将
针对程序设计的灵魂——算法以及 C 语言中最基本的三种程序流程进行讲解。
3.1 算法——程序设计的灵魂
3.1.1 算法的概念
假如有一张对称的桌子和无限多大小相同的硬币,有两个人轮流往桌子上放硬币,规定硬币不
可以重叠,但可以边贴边放置。最后谁放不下谁就输了。假设让你第一个放置,你如何做才能保证
自己肯定赢呢?明确了“做什么”,接下来就是寻求解决办法。首先自己赢的话需要在自己没地方
放硬币之前,对方就应该没有地方放硬币了,从这分析可以想到,我们的行为和对方的行为应该有
一定的联系性。于是可以得到一个解决办法,首先在桌子中央,放置硬币,接下来等对方放置硬币
后,只需要在他的对称位置放就可以了,只要他可以放,那么对称位置一定还有空间,直至他没地
方放了,我们就赢了。
这是生活中一个运用智慧解决问题的例子,学习编程也是为了解决问题的。那么程序是什么?
程序是为完成一项特定任务而用某种语言编写的一组指令序列。一个程序应当包含以下两方面的内
容:
(1)对数据的描述:在程序中指定用到哪些数据以及这些数据的类型和数据的组织形式,这就
是数据结构(data structure)。
(2)对数据操作的描述:即操作步骤,也就是算法(algorithm)。
著名计算机科学家沃思(Nikiklaus Wirth)提出了一个程序公式:
程序 = 数据结构 + 算法
其中算法是一个程序的灵魂,直到今天,这个公式对于过程化程序来说依然是适用的。
算法有三种种较为常用的表示方法:伪代码法、N-S 结构化流程图和流程图法。在以后的学习
中,本书较多地用到了流程图这种描述方法。