资源描述
长安大学地学信息技术研究所,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:,:,长安大学地学信息技术研究所,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%。请编写程序,输入某企业产值,计算出其当年的应交税值,并打印输出。,
展开阅读全文