收藏 分销(赏)

fortran选择结构及基本语句资料讲解.ppt

上传人:天**** 文档编号:7798526 上传时间:2025-01-17 格式:PPT 页数:21 大小:210.50KB 下载积分:10 金币
下载 相关 举报
fortran选择结构及基本语句资料讲解.ppt_第1页
第1页 / 共21页
fortran选择结构及基本语句资料讲解.ppt_第2页
第2页 / 共21页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,长安大学地学信息技术研究所,09/10学年第一学期,*,fortran选择结构及基本语句,4.2 逻辑IF语句,逻辑IF语句语法:,IF(),其中:e为逻辑表达式或关系表达式。,S为赋值语句、输入输出语句、STOP、EXIT等可执行语句。,逻辑IF语句功能:先求,e,值,为真(.TRUE.),执行语句,S,。,示例:,READ(*,*)i,j,IF(iB)READ(*,*)A,IF(X.EQ.10.0)WRITE(*,*)X,IF(ABS(A-B)B)EXIT,IF(SUM.LT.100.0)G0TO 10,非法逻辑IF语句:,IF(B.LT.100.0)IF(B.GE.80)A=B,IF(X.GT.100.0)END,IF(AB)T=A A=B B=T,IF(AB.AND.AC)DATA A/8/,IF(AB.AND.AC),IF A.GT.Max Max=A,3,长安大学地学信息技术研究所,例4.1已知三个整数A,B,C,输入其值并打印三个数中最大值。,解:根据题意设计算法并画程序流程图,如图4-2所示。,程序:,INTEGER A,B,C,max,WRITE(*,“(请输入三个整数:)”),READ(*,*)A,B,C,max=A,IF(Bmax)max=B,IF(Cmax)max=C,WRITE(*,100)max,100 FORMAT(1X,max=,I5),END,输入:,请输入三个实数:12,100,22,输出:,max=100,结束,max=A,Bmax,真,假,max=B,Cmax,假,真,max=C,输出max,输入:A,B,C,4,长安大学地学信息技术研究所,4.3 块IF语句,基本块IF语句语法,:,IF()THEN,ELSE,END IF,IF()THEN,END IF,基本块IF语句功能:先求,e,值,为真,执行,为假,执行,。,和,为一程序段(语句序列)。,5,长安大学地学信息技术研究所,选择结构有三种类型:,双边结构,、,单边结构1,、,单边结构2,。,真,假,THEN语句体,e,ELSE语句体,双边选择结构,ENDIF,ENDIF,真,假,e,THEN语句体,单边选择结构1,ENDIF,真,假,e,ELSE语句体,单边选择结构2,IF(e)THEN,ELSE,ENDIF,IF(e)THEN,ENDIF,IF(e)THEN,ELSE,ENDIF,IF(.NOT.e)THEN,ENDIF,6,长安大学地学信息技术研究所,例4.2输入一个整数,判断它是奇数还是偶数,并打印输出。,解:根据题意设计算法并画程序流程图,如图4-4所示。,程序:,10 FORMAT(1X,I5,IS A EVEN NUMBER.),20 FORMAT(1X,I5,IS A ODD NUMBER.),WRITE(*,*)PLEASE INPUT A INTEGER NUMBER:,READ(*,*)N,IF(MOD(N,2)=,=0)THEN,WRITE(*,10)N,ELSE,WRITE(*,20)N,END IF,END,输入:,77,输出:,77 IS A ODD NUMBER.,假,打印奇数,输入N,结束,MOD(N,2)=,=0,打印偶数,真,7,长安大学地学信息技术研究所,多支块IF语句语法,:,IF()THEN,ELSE IF()THEN,ELSE IF()THEN,ELSE IF()THEN,ELSE,END IF,功能:求,ei,值,为真,执行,均为假,执行,。,8,长安大学地学信息技术研究所,给定一学生成绩S,评判该学生等级,并输出评判结果。,评判标准:优:90S100;良:80S90;中:70S80,及格:60S70;不及格:S60,解:根据题意设计算法并画程序流程图,如下图所示。,有,三个等价程序,可求解这一问题。,输出“优”,输出“良”,输出“中”,输出“及”,输出“不及”,S60,真,假,S70,真,假,S80,真,假,S90,真,假,9,长安大学地学信息技术研究所,!程序一,WRITE(*,“(输入学生成绩:)”),READ(*,*)S,IF(S=60.AND.S=70.AND.S=80.AND.S=90)WRITE(*,*)该学生成绩为:优。,END,10,长安大学地学信息技术研究所,!程序二,WRITE(*,“(输入学生成绩:)”),READ(*,*)S,IF(S60)THEN,WRITE(*,*)该学生成绩为:不及格。,ELSE,IF(S70)THEN,WRITE(*,*)该学生成绩为:及格。,ELSE,IF(S80)THEN,WRITE(*,*)该学生成绩为:中。,ELSE,IF(S90)THEN,WRITE(*,*)该学生成绩为:良。,ELSE,write(*,*)该学生成绩为:优。,END IF,END IF,END IF,END IF,END,11,长安大学地学信息技术研究所,READ(*,*)S,!程序三,IF(S60)THEN,write(*,*)该学生成绩为:不及格。,ELSE IF(S70)THEN,write(*,*)该学生成绩为:及格。,ELSE IF(S80)THEN,write(*,*)该学生成绩为:中。,ELSE IF(S90)THEN,write(*,*)该学生成绩为:良。,ELSE,write(*,*)该学生成绩为:优。,ENDIF,END,12,长安大学地学信息技术研究所,嵌套块IF:指块IF语句中又包含块IF语句,可有多层嵌套。,对于嵌套块IF,内外层块IF语句体不能相互交叉。,块IF语句可命名,在嵌套块IF中,可对内外层块IF语句进行命名。,示例:求解方程ax,2,+bx+c=0,需要检查是否a=0,防止除0溢出。,Disc=b*b4*a*c,Outer:,IF(a/=0)THEN,Inner:,IF(Disc0)THEN,WRITE(*,*)Complex roots,ELSE Inner,X1=(-b+SQRT(Disc)/(2*a),X2=(-b-SQRT(Disc)/(2*a),END IF,Inner,END IF,Outer,13,长安大学地学信息技术研究所,MS-FORTRAN 90引入类似PASCAL和C语言中块,CASE,结构的新功能。,CASE结构功能:计算,表达式,值,从多个分支中选择一分支执行。,SELECT CASE(),CASE(),CASE(),CASE(),CASE DEFAULT,END SELECT,:,:,集合表示示例:,1,5,7-9,1,3,5,7,9,125,250,375,500,pen,pencil,desk,A,B,C,D,.TRUE.,14,长安大学地学信息技术研究所,给定学生成绩S,评定优、良、中、及格、不及格等级,并输出。,INTEGER(1)S,READ(*,*)S,SELECT CASE(INT(S),CASE(90:100),WRITE(*,*)该学生成绩为:优。,CASE(80:89),WRITE(*,*)该学生成绩为:良。,CASE(70:79),WRITE(*,*)该学生成绩为:中。,CASE(60:69),WRITE(*,*)该学生成绩为:及格。,CASE(0:59),WRITE(*,*)该学生成绩为:不及格。,END SELECT,CASE DEFAULT,END,WRITE(,*,*),输入成绩数据错!,15,长安大学地学信息技术研究所,4.4 选择结构程序设计举例,例4.4任意输入一个整数N(N2),确定N是否为素数,输出判定结果。,解:,对于整数N,若为偶数,则一定不是素数;若为奇数,从K=3至N+1,逐个测试MOD(N,K)是否为零,若有一次为零,则N不是素数,否则N为素数。,LOGICAL:FLAG=.TRUE.,READ(*,*)N,SELECT CASE(N),CASE(2),WRITE(*,*)2是素数。,CASE(3:),IF(MOD(N,2)=,=0)THEN,WRITE(*,200)N,STOP,ENDIF,M=INT(SQRT(FLOAT(N)+1),DO K=3,M,2,IF(MOD(N,K)=,=0)FLAG=.FALSE.,ENDDO,IF(FLAG)THEN,WRITE(*,100)N,ELSE,WRITE(*,200)N,ENDIF,CASE DEFAULT,WRITE(*,*)数据输入不正确。,END SELECT,100 FORMAT(1X,I4,是素数。),200 FORMAT(1X,I4,不是素数。),END,16,长安大学地学信息技术研究所,例4.5求解方程Ax,2,+Bx+C=0。A,B,C由键盘输入,计算且输出方程解。,(1)A=0,B0;(方程只有一个解),(2)A=0,B=0,C=0;(方程有无穷个解),(3)A=0,B=0,C0;(方程无解),(4)A0,B,2,-4AC 0;(方程有二个不同的实数解),(5)A0,B,2,-4AC=0;(方程有二个相同的实数解),(6)A0,B,2,-4AC0;(方程有二个不同的复数解),解:,依题意设计算法,并画流程图(盒图或PAD图)。,程序,:,输入:,1.0,1.0,-2.0,输出:,X1=1.000000 X2=-2.000000,17,长安大学地学信息技术研究所,真,假,C/=0,假,真,输出:无穷解,输出:无解,输出:有1解,XR=-B/2A,D0=SQRT(D),XI=SQRT(-D)/2A,X1=(-B+D0)/2A,X2=(-B-D0)/2A,D=B,2,-4AC,输出:XR,XI,输出:X1,X2,输入A,B,C,开 始,A=0,假,真,B/=0,假,真,结束,D0,18,长安大学地学信息技术研究所,WRITE(*,*),PLEASE INPUT A,B,C,READ(*,*)A,B,C,D=B*B-4*A*C,IF(A=0)THEN,IF(B/=0)THEN,WRITE(*,*)只有一个解:,C/B,ELSE IF(C/=0)THEN,WRITE(*,*),方程,无解。,ELSE,WRITE(*,*),方程有,无穷解。,END IF,ELSE IF(D0)THEN,XR=-B/(2*A);XI=SQRT(-D)/(2*A),WRITE(*,20)XR,XI;WRITE(*,30)XR,XI,ELSE,D0=SQRT(D),X1=(-B+D0)/(2*A),X2=(-B-D0)/(2*A),WRITE(*,10)X1,X2,END IF,10 FORMAT(1X,X1=,F10.6,X2=,F10.6),20,FORMAT(1X,X1=,F10.6,+,F10.6,i),30 FORMAT(1X,X2=,F10.6,-,F10.6,i),END,输入:,1.0,1.0,-2.0,输出:,X1=1.000000 X2=-2.000000,19,长安大学地学信息技术研究所,4.5 习题四,1,某商店对购货额为1000元以上(含1000元,下同),八折优待;500元,以上1000元以下,九折优待;200元以上500元以下,九五折优待;,100元以上200元以下,九七折优待;100元以下,不优待。请编写,程序,输入购货额,计算优惠货款,并打印输出该货款。,2计算税收。企业产值小于1000万,税率为3%;企业产值大于等于1000万小于2000万,税率为5%;企业产值大于等于2000万小于5000万,税率为7%;企业产值大于等于5000万小于1亿,税率为10%;企业产值大于等于1亿小于5亿,税率为14%;企业产值大于等于5亿,税率为20%。请编写程序,输入某企业产值,计算出其当年的应交税值,并打印输出。,20,长安大学地学信息技术研究所,此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢,
展开阅读全文

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


开通VIP      成为共赢上传

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

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服