第一章 计算机与程序 1
1.1 计算机系统 2
1.2 程序和程序语言 7
1.3 程序设计原理 10
1.4 程序语言的语法描述 11
习题与思考 13
第二章 程序初探 14
2.1 简单程序 14
2.2 标识符 19
2.3 预定义数据类型 21
2.4 程序结构 26
2.5 输入和输出 31
2.6 赋值语句 37
2.7 常识与技术:Pascal程序格式 39
习题与思考 41
第三章 程序中的计算 45
3.1 表达式 45
3.2 预定义函数 53
3.3 常识与技术:批处理和交互处理程序 59
习题与思考 60
第四章 简单类型 63
4.1 数据类型 63
4.2 枚举类型 65
4.3 子域类型 68
4.4 类型定义 70
4.5 类型间的关系 72
习题与思考 74
第五章 选择 77
5.1 IF语句 77
5.2 CASE语句 82
5.3 空语句 84
5.4 常识与技术:实现对CASE语句的改动 86
习题与思考 87
第六章 重复 91
6.1 FOR语句 91
6.2 WHILE语句 95
6.3 REPEAT语句 98
6.4 正确设计循环 102
6.5 语句的嵌套 107
6.6 常识与技术:伪码、输入检查和终止标志 109
习题与思考 114
第七章 过程 118
7.1 子程序概念 118
7.2 过程说明和过程调用 120
7.3 标识符的作用域 124
7.4 值参数和变量参数的传送 130
7.5 常识与技术:程序的测试 133
习题与思考 135
第八章 数组 139
8.1 基本概念 139
8.2 多维数组 147
8.3 紧缩数组 151
8.4 常识与技术:岗哨和用数组实现栈 158
习题与思考 161
9.1 记录类型与记录变量 168
第九章 记录 168
9.2 访问记录的方法 171
9.3 记录的变体 179
9.4 常识与技术:变体记录的应用 182
习题与思考 188
第十章 函数 197
10.1 函数说明和函数引用 197
10.2 非局部量与副作用 204
10.3 过程和函数作参数 208
10.4 常识与技术:布尔函数的应用 214
习题与思考 215
第十一章 程序的研制 219
11.1 三种基本控制结构 220
11.2 关于GOTO语句 222
11.3 抽象和逐步求精 228
11.4 黑盒观点 240
11.5 程序的效率 242
11.6 程序中的错误 251
11.7 常识与技术:回溯算法 252
习题与思考 261
第十二章 文卷 267
12.1 序列 267
12.2 文卷类型和文卷变量 268
12.3 基本文卷操作 271
12.4 复合操作 281
12.5 正文文卷 282
12.6 常识与技术:随机存取文卷 289
习题与思考 292
13.1 集合类型和集合变量 297
第十三章 集合 297
13.2 集合的表示 298
13.3 集合的运算 299
13.4 集合的应用 303
13.5 常识与技术:程序结构与数据结构的关系 307
习题与思考 311
第十四章 递归程序设计 316
14.1 递归概念 316
14.2 递归过程和递归函数的设计 320
14.3 向前说明 334
14.4 常识与技术:从递归到迭代 341
习题与思考 352
15.1 指针类型和指针变量 357
第十五章 动态数据结构 357
15.2 预定义过程new和dispose 360
15.3 链表 364
15.4 二叉树 381
15.5 常识与技术:理解程序 387
习题与思考 389
第十六章 程序验证初阶 397
16.1 断言与验证 398
16.2 Pascal语句的验证法则 403
16.3 验证制导程序研制 412
习题与思考 426
附录A 字符号、预定义标识符和指示字 428
附录B Pascal语法规则 430
参考文献 438