目录 1
引言 1
§0.1 关于示例 1
§0.2 如何使用本书 1
§0.1.1 所需的材料 1
§0.1.2 本书所包含的内容 1
§0.1.3 本书所不包含的内容 2
§0.3 使用内部调试器 3
§0.2.2 使用命令行式编译器 3
§0.2.1 使用组合式编译器 3
§0.2 如何输入程序 3
§0.4 功能键 4
§0.5 调试器菜单命令 4
§0.5.1 调试菜单(<Alt>-D) 4
§0.5.2 Break菜单(<ALT>-B) 5
第一章 通过例子学习程序设计 7
§1.0 关键字与标识符 7
§1.1 关键字和标识符 7
§1.2 程序体 7
§1.3 错误信息 8
§1.5 阅读语法图 9
§1.4 介绍字符串 9
§1.6 说明变量 11
§1.6 Pascal的输入——读入字符串 13
§1.7 小结 13
§1.8 练习 14
第二章 数据——程序知道什么 15
§2.0 关键字和标识符 15
§2.1 常量说明 15
§2.2 数学常量 16
§2.4 格式化表示数 17
§2.3 科学计数法 17
§2.5 字符串常量和字符常量 18
§2.6 布尔常量 18
§2.7 变量 20
§2.9 比较操作符 20
§2.10 说明变量 21
§2.11 常见程序设计错误 23
§2.12 子界类型 23
§2.13 范围检查 23
§2.14 表达式 24
§2.15 操作符优先顺序 25
§2.17 在程序中插入注释 26
§2.16 混合使用实型数和整型数 26
§2.17.2 注释嵌套 27
§2.17.1 注释用于程序调试 27
§2.18 编译指令 28
§2.19 变量常量 28
§2.19 常量表达式 30
§2.20 小结 30
§2.21 练习 31
第三章 动作——程序做什么 32
§3.0 关键字与标识符 32
§3.1 复合语句 32
§3.2.1 WHILE循环 33
§3.2 循环语句 33
§3.2.2 REPEAT循环 35
§3.2.3 FOR循环 37
§3.2.4 何时使用WHILE 39
§3.2.5 何时使用REPEAT 39
§3.2.6 何时使用FOR 40
§3.3 条件语句 40
§3.3.1 IF语句 40
§3.3.2 IF语句的嵌套 41
§3.3.4 CASE语句 44
§3.3.3 短路布尔表达式 44
§3.3.5 GOTO语句 48
§3.4 小结 50
§3.5 练习 50
第四章 划分攻克法 51
§4.0 关键字与标识符 51
§4.1 自顶向下程序设计 51
§4.2 过程 51
§4.2.1 过程的范围 53
§4.3 函数 54
§4.3.1 函数的常见错误 55
§4.4 参数传递 56
§4.4.1 值参和变参 61
§4.4.2 参数名 63
§4.4.3 参数存在哪儿? 63
§4.4.4 混合使用变参和值参 64
§4.5 嵌套过程与函数 64
§4.5.1 嵌套的限制 66
§4.6 范围引起的限制 66
§4.7 提前说明与递归 67
§4.7.1 递归的进一步讨论 68
§4.7 预说明的过程和函数 69
§4.8 函数的副作用 69
§4.9 退出的方法:Halt和Exit 71
§4.10 函数与计算顺序 73
§4.11 加1与减1过程 74
§4.12 小结 74
§4.13 练习 75
§5.2 整数的子界 76
§5.1 TPE说明 76
§5.0 关键与标识符 76
第五章 把结构加到数据 76
§5.3 标量类型 78
§5.3.1 枚举数据类型的使用 78
§5.3.2 使用标量变量 78
§5.3.3 标量和序数值 79
§5.4 数组 80
§5.4.1 字串与数组 82
§5.4.2 数组界限检查 83
§5.4.3 数组排序 84
§5.4.3.2 二叉插入排序的工作原理 85
§5.4.3.1 使用排序程序 85
§5.4.4 多维数组 86
§5.4.5 四维以上数组 87
§5.4.6 标量下标 87
§5.4.7 缺乏变量压缩手段 88
§5.5 记录 88
§5.5.1 记录管理 90
§5.5.2 记录作为字段 91
§5.5.3 WITH语句的嵌套 92
§5.5.4 混合数据结构 92
§5.5.5 变体记录 95
§5.5.6 自由联合 98
§5.5.7 CASE变体嵌套 98
§5.6 集合 100
§5.6.1 集合关系操作符 101
§5.6.2 集合逻辑操作符 102
§5.6.3 集合的实际使用 103
§5.6.4 字符集合 104
§5.7 小结 106
§5.8 练习 106
第六章 文件 108
§6.0 关键字和标识符 108
§6.1 文本文件 109
§6.2 文件结束——Eof 112
§6.3 关闭文件 112
§6.4 输入和输出 112
§6.5 处理文本文件 113
§6.6 多种功能的应用 114
§6.6.1 文本文件过滤器 115
§6.6.2 增添行号 115
§6.6.3 每次处理一个字符 116
§6.7 行结束——Eoln 117
§6.8 结构化文件 118
§6.9 记录文件 119
§6.10 顺序处理 122
§6.11 “鸡和蛋”的文件 123
§6.12 测试IoResult 123
§6.12.1 IoResult的副作用 123
§6.13 随机处理 125
§6.13.1 寻址和写 126
§6.13.2 增加记录 127
§6.13.3 增大文本文件 128
§6.13.4 随机处理文本文件 128
§6.14 高级文件处理 129
§6.15 特殊函数 130
§6.16 无类型文件 131
§6.16.1 用BlockRead和BlockWrite 131
§6.16 单字节的“桶” 132
§6.17 文件作为传递参数 134
§6.18 总结 135
§6.19 练习 135
第七章 指针、表和树 136
§7.0 关键字和标识符 136
§7.1 创建指针 136
§7.2 使用指针变量 136
§7.3 指针比较 137
§7.4 不指向任何地方的指针 138
§7.5 注释图 139
§7.6 为什么要使用指针 139
§7.7 单向链表 139
§7.7.1 链表的插入 140
§7.7.2 删除指针 140
§7.8 存储区管理 141
§7.8.1 释放变量 145
§7.8.2 检测被删除变量所占的内存空间 146
§7.8.3 可用栈 147
§7.9 循环链表 150
§7.10.1 根 152
§7.10.2 二叉树 152
§7.10 树 152
§7.10.3 树的遍历 154
§7.10.4 树和递归 154
§7.10.5 平衡树 157
§7.11 动态数组 158
§7.11 堆的寻址 158
§7.12 直接寻址 159
§7.14 绝对指针 161
§7.13 绝对变量 161
§7.15 覆盖绝对变量 162
§7.16 小结 162
§7.17 练习 162
第八章 字符串 164
§8.0 关键字和标识符 164
§8.1 字符串长度 165
§8.2 直接设置字符串长度 166
§8.3 字符串操作(运算) 167
§8.4 字符串过程 168
§8.5 字符串函数 169
§8.6 作参数的字符串 171
§8.7 编写自己的字符串函数 172
§8.8 特殊字符 174
§8.9 用数字(即ASCII码值)来表示字符 175
§8.10 字符串中字符常量 175
§8.11 小结 175
§8.12 练习 176
第九章 单元 177
§9.0 关键字和标识符 177
§9.1 USES声明 177
§9.3 程序中使用单元 178
§9.2 单元磁盘文件 178
§9.4 System单元 179
§9.5 Crt单元 179
§9.5.1 Crt单元的变量 180
§ 9.5.2 控制坐标 182
§9.5.3 显示器控制 182
§9.5.4 压缩的43和50行正文 183
§9.5.5 清除、插入和删除正文 183
§9.5.6 正文窗口 184
§9.5.7 键盘的控制 187
§9.5.9 谈功能键 188
§9.5.8 无回显的读入字符 188
§9.5.10 正文属性 190
§9.5.11 等待 192
§9.5.12 关闭声音 192
§9.5.13 Crt重新赋值 192
§ 9.6 Dos单元 193
§9 6.1 Dos变量 193
§9.6.3 调用DOS功能 196
§9.6.4 系统日期 197
§9.6.6 文件属性 198
§9.6.5 文件和磁盘操作的例程 198
§9.6.7 文件日期与时间 199
§9.6.8 目录例程 201
§9.6.9 执行一个?断 202
§9.6.10 验证 203
§9.6.10 环境的影响 205
§9.6.11 文件和路径 207
§9.7 Printer单元 209
§9.8 Turbo3单元 210
§9.9 Graph3单元 210
§9.10 小结 210
§9.11 练习 211
§10.0 关键字和标识符 212
§10.1 单元组成 212
§10.2 编写用户单元 212
第十章 用户单元和覆盖 212
§10.3 在单元中说明过程和函数 213
§10.4 编译单元 216
§10.5 使用用户单元 217
§10.6 单元目录 219
§10.7 使用XtraStuff单元 219
§10.8 在单元内引用其他单元 220
§10.11 单元标识符冲突 221
§10.9 循环引用单元 221
§10.10 内存中的多单元 221
§10.12 内存中的单元 223
§10.13 远(Far)和近(Near) 224
§10.14 在库文件中安装单元 225
§10.15 使用TPUMOVER 225
§10.16 用单元开发发程序 227
§10.17 清除主文件 229
§10.18 覆盖 229
§10.18.1 使用覆盖 230
§10.18.3 理解覆盖 231
§10.18.2 编译覆盖 231
§10.18.5 在扩充内存中装入覆盖 233
§10.18.6 改变覆盖缓冲区大小 233
§10.18.4 发现.OVR文件 233
§10.18.7 合并覆盖和程序代码 234
§10.19 小结 234
§10.20 练习 235
第十一章 Borland图形接口 236
§11.0 关键字与标识符 236
§11.1 选择一种图形方式 236
§11.3 图形的建立 237
§11.2 Borland图形接口 237
§11.3.1 另一种初始化图形的方法 240
§11.3.2 检测图形错误 241
§11.3.3 显示驱动器和方式名 242
§11.3.4 检测屏目分辨率 243
§11.3.5 在文本和图形方式之间切换 243
§11.3.6 图形默认值 245
§11.4 视口与座标 245
§11.4.1 清除视口 245
§11.4.2 改变视口 246
§11.4.3 将视口的中心置为(0,0) 249
§11.5 画点与读点 250
§11.6 画线 251
§11.7 相关线 253
§11.8 线型 254
§11.9 调色板 255
§11.9.1 调色板的默认值 257
§11.10 改变显示色 257
§11.11 背景色 258
§11.12 设置写方式 258
§11.13.1 矩形 259
§11.13 图形例程 259
§11.13.2 条形图 260
§11.13.3 三维条形图 262
§11.13.4 多边形 263
§11.13.5 多边形填充 264
§11.13.6 快速填充 265
§11.14 圆弧与圆 265
§11.15 画椭园 268
§11.15.1 椭圆填充 269
§11.15.2 填充部分椭圆 270
§11.16 扇形 270
§11.17 位映象图形 273
§11.18 在图形屏幕上显示文本 276
§11.18.1 文本调整 278
§11.18.2 文本的宽度和高度 279
§11.18.3 控制字形大小 280
§11.18.4 读入文本参数 281
§11.19 动画设计 282
§11.20 装入多种字形和驱动器 284
§11.20 建立图形应用程序 286
§11.22 小结 290
§11.21 高级BGI图形 290
§11.23 练习 291
第十二章 关于数的进一步讨论 292
§12.0 关键字与标识符 292
§12.1 实数 292
§12.2 实数 293
§12.3 协处理器和仿真程序 293
§12.4 单元中的协处理器仿真 294
§12.5 数的读与写 294
§12.5.1 无错误输入 294
§12.5.2 格式输出 296
§12.6 字排列 297
§12.7 数字表达式 298
§12.8 数的基数 299
§12.8.1 Ingeter型数和Word型数的十六进制表示 300
§12.9 十六进制与二进制之间的转换 301
§12.10 整数的逻辑运算 303
§12.10.1 IBM PC键盘特殊键标志 304
§12.11 数字函数 306
§12.12 超越函数 306
§12.13 高级常量表达式 308
§12.14 次方运算 309
§12.16 商业中的数 310
§12.15 舍入误差 310
§12.16.1 美元与美分的表示 311
§12.17 数据类型Comp 311
§12.17.1 将Comp型数转换为字串处理 312
§12.18 数学协处理器的使用 313
§12.19 随机数 315
§12.19.1 掷骰子 315
§12.19.2 重新产生随机序列 319
§12.20 小结 319
§12.21 练习 320