FORTRAN第二章

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

合法。
下面四组实型数中,有错误的一组是( B )
2013-9-23
Fortran 常量(续)
4.字符型常量
14
字符型常量又叫字符串或字符常数,其缺省种别由一对单撇号或 一对双撇号之间的字符序列组成。 例如: "ABCD" ‘CHINA’ ‘4653374’ 字符型的类型说明符是关键字CHARACTER 5.逻辑型常量 逻辑型常量只有真(.TRUE.)和假(.FALSE.)两个值 逻辑型的类型说明符是关键字LOGICAL
一般是将关键字放在该句的最前面,待说明的变量放在 后面,中间用双分隔符::隔开.对于同时说明多个变量 时,各变量间用‚,”分隔。 Integer::I,J,K and Real::X,Y,Z 如Integer(kind=4) !Fortran 90 添加 integer*4 b !Fortran 77 传统写法 integer(4) c !Fortran 77 传统写法
2013-9-23
Fortran语言的数据类型
本章重点讨论 基本类型数据
整型 数值型 复型 单精度型 实型(浮点型) 双精度型 字符型 非数值型 逻辑型
4
基本类型
数据类型
构造类型 空类型 指针类型
数组类型 结构体类型(自定义数据类型)
2013-9-23
FORTRAN 运算符和算术表达式
1.算术运算符和运算优先级
program ex0411 complex (kind=4)a !单精度,Fortran90 添加 complex a,b complex::(kind=8)b !双精度,Fortran90 添加 屏幕显示: a=(1.0,1.0) complex *4 a !单精度,Fortran 77 传统 a+b= (2.000000,3.000000) b=(1.0,2.0) complex (4) a !单精度,Fortran 77 传统 a-b= (0.0000000E+00,-1.000000) write(*,*) "a+b=",a+b a*b= 双精度,Fortran 77 传统 complex *8 a ! (-1.000000,3.000000) write(*,*) "a-b=",a-b a/b= (0.6000000,-0.2000000) complex (8) a !双精度,Fortran 77 传统 write(*,*) 例: a=(1.0,2.0)"a*b=",a*b !a=1+2i write(*,*) "a/b=",a/b stop end
stop
end 运行结果:(屏幕显示) 1.000000 + 0.100000 =
write(*,*) a,"+",b,"=",a+b
stop end program ex0409
1.100000
= 100000.0 (wrong)
100000.000100000
运行结果:(屏幕显示) 100000.0 + 9.9999997E-05 运行结果:(屏幕显示)
Fortran 语言程序设计
第2章 Fortran 程序设计基础
数据类型、表达式及输入输出
2013-9-23
本章主要内容
2
2.1 2.2 2.3 2.4 2.5
ຫໍສະໝຸດ Baidu
Fortran语言的基本元素 赋值语句 常量与变量 简单输入输出语句 FORTRAN内部函数及举例
2013-9-23
2.1基本元素
1.FORTRAN字符集:
2013-9-23
a.bE c或 a.be c
Fortran 常量(续)
注意:指数不能为小数;E 左右两边的数字部分和指数部分必须同 时出现,指数部分不能单独用来代表一个常数。指数部分不能省略。
13
例如:3E5.6、8.6E-3.7、E12、12.3*E8、1.02E 均非法。 +12.3E+08、12.3E8、0.91E-30、3E5
2013-9-23
名字 (FORTRAN的标识符)
15
标识符是用来表示一个程序成分,变量、符号常量、函数、 程序单元、派生类型等对象的一组符号。
标识符的命名规则 (1) 名字的长度不能超过 31个字符。 (2) 由字母、数字、下划线组成。 (3) 名字的第一个字符必须为字母,特别注意名字中不能出现空格。 (4) 内部函数名、语句关键词等都可以用作标识符,但尽量不要用这 些作为标识符 SIN=3.0 (因为SIN是内部函数名,尽量不用) READ=10.5 (×)
2013-9-23
算术表达式要点(续)
一些正误比较
8
2013-9-23
表达式运算中的类型问题
1. FORTRAN 允许不同类型的算术量(包括整型、实 型、双精度、复型)间的算术运算,但不允许在算术量和 非算术量(如逻辑型、字符型)之间进行算术运算。 2.同类型的算术量之间运算的结果仍保持原类型,如 5/2=2、1/2=0。不同类型时,编译系统遵循‚低级转换成 高级‛(实型比整型高)原则将它们转换成同一类型,然 后进行运算。 类型的转换是从左而右进行的,在遇到不同类型的算 术量时才进行转换。如:1/4*20.0=0.0 (高)复型 例: 1/2*2=0 双精度型 实型 整型(低)
9
8/5+2.0*5/2=6.0(逐步转化)
2013-9-23
2.2 赋值语句
1. 格式:变量名=表达式 (“=”为赋值号)
10
2. 作用:将表达式的值赋给一个变量(或数组元素 等),即先计算赋值号右边表达式的值,然 后将该表达式的值赋给赋值号左边的变量。
注意:赋值号‚=”与数学中的等号,形式相同, 但意义不同,例如: N=N+1 在数学中,是错误的,但在FORTRAN程序中,它却 是一个合法的赋值语句,它的语义是把变量N的旧 值取出来,加上1,然后再送到变量N的存储单元 中。重复执行上述语句,这是一个基本算法,叫 计数法。
4**3**2,先计算3**2, 再进行4**9的运算。 -A 相当于 0-A; -A**2相当于 0-A**2 即 -(A**2), not(-A)**2。
6
2013-9-23
算术表达式要点(续)
(6)所有系统函数的参数(自变量)都必须写在函数后的 一 对括号中
1 sin 6 x 2.1log x
数据类型说明符
例如:
声明使用 整型态数
变量列表;
a
a是自己取的名字,在程序中以 这个名字表示一块存放整数的空 间,称为变量
2013-9-23
integer
Fortran 变量(续)
Fortran90变量的基本类型与常量一样也有五种,即整 型变量、实型变量、复型变量、逻辑型变量和字符型 变量。 Fortran中的五种变量的类型说明关键字是: 说明整型变量的关键字:Integer 说明实型变量的关键字:Real 说明复型变量的关键字:Complex 说明逻辑型变量的关键字:Logical 说明字符型变量的关键字:Character
(1)由于用“/”号作为除号,因此在写除法运算式子应加 上必要的括号。两整数相除,结果为整数,不会进行四舍 五入, 而是把小数后面的部分切掉。当分子小于分母时, 结果一律为0。例如:3* 2/3=2 与 2/3 *3 =0 (2)算术表达式中乘号不能省略 如 例 5/2 = 2 X*Y*Z不能写成XYZ 。 -5/2.0 = -2.5 = (3)Fortran中无大、中、小括号, 一律用小括号。 (4)如果连续使用乘方符号,按 “先右后左”原则处理。为避免出 错,建议使用括号。 (5)对单边运算符,相当于在 它前面有一个运算量“0”。
A 2E2 2E+5 0.0 B E02 3014159 0.34E0 C 0.83E8 -0.00 1234E20 D 8E3 0.001E2 .2E-2
3.复型常数 复型常数又叫复数,它具有数学复数的近似值。在科学和工程计算中,复数被广泛地 应用。复数是实数的有序对.将两个实数中间用逗号分隔,然后再放在一对括号中就 构成了一个Fortran语言的复数。例如: (125,0.4) (1E5,38) 复型的类型说明符是关键字COMPLEX
B)
2013-9-23
2.3 Fortran 常量与变量
常量:在程序运行过程中,其值不改变的量
12
1. 整型常量(整型常数或整数) 包括正整数、负整数和0,除正负号外,其他符号一律不 能出现在整型常量中 10.0000,3+2,78*31,1/3 ,1E-2 (×) 2. 实型常量(实型常数或实数) a.b, .b, 或 a. (1)小数形式 由一个或多个数字和一个小数点组成(必须包含一个小 数点而且只能有一个小数点)。如+12.3、-68.56、3.75、 0.0合法。小数点前或小数点后可以不出现数字,但不能 小数点前后都不出现数字。如60.、.36、.0合法,而 .非 法(只有一个小数点而无数字)。 (2)指数形式 指数形式由数字部分和指数部分组成。数字部分可以是 不带小数点的整数,也可以是带小数点的实数。
例1:I=3 I=I+1 例2: 交换X与Y的语句
T=X X=Y Y=T
2013-9-23
算术赋值规则
表达式 赋值规则 变量 整型 实型 直接赋值 先取整,再赋值 直接赋值 整型 实型
11
先化为实型,再 赋值
例:赋值语句X=2**3**2执行后,实型变量的值是( A 512 B 512.0 C 64 D 64.0
100000.000000000 + 9.999999747378752E-005=
和有效位数 有关
(right)
2013-9-23
复型 complex
Fortran 是计算机语言中唯一直接提供复数类型的语言,复 数由实部和虚部组成,保存两部分的方法是两个浮点数, 也分为单精度和双精度两种。声明方法:
例:NAME_LENGTH (单下划线) ( ) WAITER_(尾部下划线) NAME B123 ( )
S_P_R_E_A_D_O_u_T(两个连续的下划线) 1A (第一个字符不是字母) (×)
THIS
(含有一个空格)
(×)
A*B.C $
(含有非法字符*和$ ): (×)
Fortran90中,提倡使用具有一定含义的名字,以提高程序的清晰度及可读性.
18
2.要保存12345678,实际只会表示1.23456*107 ,因为数值 部分只能保留6位数字,最后的数字78会被忽略,超过的就 会忽略,所以说‛单精度实型有效位数是6位‛;
3.用双精度声明变量就会避免这个问题,因为具有15位有效 位数。建议存储实型数值时,可以用指数代入,1010 =10000000000用1E10代入即可。
17
2013-9-23
实型变量(Real)
实型变量又称浮点数变量,分为单精度和双精度类型, real(kind=4) a 单精度 real(kind=8) a 双精度 计算机在存储实型数时 ,先转化成科学计数法.要考虑有效 位数的概念,正确使用单(双)精度类型。 1.例如要保存12345会转化成1.2345*104 ,其中的数值部分可 以保存约6位数字;
大写英文字母:A B C …… X Y Z 小写英文字母:a b c …… x y z 数字:0 1 2 …… 9 特殊字符:空格
3
: = + - * /(),.‘!“ % &;><?$ _(下划线)
(共22个)
2.数据类型 3.运算符和表达式
为什么讨论这些知识?
通常程序要对数据进行操作处理: – 处理的对象是数据 – 通过运算符和表达式进行操作
2013-9-23
单双精度实型举例
program ex0408 real(kind=4) :: a,b program ex0409 implicit none
19
a=1
b=0.1 write(*,*)a,"+",b,"=",a+b
real :: a,b :: a,b real(kind=8)
a=100000.0 b=0.0001
2
7
对应的FORTRAN表达式为: SIN(6*X)**2+2.1*LOG10(1/X)
(7)FORTRAN 算术表达式的求值优先顺序为 (高)括号 函数 ** *,/ +,- (低)
(8)表达式中的所有字符都必须写在一行,特别是带有下 标的变量、分式等,不能像写数学表达式那样书写。 如Z=X1十X2不能写成Z=Xl十X2。
2013-9-23
Fortran 变量

16

在程序运行过程中其值可以改变的量,称为变量。变量用 标识符表示,称为变量名。每个变量是以变量名来代表的, 变量名是名字的一种。 变量必须‚先定义后使用‛,变量的命名最好是‚见名知 义‛ 系统为变量分配存储单元,存储变量的值。 编写程序时通过变量名来存、取变量值。 在同一个程序单位中不能用同一个标识符代表不同的变量。 变量定义的一般格式:
5
乘方**
乘*
除/
加+
减-
★同一优先级,遵循“从左到右”原则。
3 5 6 * 8.0 / 4 **2





2.Fortran算术表达式的含义和表示方法 Fortran的运算符和括号将各Fortran运算元素(包括常 量、变量、函数、数组元素)连结起来的一个有值的式子。
2013-9-23
算术表达式要点
相关文档
最新文档