logo资料库

FORTRAN完全自学手册.pdf

第1页 / 共407页
第2页 / 共407页
第3页 / 共407页
第4页 / 共407页
第5页 / 共407页
第6页 / 共407页
第7页 / 共407页
第8页 / 共407页
资料共407页,剩余部分请下载后查看
第1章 Fortran概述
1.1 Fortran起源
1.2 Windows下Fortran编译器使用
1.2.1 安装Compaq Visual Fortran
1.2.2 创建第一个Fortran工程
1.2.3 在Fortran工程中添加源代码
1.2.4 在Fortran工程中新建源文件
1.2.5 在Compaq Visual Fortran中编译源文件
1.3 Linux下常见Fortran编译器
1.4 常见编译器性能比较
1.5 常用编辑器
1.5.1 UltraEdit
1.5.2 ZionEdit
1.5.2 gEdit
1.6 第一个Fortran程序——Hello! Fortran 90/95
第2章 Fortran语法基础
第2章 Fortran语法基础
2.1 程序书写格式
2.1.1 固定格式(Fixed Format)
2.1.2 自由格式(Free Format)
2.1.3 兼顾两种格式的代码写法
2.2 字符集
2.3 空格的使用
2.4 注释格式
2.5 命名方式
2.6 程序单元和语句顺序
第3章 简单输入与输出
第3章 简单输入与输出
3.1 输入和输出概述
3.2 简单输出语句
3.2.1 PRINT语句的表控输出
3.2.2 WRITE语句的表控输出
3.2.3 表控输出的特点
3.3 简单输入语句
3.3.1 READ语句的表控输入形式一
3.3.2 READ语句的表控输入形式二
3.3.3 表控输入的特点
第4章 常量和变量
第4章 常量和变量
4.1 数值型常量及其类型
4.1.1 整型常量
4.1.2 实型常量
4.1.3 复型常量
4.1.4 常量的存储形式
4.1.5 符号常量
4.2 数值型变量及其类型
4.2.1 数值型变量概述
4.2.2 使用系统默认的隐含约定
4.2.3 使用类型说明语句声明
4.2.4 用隐含说明语句声明
4.2.5 数值型变量声明及其应用
4.3 字符型常量及变量
4.3.1 字符型变量概述
4.3.2 定义形式一
4.3.3 定义形式二
4.3.4 定义形式三
4.3.5 定义形式四
4.3.6 字符型变量声明及其应用
4.3.7 子字符串的概念
4.4 逻辑型常量及变量
4.5 变量的初始化
4.6 赋值语句
4.6.1 何为赋值
4.6.2 赋值过程的类型转换
第5章 种别和属性
第5章 种别和属性
5.1 种别概述
5.1.1 种别的概念
5.1.2 种别的使用
5.2 种别值和种别函数
5.2.1 整型数据的种别
5.2.2 实型数据的种别
5.2.3 复型数据的种别
5.2.4 逻辑型数据的种别
5.2.5 字符型数据的种别
5.2.6 种别函数
5.3 常数种别和进制
5.3.1 非字符型常数的种别说明
5.3.2 字符型常数的种别说明
5.3.3 数据的进制说明
5.4 属性说明
5.4.1 对象的属性
5.4.2 常用属性说明
第6章 常用内部过程
第6章 常用内部过程
6.1 内部过程概述
6.2 常用数学函数
6.2.1 绝对值函数
6.2.2 指数函数
6.2.3 正弦函数
6.2.4 余弦函数
6.2.5 反正弦函数
6.2.6 反余弦函数
6.2.7 正切函数
6.2.8 反正切函数
6.2.9 自然对数函数
6.2.10 常用对数函数
6.2.11 取整函数
6.2.12 求余函数
6.2.13 取符号函数
6.2.14 最大值函数
6.2.15 最小值函数
6.3 常用字符函数
6.3.1 字符与数值转换函数
6.3.2 字符串长度函数
6.3.3 子字符串位置索引函数
6.3.4 字符串验证函数
6.3.5 尾部空格除去函数
6.3.6 字符大小比较函数
6.4 常用系统过程
6.4.1 CPU时间函数
6.4.2 日期和时间函数
6.4.3 系统时间过程
6.4.4 随机数生成过程
第7章 运算符及表达式
第7章 运算符及表达式
7.1 算术运算
7.1.1 算术运算符及其优先级
7.1.2 算术表达式
7.1.3 算术表达式中的类型转换
7.1.4 算术运算的误差
7.2 关系运算
7.2.1 关系运算符
7.2.2 关系表达式
7.3 逻辑运算
7.3.1 逻辑运算符
7.3.2 逻辑表达式
7.3.3 逻辑表达式的运算秩序
7.4 字符运算
第8章 程序流程控制
第8章 程序流程控制
8.1 算法与流程
8.1.1 算法
8.1.2 传统流程图
8.1.3 基本程序结构
8.1.4 用伪代码表示算法
8.2 选择结构
8.2.1 判断语句IF和分支选择语句SELECT CASE
8.2.2 判断语句IF的基本用法
8.2.3 判断语句IF实现多重判断
8.2.4 IF语句的嵌套
8.2.5 IF语句的特殊用法
8.2.6 SELECT CASE语句的用法
8.2.7 SELECT CASE语句的应用
8.3 循环结构
8.3.1 基本的DO构造
8.3.2 无条件循环与DO语句
8.3.3 条件循环与DO构造
8.3.4 循环的署名
8.3.5 循环的嵌套
8.3.6 DO循环规则
8.3.7 隐式DO循环
8.4 循环的控制
8.4.1 EXIT语句
8.4.2 EXIT语句与条件循环
8.4.3 EXIT语句与无条件循环
8.4.4 CYCLE语句
8.5 再论GOTO语句
8.5.1 无条件GOTO语句
8.5.2 计算GOTO语句
8.5.3 赋值GOTO语句
8.5.4 用?还是不用?
8.6 程序结束、终止和暂停
8.6.1 程序结束(END)
8.6.2 程序终止(STOP)
8.6.3 程序暂停(PAUSE)
第9章 Fortran中的数组
第9章 Fortran中的数组
9.1 数组的定义
9.1.1 定义形式一
9.1.2 定义形式二
9.1.3 定义形式三
9.1.4 定义形式四
9.1.5 数组定义的特点
9.2 数组的引用方式
9.2.1 引用数组元素
9.2.2 引用数组整体
9.2.3 引用数组片断
9.3 数组的存储
9.3.1 数组的存储结构
9.3.2 数组存储结构的应用
9.4 数组的类型
9.4.1 显形数组
9.4.2 特殊的显形数组——自动数组
9.4.3 特殊的显形数组——可调数组
9.4.4 显形数组的不足
9.4.5 假定形状数组
9.4.6 假定大小数组
9.4.7 延迟形状数组
9.5 数组的动态分配
9.5.1 自动数组与可分配数组
9.5.2 可分配数组的分配与释放
9.5.3 可分配数组的应用实例
9.6 数组赋值
9.6.1 数组赋值语句
9.6.2 数组构造器
9.6.3 DATA语句
9.7 数组的输入输出
9.7.1 一维数组的输入输出
9.7.2 二维数组的输入输出
9.7.3 其它高维数组的输入输出
9.8 数组的运算
9.8.1 算术运算
9.8.2 逻辑运算
9.8.3 关系运算
9.9 常用内在函数
9.9.1 内部基本函数
9.9.2 矩阵乘积函数
9.9.3 向量点乘函数
9.9.4 元素求和函数
9.9.5 元素连乘求积函数
9.9.6 数组大小查询函数
9.9.7 数组形状查询函数
9.9.8 数组合并函数
9.9.9 数组压缩函数:
9.9.10 数组形状扩展和重构形函数
9.9.11 数组转置函数
9.9.12 去端移动函数
9.9.13 循环替换函数
9.9.14 最大值元素定位函数
9.10 Fortran90/95的数组操作语句
9.10.1 WHERE语句和WHERE构造
9.10.2 FORALL语句
第10章 Fortran程序单元
第10章 Fortran程序单元
10.1 主程序
10.2 语句函数
10.2.1 语句函数的定义
10.2.2 语句函数的引用
10.3 函数子程序
10.3.1 定义函数子程序
10.3.2 调用函数子程序
10.3.3 函数子程序示例——进制转换
10.3.4 函数子程序示例——分形
10.4 子例行子程序
10.4.1 定义子例行子程序
10.4.2 子例行子程序示例
10.5 子程序的多入口点和多折返点
10.5.1 ENTRY语句与多入口点
10.5.2 子程序的多折返点
10.6 Fortran 90/95中的特殊子程序类型
10.6.1 RECURSIVE属性
10.6.2 PURE属性
10.6.3 ELEMENTAL属性
10.7 数据块程序单元
10.7.1 定义数据块子程序
10.7.2 使用数据块子程序
10.7.3 数据块子程序示例
10.8 子程序的参数
10.8.1 参数传递规则
10.8.2 子程序的接口
10.8.3 接口块使用情况
10.8.4 INTENT属性应用
10.8.5 关键字变元
10.8.6 可选择变元与OPTIONAL属性
10.8.7 哑元改名
10.8.8 INTRINSIC属性
10.8.9 数组作为参数
10.8.10 过程作为参数
10.9 局部变量和SAVE属性
10.9.1 变量的作用范围
10.9.2 SAVE属性
第11章 高级输出与输入
第11章 高级输出与输入
11.1 输入输出语句的格式化设置
11.2 输入输出语句与格式语句
11.2.1 WRITE语句引用格式说明语句
11.2.2 PRINT语句引用格式说明语句
11.2.3 READ语句引用格式说明语句
11.2.4 第一个输入输出综合应用
11.3 格式编辑符概述
11.4 数据格式编辑符
11.4.1 I编辑符
11.4.2 F编辑符
11.4.3 E编辑符
11.4.4 D编辑符
11.4.5 A编辑符
11.4.6 L编辑符
11.4.7 G编辑符
11.4.8 B、O、Z编辑符
11.4.9 EN、ES编辑符
11.5 控制格式编辑描述符
11.5.1 X编辑符
11.5.2 纵向走纸控制符
11.5.3 斜杠编辑符
11.5.4 T,TL和TR编辑符
11.5.5 冒号编辑符
11.5.6 P编辑符
11.5.7 SP,SS,S编辑符
11.5.8 BN,BZ编辑符
11.6 字符串编辑描述符
11.6.1 撇号编辑符
11.6.2 H编辑符
11.7 编译器扩展的格式编辑描述符
11.7.1 反斜杠“\”编辑符和美元“$”编辑符
11.7.2 可变格式编辑符
11.8 I/O列表
11.8.1 NAMELIST语句
11.8.2 I/O列表实体
第12章 文件操作
第12章 文件操作
12.1 文件与逻辑设备
12.1.1 逻辑设备
12.1.2 外部文件
12.1.3 内部文件
12.2 外部文件分类
12.2.1 有格式文件
12.2.2 无格式文件
12.2.3 编译器支持的二进制文件
12.2.4 顺序存取文件
12.2.5 直接存取文件
12.3 文件操作语句
12.3.1 操作语句概述
12.3.2 OPEN语句
12.3.3 CLOSE语句
12.3.4 OPEN语句和CLOSE语句示例
12.3.5 READ和WRITE语句
12.3.6 REWIND语句
12.3.7 BACKSPACE语句
12.3.8 ENDFILE语句
12.3.9 INQUIRE语句
12.4 文件存取
12.4.1 文件的构成——记录
12.4.2 记录的组合
12.5 有格式顺序存取文件
12.5.1 有格式顺序存取文件的创建
12.5.2 有格式顺序存取文件的查询
12.6 有格式直接存取文件
12.6.1 简单有格式直接存取文件的建立
12.6.2 复杂有格式直接存取文件的建立
12.6.3 有格式直接存取文件的查询
12.7 无格式顺序存取文件
12.8 无格式直接存取文件
12.8.1 无格式直接存取文件的创建
12.8.2 无格式直接存取文件与同类有格式文件的区别
12.9 二进制顺序存取文件
12.9.1 二进制文件的创建
12.9.2 二进制顺序存储文件的查询
12.10 二进制直接存取文件
12.10.1 二进制直接存取文件的创建
12.10.2 二进制直接存取文件的读取
12.11 硬件设备的使用
第13章 Fortran指针
第13章 Fortran指针
13.1 指针的基本概念
13.1.1 定义指针
13.1.2 定义指针范例
13.2 指针的基本应用
13.2.1 指针的基本用途
13.2.2 指针与变量的关系
13.2.3 动态分配和释放指针空间
13.2.4 指针状态的查询和更改
13.2.5 指针分享存储空间
13.3 指针与数组
13.3.1 指针指向数组
13.3.2 动态分配指针数组
13.4 指针与过程
13.4.1 指针与过程的示例
13.4.2 在指针与过程中使用模块
13.5 指针的简单应用
13.6 指针与链表概述
13.7 单向链表
13.7.1 单向链表的基本概念
13.7.2 节点的定义
13.7.3 节点的引用
13.7.4 链表的建立
13.8 双向链表和环状链表
13.8.1 双向链表的建立
13.8.2 环状链表的建立
13.9 链表的基本操作
13.9.1 插入及删除操作
13.9.2 插入及删除操作实例
13.9.3 链表空间的释放
13.9.4 遍历、查找及更新
第14章 基本数值算法举例
第14章 基本数值算法举例
14.1 常用数值积分算法
14.1.1 矩形法
14.1.2 梯形法
14.1.3 Simpson法
14.1.4 数值积分计算子程序的应用
14.2 简单线性代数问题
14.2.1 Gauss消去法求解线性方程组
14.2.2 Gauss Jordan消去法求解线性方程组
14.3 非线性函数求解
14.3.1 迭代法
14.3.2 牛顿迭代法
14.3.3 二分法
14.3.4 弦截法
14.3.5 非线性函数求解子程序的应用
14.4 常微分方程的基本解法
14.5 插值与拟合
14.5.1 拉格朗日多项式插值方法
14.5.2 牛顿前向插值方法
第15章 文件处理举例
第15章 文件处理举例
15.1 临时文件的应用
15.1.1 主程序
15.1.2 随机数生成子程序
15.1.3 素数挑选和文件重写子程序
15.1.4 素数判断子程序
15.2 多个文件的处理
第16章 搜索与排序
第16章 搜索与排序
16.1 搜索算法
16.1.1 顺序搜索
16.1.2 二分搜索
16.1.3 散列搜索
16.2 排序算法
16.2.1 冒泡法
16.2.2 选择排序法
16.2.3 快速排序法
第17章 Fortran与其他语言
第17章 Fortran与其他语言
17.1 Fortran与MATLAB
17.1.1 系统配置
17.1.2 MEX文件的编写
17.1.3 MEX文件调用MATAB
17.1.4 Fortran调用MATLAB
17.2 Fortran与VB
17.2.1 供VB调用的Fortran源代码
17.2.2 VB中的管理代码
17.2.3 程序的运行说明
第1章 Fortran概述 • 作为一门诞生于上个世纪50年代后半期的高级计 算机语言,Fortran在这个C/C++、Java等新兴语 言大行其道的时代仍然活跃在人们的视野之中。 Fortran语言的长项在于数值计算,在科学研究和 工程设计领域有着广泛的用途。在描述数学语言 的自然性方面,Fortran同现存的其他高级语言相 比有着明显的优势。对于科研工作者和工程技术 人员而言,Fortran语言的易学性和易用性是公认 的。
1.1 Fortran起源 • Fortran是英语中“公式(Formula)”和“翻译(Translation)” 两个单词取前几个字母的缩写形式,意即“公式翻译”。Fortran 主要面向科学研究、工程设计或企事业管理中经常遇到的能够用 数学公式表达的数值计算问题。因为可以像抄写教科书里的公式 一样书写数学表达式,它比用英文书写的自然语言更接近数学语 言。这使得Fortran在科研工作者和工程技术人员中拥有庞大的使 用人群。Fortran语言是第一个被正式推广的高级计算机语言。在 四十多年的发展历程中,它始终是数值计算领域所使用的主要语 言。本小节主要介绍Fortran的起源。 • 第一代Fortran语言是在1954年提出来的,称为Fortran I。它于 1957年在IBM 704计算机上得以实现。其开发者巴科斯的目标是开 发一种容易理解、简单易学又几乎能像汇编语言一样高效运行的 计算机语言,他和他的团队在这一点上取得了极大的成功。但是 这一计划在最初阶段并不被人们看好,这其中包括巴克斯的上司 冯·诺依曼。
1.2 Windows下Fortran编译器使用 • 由于Windows操作系统有着庞大的用户群体,因此Windows系统下 • 的编译器开发非常活跃。目前市场上常见的Fortran编译器包括 Visual Fortran系列、Salford的FTN系列、G95/gFortran的 Windows版本、Absoft公司的Absoft Fortran,Macrovision公司 的PGI Visual Fortran等。这其中,影响较大、功能较全、性能 较好、应用最广泛的Fortran编译器提供了集成开发环境的Visual Fortran系列。 Visual Fortran系列编译器起源于微软公司开发的Fortran Power Station 4.0编译系统。该系统结合了当时微软最新开发的 Develop Studio集成开发环境(IDE),使得Fortran程序的开发 方式跟上了时代的潮流。但是该编译系统在实际使用中出现的问 题较多,例如没有严格的数组越界检查功能等。这套工具随后被 卖给了数字设备(DEC)公司继续开发,随后产生了一个曾经非常 流行的Fortran编译器系统。
1.2.1 安装Compaq Visual Fortran • Compaq Visual Fortran的安装过程比较简单。用 户将安装光盘放入CD-ROM后,计算机会自动运行 光盘中的安装程序。 安装欢迎界面 【Select Folder】对话框
1.2.2 创建第一个Fortran工程 • Compaq Visual Fortran的图形用户界面直接使用 了微软公司的Develop Studio 6.0集成开发环 境,极大地方便了程序的编写、调试和修改。在 图形界面下,编写、调试一个Fortran程序首先需 要创建一个Developer Studio工程。
1.2.3 在Fortran工程中添加源代码 • 完成工程的基本设置之后,就可以向Fortran工程 添加用户编写的源代码了。向Fortran工程中添加 源代码可以参照下面的步骤来进行操作。
1.2.4 在Fortran工程中新建源文件 • 除了添加已有的源代码来对工程进行填充外,还 可以在工程中创建新的源代码文件。在工程中创 建新的源代码文件有两种方式可供选择。下面的 图示演示了第一种操作方法。
1.2.5 在Compaq Visual Fortran中编译源文件 • 在Compaq Visual Fortran中有两种编译模式可供 选择:一种是Debug模式(编译出来的程序姑且称 作调试版本);另一种是Release模式(编译出来 的程序姑且称作发行版本)。同一个源代码经过 这两种编译模式编译出来的程序在执行效率和文 件大小上都有很大区别: • 编译程序在Debug模式下会向生成的可执行文件写 入很多调试信息和控制语句,因此编译出来的可 执行文件“个头大”、“跑得慢”。 • 在Release模式下,编译程序只会将源代码中的有 效语句编译成可执行文件,因此编译出来的可执 行文件“个头小”、“跑得快”。
分享到:
收藏