第一部分 Free Pascal语言 3
第一章 初识Pascal语言 3
1.1 Pascal语言介绍 3
Pascal语言概述 3
Pascal语言的特点 3
Pascal语言程序的基本结构 4
Free Pascal语言系统的使用 5
1.2简单程序设计 7
习题 10
第二章 顺序结构程序设计 11
2.1例子引言 11
2.2赋值语句与算术表达式 12
赋值语句 12
算术表达式 13
2.3输入语句 15
2.4输出语句 17
输出语句的格式 17
输出语句的功能 17
带格式的输出语句 18
2.5常量和变量 20
常量 20
常量的定义 21
变量说明 22
2.6标准数据类型 23
整型(integer) 23
实型(real) 24
字符型(char) 25
布尔型(boolean) 26
2.7顺序结构程序设计 27
习题 28
第三章 分支结构程序设计 30
3.1布尔类型变量 30
Pascal中的布尔(逻辑)类型 30
关系表达式与布尔表达式 31
3.2简单的if语句 32
3.3 if条件语句嵌套 37
3.4 case语句(分情况语句) 40
3.5分支结构程序设计 43
习题 45
第四章 循环结构程序设计 48
4.1 for语句 48
for语句的一般格式 48
for语句执行过程 48
for语句说明 49
for循环程序设计 49
4.2 while循环 53
while循环 53
while循环程序设计 54
4.3直到型循环 56
直到型循环(repeat—until语句) 56
repeat—until循环程序设计 56
4.4循环嵌套程序设计 58
习题 64
第五章 数组类型 66
5.1一维数组 66
为什么要使用数组 66
一维数组 67
一维数组程序设计 69
5.2二维数组 77
二维数组的定义 77
二维数组元素的引用 77
二维数组程序设计 78
5.3字符数组和字符串类型 82
字符数组 82
字符串类型 83
字符数组和字符串程序设计 89
习题 90
第六章 过程与函数 92
6.1函数 92
函数的说明 92
函数的调用 93
函数程序设计 93
6.2过程 96
过程的说明 96
过程的调用 97
过程程序设计 97
带参过程 98
过程的调用 100
参数传递 100
6.3函数与过程 103
过程、函数的数据传递 103
全局变量、局部变量及它们的作用域 104
过程和函数的嵌套 105
子程序(模块化)结构的程序设计 107
6.4递归 110
递归概念 110
递归应用 110
习题 117
第七章 集合与记录类型及文件操作 119
7.1集合类型 119
集合类型的定义和变量的说明 119
集合的值 119
集合的运算 119
7.2记录类型 121
记录类型的定义 122
开域语句 123
7.3文件操作 126
习题 131
第八章 动态数据类型 132
8.1指针的定义及操作 132
8.2链表结构 135
8.3链表程序设计 140
习题 143
第二部分 基础算法 244
第一章 高精度计算 146
第二章 数据排序 154
第三章 递推算法 169
第四章 递归算法 180
第五章 搜索与回溯算法 191
第六章 贪治算法 223
第七章 分治算法 223
第八章 广度优先搜索 231
第九章 动态规划 244
9.1动态规划的基本模型 244
多阶段决策过程的最优化问题 244
动态规划的基本概念和基本模型构成 245
最优化原理与无后效性原则 246
动态规划设计方法的一般模式 246
9.2动态规划与递推 248
9.3历届NOIP动态规划试题 262
9.4背包问题 277
9.5动态规划应用举例 287
附录 311
附录一 编译错误对照表 311
附录二 运行错误对照表 316
附录三 Math库实用函数简介 318