第1章 电脑与问题解析简介 1
电脑是什么? 2
现代的数位电脑 2
演算法的表示法 6
程式与资料 8
高阶语言 10
软体的阶层性 12
实际执行一个程式 13
设计程式 14
由上而下的设计 15
名词摘要 18
自我测验与程式练习 20
一般问题 21
参考资料 22
第2章 Pascal简介 23
Pascal语言 24
程式变数的记号 24
逐步探讨一个程式 25
进一步探讨指定叙述 29
资料型态简介 30
简单输出 34
格式化输出 37
输入 39
批次处理(参考) 42
设计输入与输出指令 43
名称:识别字 44
片段组合 47
程式样式简介 48
范例程式设计 49
Blaise Pascal(参考) 53
问题解析与程式设计技巧摘要 53
Pascal结构摘要 54
自我测验与程式练习 56
一般问题 59
第3章 Pascal进一步探讨与问题解析 61
常数命名 62
语法图 65
进一步探讨实数值 66
整数所允许的范围 66
型态相容 69
char和string型态 69
算术运算式 70
标准函数 74
一个使用函数的范例程式 75
注解 76
另一个范例程式 77
范例程式设计 80
测试与除错 84
UCSD Pascal(参考) 87
问题解析与程式设计技巧摘要 91
Pascal结构摘要 91
自我测验与程式练习 94
一般问题 95
参考资料 97
第4章 程序与由上而下设计 99
简单的Pascal程序 100
由上而下设计范例 102
程序注解 104
程序测试 105
由上而下与由下而上策略 107
变数参数 110
参数串列 113
选择参数名称 114
问题解析与程式设计技巧摘要 116
Pascal结构摘要 117
自我测验与程式练习 119
一般问题 120
第5章 模组化设计的程序 123
局部与整体变数 124
其它的局部识别字 127
局部识别字的范围 129
值参数 129
混合参数串列 135
使用何种参数 137
参数与整体变数 137
自我注解的程序 138
设计范例程序 140
问题解析与程式设计技巧摘要 144
Pascal结构摘要 144
自我测验与程式练习 148
一般问题 149
第6章 设计能作判断的程式 153
Case叙述 154
巢状叙述 159
复合叙述 159
if-then-else叙述 161
if-then叙述 164
简单布林运算式 164
有关分号的注意事项 168
缩排的进一步探讨 169
巢状if-then与if-then-else叙述 169
UCSD Pascal—字串比较(参考) 171
前哨命令—设计分支的一种方法 171
断言 173
范例程式设计 175
Pascal结构摘要 179
问题解析与程式设计技巧摘要 179
自我测验与程式练习 182
一般问题 183
第7章 含布林运算式的程式设计 187
boolean型态 188
复合布林运算式 188
布林运算式的求值 192
集合简介 193
odd函数 193
含布林变数的程式设计 196
一个较长的例子 197
布林输入与输出 200
范例设计 201
反覆改良 203
放弃程式 204
问题解析与程式设计技巧摘要 205
Pascal结构摘要 206
自我测验与程式练习 208
一般问题 209
第8章 回圈结构 211
repeat叙述 212
例子——程序测试 213
展开回圈 213
while叙述 219
无穷回圈 221
不变性断言与可变性运算式(参考) 221
for叙述 226
例子——级数 230
不变性断言与for回圈(参考) 232
使用何种回圈 232
例子——月历设计 234
回圈除错 234
使用不变量设计回圈(参考) 239
问题解析与程式设计技巧摘要 245
Pascal结构摘要 245
自我测验与程式练习 248
一般问题 249
参考资料 251
第9章 函数 253
函数的使用 254
函数宣告范例 254
乘幂计算——较复杂的例子 257
副作用 259
“见风转舵”的函数 259
布林值函数 260
一些标准函数(参考) 262
范例——质数测试 262
UCSD Pascal——字串函数与程序 263
乱数产生器 265
虚拟乱数的使用 268
调整乱数的较佳方法(参考) 270
标准Pascal——以函数与程序为参数(参考) 271
问题解析与程式设计技巧摘要 273
Pascal结构摘要 273
自我测验与程式练习 274
一般问题 275
参考资料 277
第10章 资料型态的进一步讨论 279
有序型态 281
UCSD Pascal——string型态 282
子范围型态 282
再论For与Case叙述 285
ord,chr,pred与succ函数(参考) 286
列举型态(参考) 288
阵列——结构化型态简介 290
型态宣告摘要 295
型态对应 297
范例——阵列排序 299
范例——部份填值的阵列 300
非整数索引的阵列范例 304
储存体效率 305
密集阵列(参考) 307
标准Pascal——字元密集阵列(参考) 308
问题解析与程式设计技巧摘要 309
Pascal结构摘要 310
自我测验与程式练习 312
一般问题 313
第11章 程式设计方法论 317
问题解析的一些指引 318
撰写程式码 320
测试与除错 321
程式验证 327
可移性 328
效率 329
批次处理 332
效率与清晰度 332
大型程式设计工作的处理 333
名词摘要 334
自我测验与程式练习 336
一般问题 337
参考资料 338
第12章 递回法的使用 339
递回函数例 340
递回的进一步观察 342
无限递回 345
堆叠 346
递回函数结束与正确性的证明(参考) 350
递回程序——简单的例子 351
二元搜寻——较复杂的递回例 353
Hanoi塔——递回思考的例子 356
程序和函数的递回与反覆 359
前置宣告(参考) 360
问题解析与程式设计技巧摘要 362
自我测验与程式练习 363
一般问题 364
参考资料 365
第13章 文字档与副储存体 367
第一部份 368
文字档 368
文字档的读写 369
标准Pascal 371
UCSD Pascal 373
自我测验与程式练习 376
避免无声程式 376
第二部份 377
readln与writeln的再探讨 377
eof与eoln 380
使用缓冲区 383
eof与eoln的用法 384
以文字档为程序的参数 384
编修文字档的基本技巧 386
标准Pascal——内部档案 386
可移性 386
范例——删除多余空格 388
以文字编修辅助程式设计 392
问题解析与程式设计技巧摘要 392
Pascal结构摘要 393
自我测验与程式练习 398
一般问题 398
第14章 结构化资料型态的进一步讨论 403
多维阵列 404
评分——二维阵列应用例 406
储存体效率 409
记录简介 410
简单记录的语法 413
结构化型态的层次 414
with叙述 416
赌马——记录应用例 418
标准Pascal——字元密集阵列的使用(参考) 424
UCSD Pascal——记录中字串的使用 424
可变记录(参考) 425
集合的进一步讨论(参考) 428
选择资料结构 433
问题解析与程式设计技巧摘要 434
Pascal结构摘要 434
自我测验与程式练习 437
一般问题 438
参考资料 442
第15章 解决数值问题 443
假设的十进位计算机 444
二进位数(参考) 448
二进位数机器表示法(参考) 450
更高的准确度(参考) 452
UCSD Pascal——长整数(参考) 453
实数运算的误差来源 453
误差的传递 457
范例——级数求和 458
范例——函数求根 458
问题解析与程式设计技巧摘要 463
名词摘要 463
一般问题 464
自我测验与程式练习 464
参考资料 466
第16章 档案型态的进一步讨论 467
档案的一般概念 468
档案变数 469
标准Pascal——开启档案 469
UCSD Pascal——开启档案 470
窗口与缓冲变数 471
put——“书写”档案 472
write程序 473
get——“读取”档案 474
read程序 475
get与put应用例 476
以档案为程序参数 478
决定档案型态 478
标准Pascal——记录档案范例 479
UCSD Pscal——seek(参考) 481
Pascal结构摘要 483
问题解析与程式设计技巧摘要 483
自我测验与程式练习 489
一般问题 489
参考资料 491
第17章 动态资料型态结构 493
指标简介 494
Pascal指标与动态变数 495
指标运作 496
节点 499
nil指标 500
连结串列——指标应用例 501
dispose(参考) 508
双向连结串列——简单连结串列的变形 508
树 510
实作(参考) 513
UCSD Pascal——mark与release(参考) 517
问题解析与程式设计技巧摘要 518
Pascal结构摘要 520
自我测验与程式练习 521
一般问题 522
参考资料 524
附录1 goto叙述 525
附录2 保留字 529
附录3 运算子的优先序 531
附录4 密集结构 533
附录5 标准Pascal的语法图 535
附录6 UCSD Pascal的细节 551
词汇 555
习题解答 571
索引 585