目录 1
第一章 Turbo Pascal初阶 1
1.1 关于Turbo Pascal 1
1.2 Turbo Pascal系统安装 2
1.3 使用集成开发环境 3
1.4 编辑、编译和运行一个Turbo Pascal程序 6
1.5 程序调试 6
1.6 编译指示简介 7
练习 8
第二章 基本元素与特性 9
2.1 程序基本结构 9
2.2 基本字符集与标识符 11
2.2.1 基本字符集 11
2.2.2 标识符 11
2.3 标准标量类型 12
2.3.1 整型 12
2.3.3 布尔型 13
2.3.2 实型 13
2.3.4 字符型 14
2.4 注释、常数定义和变量说明 14
2.4.1 注释 14
2.4.2 常数定义 15
2.4.3 变量说明 16
2.5 枚举类型与子界类型 16
2.5.1 枚举类型 16
2.5.2 子界类型 18
2.6 简单类型常数 19
2.7 表达式 20
2.7.1 运算符和优先级 20
2.7.2 一些常用的预定义标准函数 22
2.7.3 类型转换 24
2.7.4 算术表达式、关系表达式和布尔表达式 25
2.7.5 常数表达式 25
2.8 简单输入、输出及赋值语句 25
2.8.2 输出过程Write和WriteLn 26
2.8.3 标准标量类型数据的输出格式 26
2.8.1 输入过程Read和ReadLn 26
2.8.4 赋值语句 27
2.9 程序设计风格 28
练习 29
第三章 条件控制与循环控制结构 31
3.1 简单if语句 31
3.2 复合语句 32
3.3 if语句的扩展与嵌套 33
3.4 ease语句 35
3.5 while语句 36
3.6 repeat语句 38
3.7 for语句 38
3.8 多重循环 40
3.9 goto语句及标号 42
3.10 小结与程序设计问题 43
3.10.1 小结 43
3.10.2 程序设计问题 44
练习 45
4.1.2 字符串变量说明 48
4.1.1 字符串类型定义 48
第四章 字符串和数组 48
4.1 字符串类型定义和变量说明 48
4.1.3 字符串长度 49
4.1.4 字符串与字符 49
4.1.5 字符串的常数定义和类型常数定义 49
4.2 字符串表达式和赋值语句 50
4.2.1 字符串表达式 50
4.2.2 字符串赋值语句 50
4.2.3 字符串变量的输入输出 51
4.3 字符串标准函数和过程 51
4.3.1 字符串标准函数 51
4.3.2 字符串标准过程 52
4.4 一维数组类型定义和变量说明 54
4.4.1 一维数组类型定义 54
4.4.2 一维数组变量说明 55
4.4.3 一维数组类型常数定义 55
4.5 一维数组应用 56
4.4.4 一维数组变量的赋值操作 56
4.6 多维数组 58
4.7 小结与程序设计问题 61
4.7.1 小结 61
4.7.2 程序设计问题 61
练习 64
第五章 记录与集合 66
5.1 记录类型定义和变量说明 66
5.1.1 记录类型定义 66
5.1.2 记录变量说明 67
5.1.3 记录类型常数定义 67
5.2 记录的赋值 68
5.3 with语句和记录的嵌套 69
5.3.1 with语句 69
5.3.2 记录的嵌套 71
5.4 变体记录 72
5.4.1 变体记录类型定义和变量说明 72
5.4.2 判别式联合与自由联合变体记录类型 74
5.5 集合类型定义和变量说明 75
5.5.1 集合类型定义 75
5.5.2 集合变量说明 76
5.5.3 集合的值 76
5.5.4 集合类型常数定义 77
5.6 集合表达式 77
5.6.1 集合构造符 77
5.6.3 集合表达式 78
5.6.2 集合运算符 78
5.7 集合的赋值与输出 79
5.7.1 集合的赋值 79
5.7.2 集合的输出 80
5.8 小结与程序设计问题 81
5.8.1 小结 81
5.8.2 程序设计问题 81
练习 84
6.1 文件类型定义和变量说明 87
6.1.1 文件类型定义 87
第六章 文件 87
6.1.2 文件变量说明 88
6.2 文件标准过程和函数 89
6.2.1 适用于所有文件的标准过程和函数 89
6.2.2 类型文件的标准过程和函数 89
6.2.3 无类型文件的标准过程和函数 89
6.2.4 正文文件的标准过程和函数 90
6.3 类型文件操作 90
6.4 正文文件操作 94
6.5 无类型文件操作 99
6.6 I/O检查与I/O重定义 100
6.6.1 I/O检查 100
6.6.2 I/O重定向 102
6.7 小结与程序设计问题 103
6.7.1 小结 103
6.7.2 程序设计问题 104
练习 106
7.2.1 指针类型定义 107
7.2 指针类型定义和变量说明 107
7.1 动态数据结构 107
第七章 指针 107
7.2.2 指针变量说明 108
7.2.3 指针类型常数定义 109
7.3 指针标准过程和函数 109
7.4 指针变量的赋值操作 112
7.5 线性链表结构 114
7.5.1 线性链表概念 114
7.5.2 线性链表的生成与遍历 115
7.5.3 在已知线性链表中插入一个新元素 118
7.5.4 在已知线性链表中删除一个表元素 119
7.6 双向链环结构 120
7.7 树结构 121
7.8 小结与程序设计问题 125
7.8.1 小结 125
7.8.2 程序设计问题 125
练习 127
8.1.1 过程说明的形式 129
8.1 过程及其调用 129
第八章 过程和函数 129
8.1.2 过程语句 131
8.1.3 参数传递 131
8.1.4 全程变量和局部变量 134
8.2 函数及其调用 135
8.2.1 函数说明的形式 135
8.2.2 函数的调用 137
8.3 嵌套调用和向前引用 139
8.3.1 过程或函数的嵌套调用 139
8.3.2 过程或函数的向前引用 141
8.4 过程和函数的递归调用 143
8.5 无类型参数,过程类型与过程变量,以及过程类型参数 145
8.5.1 无类型参数 145
8.5.2 过程类型与过程变量 146
8.5.3 过程类型参数 148
8.6.1 小结 149
8.6.2 程序设计问题 149
8.6 小结与程序设计问题 149
练习 152
第九章 结构化程序设计思想 155
9.1 什么是结构化程序设计 155
9.2 结构化程序设计示例 156
9.3 再谈程序设计风格 164
练习 165
第十章 通用程序设计示例 166
10.1 一般数值计算 166
10.2 关于求素数 172
10.3 集合结构应用 178
10.4 分类算法概述 181
10.4.1 直接分类算法 182
10.4.2 改进的分类算法 182
10.4.3 分类算法程序示例 183
10.5 递归算法典型示例 186
10.5.1 梵塔游戏 186
10.5.2 探索策略和回溯算法 189
10.6 动态数据结构的应用举例 193
练习 200
第十一章 单元 202
11.1 单元的基本结构 202
11.2 使用单元 203
11.3 标准单元及其功能 207
11.4 SYSTEM单元 208
11.5 DOS单元 210
11.6 CRT单元 217
11.7 PRINTER单元 224
11.8 TURBO3单元 225
11.9 GRAPH3单元 226
11.10 小结与程序设计问题 227
11.10.1 小结 227
11.10.2 程序设计问题 227
练习 233
第十二章 图形及其应用 235
12.1 图形子程序分类和数据结构 235
12.1.1 图形子程序分类 235
12.1.2 图形子程序涉及的常数 237
12.1.3 图形子程序使用的数据类型 240
12.1.4 图形单元说明的变量 241
12.2 图形系统初始化 241
12.3 视口与坐标 245
12.4 使用图形功能 249
12.4.1 画点和读点 249
12.4.2 画直线和改变当前点CP 250
12.4.3 颜色和调色板 251
12.4.4 线型、线宽和写模式 255
12.4.5 矩形、直方图和多边形 257
12.4.6 填充 260
12.4.7 圆、椭圆和圆弧 263
12.4.8 位映象 267
12.4.9 显示正文 269
12.5 动画设计原理 273
12.6 小结与程序设计问题 275
12.6.1 小结 275
12.6.2 程序设计问题 276
练习 278
第十三章 Turbo Pascal高级特性 280
13.1 绝对变量与无类型参数 280
13.1.1 绝对变量 280
13.1.2 无类型参数 280
13.1.3 应用绝对变量 281
13.2 直接访问内存(Mem,MemW和MemL) 281
13.3 访问数据端口(Port和PortW) 281
13.4 获取命令行参数(ParamCount和ParamStr) 282
13.5 获取系统环境参数(GetEnv,EnvCount和EnvStr) 283
13.6 调用操作系统命令(Exec) 284
13.7 调用BIOS和Dos功能(Intr和MsDos) 285
13.8 中断子程序与驻留(Interrupt,Keep,GetIntVec和SetIntVec) 286
13.9 声音(Sound,NoSound和Delay) 288
13.10 小结与程序设计问题 291
13.10.1 小结 291
13.10.2 程序设计问题 291
练习 294
14.2.1 参数传递方法 296
14.2 调用约定 296
14.1 四种连接方法 296
第十四章 与汇编语言的连接 296
14.2.2 函数结果返回方法 297
14.2.3 远调用和近调用 297
14.2.4 入口和出口代码 298
14.2.5 寄存器保存的约定 298
14.3 inline语句 298
14.4 inline命令 299
14.5.1 asm语句 300
14.5 inline汇编 300
14.5.2 汇编语句的语法 301
14.5.3 标号 302
14.5.4 指令前缀 302
14.5.5 指令操作码 303
14.5.6 操作数 304
14.5.7 assembler过程和函数 308
14.6 外部过程 310
练习 315
14.7 小结 315
第十五章 覆盖技术 316
15.1 覆盖 316
15.2 覆盖管理 316
15.3 了解OVERLAY单元 318
15.4 编写覆盖程序 321
15.4.1 产生覆盖代码 321
15.4.2 远调用要求 321
15.4.3 初始化覆盖管理模块 321
15.4.4 覆盖单元的初始化部分 323
15.4.5 不能用作覆盖的单元 324
15.4.6 调试覆盖模块 324
15.4.7 覆盖模块的外部子程序 325
15.4.8 .EXE文件中的覆盖 325
15.5 小结与程序设计问题 326
15.5.1 小结 326
15.5.2 程序设计问题 326
练习 327
16.1 对象 328
第十六章 面向对象的程序设计 328
16.2 继承 331
16.3 封装 332
16.4 静态方法和虚方法 332
16.5 兼容性 338
16.6 动态分配 338
16.7 小结 341
练习 341
附录 342
附录一 Turbo Pascal集成开发环境 342
附录二 编译指示一览表 360
附录三 Turbo Pascal实用程序 363
附录四 Turbo Pascal标准子程序库 377
附录五 编译与运行出错信息 422
附录六 一些流行的Turbo Pascal工具箱软件简介 428
附录七 ASCII码表及键盘返回代码 431
主要参考书目 434