第一章 基本知识 1
1.1 计算机的基本结构 1
1.2 程序设计语言 2
1.2.1 机器语言 2
1.2.2 汇编语言 2
1.2.3 高级语言 3
1.2.4 汇编语言和高级语言程序的执行 3
1.3 PASCAL语言简况 4
1.4 程序语言的形式描述 5
1.4.1 语法、语义 5
1.4.2 BNF 5
1.4.3 文法的其它表示法 8
1.5 PASCAL程序结构 9
1.6 算法及其描述工具PAD图 11
1.6.1 算法 11
1.6.2 PAD图 11
1.6.3 编码 14
习题 14
第二章 基本符号、数据及其类型 17
2.1 基本符号 17
2.1.1 字符集 17
2.1.2 特定符号 18
2.1.3 指示字 18
2.1.4 标识符 18
2.1.5 标号 20
2.1.6 数 20
2.1.7 字符串 21
2.1.8 记号分隔符 22
2.2 数据及其类型 23
2.2.1 integer型 23
2.2.2 real型 25
2.2.3 char类型 26
2.2.4 Boolean类型 26
2.3 类型定义 27
2.4 枚举型类型 28
2.5 子界型类型 29
2.6 值的可比性及关系运算 30
习题 31
第三章 简单程序 34
3.1 常量及常量定义 34
3.2 变量及变量说明 36
3.3 标准函数 38
3.4 表达式 41
3.4.1 表达式的构成形式 42
3.4.2 表达式值的计算 44
3.4.3 表达式的类型 45
3.5 语句 45
3.6 赋值语句 46
3.7 类型一致性 47
3.8 输入输出 50
3.8.1 标准函数 51
3.8.2 输入 51
3.8.3 输出 54
3.8.4 输出表项 55
习题 59
第四章 过程与函数 65
4.1 带子程序的PASCAL程序 65
4.2 函数 68
4.2.1 调用函数——函数命名符 69
4.2.2 定义函数——函数说明 69
4.3 过程 73
4.3.1 调用过程——过程语句 74
4.3.2 定义过程——过程说明 75
4.4 程序设计实例 76
习题 80
第五章 流程控制 83
5.1 顺序结构复合语句 83
5.2 分支结构分支程序设计 84
5.2.1 IF语句 84
5.2.2 CASE语句 88
5.2.3 枚举类型的I/O问题 91
5.3 重复结构——循环程序设计 92
5.3.1 WHILE语句 92
5.3.2 UNTIL语句 94
5.3.3 FOR语句 97
5.4 程序设计实例 102
习题 111
第六章 数组 120
6.1 结构型数据类型 120
6.2 数组型类型 120
6.2.1 数组类型定义 120
6.2.2 数组变量与下标变量 121
6.2.3 有关运算问题 123
6.2.4 应注意的问题 125
6.3 多维数组 126
6.4 程序设计实例——数组在程序设计中的应用 129
6.5 紧缩数组 149
6.6 字符串 152
习题 153
第七章 参数、作用域和递归 163
7.1 值参数与变量参数 163
7.2 一致数组参数 168
7.2.1 形式参数与实在参数的对应 170
7.2.2一致数组参数结合动作 172
7.3 作用域 173
7.3.1 程序的层次结构 173
7.3.2 定义点及定义点区域 175
7.3.3 作用域及作用域规则 176
7.3.4 定义性出现和使用性出现 179
7.3.5 局部性全局量和局部量 179
7.3.6 作用域例题 180
7.4 无参过程与函数 183
7.5 递归 184
7.5.1 递归程序 184
7.5.2 递归程序设计 185
7.5.3 递归程序执行过程 191
7.5.4 间接递归 201
习题 207
第八章 集合 213
8.1 集合类型 213
8.2 集合值的表示——集合构造器 214
8.3 集合运算 214
8.4 集合I/O 216
8.5 集合应用及例题 217
习题 219
第九章 程序开发和结构化程序设计 222
9.1 GOTO和标号 222
9.1.1 带标号的语句 222
9.1.2 GOTO语句 222
9.1.3 标号说明 223
9.1.4 对标号的认识 223
9.1.5 应注意的问题 224
9.2 空语句 226
9.3 结构化程序设计原则 227
9.4 程序风格 228
9.4.1 良好的行文格式 229
9.4.2 用合适的助忆名来命名标识符 231
9.4.3 注解 231
9.4.4 对程序说明的要求 232
9.5 自顶向下逐步求精的程序设计技术 232
9.5.1 自顶向下、逐步求精 232
9.5.2 求精过程的表示 234
9.5.3 求精实例 245
9.6 程序的正确性 250
9.6.1 错误种类 250
9.6.2 程序测试和验证 251
9.6.3 测试方法 252
9.6.4 程序的健状性 252
9.7 可移植性 253
9.8 文档 254
9.9 受限排列组合——穷举法与试探法 255
习题 269
第十章 文件 275
10.1 文件类型定义及变量说明 275
10.2 文件操作 276
10.2.1 文件状态描述 276
10.2.2 写操作 278
10.2.3 读操作 279
10.2.4 文件操作例题 281
10.3 PASCAL文件变量与操作系统文件的联系 283
10.3.1 程序参数方式 283
10.2.2 assign方式 284
10.2.3 open方式 284
10.4 text文件 285
10.4.1 隐含的数据类型翻译功能 286
10.4.2 text文件的行式结构 287
10.4.3 text文件与一般文件区别 289
10.4.4 text文件例 289
习题 292
第十一章 记录 296
11.1 记录类型 296
11.2 记录变量及其成分变量 297
11.3 WITH语句 300
11.4 变体 302
11.4.1 带变体的记录 302
11.4.2 变体部分的域与固定部分域的关系 307
11.4.3 带变体记录结构的动态确定 309
11.4.4 CASE语句与记录变体 311
11.5 作用域和限制 312
11.6 程序设计实例 314
习题 321
第十二章 指针及动态数据结构 325
12.1 指针类型 326
12.2 动态数据结构——指针应用 331
12.2.1 栈 331
12.2.2 队列 332
12.2.3 链表 334
12.2.4 树 337
12.3 new、dispose与带变体的记录 343
12.4 动态数据结构的程序设计实例 344
习题 362
第十三章 几个较深入问题 368
13.1 过程和函数作参数 368
13.2 函数付作用 370
13.3 形式参数作实在参数 371
13.4 标识符冲突 372
13.5 参数结合顺序 373
13.6 转出过程体 374
13.7 由调用引起的递归 376
11.8 类型等价 377
13.9 数据结构与控制结构类比 378
习题 382
综合习题 383
附录 387
参考文献 389