fortran选择结构及基本语句.ppt
《fortran选择结构及基本语句.ppt》由会员分享,可在线阅读,更多相关《fortran选择结构及基本语句.ppt(21页珍藏版)》请在冰豆网上搜索。
长安大学地学信息技术研究所,09/10学年第一学期1,第四讲选择结构及基本语句,长安大学地学信息技术研究所,09/10学年第一学期2,4.1概述,顺序结构程序特点:
程序自上而下按语句顺序逐句执行。
是三大结构之一。
选择结构程序特点:
根据条件判定结果决定语句执行顺序。
是三大结构之一。
FORTRAN90提供IF和SELECT语句来实现选择结构。
示例:
输入学生成绩,判定合格与否,输出判定结果。
PROGRAMexam4_1CHARACTER*6gradeWRITE(*,“(输入学生成绩:
)”)READ(*,*)sIF(s=60)THENgrade=合格ELSEgrade=不合格ENDIFWRITE(*,*)该学生成绩,grade,。
ENDprogram,长安大学地学信息技术研究所,09/10学年第一学期3,4.2逻辑IF语句,长安大学地学信息技术研究所,09/10学年第一学期4,长安大学地学信息技术研究所,09/10学年第一学期5,例4.1已知三个整数A,B,C,输入其值并打印三个数中最大值。
解:
根据题意设计算法并画程序流程图,如图4-2所示。
程序:
INTEGERA,B,C,maxWRITE(*,“(请输入三个整数:
)”)READ(*,*)A,B,Cmax=AIF(Bmax)max=BIF(Cmax)max=CWRITE(*,100)max100FORMAT(1X,max=,I5)END输入:
请输入三个实数:
12,100,22输出:
max=100,长安大学地学信息技术研究所,09/10学年第一学期6,4.3块IF语句,基本块IF语句语法:
IF()THENELSEENDIFIF()THENENDIF基本块IF语句功能:
先求e值,为真,执行,为假,执行。
和为一程序段(语句序列)。
长安大学地学信息技术研究所,09/10学年第一学期7,长安大学地学信息技术研究所,09/10学年第一学期8,例4.2输入一个整数,判断它是奇数还是偶数,并打印输出。
解:
根据题意设计算法并画程序流程图,如图4-4所示。
程序:
10FORMAT(1X,I5,ISAEVENNUMBER.)20FORMAT(1X,I5,ISAODDNUMBER.)WRITE(*,*)PLEASEINPUTAINTEGERNUMBER:
READ(*,*)NIF(MOD(N,2)=0)THENWRITE(*,10)NELSEWRITE(*,20)NENDIFEND输入:
77输出:
77ISAODDNUMBER.,长安大学地学信息技术研究所,09/10学年第一学期9,多支块IF语句语法:
IF()THENELSEIF()THENELSEIF()THENELSEIF()THENELSEENDIF功能:
求ei值,为真,执行,均为假,执行。
长安大学地学信息技术研究所,09/10学年第一学期10,给定一学生成绩S,评判该学生等级,并输出评判结果。
评判标准:
优:
90S100;良:
80S90;中:
70S80及格:
60S70;不及格:
S60解:
根据题意设计算法并画程序流程图,如下图所示。
有三个等价程序可求解这一问题。
长安大学地学信息技术研究所,09/10学年第一学期11,!
程序一WRITE(*,“(输入学生成绩:
)”)READ(*,*)SIF(S=60.AND.S=70.AND.S=80.AND.S=90)WRITE(*,*)该学生成绩为:
优。
END,长安大学地学信息技术研究所,09/10学年第一学期12,长安大学地学信息技术研究所,09/10学年第一学期13,READ(*,*)S!
程序三IF(S60)THENwrite(*,*)该学生成绩为:
不及格。
ELSEIF(S70)THENwrite(*,*)该学生成绩为:
及格。
ELSEIF(S80)THENwrite(*,*)该学生成绩为:
中。
ELSEIF(S90)THENwrite(*,*)该学生成绩为:
良。
ELSEwrite(*,*)该学生成绩为:
优。
ENDIFEND,长安大学地学信息技术研究所,09/10学年第一学期14,嵌套块IF:
指块IF语句中又包含块IF语句,可有多层嵌套。
对于嵌套块IF,内外层块IF语句体不能相互交叉。
块IF语句可命名,在嵌套块IF中,可对内外层块IF语句进行命名。
示例:
求解方程ax2+bx+c=0,需要检查是否a=0,防止除0溢出。
Disc=b*b4*a*cOuter:
IF(a/=0)THENInner:
IF(Disc0)THENWRITE(*,*)ComplexrootsELSEInnerX1=(-b+SQRT(Disc)/(2*a)X2=(-b-SQRT(Disc)/(2*a)ENDIFInnerENDIFOuter,长安大学地学信息技术研究所,09/10学年第一学期15,MS-FORTRAN90引入类似PASCAL和C语言中块CASE结构的新功能。
CASE结构功能:
计算表达式值,从多个分支中选择一分支执行。
SELECTCASE()CASE()CASE()CASE()CASEDEFAULTENDSELECT:
:
集合表示示例:
1,5,7-91,3,5,7,9125,250,375,500pen,pencil,deskA,B,C,D.TRUE.,长安大学地学信息技术研究所,09/10学年第一学期16,长安大学地学信息技术研究所,09/10学年第一学期17,4.4选择结构程序设计举例,长安大学地学信息技术研究所,09/10学年第一学期18,例4.5求解方程Ax2+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,B2-4AC0;(方程有二个不同的实数解)(5)A0,B2-4AC=0;(方程有二个相同的实数解)(6)A0,B2-4AC0;(方程有二个不同的复数解)解:
依题意设计算法,并画流程图(盒图或PAD图)。
程序:
输入:
1.0,1.0,-2.0输出:
X1=1.000000X2=-2.000000,长安大学地学信息技术研究所,09/10学年第一学期19,长安大学地学信息技术研究所,09/10学年第一学期20,长安大学地学信息技术研究所,09/10学年第一学期21,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%。
请编写程序,输入某企业产值,计算出其当年的应交税值,并打印输出。