第1章 Pascal语言程序开发环境 1
1.1 了解Pascal 1
1.1.1 从Turbo Pascal到Free Pascal 1
1.1.2 安装Pascal 1
1.1.3 Pascal的特点 5
1.2 算法与程序 5
1.2.1 算法 5
1.2.2 算法的描述 5
1.3 程序结构 9
1.3.1 Pascal程序结构 9
1.3.2 Pascal程序编写格式 11
1.3.3 程序设计的质量评价 11
1.3.4 结构化程序设计 11
1.4 编辑第一个程序 12
1.4.1 熟悉键盘 12
1.4.2 编写代码 12
1.4.3 编辑操作 12
1.4.4 调试与运行 13
1.4.5 保存文件 14
习题1 14
第2章 Pascal语言程序设计基础 16
2.1 数据类型 16
2.1.1 基本数据类型 16
2.1.2 用户定义的数据类型 17
2.2 常量和变量 18
2.2.1 常量 18
2.2.2 变量 19
2.2.3 保留字与标准标识符 20
2.3 标准函数 20
2.3.1 数学函数 20
2.3.2 转换函数 22
2.3.3 顺序函数 22
2.3.4 逻辑判断函数 23
2.3.5 字符串处理函数 23
2.3.6 随机函数 24
2.4 表达式与运算符 24
2.4.1 算术运算符 24
2.4.2 关系运算符 25
2.4.3 逻辑运算符 25
2.4.4 表达式与运算符的优先级 25
2.5 赋值语句 27
2.6 输入语句 28
2.6.1 输入语句的格式和功能 28
2.6.2 输入语句的执行过程 30
2.6.3 使用输入语句的注意事项 30
2.7 输出语句 31
2.7.1 输出语句的格式和功能 31
2.7.2 输出语句的执行过程 32
2.7.3 输出格式 32
2.7.4 使用输出语句的注意事项 33
习题2 34
第3章 程序设计的基本结构 36
3.1 顺序结构(复合语句) 36
3.1.1 复合语句的格式 36
3.1.2 复合语句的执行过程 37
3.2 选择结构 38
3.2.1 if...then语句 38
3.2.2 if...then...else语句 39
3.2.3 if语句的嵌套 40
3.2.4 case语句 42
3.3 循环结构 44
3.3.1 repeat语句(直到型循环) 45
3.3.2 while语句(当型循环) 46
3.3.3 for循环 48
3.3.4 三种循环的比较 50
3.3.5 多重循环 50
3.3.6 关于goto语句 52
3.4 典型试题分析 53
习题3 59
第4章 自定义数据类型 64
4.1 枚举类型 64
4.1.1 枚举类型定义 64
4.1.2 变量说明 65
4.1.3 枚举类型数据的操作 66
4.2 子界类型 67
4.2.1 子界类型定义 68
4.2.2 变量说明 68
4.2.3 子界类型数据的操作 69
4.3 类型间的相容性 70
4.3.1 类型的一致性 70
4.3.2 类型的相容性 71
4.3.3 赋值的相容性 73
4.4 典型试题分析 75
习题4 78
第5章 数组 81
5.1 数组类型 81
5.1.1 数组的引入 81
5.1.2 数组类型的定义 82
5.1.3 数组变量的说明 82
5.1.4 数组类型常量的定义 83
5.2 一维数组的操作 84
5.2.1 一维数组元素的引用 84
5.2.2 一维数组元素的赋值、输入、输出 84
5.2.3 一维数组的查找、插入、删除 87
5.2.4 一维数组的排序 91
5.3 二维数组与多维数组 95
5.3.1 二维数组 95
5.3.2 多维数组 99
5.4 字符数组与字符串 100
5.4.1 字符数组 100
5.4.2 字符串的特性 101
5.4.3 字符串的函数 103
5.5 典型试题分析 105
习题5 113
第6章 函数与过程 115
6.1 函数与过程简介 115
6.1.1 子程序的概念 115
6.1.2 子程序的作用 115
6.1.3 子程序的分类 115
6.2 函数的定义与调用 116
6.2.1 函数的定义 116
6.2.2 函数的调用 116
6.3 过程的定义与调用 117
6.3.1 过程的定义 117
6.3.2 过程的调用 118
6.4 参数传递 118
6.4.1 形参与实参 119
6.4.2 按值传递 120
6.4.3 按地址传递 121
6.4.4 数值参数、变量参数选择和使用的原则 123
6.5 标识符的作用域 124
6.5.1 标识符在程序中的两种出现 124
6.5.2 标识符的使用原则 124
6.5.3 标识符的作用域 125
6.5.4 全局量与局部量 126
6.5.5 函数名和过程名的作用域 128
6.6 子程序的递归与嵌套 130
6.6.1 子程序的递归 130
6.6.2 子程序的嵌套 133
6.7 典型试题分析 136
习题6 146
第7章 集合类型与记录类型 149
7.1 集合 149
7.1.1 集合的概念 149
7.1.2 集合类型的定义及集合变量的说明 149
7.1.3 集合的值 150
7.1.4 集合的运算 150
7.1.5 应用举例 152
7.2 记录 156
7.2.1 记录类型的定义 156
7.2.2 记录变量的说明 158
7.2.3 记录常量的说明 158
7.2.4 记录类型的操作 159
7.2.5 记录的嵌套 159
7.2.6 开域语句 160
7.2.7 记录的应用举例 163
7.3 典型试题分析 166
习题7 176
第8章 文件操作 180
8.1 文件的概念及分类 180
8.1.1 文件的概念 180
8.1.2 文件的分类 180
8.2 文件的操作 181
8.2.1 文本文件的定义 181
8.2.2 文本文件的特点 181
8.2.3 文件处理的标准过程和标准函数 182
8.2.4 文件操作的一般步骤 185
8.3 类型文件 186
8.3.1 类型文件的定义 186
8.3.2 类型文件的写操作 186
8.4 典型试题分析 187
习题8 198
第9章 指针 201
9.1 指针类型 201
9.1.1 指针类型与指针变量 201
9.1.2 指针变量的操作 203
9.2 链表的结构及操作 206
9.2.1 链表的基本结构 206
9.2.2 线性链表的建立 207
9.2.3 线性链表的操作 209
9.2.4 循环链表 217
9.2.5 双向链表 218
9.3 典型试题分析 219
习题9 230
第10章 程序设计中的基本算法 232
10.1 模拟法 232
10.2 枚举法 236
10.3 贪心法 238
10.4 递归法 245
10.5 回溯法 251
10.6 分治法 255
10.7 不同进位制数的转换 261
10.7.1 进制 261
10.7.2 二、八、十六进制和十进制的相互转换 261
10.7.3 二、八、十六进制之间的转换 264
10.8 排列与组合 267
10.8.1 加法原理与乘法原理 267
10.8.2 排列 267
10.8.3 组合 269
10.9 高精度运算 273
10.9.1 高精度数的读入和存储 273
10.9.2 高精度加法 275
10.9.3 高精度减法 276
10.9.4 高精度乘法 277
10.9.5 高精度除法 279
10.9.6 高精度运算的改进 284
10.10 排序算法 285
10.10.1 归并排序 285
10.10.2 希尔排序(Shell排序) 287
10.10.3 堆排序 290
10.10.4 快速排序 295
10.10.5 基数排序 297
习题10 301
部分习题参考答案 306
Free Pascal编译错误信息表 373
参考文献 377