fortran选择结构及基本语句.ppt
09/10学年第一学期 1,第四讲 选择结构及基本语句,09/10学年第一学期 2,4.1 概述,顺序结构程序特点:程序自上而下按语句顺序逐句执行。是三大结构之一。选择结构程序特点:根据条件判定结果决定语句执行顺序。是三大结构之一。FORTRAN90提供IF和SELECT语句来实现选择结构。示例:输入学生成绩,判定合格与否,输出判定结果。PROGRAM exam4_1 CHARACTER*6 grade WRITE(*,“(输入学生成绩:)”)READ(*,*)s IF(s=60)THEN grade=合格 ELSE grade=不合格 END IF WRITE(*,*)该学生成绩,grade,。END program,09/10学年第一学期 3,4.2 逻辑IF语句,09/10学年第一学期 4,09/10学年第一学期 5,例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,09/10学年第一学期 6,4.3 块IF语句,基本块IF语句语法:IF()THEN ELSE END IF IF()THEN END IF 基本块IF语句功能:先求e值,为真,执行,为假,执行。和为一程序段(语句序列)。,09/10学年第一学期 7,09/10学年第一学期 8,例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.,09/10学年第一学期 9,多支块IF语句语法:IF()THEN ELSE IF()THEN ELSE IF()THEN ELSE IF()THEN ELSE END IF 功能:求ei值,为真,执行,均为假,执行。,09/10学年第一学期 10,给定一学生成绩S,评判该学生等级,并输出评判结果。评判标准:优:90S100;良:80S90;中:70S80 及格:60S70;不及格:S60解:根据题意设计算法并画程序流程图,如下图所示。有三个等价程序可求解这一问题。,09/10学年第一学期 11,!程序一 WRITE(*,“(输入学生成绩:)”)READ(*,*)S IF(S=60.AND.S=70.AND.S=80.AND.S=90)WRITE(*,*)该学生成绩为:优。END,09/10学年第一学期 12,09/10学年第一学期 13,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,09/10学年第一学期 14,嵌套块IF:指块IF语句中又包含块IF语句,可有多层嵌套。对于嵌套块IF,内外层块IF语句体不能相互交叉。块IF语句可命名,在嵌套块IF中,可对内外层块IF语句进行命名。示例:求解方程ax2+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,09/10学年第一学期 15,MS-FORTRAN 90引入类似PASCAL和C语言中块CASE结构的新功能。CASE结构功能:计算表达式值,从多个分支中选择一分支执行。SELECT CASE()CASE()CASE()CASE()CASE DEFAULT END SELECT:,:,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-4AC 0;(方程有二个不同的实数解)(5)A0,B2-4AC=0;(方程有二个相同的实数解)(6)A0,B2-4AC0;(方程有二个不同的复数解)解:依题意设计算法,并画流程图(盒图或PAD图)。程序:输入:1.0,1.0,-2.0 输出:X1=1.000000 X2=-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%。请编写程序,输入某企业产值,计算出其当年的应交税值,并打印输出。,