《程序设计基础》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:吴文虎,徐明星,邬晓钧著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2017
  • ISBN:9787302454014
  • 页数:284 页
图书介绍:程序设计基础的授课对象是计算机专业的大一新生。以培养程序设计能力为目标,内容包含程序设计的基本概念、基本解题方法、基本算法等。教材将注重引导学生进行理性思维和理性实践,以全新的问题驱动教学方式,把强化上机实践作为改革突破口,着重培养学生计算思维能力和程序设计能力,全面提高学生的理论联系实际、分析问题和解决问题的能力。

第1章 绪论 1

第2章 编程准备 4

2.1 程序编写 4

2.1.1 用Visual C++ 6.0编写程序 4

2.1.2 使用Dev-C++开发程序 8

2.2 程序代码及说明 14

2.3 输出流对象cout 15

2.4 程序注释 16

2.5 算术运算符 16

2.6 数学函数 17

2.7 小结 17

习题 17

第3章 代数思维与计算机解题 19

3.1 程序的基本结构 19

3.2 变量与数据类型 21

3.2.1 变量的基本概念 21

3.2.2 数据类型与变量的地址空间 22

3.3 定义变量和赋初值 22

3.4 变量赋值 23

3.4.1 赋值符号与赋值表达式 23

3.4.2 变量赋值的5要素 24

3.5 指针变量 25

3.5.1 指针定义与初始化 25

3.5.2 指针赋值 26

3.5.3 在赋值语句中使用间接访问运算符 26

3.6 小结 27

习题 28

第4章 逻辑思维与计算机解题 29

4.1 关系运算和关系表达式 30

4.1.1 关系运算符 30

4.1.2 关系表达式的一般格式 30

4.1.3 将“是”“否”写成关系表达式 30

4.2 枚举法的思路 31

4.3 循环结构 33

4.3.1 使用循环结构的部分程序 33

4.3.2 for语句的格式和执行过程 33

4.3.3 使用for循环解题实例 34

4.3.4 for循环的程序框图 36

4.4 分支结构 36

4.4.1 if语句的格式 37

4.4.2 分支结构的实例 38

4.5 任务4.1 的程序框图 39

4.6 任务4.1 的参考程序 40

4.7 逻辑问题及其解法 41

4.7.1 逻辑运算符与逻辑表达式 42

4.7.2 逻辑问题的解题思路 43

4.7.3 任务4.2 的参考程序 47

4.8 小结 48

课后阅读材料 48

习题 53

第5章 函数思维与模块化设计 55

5.1 函数 55

5.1.1 函数的说明 56

5.1.2 函数的定义 56

5.1.3 函数的返回值 56

5.1.4 函数的调用 57

5.1.5 形式参数和实在参数 57

5.1.6 调用和返回 58

5.1.7 带自定义函数的程序设计 58

5.2 编程实例1 60

5.3 编程实例2 61

5.4 几种参数传递方式的比较 63

5.5 小结 66

习题 66

第6章 数据的组织与处理(1)——数组 69

6.1 数组 69

6.1.1 一维数组的定义 71

6.1.2 数组初始化 71

6.1.3 字符数组的定义、初始化和赋值 72

6.1.4 数组与指针 75

6.2 筛法 77

6.3 线性查找与折半查找 78

6.4 冒泡排序法 80

6.5 递推 82

6.5.1 递推数列的定义 82

6.5.2 递推算法的程序实现 83

6.6 字符数组应用 86

6.7 函数跳转表 91

6.8 二维数组 93

6.8.1 二维数组的定义 94

6.8.2 二维数组的初始化 95

6.8.3 二维数组中的元素存放顺序 95

6.9 小结 97

课后阅读材料 98

习题 102

第7章 数据的组织与处理(2)——结构 105

7.1 结构与结构数组 105

7.1.1 结构体类型的定义 105

7.1.2 结构体变量的定义和引用 106

7.1.3 结构体变量的初始化 107

7.1.4 结构数组 108

7.2 指针和结构 110

7.3 链表 111

7.3.1 建立链表的过程 112

7.3.2 链表结点的插入与删除 116

7.3.3 循环链表 124

7.4 小结 128

习题 128

第8章 数据的组织与处理(3)——文件 130

8.1 将数据保存到文件 130

8.2 从文件中读取数据 132

8.3 利用输入输出文件解交互类型的题 135

8.4 小结 145

习题 145

第9章 递归思想与相应算法 146

9.1 递归及其实现 146

9.2 递归算法举例 153

9.2.1 计算组合数 153

9.2.2 快速排序 154

9.2.3 数字旋转方阵 158

9.2.4 下楼问题 162

9.2.5 跳马问题 164

9.2.6 分书问题 166

9.2.7 八皇后问题 169

9.2.8 青蛙过河 172

9.3 小结 177

课外阅读材料 177

习题 181

第10章 多步决策问题 182

10.1 多步决策问题的解题思路 182

10.1.1 人鬼渡河的任务与规则要点 182

10.1.2 人鬼渡河的安全性考虑 183

10.1.3 安全状态的描述 183

10.2 安全条件形式化 184

10.3 从状态图上研究怎样一步一步过河 186

10.4 多步决策问题的编程思路 186

10.5 小结 189

习题 189

第11章 宽度优先搜索 191

11.1 骑士聚会问题 191

11.2 解题思路 196

11.3 小结 202

习题 203

第12章 深度优先搜索 204

12.1 问题描述 204

12.2 解题思路 205

12.3 深度优先搜索与剪枝 211

12.4 小结 216

习题 216

第13章 贪心法 217

13.1 贪心法解题的一般步骤 217

13.1.1 装船问题 217

13.1.2 事件序列问题 220

13.1.3 贪心法解题的一般步骤 222

13.2 贪心法相关理论 223

13.2.1 多阶段决策问题、无后向性与最优化原理 223

13.2.2 有向图最短路径的Dijkstra算法 223

13.2.3 贪心法解题的注意事项 227

13.3 小结 228

习题 228

第14章 动态规划 230

14.1 最短路径问题 230

14.1.1 问题描述 230

14.1.2 分析与题解 231

14.2 动态规划的基本概念 234

14.3 动态规划思想 235

14.4 举例说明动态规划思路 237

14.5 小结 244

习题 244

第15章 蒙特卡罗法 246

15.1 伪随机数的产生 246

15.1.1 产生随机整数 246

15.1.2 产生随机小数 247

15.2 伪随机数的应用 248

15.2.1 求π的近似值 248

15.2.2 计算图形面积 249

15.3 小结 250

习题 250

附录A 程序调试 251

A.1 计分程序的调试 251

A.1.1 编译时的调试 252

A.1.2 运行时的调试 254

A.1.3 其他调试相关知识 259

A.2 跳马程序的调试 260

附录B 库函数 267

B.1 数学函数 267

B.2 字符判断函数 268

B.3 字符串相关函数 271

附录C ASCII码表 277

附录D 输入输出的格式控制 278

D.1 流的概念与输入输出格式 278

D.2 改变整数的进制 278

D.3 设置浮点数的精度 279

D.4 设置输入输出宽度 280

D.5 设置对齐方式和填充字符 281

D.6 其他设置 282

参考文献 284