




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
5.1数据类型的概念,内部数据类型,数值型,非数值型,派生数据类型,第五章FORTRAN90数据类型,系统提供了多种表示整数值的方法,每种方法定义了一个整型数据值的集合。,每种方法用类别类型参数来区分。整型常量的表示形式为一个数字串,并在数字串后有一个可任选的下划线后再跟类别类型参数。,例如,373、-1024、35792、0、32_2、1992110235764803_8,5.2整型数据,二进制、八进制和十六进制整型常量,只能用于DATA语句中。,二进制常量:以字母B开头,后跟一对撇号或双引号括起来的数字串,数字不是0就是1。如B10101101、B1011101,八进制常量:以字母O开头,后跟一对撇号或双引号括起来的数字串,数字是0到7之间的数字。例如,O453、O376。,十六进制常量:以字母Z开头,后跟一对撇号或双引号括起来的数字串,且每个数字是0到9或字母A到F之间的一个。例如,ZFFA9、Z9B45。,INTEGERi,j,kDATAi/B110010/DATAj/O62/DATAk/Z32/,整型变量的说明,格式:INTEGER(KIND=类别参数值),属性列表:变量列表,类别参数可缺省,取决于计算机的字长,对于32位计算机默认为231231-1,类别参数值取:1248对应字节数:1248,可等价写成:INTEGER*2:K,LIMITINTEGER*4:MIN,MAX,例:INTEGERI,TOTALINTEGER(2):K,LIMITINTEGER(KIND=4):MIN,MAX,使变量具有符号常量属性:integer(4),parameter:n=10,使变量具有数组属性:integer,dimension(1:10):A,实型常量的表示方法:小数形式_类别参数有效数E指数_类别参数有效数D指数,5.3实型数据,FORTRAN用类别类型参数区分不同类型的实型数据。实型数据有单精度和双精度之分。单精度类别类型参数值为4,双精度数类别类型参数值为8。默认的类别参数是4。,D表示双精度实型常量,此时禁用类别参数,单精度:3.45E212.3E2_4双精度:5.3D-2(表示5.3*10-2)表示为:5.3E-2_8但不能写成:5.3D-2_8.052D0.052_8,实型变量的说明,REAL:x,y!单精度REAL(4):DX,DY或:REAL*4:DX,DY!单精度REAL(8):a1,b2或:REAL*8:a1,b2!双精度DOUBLEPRECISION:a6,b8!双精度,REAL(KIND=类别参数值),属性列表:变量列表,单精度用REAL(4)定义,双精度用REAL(8)或DOUBLEPRECISION定义。缺省的类别值为4,即为单精度。,5.4复型数据,a,b类别不同,低向高转换类别,复型常量的表示方法,复数a+bi表示为(a,b),其中是a,b一对实数常量,例如:(1.25,0.4)表示复数1.25+0.4i(1E2,-3.4)表示复数100.0-3.4i,复型数据的类别类型参数是用于说明实部和虚部这两个实型数据的类别类型。,a,b都为整型或都为默认实型,则得到默认复型,复型变量的说明,COMPLEX(KIND=类别值),属性列表:变量列表,COMPLEXZ1,Z2!单精度复型变量COMPLEX(4):COM_VAL!单精度复型变量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例5.5有一线段AB,A的坐标为(1,1),B的坐标为(4.5,4.5)。求AB的长度,以及黄金分隔点C的坐标。黄金分割点在线段的0.618处。,分析:A,B的坐标可用复数表示:即A为(1.0,1.0),B为(4.5,4.5)。AB的长度就是(A-B)的模,可用ABS函数直接求出复数的模ABS(A-B)。黄金分隔点C的坐标为A+0.618(B-A)。,PROGRAMCOMP_3IMPLICITNONECOMPLEX:A,B,CREAL:LREAD*,A,BC=A+0.618*(B-A)L=ABS(A-B)PRINT*,L=,LPRINT*,C=,CENDPROGRAMCOMP_3,输入:(1.0,1.0),(4.5,4.5)回车以2个实数作为一个复型数据,第一个实数为复数的实部,第二个实数为虚部,用括号括起来。,输出:L=4.949748C=(3.163000,3.163000),5.5字符型数据,字符型常量(字符串常量),用单撇号或双撇号括起来的字符序列。,china12345-234.4“-234.4”,在字符串内部的空格是有效字符,当字符串本身含有单撇号时,例如要将Imaboy作为一个字符串来处理,可采用两种方式表示:Imaboy用双撇号作定界符Imaboy用单撇号作定界符,将字符串的单撇号用两个单撇号表示。,字符串的长度:字符串内字符的个数。,例: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,c,Character(len=10),parameter:name=fortran90,CHARACTER(LEN=8),DIMENSION(1:10):X,Y,Z,CHARACTER(LEN=15):A,B*8,C*5A的长度为15,B的长度为8,C的长度为5,,注:以下情形均可以采用*来说明长度(1)character(len=*),parameter:name=fortran90具有PARAMETER属性的字符常量,给出的字符串长度是确定的,因此字符符号常数name的长度等于9,可用*说明。,(2)用字符变量做虚参时,一般可以不具体指明长度。,子字符串,子字符串的表示方法:字符变量名(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(:)相当于row(1:80),字符表达式与字符赋值语句,(1)字符连接符/将两个字符型数据连接起来,成为一个字符型数据例:“human”/“shanghai”的值“humanshanghai”,(2)赋值,PROGRAMCHAR_1CHARACTER(LEN=5):A,B,CCHARACTER(LEN=11):DA=abcdeB=fghijC=AD=A/BPRINT*,C,DENDPROGRAMCHAR_1,当赋值号两端数据的字符长度不等时,character(len=7):a,b*2a=abcdb=efa=a/ba=b/a,结果a=“abcd”,结果a=“efabcd”,character(len=7):a,ba=“abcde”结果a=“abcde”a=“abcdefghfiemd”结果b=“abcdefg”,对字符数据的输入作同样处理,字符关系表达式,(1)两个单个字符比较,以它们的代码值决定大小。A“2”的值为真,(2)两字符串比较,先将短的字符串后面以空格补足再比较。两串中的字符自左向右逐对比较。若所有对字符均相同,则两串相等;否则,以第一次出现不同字符的比较结果为准。例如SHANGHAI”thi”的值为真,用于字符处理的内部函数,1求字符串长度函数LEN和LEN_TRIM,LEN(String)函数值是String中字符个数LEN_TRIM(String)去掉尾部空格后的长度String为字符型常量、变量等字符串,LEN()的值为3,例如:LEN(“abcdfg”)的值为6,LEN(ABCD)的值为5,LEN_TRIM(“abcd”)的值为5,LEN_TRIM(“abcd”)的值为4,LEN_TRIM(“”)的值为0,2除去字符串尾部空格函数TRIM,TRIM(String),TRIM(ABC)的值为ABCTRIM(ABC)的值为ABC,3子串位置函数INDEX,INDEX(“followme”,“me”)的值为8,INDEX(String1,String2),若string2是string1子串,返回String2在String1中起始位置,否则返回0,4字符串比较函数LGE、LGT、LLE和LLT,LGE(string1,string2)=LGT(string1,string2)LLE(string1,string2)iachar(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,10,4:三角形面积:三个边长:a,b,c面积=sqrt(s(s-a)(s-b)(s-c)其中s=(a+b+c)/2,implicitnonecharacter:str1=m,str*25integer:i,n=12str(1:1)=mdoi=1,nstr(i*2:i*2)=achar(iachar(str1)-i)str(i*2+1:i*2+1)=achar(iachar(str1)+i)enddoprint*,strend,作业:P87,7把25个字母A,B,Y,打印出:MLNKO,作业:P87,8将一个字符串中的前导空格、后置空格及中间的空格全部去掉,得到一个新的字符串后输出。,implicitnonecharacter*80str1,str2integer:i,j=1read*,str1doi=1,len_trim(str1)if(str1(i:i)/=)thenstr2(j:j)=str1(i:i)j=j+1endifenddoprint*,str2end,字符型变量默认值为空字符,ASCII码为0。,作业:P87,9输入n个英文单词,输出其中以元音字母开头的单词。,implicitnonecharacter*10wordinteger:i,nread*,ndoi=1,nread*,wordselectcase(word(1:1)case(A,E,I,O,U,a,e,i,o,u)print*,wordendselectenddoend,complexx,y,z,xyzreala,b,c,s,arear
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨境电商箱包服饰品牌2025年海外市场推广效果评估与反馈报告
- 混凝土蜂窝疏松缺陷修复方案
- 烟草行业专业知识考试题库
- 柳氮磺吡啶的基因表达调控研究-洞察及研究
- 微藻生物质在绿色橡胶材料中的应用-洞察及研究
- 云数据中心接口加速-洞察及研究
- 光防护剂对紫外线色素沉着影响-洞察及研究
- 协同知识共享策略-洞察及研究
- 光伏电站环境适应性提升-洞察及研究
- 天山森林生态系统服务价值影响因素分析-洞察及研究
- GB/T 212-2008煤的工业分析方法
- 冀教版8年级上英语各单元语法课件
- 国内外新能源现状及发展趋势课件
- 大班科学《玩转扑克牌》课件
- 高速公路改扩建桥梁拼宽施工技术及质量控制
- 双台110kV主变短路电流计算书
- DB1750-2019水电站(厂)防雷与接地性能测试技术规范
- 牛常见病防治课件
- 危险物品储存安全隐患排查整治表
- 装饰工程保修单
- IInterlib区域图书馆集群管理系统-用户手册
评论
0/150
提交评论