Fortran复习
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个Read命令,可一次读入多个变量的数值:
z Read(*,*) a,b,c z 输入数据之间,可用逗号、空格和回车隔开。
读入字符串,可能出现的问题: ¾ 字符串中含逗号、空格,如以默认格式读入,则
读入不完整。 ¾ 解决方案:不使用默认格式,自定义读入格式。
4 格式化输入输出(FORMAT)
! Fortran 90 添加
¾real*8 a
! Fortran 77 传统方法
字符及字符串(CHARACTER)
赋值方法: ① = 设置:
② 改变字符串的一部分内容
③ 两个至多个字符串的合并(//)
3 输入命令(READ)
输入格式和输出格式的命令,是通用的 程序中的变量赋值方法:
¾程序代码设定(=,data) ¾使用Read:键盘输入、数据文件读入
《Fortran程序设计》考核
¾成绩考核:
期末理论闭卷考试(70%)+ 上机考试(20%)+ 平时作业(10%)
期末考试题型结构
1. 单选 15 X 2 = 30分 2. 填空 20 X 1 = 20分 3. 读程序写结果4 X 5 = 20分 4. 编写程序2 X 15 =30分
目录
第1章 计算机概论 第2章 编译器的使用 第3章 Fortran程序设计基础 第4章 输入输出及声明 第5章 流程控制与逻辑运算 第6章 循 环 第7章 数组(ARRAY) 第8章 函 数
代码编写区 不使用区,编译会忽略或出错
2.2 自由格式(Free Format)
1)代码编写区:每行可编写132个字符 2)注释符 !:叹号!后面的文本都是注释 3)行号:放在每行程序的最前面 4)连接符&:连接前后的这两行的程序代码
&位于一行程序代码的行首或行尾
3 Fortran的数据类型
(也译为:对-错, 真-假) 不同类型的数据必需经过转换才能互通互用 因为使用不同方法来存储,可用BITVIEWER查看二进制码。
4 Fortran的数学表达式
数学运算符号优先级(上高下低排序)
¾( ) 括号(表示括号起来的部分优先计算)
¾ ** 乘幂(两星号要连续)
¾ * 乘法 / 除法
¾ + 加法 - 减法
Read 基本功能的写法: z 最严谨写法:Read(unit=5,fmt=*) a
¾Unit=* 或5 :代表使用键盘输入 ¾Unit=3:代表从通道为3的文件中读入数据 ¾Fmt=*:代表默认读入格式 ¾Fmt=100 :代表以行号100的format格式读入
z简写: Read(3,100) a
5 声明的其他事项
5.1 IMPLICIT命令
① FORTRAN标准的“默认类型” : 变量可不经过声明使用,编译器根据变量名称
的第一个字母来自动决定这个变量的类型: 第1个字母为I、J、K、L、M、N的变量,被视
为整数类型;其他字母打头被认为是浮点数。
② IMPLICIT 命令:自定义设置“默认类型
Visual Fortran虽使用windows的接口,但是Compiler仍使 用命令列格式,键入FL32或DF就执行Compiler 。
3.链接器(Link)
¾ 把Compiler所生成的目的文件(*.OBJ)链接成执 行文件(*.EXE)、或是链接库(*.LIB、*.DLL)。
¾ 链接目的文件,生成执行文件的优点:
① 固定格式(Fixed Format)如: [ex0301.for]
Fortran77的旧式写法,编写格式有很多限制 往往以.for , .f 为扩展名
② 自由格式(Free Format)如:[ex0302.f90]
Fortran90后的新写法,取消很多的旧限制。 往往以.f90, .f95为扩展名
第五章知识点
1 IF语句
功能:能够在程序执行当中自动选择转向、 跳过某些程序模块来执行程序代码。
2.编译器(Compiler)
编译器:把程序代码转换成目的文件(*.OBJ)或执行文件〔*.EXE) 的工具。 它有很多编译选项,不同设置,编译出不同的机器码。
最常见的两种编译格式(Windows):
―– Debug调试功能强,但编译文件执行效率较差。(适合调试阶段) ―– ReIease编译文件的执行效率好。(适合执行阶段)
A~Z 及 a~z (英文字母大小写不区分)
0~9
+加号 - 减号 *星号 /斜线 =等号 .小数点 (左括号 ) 右括号 <小于 > 大于 :冒号 ” 引号 ’单引号?问号 ,逗号 ;分号 !叹号 $ 货币符号 &英语and % 百分号 _下划线 空格
2. 书面格式
Fortran程序编写格式有两种:
在声明的同时,赋初值
5.3 设置变量的初值 DATA命令,赋初值 (F77)
代码执行中, 赋初值 ¾读入、= 赋值
5.4 声明在程序中的结构
声明的位置:必须放在程序代码的可执行描述之前,在 Program 或implicit 之后。 多个常量和变量的声明:必需连续成一个模块,并在程序 最前面完成。 DATA的位置:习惯上常紧接在声明部分的后面
2
第9章 文 件 第10章 MODULE及面向对象
第一、二章知识点
1.计算机语言
低级语言:(机器语言、汇编语言),代码不直观,使用难 度高,不同CPU有不同汇编语言,移植性不够好 高级语言:编写直观,可读性较高,和人类语言相近。程序 员可用较抽象、与机器无关的方法来解决问题
常见的高级语言:
• Fortran(F77,F90,F95) • C 、 C++、VB(Basic)、Java…..
声明的方法(一个整型变量):
¾Integer a ¾Integer : : a ¾Integer (kind=4) a ¾INTEGER*4 b ¾INTEGER(4) c
! Fortran 77 默认长整型 ! Fortran 90添加 ! Fortran 90添加
! Fortran 77传统写法 ! Fortran 77传统写法
6 Fortran 90的自定义数据类型
自定义数据类型:自由组合一些基本的数据类型(整数、 浮点数和字符型),创造出一个更复杂类型组合的功能 “TYPE”。 例:应用TYPE,建立一个记录人信息的变量A为例:
z变量A的各个元素赋值:
¾键盘输入: ex0434.f90
¾赋值语句:
A=person(“Peter”,20,170,60,“Taipei,Taiwan”)
输出格式,输出到通道为10 的文件。)
z文件对应的通道由open 语句设置,参见P233 EX0901.f90 zformat语句行号和格式可自定义,参见P49 EX0402.f90
① 每执行一次WRITE,会自动换到下一行 ② 输出字符串需用英文的双引号或单引号(f77)封装 ③ 输出双引号,则连续使用两个双引号 ④ PRINT与WRITE的比较:
把大程序拆解成许多小文件来编写,使程序设计模块化, 不仅节约程序编译调试时间,也利于程序发展和升级。 不同语言程序代码所生成的OBJ文件链接成一个执行文件, 利于不同语言的综合应用。
第三章知识点
1 . 字符集
“字符集”:编写Fortran程序所能使用的所有字符及符号。
字符集有
英文26个字母 数字 22个特殊符号
cos(x) sin(x) tan(x)
arcos(x) arsin(x) artan(x) ex ln(x) (以e为底对数) lg(x) (以10为底对数)
x (x的平方根)
备注
反三角函数
x为弧度
x
—2π
=
Ѳ 3—60
为防计算溢出, 应确保x为正
第四章知识点
1.输出命令WRITE的基本用法
最严谨的写法: write (UNIT=6,FMT=*) “String”
Write 和Read使用格式format的写法相同。
format格式语句的两种写法:
¾完整写法、简写(程序简洁清楚,不适合复杂、重复格式)
最常用格式符:
Aw
BN
GSw.d[Ee] Iw[.m]
I、F、E、A、X 、/
Dw.d
Lw
Hale Waihona Puke Baidu
ENw.d[Ee]
nX
Fw.d
输出格式的编写技巧
1.重复格式的简洁表示方法: 2.字符串可直接写在格式设置中 3.通过字符串设置,动态改变输出格式 4.用“,”隔开不同格式控制符 5.print 与write的输出格式类似 6. 读入格式和输出格式命令,是通用的。
¾ IMPLICIT命令必须放在PROGRAM的下一行
③ IMPLICIT NONE 命令: 关闭默认类型功能,所
有变量都要事先声明
5.2 常数的声明方法
常数:程序中有些数据是永远固定、不会改 变的数(如:圆周率pi 、重力加速度g……等) 声明为常数的意义: ¾避免由于常数数值被更改产生的错误。 ¾可提高程序执行速度 常数的声明可和类型声明合在一起: ¾Fortran 90 的功能 parameter
– UNIT:输出位置(当该值为6和*时,输出到默认位置:屏幕;其他为 输出到文件)(完整功能参见P236) – FMT:输出格式(当该值为*时, 输出默认格式)
简写: – write (*,*) “String” (以默认格式输出屏幕) – write (10,200) “String”(以行号200的format
单精度的声明方法:(有效位数7位)
¾real a
! Fortran 77 默认
¾real (kind=4) a
! Fortran 90添加
¾real*4 a
! Fortran 77传统写法
¾real(4) a
! Fortran 77传统写法
双精度的声明方法:(有效位数15位)
¾real (kind=8) a
复数分为单精度复数和双精度复数两种。
3 Fortran的数据类型
5 种 数据类型(记录文本、数值的方法) 4. 字符型(CHARACTER)
可记录数字、文本或任何特殊符号 记录一连串字符时称“字符串” 5. 逻辑判断(LOGICAL) 只有两种逻辑结果:“是” TRUE 和 “否” FALSE
5 种 数据类型(记录文本、数值的方法):
1. 整数(INTEGER)
长整型:-231+1~231
短整型:-215+1
215
~
,( -32768
~
+32767)
2. 浮点数(REAL)
单精度:有效位数 6 ~ 7位,最大 ±3.4*1038,最小
±1.18*10-38
3.复数(COMPLEX) 复数由两个浮点数(a+bi)来表示的数值。
函数功能
x的绝对值 复数赋值(a实部,b虚部) 实数x取整(舍去小数部分) 把实数a转化成最接近的整数
取最大值 取最小值 取a/b的余数(a,b均为整数) 把整数i 转化成实数 把b的正负符号赋给a
5 Fortran的常用数学库函数
2. 常用的数学函数
函数原型
函数功能
COS (x) SIN (x) TAN (x) ACOS(r) ASIN(r) ATAN(r) EXP(x) LOG (x) LOG10 (x) SQRT(x)
2.1固定格式(Fixed Format)
规定了程序代码每—行中每个字段的意义
第1列 第1-5列 第6列 第7-72列 第73列以后
如果是字母C、c或星号*,这一行文本被 当成说明,不编译。(注解区)
如果是数字,代表这一行程序的代号。不 然只能是空格。(代号区)
如果是除0外的字符,表示这一行接上一 行。(续写区)
2 声明
声明:在程序代码中,向编译器要求预 留存放数据的内存空间。
声明变量的原则: ¾1.变量的名称:使用英文字母,可用下划线或数 字,但前缀必须是英文 ¾2.变量名称的长度:F77是1-6之间,Fortran90 是1-31之间。 ¾3.变量禁止同名:变量名不能和fortran执行命 令、主程序的名称和前面声明过的变量同名。 ¾4.变量不分大小写
数学表达式写法:
¾乘幂要连用两个星号**,如:
⇒ Y X
Y **X
¾乘号不能省略
⇒ ¾除法用/ (A+B)×(C+D) 2×(E+ F)
((A+ B)*(C + D))/(2*(E + F))
5 Fortran的常用数学库函数
1. 常用的数值运算函数
函数原型
ABS(x) CMPLX(a,b) INT(x) NINT(a) MAX(a,b,..) MIN( a,b,.. ) MOD( a,b ) REAL (i) SIGN (a,b)
z Read(*,*) a,b,c z 输入数据之间,可用逗号、空格和回车隔开。
读入字符串,可能出现的问题: ¾ 字符串中含逗号、空格,如以默认格式读入,则
读入不完整。 ¾ 解决方案:不使用默认格式,自定义读入格式。
4 格式化输入输出(FORMAT)
! Fortran 90 添加
¾real*8 a
! Fortran 77 传统方法
字符及字符串(CHARACTER)
赋值方法: ① = 设置:
② 改变字符串的一部分内容
③ 两个至多个字符串的合并(//)
3 输入命令(READ)
输入格式和输出格式的命令,是通用的 程序中的变量赋值方法:
¾程序代码设定(=,data) ¾使用Read:键盘输入、数据文件读入
《Fortran程序设计》考核
¾成绩考核:
期末理论闭卷考试(70%)+ 上机考试(20%)+ 平时作业(10%)
期末考试题型结构
1. 单选 15 X 2 = 30分 2. 填空 20 X 1 = 20分 3. 读程序写结果4 X 5 = 20分 4. 编写程序2 X 15 =30分
目录
第1章 计算机概论 第2章 编译器的使用 第3章 Fortran程序设计基础 第4章 输入输出及声明 第5章 流程控制与逻辑运算 第6章 循 环 第7章 数组(ARRAY) 第8章 函 数
代码编写区 不使用区,编译会忽略或出错
2.2 自由格式(Free Format)
1)代码编写区:每行可编写132个字符 2)注释符 !:叹号!后面的文本都是注释 3)行号:放在每行程序的最前面 4)连接符&:连接前后的这两行的程序代码
&位于一行程序代码的行首或行尾
3 Fortran的数据类型
(也译为:对-错, 真-假) 不同类型的数据必需经过转换才能互通互用 因为使用不同方法来存储,可用BITVIEWER查看二进制码。
4 Fortran的数学表达式
数学运算符号优先级(上高下低排序)
¾( ) 括号(表示括号起来的部分优先计算)
¾ ** 乘幂(两星号要连续)
¾ * 乘法 / 除法
¾ + 加法 - 减法
Read 基本功能的写法: z 最严谨写法:Read(unit=5,fmt=*) a
¾Unit=* 或5 :代表使用键盘输入 ¾Unit=3:代表从通道为3的文件中读入数据 ¾Fmt=*:代表默认读入格式 ¾Fmt=100 :代表以行号100的format格式读入
z简写: Read(3,100) a
5 声明的其他事项
5.1 IMPLICIT命令
① FORTRAN标准的“默认类型” : 变量可不经过声明使用,编译器根据变量名称
的第一个字母来自动决定这个变量的类型: 第1个字母为I、J、K、L、M、N的变量,被视
为整数类型;其他字母打头被认为是浮点数。
② IMPLICIT 命令:自定义设置“默认类型
Visual Fortran虽使用windows的接口,但是Compiler仍使 用命令列格式,键入FL32或DF就执行Compiler 。
3.链接器(Link)
¾ 把Compiler所生成的目的文件(*.OBJ)链接成执 行文件(*.EXE)、或是链接库(*.LIB、*.DLL)。
¾ 链接目的文件,生成执行文件的优点:
① 固定格式(Fixed Format)如: [ex0301.for]
Fortran77的旧式写法,编写格式有很多限制 往往以.for , .f 为扩展名
② 自由格式(Free Format)如:[ex0302.f90]
Fortran90后的新写法,取消很多的旧限制。 往往以.f90, .f95为扩展名
第五章知识点
1 IF语句
功能:能够在程序执行当中自动选择转向、 跳过某些程序模块来执行程序代码。
2.编译器(Compiler)
编译器:把程序代码转换成目的文件(*.OBJ)或执行文件〔*.EXE) 的工具。 它有很多编译选项,不同设置,编译出不同的机器码。
最常见的两种编译格式(Windows):
―– Debug调试功能强,但编译文件执行效率较差。(适合调试阶段) ―– ReIease编译文件的执行效率好。(适合执行阶段)
A~Z 及 a~z (英文字母大小写不区分)
0~9
+加号 - 减号 *星号 /斜线 =等号 .小数点 (左括号 ) 右括号 <小于 > 大于 :冒号 ” 引号 ’单引号?问号 ,逗号 ;分号 !叹号 $ 货币符号 &英语and % 百分号 _下划线 空格
2. 书面格式
Fortran程序编写格式有两种:
在声明的同时,赋初值
5.3 设置变量的初值 DATA命令,赋初值 (F77)
代码执行中, 赋初值 ¾读入、= 赋值
5.4 声明在程序中的结构
声明的位置:必须放在程序代码的可执行描述之前,在 Program 或implicit 之后。 多个常量和变量的声明:必需连续成一个模块,并在程序 最前面完成。 DATA的位置:习惯上常紧接在声明部分的后面
2
第9章 文 件 第10章 MODULE及面向对象
第一、二章知识点
1.计算机语言
低级语言:(机器语言、汇编语言),代码不直观,使用难 度高,不同CPU有不同汇编语言,移植性不够好 高级语言:编写直观,可读性较高,和人类语言相近。程序 员可用较抽象、与机器无关的方法来解决问题
常见的高级语言:
• Fortran(F77,F90,F95) • C 、 C++、VB(Basic)、Java…..
声明的方法(一个整型变量):
¾Integer a ¾Integer : : a ¾Integer (kind=4) a ¾INTEGER*4 b ¾INTEGER(4) c
! Fortran 77 默认长整型 ! Fortran 90添加 ! Fortran 90添加
! Fortran 77传统写法 ! Fortran 77传统写法
6 Fortran 90的自定义数据类型
自定义数据类型:自由组合一些基本的数据类型(整数、 浮点数和字符型),创造出一个更复杂类型组合的功能 “TYPE”。 例:应用TYPE,建立一个记录人信息的变量A为例:
z变量A的各个元素赋值:
¾键盘输入: ex0434.f90
¾赋值语句:
A=person(“Peter”,20,170,60,“Taipei,Taiwan”)
输出格式,输出到通道为10 的文件。)
z文件对应的通道由open 语句设置,参见P233 EX0901.f90 zformat语句行号和格式可自定义,参见P49 EX0402.f90
① 每执行一次WRITE,会自动换到下一行 ② 输出字符串需用英文的双引号或单引号(f77)封装 ③ 输出双引号,则连续使用两个双引号 ④ PRINT与WRITE的比较:
把大程序拆解成许多小文件来编写,使程序设计模块化, 不仅节约程序编译调试时间,也利于程序发展和升级。 不同语言程序代码所生成的OBJ文件链接成一个执行文件, 利于不同语言的综合应用。
第三章知识点
1 . 字符集
“字符集”:编写Fortran程序所能使用的所有字符及符号。
字符集有
英文26个字母 数字 22个特殊符号
cos(x) sin(x) tan(x)
arcos(x) arsin(x) artan(x) ex ln(x) (以e为底对数) lg(x) (以10为底对数)
x (x的平方根)
备注
反三角函数
x为弧度
x
—2π
=
Ѳ 3—60
为防计算溢出, 应确保x为正
第四章知识点
1.输出命令WRITE的基本用法
最严谨的写法: write (UNIT=6,FMT=*) “String”
Write 和Read使用格式format的写法相同。
format格式语句的两种写法:
¾完整写法、简写(程序简洁清楚,不适合复杂、重复格式)
最常用格式符:
Aw
BN
GSw.d[Ee] Iw[.m]
I、F、E、A、X 、/
Dw.d
Lw
Hale Waihona Puke Baidu
ENw.d[Ee]
nX
Fw.d
输出格式的编写技巧
1.重复格式的简洁表示方法: 2.字符串可直接写在格式设置中 3.通过字符串设置,动态改变输出格式 4.用“,”隔开不同格式控制符 5.print 与write的输出格式类似 6. 读入格式和输出格式命令,是通用的。
¾ IMPLICIT命令必须放在PROGRAM的下一行
③ IMPLICIT NONE 命令: 关闭默认类型功能,所
有变量都要事先声明
5.2 常数的声明方法
常数:程序中有些数据是永远固定、不会改 变的数(如:圆周率pi 、重力加速度g……等) 声明为常数的意义: ¾避免由于常数数值被更改产生的错误。 ¾可提高程序执行速度 常数的声明可和类型声明合在一起: ¾Fortran 90 的功能 parameter
– UNIT:输出位置(当该值为6和*时,输出到默认位置:屏幕;其他为 输出到文件)(完整功能参见P236) – FMT:输出格式(当该值为*时, 输出默认格式)
简写: – write (*,*) “String” (以默认格式输出屏幕) – write (10,200) “String”(以行号200的format
单精度的声明方法:(有效位数7位)
¾real a
! Fortran 77 默认
¾real (kind=4) a
! Fortran 90添加
¾real*4 a
! Fortran 77传统写法
¾real(4) a
! Fortran 77传统写法
双精度的声明方法:(有效位数15位)
¾real (kind=8) a
复数分为单精度复数和双精度复数两种。
3 Fortran的数据类型
5 种 数据类型(记录文本、数值的方法) 4. 字符型(CHARACTER)
可记录数字、文本或任何特殊符号 记录一连串字符时称“字符串” 5. 逻辑判断(LOGICAL) 只有两种逻辑结果:“是” TRUE 和 “否” FALSE
5 种 数据类型(记录文本、数值的方法):
1. 整数(INTEGER)
长整型:-231+1~231
短整型:-215+1
215
~
,( -32768
~
+32767)
2. 浮点数(REAL)
单精度:有效位数 6 ~ 7位,最大 ±3.4*1038,最小
±1.18*10-38
3.复数(COMPLEX) 复数由两个浮点数(a+bi)来表示的数值。
函数功能
x的绝对值 复数赋值(a实部,b虚部) 实数x取整(舍去小数部分) 把实数a转化成最接近的整数
取最大值 取最小值 取a/b的余数(a,b均为整数) 把整数i 转化成实数 把b的正负符号赋给a
5 Fortran的常用数学库函数
2. 常用的数学函数
函数原型
函数功能
COS (x) SIN (x) TAN (x) ACOS(r) ASIN(r) ATAN(r) EXP(x) LOG (x) LOG10 (x) SQRT(x)
2.1固定格式(Fixed Format)
规定了程序代码每—行中每个字段的意义
第1列 第1-5列 第6列 第7-72列 第73列以后
如果是字母C、c或星号*,这一行文本被 当成说明,不编译。(注解区)
如果是数字,代表这一行程序的代号。不 然只能是空格。(代号区)
如果是除0外的字符,表示这一行接上一 行。(续写区)
2 声明
声明:在程序代码中,向编译器要求预 留存放数据的内存空间。
声明变量的原则: ¾1.变量的名称:使用英文字母,可用下划线或数 字,但前缀必须是英文 ¾2.变量名称的长度:F77是1-6之间,Fortran90 是1-31之间。 ¾3.变量禁止同名:变量名不能和fortran执行命 令、主程序的名称和前面声明过的变量同名。 ¾4.变量不分大小写
数学表达式写法:
¾乘幂要连用两个星号**,如:
⇒ Y X
Y **X
¾乘号不能省略
⇒ ¾除法用/ (A+B)×(C+D) 2×(E+ F)
((A+ B)*(C + D))/(2*(E + F))
5 Fortran的常用数学库函数
1. 常用的数值运算函数
函数原型
ABS(x) CMPLX(a,b) INT(x) NINT(a) MAX(a,b,..) MIN( a,b,.. ) MOD( a,b ) REAL (i) SIGN (a,b)