收藏 分销(赏)

Fortran90-数据类型.只是分享.ppt

上传人:人****来 文档编号:10281294 上传时间:2025-05-14 格式:PPT 页数:40 大小:599KB 下载积分:12 金币
下载 相关 举报
Fortran90-数据类型.只是分享.ppt_第1页
第1页 / 共40页
Fortran90-数据类型.只是分享.ppt_第2页
第2页 / 共40页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,FORTRAN90,*,Fortran90-数据类型.,5.1,数据类型的概念,数据类型的性质:,1.类型的名称,2.允许值的集合,3.允许值的表示方法,4.操作值的运算的集合,Integer,Real,Complex,Character,Logical,2字节存储:-3276832767,小数、指数,(实部,虚部),连接、计算子串位置,5/14/2025,2,FORTRAN90,5.2,整型数据,二、整型变量的申明,Integer(kind=类别参数值),属&性列表:变量列表,一、整型常量的表示形式,数字串_类别类型参数,例:,Integer(kind=4),Parameter:si=3,we=8,Integer(4),dimension(-1:4):a,b,Integer*4 a;,integer b,存储字节数,默认值为 2,138_4 138_2,5/14/2025,3,FORTRAN90,例1:求Fibonacci数列的前30项之和。,PROGRAM EX5_1,IMPLICIT NONE,INTEGER*4:F1=1,F2=1,SUM=0,N,DO N=1,15,SUM=F1+F2+SUM,F1=F1+F2,F2=F1+F2,END DO,PRINT*,SUM,END PROGRAM EX5_1,5/14/2025,4,FORTRAN90,5.3 实型数据,一、实型常量的表示形式:,1.小数形式,2.指数形式(有效数字,E,指数,_类别参数,),或(有效数字,D,指数),说明:,1.类别类型参数值可以通过KIND(0.0)获得。,2.指数字母为D时,不可再申明类别参数。,3.双精度实型数据的表示方法。,5.2D03,5.2E+03_8,Integer,parameter:aq=8,.52e+04_aq,5/14/2025,5,FORTRAN90,二、实型变量的申明,REAL(kind=类别参数值),属性列表&,:变量列表,例:,REAL:MK,YU,REAL(4):FHR,BH 或 REAL*4:FHR,BH,REAL(8):DG,FEIW,CDU,DOUBLE PRECISION:GJ,H,实型数据,5/14/2025,6,FORTRAN90,例2:利用双精度按下式计算,的近似值,Program ex5_2,Real*8:pi=0,term,integer(2):n,i,Read*,n,Do i=1,n,term=1.0/(4*i-3)-1.0/(4*i-1),pi=pi+term,End do,Print*,pi=,pi*4,End Program ex5_2,5/14/2025,7,FORTRAN90,5/14/2025,8,FORTRAN90,5.4 复型数据,一、复型常量的形式:,(实型数1,实型数2),表示:实型数1+实型数2*I,复型数据的类别类型,1.默认复型:当省略类别类型参数时,则称此复型数据为默认复型。,2.实部及虚部类型不同时,复型数据的类别类型。,低级向高级转换的原则,5/14/2025,9,FORTRAN90,复型数据,二、复型变量,1.复型变量的申明,COMPLEX(kind=类别参数值),属性列表&,:变量列表,例:,COMPLEX(kind=4):CM,PP,COMPLEX(8)X1,X2,COMPLEX*8 CM,PP,COMPLEX*16 X1,X2,实部与虚部共占字节数,实部和虚部各占字节数,5/14/2025,10,FORTRAN90,复型数据,2.复型变量的赋值语句,1)实部与虚部均为常量,直接赋值,2)实部或虚部含有变量,用CMPLX函数组合,5/14/2025,11,FORTRAN90,例3:求一元二次方程的ax,2,+bx+c=0根。,Program ex5_3,Complex:x1,x2,Real a,b,c,d,part1,part2,Read*,a,b,c,d=b*b-4.0*a*c;part1=-b/(2.0*a),part2=sqrt(abs(d)/(2.0*a),If(d0)then,x1=cmplx(part1+part2,0.0),x2=cmplx(part1-part2,0.0),Else,x1=cmplx(part1,part2);x2=cmplx(part1,-part2),End if,Print*,x1,x2,end,5/14/2025,12,FORTRAN90,5/14/2025,13,FORTRAN90,5.5 数值型数据之间的转换及运算,一、不同类型数据之间运算的规则:,1.先将级别低的数据类型转换为级别高的数据类型,然后在同一类型之间进行运算。,2.数据类型等级次序为:复型,双精度型,实型,整型。,3.FORTRAN不允许双精度类型数据与复型数据之间进行运算,。,4.复型数据之间运算:实部与实部运算,虚部与虚部运算。,5/14/2025,14,FORTRAN90,二、不同类型数据的赋值规则:,将表达式类型转换成变量的类型。,直接赋值,舍去多余有效数字,化为实型,再赋值,虚部赋0,实部赋值,虚部赋0,化为实型,加虚部0,变成复型,再赋值,复型,将实部扩展为双精度型,赋值,直接赋值,化为双精度型,赋值,先化为双精度型,再赋值,双精度型,实部赋值,舍去多余有效数字,化为实型,再赋值,直接赋值,化成实型,再赋值,实型,实部取整,舍去小数部分取整,再赋值,舍去小数部分取整,再赋值,直接赋值,整型,复型,双精度型,实型,整型,表达式类型,变量类型,5/14/2025,15,FORTRAN90,三、类型转换函数,将REAL(a,1,)作为实部,将REAL(a,2,)作为虚部,舍去多余有效数字,a,1,作为实部,a,2,作为虚部,a,1,为实部,a,2,为虚部,将a,1,a,2,化实,然后将a,1,作为实部a,2,作为虚部,CMPLX(a,1,a,2,),舍去多余有效数字,化为实型,虚部为0,a为实部,虚部为0,将a化为复型的实部,虚部为0,CMPLX(a),将a的实部扩展为双精度型,化为双精度型,将a转换为双精度型,DBLE(a),取实部,舍去多余有效数字,将a转换为实型,REAL(a),将实部舍去小数部分取整,舍去小数部分取整,舍去小数部分取整,INT(a),复型,双精度型,实型,整型,自变量类型,函数,5/14/2025,16,FORTRAN90,四、不同数据类型的比较规则,将级别低的数据转换成级别高的数据,再进行比较。,复型与双精度型不能比较,。,复型与其它类型只能进行,.EQ.,及,.NE.,的比较。,5/14/2025,17,FORTRAN90,例4:求线段的长度及黄金分割点。,Program ex5_4,Implicit none,Complex:a,b,c,Real:L,Read*,a,b,C=a+0.618*(b-a),L=abs(a-b),Print*,L,c,end,a,b,(x,b,y,b,),(x,a,y,a,),c,(x,c,y,c,),X,Y,5/14/2025,18,FORTRAN90,5/14/2025,19,FORTRAN90,5.6 逻辑型数据,一、逻辑常量,.TRUE.FALSE.,逻辑型数据的类别参数:,默认逻辑型类别值为4,二、逻辑型变量的申明,LOGICAL(kind=类别参数值),属性列表&,:变量列表,5/14/2025,20,FORTRAN90,5.7 字符型数据,一、,字符型常量,1.字符型常量又称为字符串常量,在FORTRAN90中是用,单引号,或,双引号,括起来的若干字符。其中的字符可是计算机系统允许使用的任何一个字符。,如:zhang,ZHang,北京,,土木,How are you,a+b,字符串内大小写字母意义不同,双(单)引号不属于字符串,5/14/2025,21,FORTRAN90,2.当字符中出现单(双)引号时,有两种表示方法。,1)当字符为时,用将字符串括起;,当字符为时,用将字符串括起。,2)将单(双)引号重复一次。,例:fhdl Im a teacher,fhdl,I,m a teacher,fh,dl,I,m a teacher,5/14/2025,22,FORTRAN90,4.当字符串常量需要多行书写时,规定:,1)每一续行后不能尾随注释;,2)每一续行前以“&”开头;,3)字符串的值从前导&后开始连接;,4)尾随&及前导&之间的空格不计入字符串;&不计入字符串,3.字符串长度,5/14/2025,23,FORTRAN90,5.C字符串,Fortran 90中允许出现一类,在字符常量,后加上字母,C,的字符串,称为C字符串。,在C字符串中,可以包含C语言中的一些转义字符,且与C语言中意义相同。,n r x ,5/14/2025,24,FORTRAN90,二、字符串变量,1.申明格式,CHARACTER(LEN=n),属性说明:变量列表,注:有时,可以用*代替字符串长度,1)具有PARAMETER属性的字符常量;,2)子程序中用字符变量作虚参时。,方括号中的长度可缺省,缺省以后系统默认长度为1,character(10)a,b,Character*8 x,Character(8)a,b,c*5,d*6,e,5/14/2025,25,FORTRAN90,三、子字符串,一个字符串的一部分,称为子字符串。,表示形式:,字符变量(m:n),例:com(3:7)op(1:9),5/14/2025,26,FORTRAN90,说明:,1)省略m,m1;,省略n,n字符变量申明长度,2)m,n均省略,表示字符串本身,3)表达子字符串时,“:”不可省略,5/14/2025,27,FORTRAN90,四、字符表达式与字符赋值语句,1.字符表达式,字符运算符:/表示连接,例:hfslhjk/fhd,Im/a teacher,hfslhjkfhd,Im a teacher,5/14/2025,28,FORTRAN90,2.字符赋值语句,字符变量 字符表达式,character(15)a*6,b*5,c,a=hfrislhjk/fhd,b=Im/a teacher,c=a/b/ccc,print*,c,end,5/14/2025,29,FORTRAN90,Character*10 A,B*3,C*5,D,READ*,A,B=A(:3),C=A(6,:),D=A(:),PRINT*,A,B,C,D,END,注意:,输入中有空格时,要加引号!,5/14/2025,30,FORTRAN90,说明:,1)赋值号左边变量中字符长度与赋值号右边表达式中字符长度相等时,可以直接赋值;,2)赋值号,左边变量,中字符长度,小于,赋值号,右边表达式,中字符长度时,将右边多余的字符删除;,3)赋值号,左边变量,中字符长度,大于,赋值号,右边表达式,中字符长度时,在变量的右边补足空格。,5/14/2025,31,FORTRAN90,Character*10 A,B*3,C*5,D,A=“abcdefghij”,B=A(:),C=A(6,:),D=A(:3),PRINT*,012345678901234567890123456789,PRINT*,A,B,C,D,END,5/14/2025,32,FORTRAN90,五、字符关系表达式,1.字符比较,1)一般按ASCII码比较。比较规则为:,数字 0 小 9 大;,字母 A 小 Z 大,a 小 z 大;,大写字母小,小写字母大;,数字小,字母大;,“空格”字符最小;,2)单个字符直接比,两个字符串比较,从左向右进行比较。,若不同长,填空格,5/14/2025,33,FORTRAN90,比较字符串大小,that this,FORTRAN FORTRAN90,FORTRAN FORTRAN ,FORTRAN 90 FORTRAN90,FORTRAN90 fortran90,5/14/2025,34,FORTRAN90,六、用于字符处理的内部函数,1.字符串长度函数 LEN(S)、LEN_TRIM(S),2.除去字符串尾部空格函数 TRIM(S),3.字符串子串位置函数 INDEX(S1,S2),4.字符串比较函数 LGE、LGT、LLE、LLT,5.首尾部空格调整函数,ADJUSTL(S)、ADJUSTR(S),6.字符与字符序号转换函数,ICHAR(S)、IACHAR(S),CHAR(I)、ACHAR(I),5/14/2025,35,FORTRAN90,例:在读入的一批单词中,把以字母“B”开头的单词打印出来。,例:将一个字符串中的字符按逆序打印出来。,例:翻译密码。,5/14/2025,36,FORTRAN90,CHARACTER(15)OP,DO WHILE(OP/=PP),READ*,OP,IF(OP(1:1)=B)THEN,PRINT*,OP,ELSE,PRINT*,OP(1:1),END IF,END DO,END,输入时,注意:,第一个字符是空格时,须加引号!,5/14/2025,37,FORTRAN90,CHARACTER*15 A,B,Read*,A,B=,DO I=15,1,-1,B=TRIM(B)/A(I:I),END DO,PRINT*,A,PRINT*,B,END,CHARACTER*15 A,B,READ*,A,B=,DO I=1,15,B=A(I:I)/B,PRINT*,B,END DO,PRINT*,A,PRINT*,B,END,5/14/2025,38,FORTRAN90,character*80 line1,line2;character L1,L2;read*,line1,do k=1,80,L1=line1(k:k);line2=,if((lge(L1,A).and.lle(L1,Z).or.&,(lge(L1,a).and.lle(L1,z)then,I=ichar(L1);j=I+5,If(j.gt.122.or.(j.gt.90.and.j.lt.96)j=j-26,L2=char(j);line2(k:k)=L2,else,line2(k:k)=L1,end if,End do,print*,line2,end,5/14/2025,39,FORTRAN90,此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服