第1章 计算思维与程序设计 1
1.1 什么是计算 1
1.1.1 计算机的硬件 1
1.1.2 计算 2
1.1.3 计算机的软件 3
1.1.4 计算科学 3
1.2 什么是计算思维 4
1.2.1 计算思维的基本原则 4
1.2.2 计算思维的基本应用 5
1.2.3 计算思维在日常生活中的体现 6
1.3 计算机语言 7
1.3.1 机器语言 7
1.3.2 汇编语言 8
1.3.3 高级语言 8
1.4 算法 10
1.4.1 算法的特征 10
1.4.2 算法评价指标 11
1.4.3 算法的表示 11
1.5 程序设计 15
1.5.1 程序设计步骤 15
1.5.2 程序设计方法 16
习题1 17
第2章 FORTRAN95概述 18
2.1 FORTRAN语言发展概况 18
2.2 FORTRAN95语言的特点 19
2.3 简单的FORTRAN95程序分析 20
2.4 FORTRAN95编译环境与上机步骤 23
2.4.1 Compaq Visual Fortran 6.5的安装与启动 23
2.4.2 上机步骤 24
习题2 34
第3章 FORTRAN95程序设计初步 35
3.1 FORTRAN95的字符集、标识符和关键字 35
3.1.1 字符集 35
3.1.2 标识符 35
3.1.3 关键字 36
3.2 FORTRAN95程序的书写格式 36
3.2.1 固定格式 36
3.2.2 自由格式 37
3.3 FORTRAN95的数据类型 37
3.3.1 数值型数据的表示及存储 37
3.3.2 非数值型数据的表示及存储 38
3.4 常量和变量 39
3.4.1 常量 39
3.4.2 变量 44
3.5 FORTRAN95的算术运算符与算术表达式 48
3.5.1 算术运算符 48
3.5.2 算术表达式 49
3.6 FORTRAN95标准函数 51
习题3 53
第4章 顺序结构程序设计 55
4.1 赋值语句 56
4.1.1 赋值语句的性质和作用 56
4.1.2 执行算术赋值语句时的类型转换问题 57
4.1.3 字符赋值语句和字符运算符 58
4.2 简单的输出语句 59
4.2.1 输出语句的作用和分类 59
4.2.2 表控输出语句 59
4.3 简单的输入语句 60
4.3.1 输入语句的作用和分类 60
4.3.2 表控输入语句 61
4.4 END语句、STOP语句和PAUSE语句 63
4.4.1 END语句 63
4.4.2 STOP语句 63
4.4.3 PAUSE语句 63
4.5 程序举例 64
习题4 66
第5章 选择结构程序设计 68
5.1 选择结构中的条件准备 68
5.1.1 关系运算符和关系表达式 68
5.1.2 逻辑运算符和逻辑表达式 70
5.2 逻辑IF语句 72
5.3 块IF结构 73
5.3.1 单分支块IF结构 73
5.3.2 双分支选择块IF结构 74
5.3.3 多分支块IF结构 75
5.4 块IF结构的嵌套 77
5.5 块CASE结构 78
5.6 程序举例 80
习题5 85
第6章 循环结构程序设计 88
6.1 用DO语句实现循环结构 88
6.1.1 循环语句(DO语句)和循环次数的计算 89
6.1.2 DO循环的执行过程 92
6.1.3 DO循环的一些说明 96
6.1.4 DO循环结构的嵌套 98
6.1.5 隐含DO循环结构 103
6.2 DO WHILE循环结构 106
6.2.1 DO WHILE循环的组成 106
6.2.2 DO WHILE循环的执行过程 107
6.3 循环的流程控制 109
6.3.1 EXIT语句 109
6.3.2 CYCLE语句 110
6.4 几种循环形式的关系和比较 110
6.5 程序举例 112
习题6 115
第7章 格式输入和输出 117
7.1 格式输出 117
7.1.1 I编辑符 117
7.1.2 F编辑符 119
7.1.3 E编辑符 120
7.1.4 D编辑符 122
7.1.5 L编辑符 122
7.1.6 A编辑符 123
7.1.7 撇号编辑符 123
7.1.8 X编辑符 124
7.1.9 斜杠编辑符 125
7.1.10 重复系数 125
7.1.11 WRITE(PRINT)语句与FORMAT语句的相互作用 125
7.2 格式输入 128
7.2.1 格式输入的一般形式 128
7.2.2 整数的输入 128
7.2.3 实数、复数和双精度数的输入 129
7.2.4 逻辑型数据的输入 130
7.2.5 字符型数据的输入 131
7.2.6 对格式输入的说明 132
7.3 在输入输出语句中包含格式说明 133
习题7 134
第8章 数组 136
8.1 数组的概念 138
8.2 数组的说明 139
8.2.1 用DIMENSION语句定义数组 139
8.2.2 用类型说明语句定义数组 140
8.2.3 同时使用类型说明符和DIMENSION语句定义数组 140
8.3 给数组赋初值 140
8.3.1 使用数组赋值符赋初值 140
8.3.2 用DATA语句给数组赋初值 141
8.4 对数组的操作 142
8.4.1 对数组元素的操作 142
8.4.2 数组的整体操作 143
8.4.3 数组局部引用 143
8.4.4 WHERE命令 144
8.4.5 FORALL命令 145
8.5 数组的存储规则 146
8.5.1 一维数组的存储规则 146
8.5.2 二维数组的存储规则 147
8.5.3 三维数组的存储规则 147
8.6 数组的输入和输出 148
8.6.1 用DO循环结构输入输出数组 148
8.6.2 用数组名作为输入输出项 150
8.6.3 用隐含DO循环输入输出数组 151
8.7 动态数组 153
8.8 数组应用举例 154
8.8.1 一维数组程序举例 155
8.8.2 二维数组程序举例 163
习题8 167
第9章 函数与子程序 169
9.1 概述 169
9.1.1 子程序产生的原因 169
9.1.2 FORTRAN子程序 176
9.2 语句函数 178
9.2.1 语句函数的定义 180
9.2.2 语句函数的调用 182
9.2.3 语句函数应用举例 183
9.3 函数子程序 185
9.3.1 函数子程序的定义 186
9.3.2 函数子程序的调用 187
9.4 子例行子程序 189
9.4.1 子例行子程序的定义 190
9.4.2 子例行子程序的调用 190
9.5 程序单元之间的数据传递:虚实结合 192
9.5.1 简单变量作为虚参时的虚实结合 193
9.5.2 数组作为虚参时的虚实结合 195
9.5.3 子程序名作为虚参时的虚实结合 199
9.5.4 星号(*)作为虚参 200
9.5.5 子程序中变量的生存周期 200
9.6 特殊的子程序类型 201
9.6.1 递归子程序 201
9.6.2 内部子程序 207
9.7 数据共用存储单元与数据块子程序 208
9.7.1 等价语句 208
9.7.2 公用语句 211
9.7.3 数据块子程序 215
习题9 217
第10章 文件 220
10.1 文件的基本概念 220
10.1.1 记录 220
10.1.2 文件的概念 221
10.1.3 文件的特性 221
10.1.4 文件的定位 222
10.2 文件的操作语句 223
10.2.1 文件的打开与关闭 223
10.2.2 文件的输入(read)语句和输出(wirte)语句 226
10.2.3 查询文件的状态(inquire)语句 227
10.2.4 rewind语句 228
10.2.5 backspace语句 228
10.2.6 endfile语句 229
10.3 有格式文件的存取 229
10.3.1 有格式顺序文件存取 229
10.3.2 有格式直接文件存取 230
10.4 无格式文件的存取 232
10.4.1 无格式顺序文件存取 232
10.4.2 无格式直接文件存取 233
10.5 二进制文件的存取 234
10.5.1 二进制顺序文件存取 234
10.5.2 二进制直接文件存取 235
习题10 236
第11章 派生数据类型与结构体 238
11.1 概述 238
11.2 派生类型定义 240
11.3 结构体的定义与引用 241
11.3.1 结构体定义 241
11.3.2 结构体成员引用 242
11.4 结构体初始化 242
11.4.1 用赋值语句给结构体成员赋值 242
11.4.2 定义的同时给结构体成员赋值 243
11.5 结构体数组 244
11.5.1 结构体数组定义 244
11.5.2 结构体数组初始化 245
11.6 程序举例 245
习题11 254
第12章 指针 256
12.1 指针的概念 256
12.2 指针的定义与使用 257
12.3 指针的使用 258
12.3.1 指向一般变量的应用 258
12.3.2 指向动态存储空间 260
12.4 指针与数组 262
12.4.1 指针指向其他数组 262
12.4.2 指针指向动态配置的内存空间 264
12.5 指针与链表 266
12.5.1 结点的定义 266
12.5.2 链表的基本操作 267
12.5.3 综合实例 273
习题12 277
第13章 模块、接口与重载 279
13.1 模块的定义 280
13.2 USE语句 281
13.3 接口界面块 285
13.4 重载 287
13.4.1 函数和子例行程序的重载 287
13.4.2 赋值号重载 291
13.4.3 操作符重载 292
13.5 应用举例 293
习题13 299
第14章 常用数值算法 300
14.1 求解一元方程 300
14.1.1 二分法 300
14.1.2 弦截法 302
14.1.3 迭代法 303
14.1.4 牛顿迭代法 305
14.2 数值积分 307
14.2.1 矩形法 307
14.2.2 梯形法 308
14.2.3 辛普生法 311
14.3 线性代数 314
14.3.1 矩阵的加、减、乘法运算 314
14.3.2 三角矩阵 316
14.3.3 Gauss-Jordan法求联立方程组 318
14.4 求解常微分方程 320
习题14 322
附录A ASCII码字符编码表 324
附录B FORTRAN库函数 328
参考文献 336