收藏 分销(赏)

Fortran数据类型教学提纲.ppt

上传人:精**** 文档编号:10282118 上传时间:2025-05-14 格式:PPT 页数:36 大小:319KB 下载积分:12 金币
下载 相关 举报
Fortran数据类型教学提纲.ppt_第1页
第1页 / 共36页
Fortran数据类型教学提纲.ppt_第2页
第2页 / 共36页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Fortran数据类型,二进制、八进制和十六进制整型常量,只能用于DATA语句中。,二进制常量,:以字母,B,开头,后跟一对撇号或双引号括起来的数字串,数字不是0就是1。如 B10101101、B1011101,八进制常量,:以字母,O,开头,后跟一对撇号或双引号括起来的数字串,数字是0到7之间的数字。例如,O453、O376。,十六进制常量,:以字母,Z,开头,后跟一对撇号或双引号括起来的数字串,且每个数字是0到9或字母A到F之间的一个。,例如,ZFFA9、Z9B45。,INTEGER i,j,k,DATA i /B110010/DATA j /O62/DATA k /Z32/,蚤啦疗膀榜阳货簧烫响拼构亡陶坞珐茶旬蕴戳毯鸟盔碟以捅帛忆虐劣怂吹Fortran数据类型Fortran数据类型,整型变量的说明,格式:,INTEGER,(,KIND=,类别参数值),属性列表,:,变量列表,类别,参数可缺省,取决于计算机的字长,对于32 位计算机默认为 2,31,2,31,-1,类别参数值取:1 2 4 8,对应字节数:1 2 4 8,可等价写成:,INTEGER*2:K,LIMIT,INTEGER*4:MIN,MAX,例:INTEGER I,TOTAL,INTEGER(2):K,LIMIT,INTEGER(KIND=4):MIN,MAX,舒杏帛欧绞唇四异午舜雹宾垣孺柏史都忿簇愉靶眼苍爱驾矽硝份迢甥烹哥Fortran数据类型Fortran数据类型,使变量具有符号常量属性:,integer(4),parameter:,n=10,使变量具有数组属性:,integer,dimension(1:10):,A,像灯烦吮饮赣非颐惩聊袖鹿丛殖主返花殉扣知重岔溯陆埠应攫乍矿慧合跟Fortran数据类型Fortran数据类型,实型常量的表示方法:,小数形式 _类别参数,有效数E指数 _类别参数,有效数D指数,5.3 实型数据,FORTRAN用类别类型参数区分不同类型的实型数据。实型数据有单精度和双精度之分。单精度类别类型参数值为,4,,双精度数类别类型参数值为,8,。默认的类别参数是,4,。,D表示双精度实型常量,此时禁用类别参数,锡邯七痔睦婪赊仆侈滇杯沂惰醒嚼烟精便棵团记泞玲伶柬刨疽攒错枕沂蛋Fortran数据类型Fortran数据类型,单精度:,3.45E2 12.3E2_4,双精度:,5.3D-2 (表示 5.3,*,10-2),表示为:5.3E-2_8,但不能写成:5.3D-2_8,.052D0,.052_8,亢领劫就接鹏殴贼琉管缅脸如煌砒披币寐体识约味儡碌矮非傲沁讯缸俭涨Fortran数据类型Fortran数据类型,实型变量的说明,REAL:x,y,!单精度,REAL(4):DX,DY 或:REAL*4:DX,DY,!单精度,REAL(8):,a1,b2,或:REAL*8:,a1,b2,!双精度,DOUBLE PRECISION:a6,b8,!双精度,REAL(KIND=类别参数值),属性列表:变量列表,单精度用REAL(4)定义,,双精度用REAL(8)或DOUBLE PRECISION定义。,缺省的类别值为4,即为单精度。,铭乙锐充甄扣丘疤溅秆细答非侵流膨荒磐絮邓皖寿导埠形渺观痉遥讲貉弧Fortran数据类型Fortran数据类型,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都为整型或都为默认实型,则得到默认复型,秆酱加墒澡宵切迢究矽龄绒凹入弃返胚扣震蘸绚游哑柿既漾土菩逾筏责欲Fortran数据类型Fortran数据类型,复型变量的说明,COMPLEX,(KIND=,类别值),属性列表:变量列表,COMPLEX Z1,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函数将实部和虚部组成复型数据再赋给复型变量。,钦瘤川盅鞠雌旬汹群颅刀貌丑透肾峻恩院甄垢戮歉拱淑迂垒炬蚜彻蟹藉姨Fortran数据类型Fortran数据类型,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)。,但棍褂黍倍隧识征更睛匿热痴丰政藻莲喘甄睦杂券玻笋剪懊眷秩庙燕军榨Fortran数据类型Fortran数据类型,PROGRAM COMP_3,IMPLICIT NONE,COMPLEX:A,B,C,REAL:L,READ*,A,B,C=A+0.618*(B-A),L=ABS(A-B),PRINT*,L=,L,PRINT*,C=,C,END PROGRAM COMP_3,输入:,(1.0,1.0),(4.5,4.5)回车,以2个实数作为一个复型数据,第一个实数为复数的实部,第二个实数为虚部,用括号括起来。,输出:,L=4.949748,C=(3.163000,3.163000),贱居淀姿陇蝶赐睛依茎钟枯多色责柞仍血十托釉钥漱迹陵希若酬卿克敷欺Fortran数据类型Fortran数据类型,5.5 字符型数据,字符型常量(字符串常量),用单撇号或双撇号括起来的字符序列。,china 12345 -234.4 “-234.4”,在字符串内部的空格是有效字符,当字符串本身含有单撇号时,例如要将,Im a boy,作为一个字符串来处理,可采用两种方式表示:,Im a boy,用双撇号作定界符,Im a boy,用单撇号作定界符,将字符串的单撇号用两个单撇号表示。,渤菊晒垮锐等搔装沮尸柄姐氓霹位舰缀禾社坎卡黎娃堆痛持杆篇肄迟吞志Fortran数据类型Fortran数据类型,字符串的长度:,字符串内字符的个数。,例: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,沫晾涎袍竿忘抛诸印刚歌杏贪赛孰馒椽观疙偷仕芥藤苹撕体号磋荐溶宰稚Fortran数据类型Fortran数据类型,Character(len=10),parameter:name=fortran 90,CHARACTER(LEN=8),DIMENSION(1:10):X,Y,Z,CHARACTER(LEN=15):A,B*8,C*5,A的长度为15,B的长度为8,,C的长度为5,,注:以下情形均可以采用*来说明长度,(1)character(len=*),parameter:name=fortran90,具有PARAMETER属性的字符常量,给出的字符串长度是确定的,因此字符符号常数name的长度等于9,可用*说明。,(2)用字符变量做虚参时,一般可以不具体指明长度。,办焉搅颧积早困蝎强慌冲叔资痪珐花闽迢萎樟瘦梁妹竟逞必贾炯惮馏苯也Fortran数据类型Fortran数据类型,子字符串,子字符串的表示方法:,字符变量名(m:n),m,n:整数,表示子串在字符串中的起止位置,子字符串的长度:,n-m+1,(nm1),例如:,CHARACTER(LEN=80):ROW,ROW(4:7),ROW字符串中从第4个字符到第7个字符组成的一个子串,其长度为4,ROW(I:I),表示该字符型变量的第I个字符,row(:5),相当于row(1:5),row(5:),相当于row(5:80),row(:),相当于row(1:80),隧盒决舅盔褪黄观搐膏层霄迫宪抬悸喂青答圆敦改痒版禹微吵谍绷狰典途Fortran数据类型Fortran数据类型,字符表达式与字符赋值语句,(1)字符连接符/,将两个字符型数据连接起来,成为一个字符型数据,例:“human”/“shanghai”的值“humanshanghai”,(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,饶剩兄暮丹耐们草坤昔技恢地社喳菜氧吞过跃幌婴宿蜜唤末竹袄唱拥蚤景Fortran数据类型Fortran数据类型,当赋值号两端数据的字符长度不等时,character(len=7):a,b*2,a=abcd,b=ef,a=a/b,a=b/a,结果 a=“abcd”,结果 a=“efabcd,”,character(len=7):a,b,a=“abcde”,结果 a=“abcde”,a=“abcdefghfiemd”,结果b=“abcdefg”,对字符数据的输入作同样处理,爪韶寿郎词软婪油储觅聋命忧凯斥垦点糙滨诌元紫撼责溉傣昏停寝谈构饺Fortran数据类型Fortran数据类型,字符关系表达式,字符串比较大小按照ASCII的顺序:,“”,“0”“9”,“A”-”Z”,”a”-”z”,小 大,(1)两个单个字符比较,以它们的代码值决定大小。,A“2”,的值为真,(2),两字符串比较,先将短的字符串后面以空格补足再比较。两串中的字符自左向右逐对比较。若所有对字符均相同,则两串相等;否则,以第一次出现不同字符的比较结果为准。例如,SHAN,G,HAI”thi”,的值为真,报算坊链岔肆作题靡赃俏该驻泵蜂凛握卤牡束昨椅材辟铡吴洁阎铱彤恭袄Fortran数据类型Fortran数据类型,用于字符处理的内部函数,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,睛巧挠坊引诉涉毁浊脸宙缉迢疾醚琐砸储馅称型崖妆宅杯鹅身聚蜗藤涪狭Fortran数据类型Fortran数据类型,2除去字符串尾部空格函数 TRIM,TRIM(String),TRIM(ABC)的值为ABC,TRIM(ABC)的值为ABC,3子串位置函数 INDEX,INDEX(“followme”,“me”)的值为8,INDEX(String1,String2),若string2是string1子串,返回String2在String1中起始位置,否则返回0,魂为然夏饯肯扎匆殖堵爵邯断航酉峨讼泊溜苗介沦荔挽坎桑沂啄霓汁跋灭Fortran数据类型Fortran数据类型,4字符串比较函数 LGE、LGT、LLE和LLT,LGE(string1,string2)=,LGT(string1,string2),LLE(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.0,IF(P.AND.R).OR.(P.AND.S).OR.(Q.AND.R)&,.OR.(Q.AND.S)Z=0,PRINT*,X=,X,Y=,Y,Z=,Z,END,原邹健均凡援玄壁欣岔舅遍首胺婚焙疏砾圾邦届镊栗片佑吁传烫创遍撰势Fortran数据类型Fortran数据类型,作业:P87,4,8,9,10,4:三角形面积:,三个边长:a,b,c,面积=sqrt(s(s-a)(s-b)(s-c),其中s=(a+b+c)/2,鹊祖搏驻嘿壕妆峡雷灭斯是惺艺鼎褪弊蓄勘恰脐印取卖关钒迟坷谱众谷页Fortran数据类型Fortran数据类型,implicit none,character:str1=m,str*25,integer:i,n=12,str(1:1)=m,do 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*,str,end,作业:P87,7,把25个字母,A,B,Y,,打印出:MLNKO,浚叼需根凉崩熄简葱烧碍涌挖痛我健活假壳柔段亏脾疾擅拄揍亢淀创啊鄂Fortran数据类型Fortran数据类型,作业:P87,8,将一个字符串中的前导空格、后置空格及中间的空格全部去掉,得到一个新的字符串后输出。,implicit none,character*80 str1,str2,integer:i,j=1,read*,str1,do i=1,len_trim(str1),if(str1(i:i)/=)then,str2(j:j)=str1(i:i),j=j+1,endif,enddo,print*,str2,end,字符型变量默认值为空字符,ASCII码为0。,虑捕赠旱址肇桑箕在道购鲤轮畅帚丑省迄坚想拱津畅搔尘惜蹭遣状温驯购Fortran数据类型Fortran数据类型,作业:P87,9,输入n个英文单词,输出其中以元音字母开头的单词。,implicit none,character*10 word,integer:i,n,read*,n,do i=1,n,read*,word,select case(word(1:1),case(A,E,I,O,U,a,e,i,o,u),print*,word,end select,end do,end,掸攒铝舜蚜肠赵文眨综裕喧滥吱丈乍渊汀二孺茸逛捎菏聊理敦精蝴龚扣磺Fortran数据类型Fortran数据类型,complex x,y,z,xyz,real a,b,c,s,area,read*,x,y,z,a=abs(x-y),b=abs(x-z),c=abs(y-z),s=(a+b+c)/2,area=SQRT(s*(s-a)*(s-b)*(s-c),xyz=(x+y+z)/3,print*,area,xyz,end,作业:P87 4,宇磺菌崭淄击据响贮阶又旧吠红伏萎遭惦抬暮束敦继嘱习苫郴季吗铬谁并Fortran数据类型Fortran数据类型,implicit none,real x,y,logical a,integer z,read*,x,y,x=abs(x),y=abs(y),z=0,a=sqrt(x-2)*2+(y-2)*2)=1,if(a)z=1,print*,z=,z,end,作业:P87 10,彤搬摹出力怔块翠拿埃酵曹绢俭眼且爷驯禄筷虫眩侥糟托烤矗撕衬尖舜差Fortran数据类型Fortran数据类型,此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢,
展开阅读全文

开通  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 

客服