Fortran数据类型 (2).ppt

上传人:wuy****n92 文档编号:70272737 上传时间:2023-01-18 格式:PPT 页数:36 大小:297KB
返回 下载 相关 举报
Fortran数据类型 (2).ppt_第1页
第1页 / 共36页
Fortran数据类型 (2).ppt_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《Fortran数据类型 (2).ppt》由会员分享,可在线阅读,更多相关《Fortran数据类型 (2).ppt(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、5.1 5.1 数据类型的概念数据类型的概念内部数据类型内部数据类型数值型数值型非数值型非数值型派生数据类型派生数据类型第五章第五章 FORTRAN 90数据类型数据类型整型整型实型实型复型复型逻辑型逻辑型字符型字符型 系统提供了多种表示整数值的方法,每种方法系统提供了多种表示整数值的方法,每种方法定义了一个整型数据值的集合。定义了一个整型数据值的集合。每种方法用类别类型参数来区分。整型常量每种方法用类别类型参数来区分。整型常量的表示形式为一个数字串,并在数字串后有一个的表示形式为一个数字串,并在数字串后有一个可任选的下划线后再跟类别类型参数。可任选的下划线后再跟类别类型参数。5.2 5.2

2、整型数据整型数据 二进制、八进制和十六进制整型常量,只能用于二进制、八进制和十六进制整型常量,只能用于DATADATA语句中。语句中。二进制常量二进制常量:以字母:以字母B B开头,后跟一对撇号或双引号括起来的开头,后跟一对撇号或双引号括起来的数字串,数字不是数字串,数字不是0 0就是就是1 1。如。如 B10101101 B10101101、B1011101B1011101八进制常量八进制常量:以字母:以字母O O开头,后跟一对撇号或双引号括起来的数开头,后跟一对撇号或双引号括起来的数字串,数字是字串,数字是0 0到到7 7之间的数字。例如,之间的数字。例如,O453O453、O376O37

3、6。十六进制常量十六进制常量:以字母:以字母Z Z开头,后跟一对撇号或双引号括起来的开头,后跟一对撇号或双引号括起来的数字串,且每个数字是数字串,且每个数字是0 0到到9 9或字母或字母A A到到F F之间的一个。之间的一个。例如,例如,ZFFA9、Z9B45。INTEGER i,j,kINTEGER i,j,kDATA i /B110010/DATA i /B110010/DATA j /O62/DATA j /O62/DATA k /Z32/DATA k /Z32/整型变量的说明整型变量的说明格式:格式:INTEGER(KIND=类别参数值类别参数值),属性列表属性列表:变量列表变量列表类

4、别类别参数可缺省参数可缺省,取决于计算机的字长取决于计算机的字长,对于对于32 位计位计算机默认为算机默认为 231 231-1类别参数值取:类别参数值取:1 2 4 8对应字节数对应字节数:1 2 4 8可等价写成:可等价写成:INTEGER*2:K,LIMITINTEGER*2:K,LIMITINTEGER*4:MIN,MAXINTEGER*4:MIN,MAX例:例:INTEGER I,TOTALINTEGER I,TOTALINTEGER(2):K,LIMITINTEGER(2):K,LIMITINTEGER(KIND=4):MIN,MAXINTEGER(KIND=4):MIN,MAX使

5、变量具有符号常量属性:使变量具有符号常量属性:integer(4),parameter:n=10使变量具有数组属性:使变量具有数组属性:integer,dimension(1:10):A实型常量的表示方法:实型常量的表示方法:小数形式小数形式 _ _类别参数类别参数 有效数有效数E E指数指数 _ _类别参数类别参数 有效数有效数D D指数指数5.3 5.3 实型数据实型数据FORTRANFORTRAN用类别类型参数区分不同类型的实型数据。用类别类型参数区分不同类型的实型数据。实型数据有单精度和双精度之分。单精度类别类型参实型数据有单精度和双精度之分。单精度类别类型参数值为数值为4 4,双精度

6、数类别类型参数值为,双精度数类别类型参数值为8 8。默认的类别。默认的类别参数是参数是4 4。D表示双精度实型常量,此时禁用类别参数表示双精度实型常量,此时禁用类别参数单精度:单精度:3.45E2 12.3E2_4双精度:双精度:5.3D-2 (表示表示 5.3*10-2)表示为:表示为:5.3E-2_8 但不能写成但不能写成:5.3D-2_8 .052D0 .052_8实型变量的说明实型变量的说明REAL:x,y REAL:x,y !单精度!单精度REAL(4):DX,DY REAL(4):DX,DY 或:或:REAL*4:DX,DY REAL*4:DX,DY !单精度!单精度REAL(8)

7、:REAL(8):a1,b2a1,b2 或:或:REAL*8:REAL*8:a1,b2 a1,b2!双精度!双精度DOUBLE PRECISION:a6,b8 DOUBLE PRECISION:a6,b8 !双精度!双精度REAL(KIND=类别参数值类别参数值),属性列表属性列表:变量列表变量列表单精度用单精度用REAL(4)REAL(4)定义,定义,双精度用双精度用REAL(8)REAL(8)或或DOUBLE PRECISIONDOUBLE PRECISION定义。定义。缺省的类别值为缺省的类别值为4 4,即为单精度。,即为单精度。5.4 5.4 复型数据复型数据a,b 类别不同,低向高转

8、换类别类别不同,低向高转换类别复型常量的表示方法复型常量的表示方法复数复数 a+bi 表示为表示为(a,b),其中是其中是a,b一对实数常量一对实数常量例如:例如:(1.25,0.4)表示复数表示复数1.25+0.4i复型数据的类别类型参数是用于说明实部和虚部这复型数据的类别类型参数是用于说明实部和虚部这两个实型数据的类别类型。两个实型数据的类别类型。a,b都为整型或都为默认实型,则得到默认复型都为整型或都为默认实型,则得到默认复型复型变量的说明复型变量的说明COMPLEX(KIND=类别值类别值),属性列表属性列表:变量列表变量列表COMPLEX Z1,Z2 COMPLEX Z1,Z2 !单

9、精度复型变量!单精度复型变量COMPLEX(4):COM_VAL COMPLEX(4):COM_VAL !单精度复型变量!单精度复型变量COMPLEX(8):CZ,CQ COMPLEX(8):CZ,CQ !双精度复型变量!双精度复型变量CZ=(3.0,6.3)复型常量赋给复型变量复型常量赋给复型变量CQ=(8.76E+5,-67.8E-3)C=CMPLX(3.0*A,6.0+B)实部虚部含变量,用实部虚部含变量,用CMPLX函数将实部和虚部组成复型数据再赋给复型变函数将实部和虚部组成复型数据再赋给复型变量。量。P75 P75 例例5.5 5.5 有一线段有一线段ABAB,A A的坐标为的坐标为

10、(1(1,1)1),B B的的坐标为坐标为(4.5(4.5,4.5)4.5)。求。求ABAB的长度,以及黄金分隔的长度,以及黄金分隔点点C C的坐标。黄金分割点在线段的的坐标。黄金分割点在线段的0.6180.618处。处。分析:分析:A A,B B的坐标可用复数的坐标可用复数表示:即表示:即A A为为(1.0(1.0,1.0)1.0),B B为为(4.5(4.5,4.5)4.5)。ABAB的长度就的长度就是是(A-B)(A-B)的模,可用的模,可用ABSABS函数函数直接求出复数的模直接求出复数的模ABS(A-B)ABS(A-B)。黄金分隔点黄金分隔点C C的坐标为的坐标为A+0.618(B-

11、A)A+0.618(B-A)。PROGRAM COMP_3IMPLICIT NONECOMPLEX:A,B,CREAL:LREAD*,A,BC=A+0.618*(B-A)L=ABS(A-B)PRINT*,L=,LPRINT*,C=,CEND PROGRAM COMP_3输入:输入:(1.0,1.0)(1.0,1.0),(4.5,4.5)(4.5,4.5)回车回车以以2 2个实数作为一个复型数据,第一个实数为复数的实部,第二个实数作为一个复型数据,第一个实数为复数的实部,第二个实数为虚部,用括号括起来。个实数为虚部,用括号括起来。输出:输出:L=4.949748 C=(3.163000,3.16

12、3000)5.5 5.5 字符型数据字符型数据 字符型常量字符型常量(字符串常量字符串常量)用单撇号或双撇号括起来的字符序列。用单撇号或双撇号括起来的字符序列。china 12345 -234.4 “-234.4”在字符串内部的空格是有效字符在字符串内部的空格是有效字符当字符串本身含有单撇号时,例如要将当字符串本身含有单撇号时,例如要将Im a boy作为作为一个字符串来处理,可采用两种方式表示:一个字符串来处理,可采用两种方式表示:Im a boy 用双撇号作定界符用双撇号作定界符Im a boy 用单撇号作定界符,将字符串的单撇用单撇号作定界符,将字符串的单撇号用两个单撇号表示。号用两个单

13、撇号表示。字符串的长度:字符串的长度:字符串内字符的个数。字符串内字符的个数。例:例:abcff 的长度为的长度为 5和和为空串,长度为为空串,长度为0。字符型变量字符型变量CHARACTER(LEN=n),属性说明属性说明:,变量列表变量列表n:变量的长度:变量的长度character(len=15):a,b,c !长度均为长度均为15的字符变量的字符变量a,b,c等价于:等价于:character*15:a,b,c等价于:等价于:character(15):a,b,cCharacter(len=10),parameter:name=fortran 90CHARACTER(LEN=8),DI

14、MENSION(1:10):X,Y,ZCHARACTER(LEN=15):A,B*8,C*5A的长度为的长度为15,B的长度为的长度为8,C的长度为的长度为5,注:以下情形均可以采用注:以下情形均可以采用*来说明长度来说明长度(1)character(len=*),parameter:name=fortran90 具有具有PARAMETER属性的字符常量,给出的字符串长度属性的字符常量,给出的字符串长度是确定的,因此字符符号常数是确定的,因此字符符号常数name的长度等于的长度等于9,可用,可用*说明。说明。(2)用字符变量做虚参时,一般可以不具体指明长度。)用字符变量做虚参时,一般可以不具体

15、指明长度。子字符串子字符串子字符串的表示方法:子字符串的表示方法:字符变量名字符变量名(m:n)m,n:整数,表示子串在字符串中的起止位置:整数,表示子串在字符串中的起止位置子字符串的长度:子字符串的长度:n-m+1 (nm1)例如:例如:CHARACTER(LEN=80):ROWROW(4:7)ROW字符串中从第字符串中从第4个字符到第个字符到第7个字符组个字符组成的一个子串,其长度为成的一个子串,其长度为4ROW(I:I)表示该字符型变量的第表示该字符型变量的第I个字符个字符 row(:5)相当于相当于row(1:5)row(5:)相当于相当于row(5:80)row(:)相当于相当于ro

16、w(1:80)字符表达式与字符赋值语句字符表达式与字符赋值语句(1)(1)字符连接符字符连接符/将两个字符型数据连接起来,成为一个字符型数据将两个字符型数据连接起来,成为一个字符型数据例例:“human”/“shanghai”:“human”/“shanghai”的值的值“humanshanghai”“humanshanghai”(2)(2)赋值赋值 PROGRAM CHAR_1 CHARACTER(LEN=5):A,B,C CHARACTER(LEN=11):D A=abcde B=fghij C=A D=A/B PRINT*,C,D END PROGRAM CHAR_1当赋值号两端数据的字

17、符长度不等时当赋值号两端数据的字符长度不等时 character(len=7):a,b*2character(len=7):a,b*2a=abcda=abcdb=efb=efa=a/b a=a/b a=b/aa=b/a结果结果 a=“abcd”结果结果 a=“efabcd”character(len=7):a,ba=“abcde”结果结果 a=“abcde”a=“abcdefghfiemd”结果结果b=“abcdefg”对字符数据的输入作同样处理对字符数据的输入作同样处理字符关系表达式字符关系表达式字符串比较大小按照字符串比较大小按照ASCIIASCII的顺序:的顺序:“”,“0”“9”,“A

18、”-”Z”,”a”-”z”小小 大大(1)(1)两个单个字符比较,以它们的代码值决定大小。两个单个字符比较,以它们的代码值决定大小。A“2”的值为真的值为真(2)(2)两字符串比较,先将短的字符串后面以空格补足再比较。两两字符串比较,先将短的字符串后面以空格补足再比较。两串中的字符自左向右逐对比较。若所有对字符均相同,则两串相串中的字符自左向右逐对比较。若所有对字符均相同,则两串相等;否则,以第一次出现不同字符的比较结果为准。例如等;否则,以第一次出现不同字符的比较结果为准。例如 SHANGHAI”thi”的值为真的值为真用于字符处理的内部函数用于字符处理的内部函数 1求字符串长度函数求字符串

19、长度函数 LEN和和 LEN_TRIMLEN(String)函数值是函数值是String中字符个数中字符个数LEN_TRIM(String)去掉尾部空格后的长度去掉尾部空格后的长度String为字符型常量、变量等字符串为字符型常量、变量等字符串LEN()的值为的值为3例如:例如:LEN(“abcdfg”)的值为的值为6LEN(ABCD)的值为的值为5LEN_TRIM(“abcd”)的值为的值为5LEN_TRIM(“abcd”)的值为的值为4LEN_TRIM(“”)的值为的值为02除去字符串尾部空格函数除去字符串尾部空格函数 TRIM TRIM(String)TRIM(ABC)TRIM(ABC)

20、的值为的值为ABCABCTRIM(ABC)TRIM(ABC)的值为的值为ABCABC3子串位置函数子串位置函数 INDEXINDEX(“followINDEX(“followme”me”,“me”)“me”)的值为的值为8 8INDEX(String1,String2)若若string2string2是是string1string1子串,返回子串,返回String2String2在在String1String1中中起始位置起始位置,否则返回否则返回0 04字符串比较函数字符串比较函数 LGE、LGT、LLE和和LLTLGE(string1,string2)=LGE(string1,string

21、2)=LGT(string1,string2)LGT(string1,string2)LLE(string1,string2)=LLE(string1,string2)=LLT(string1,string2)LLT(string1,string2)iachar(z).or.(jiachar(Z).and.j=-5.0.AND.X=1.0.AND.X=-6.0.AND.Y=2.0.AND.Y=4.0IF(P.AND.R).OR.(P.AND.S).OR.(Q.AND.R)&.OR.(Q.AND.S)Z=0PRINT*,X=,X,Y=,Y,Z=,ZEND作业:作业:P874,8,9,104 4:

22、三角形面积:三角形面积:三个边长:三个边长:a,b,ca,b,c面积面积=sqrt(s(s-a)(s-b)(s-c)=sqrt(s(s-a)(s-b)(s-c)其中其中s=(a+b+c)/2s=(a+b+c)/2implicit nonecharacter:str1=m,str*25integer:i,n=12str(1:1)=mdo i=1,n str(i*2:i*2)=achar(iachar(str1)-i)str(i*2+1:i*2+1)=achar(iachar(str1)+i)end do print*,strend作业:作业:P87,7把把25个字母个字母A,B,Y,打印出:打印

23、出:MLNKO作业:作业:P87,8将一个字符串中的前导空将一个字符串中的前导空格、后置空格及中间的空格、后置空格及中间的空格全部去掉,得到一个新格全部去掉,得到一个新的字符串后输出。的字符串后输出。implicit nonecharacter*80 str1,str2integer:i,j=1read*,str1do i=1,len_trim(str1)if(str1(i:i)/=)then str2(j:j)=str1(i:i)j=j+1 endifenddoprint*,str2end字符型变量默认值为空字符型变量默认值为空字符,字符,ASCII码为码为0。作业:作业:P87,9输入输入

24、n个英文单词,输个英文单词,输出其中以元音字母开出其中以元音字母开头的单词。头的单词。implicit nonecharacter*10 wordinteger:i,nread*,ndo i=1,n read*,word select case(word(1:1)case(A,E,I,O,U,a,e,i,o,u)print*,word end selectend doendcomplex x,y,z,xyzreal a,b,c,s,arearead*,x,y,za=abs(x-y)b=abs(x-z)c=abs(y-z)s=(a+b+c)/2area=SQRT(s*(s-a)*(s-b)*(s-c)xyz=(x+y+z)/3print*,area,xyzend作业:作业:P87 4implicit nonereal x,ylogical ainteger zread*,x,yx=abs(x)y=abs(y)z=0a=sqrt(x-2)*2+(y-2)*2)=1if(a)z=1print*,z=,zend作业:作业:P87 10

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁