版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.09/10学年第一学期 1第四讲第四讲 选择结构及基本语句选择结构及基本语句.09/10学年第一学期 24.1 4.1 概述概述l顺序结构程序特点:程序自上而下按语句顺序逐句执行。是三大结构之一。顺序结构程序特点:程序自上而下按语句顺序逐句执行。是三大结构之一。l选择结构程序特点:根据条件判定结果决定语句执行顺序。是三大结构之一。选择结构程序特点:根据条件判定结果决定语句执行顺序。是三大结构之一。lFORTRAN90FORTRAN90提供提供IFIF和和SELECTSELECT语句来实现选择结构。语句来实现选择结构。l示例示例: :输入学生成绩,判定合格与否,输出判定结果。输入学生成绩,判定
2、合格与否,输出判定结果。 PROGRAM exam4_1PROGRAM exam4_1 CHARACTER CHARACTER* *6 grade6 grade WRITE( WRITE(* *, ,“( (输入学生成绩:输入学生成绩:)”) ) READ ( READ (* *, ,* *)s)s IF IF (s=60) (s=60) THENTHEN grade= grade=合格合格 ELSEELSE grade= grade=不合格不合格 END IFEND IF WRITE( WRITE(* *, ,* *) )该学生成绩该学生成绩,grade,grade,。 END progra
3、mEND programs 6s 60 0假假真真输出输出gradegrade结结 束束开开 始始输入成绩输入成绩s s“合格合格”gradegrade“不合格不合格”gradegrade.09/10学年第一学期 34.2 4.2 逻辑逻辑IFIF语句语句l逻辑逻辑IFIF语句语法:语句语法: IF(IF()S 其中:其中:e e为逻辑表达式或关系表达式。为逻辑表达式或关系表达式。 S S为赋值语句、输入输出语句、为赋值语句、输入输出语句、STOPSTOP、EXITEXIT等可执行语句。等可执行语句。l逻辑逻辑IFIF语句功能:先求语句功能:先求e e值值, ,为真为真(.TRUE.),(.T
4、RUE.),执行语句执行语句S S。 l示例:示例: READ (READ (* *, ,* *)i,j)i,j IF(ij) WRITE( IF(iB) READ (IF (AB) READ (* *, ,* *) A) AIF (X.EQ.10.0) WRITE(IF (X.EQ.10.0) WRITE(* *, ,* *) X) XIF (ABS(A-B)1E-7) STOPIF (ABS(A-B)B) EXITIF (AB) EXITIF (SUM .LT. 100.0) G0TO 10IF (SUM .LT. 100.0) G0TO 10非法逻辑非法逻辑IFIF语句:语句:IF (B
5、.LT.100.0) IF (B.GE.80) A=B IF (B.LT.100.0) IF (B.GE.80) A=B IF (X.GT.100.0) ENDIF (X.GT.100.0) ENDIF (AB) T=A A=B B=TIF (AB) T=A A=B B=TIF (AB .AND. AC) DATA A/8/IF (AB .AND. AC) DATA A/8/IF (AB .AND. AC)IF (AB .AND. AC)IF A.GT.Max Max=A IF A.GT.Max Max=A .09/10学年第一学期 5 例例4.14.1已知三个整数已知三个整数A,B,C,A,
6、B,C,输入其值并打印三个数中最大值。输入其值并打印三个数中最大值。 解:根据题意设计算法并画程序流程图解:根据题意设计算法并画程序流程图, ,如图如图4-24-2所示。所示。 程序:程序: INTEGER A,B,C,maxINTEGER A,B,C,max WRITE( WRITE(* *, ,“( (请输入三个整数请输入三个整数: :)”) ) READ( READ(* *, ,* *) A,B,C) A,B,C max=A max=A IF(Bmax) max=B IF(Bmax) max=B IF(Cmax) max=C IF(Cmax) max=C WRITE( WRITE(* *
7、,100) max,100) max 100 FORMAT(1X,max=,I5) 100 FORMAT(1X,max=,I5) END END输入:输入:请输入三个实数请输入三个实数:12,100,22:12,100,22输出:输出:max= 100max= 100 结束结束max=Amax=ABmaxBmax真真假假max=Bmax=BCmaxCmax假假真真max=Cmax=C输出输出maxmax输入:输入: A,B,CA,B,C.09/10学年第一学期 64.3 4.3 块块IFIF语句语句l基本块基本块IFIF语句语法语句语法: IF(IF()THENe)THEN THEN ELSE
8、 ELSE ELSE END IF END IF IF(IF()THENe)THEN THEN END IF END IF THEN ELSE l基本块基本块IFIF语句功能:先求语句功能:先求e e值值, ,为真为真, ,执行执行THEN , , 为假为假, ,执行执行ELSE 。 lTHEN 和和ELSE 为一程序段为一程序段( (语句序列语句序列) )。.09/10学年第一学期 7l选择结构有三种类型:选择结构有三种类型:双边结构双边结构、单边结构单边结构1 1、单边结构单边结构2 2。真真假假THENTHEN语句体语句体e eELSEELSE语句体语句体双边选择结构双边选择结构ENDI
9、FENDIFENDIFENDIF真真假假e eTHENTHEN语句体语句体单边选择结构单边选择结构1 1ENDIENDIF F真真假假e eELSEELSE语句体语句体单边选择结构单边选择结构2 2IF (e) THEN IF (e) THEN THEN ELSEELSE ELSE ENDIFENDIFIF (e) THENIF (e) THEN THEN ENDIFENDIFIF (e) THENIF (e) THENELSEELSE ELSE ENDIFENDIFIF (.NOT. e) THENIF (.NOT. e) THEN ELSE ENDIFENDIF.09/10学年第一学期 8
10、 例例4.24.2输入一个整数输入一个整数, ,判断它是奇数还是偶数判断它是奇数还是偶数, ,并打印输出。并打印输出。解:根据题意设计算法并画程序流程图解:根据题意设计算法并画程序流程图, ,如图如图4-44-4所示。所示。 程序:程序: 10 FORMAT(1X,I5, IS A EVEN NUMBER.)10 FORMAT(1X,I5, IS A EVEN NUMBER.) 20 FORMAT(1X,I5, IS A ODD NUMBER.) 20 FORMAT(1X,I5, IS A ODD NUMBER.) WRITE( WRITE(* *, ,* *) PLEASE INPUT A
11、INTEGER NUMBER:) PLEASE INPUT A INTEGER NUMBER: READ( READ(* *, ,* *) N) N IF(MOD(N,2)= IF(MOD(N,2)= =0)THEN =0)THEN WRITE( WRITE(* *,10) N ,10) N ELSE ELSE WRITE( WRITE(* *,20) N,20) N END IF END IF END END 输入:输入:77 77 输出:输出:77 IS A ODD NUMBER. 77 IS A ODD NUMBER. 假假打印奇数打印奇数输入输入N N结束结束MOD(N,2)=MOD(
12、N,2)= =0=0打印偶数打印偶数真真.09/10学年第一学期 9l多支块多支块IFIF语句语法语句语法: IF(IF()THENe1)THEN 1 ELSE IF( ELSE IF()THENe2)THEN 2 ELSE IF( ELSE IF()THENe3)THEN 3 ELSE IF( ELSE IF()THENen)THEN n ELSE ELSE n+1 END IF END IF l功能:求功能:求eiei值值, ,为真为真, ,执行执行 i, ,均为假均为假, ,执行执行 n+1。 .09/10学年第一学期 10给定一学生成绩给定一学生成绩S,S,评判该学生等级评判该学生等级
13、, ,并输出评判结果。并输出评判结果。评判标准:评判标准: 优:优:90S100;90S100;良:良:80S90;80S90;中:中:70S8070S80 及格:及格:60S70;60S70;不及格:不及格:S60S60解:根据题意设计算法并画程序流程图解:根据题意设计算法并画程序流程图, ,如下图所示。如下图所示。 有三个等价程序可求解这一问题。有三个等价程序可求解这一问题。输出输出“优优”输出输出“良良”输出输出“中中”输出输出“及及”输出输出“不及不及”S60S60真真假假S70S70真真假假S80S80真真假假S90S90真真假假.09/10学年第一学期 11 ! !程序一程序一 W
14、RITE(WRITE(* *, ,“( (输入学生成绩:输入学生成绩:)”) ) READ ( READ (* *, ,* *)S)S IF (S60) WRITE( IF (S=60 .AND. S=60 .AND. S=70 .AND. S=70 .AND. S=80 .AND. S=80 .AND. S=90) WRITE(IF (S=90) WRITE(* *, ,* *) )该学生成绩为:优。该学生成绩为:优。 ENDEND.09/10学年第一学期 12 ! !程序二程序二 WRITE(WRITE(* *, ,“( (输入学生成绩:输入学生成绩:)”) ) READ ( READ (
15、* *, ,* *)S)S IF (S60) THEN IF (S60) THEN WRITE( WRITE(* *, ,* *) )该学生成绩为:不及格。该学生成绩为:不及格。 ELSEELSE IF (S70) THEN IF (S70) THEN WRITE( WRITE(* *, ,* *) )该学生成绩为:及格。该学生成绩为:及格。 ELSEELSE IF (S80) THEN IF (S80) THEN WRITE( WRITE(* *, ,* *) )该学生成绩为:中。该学生成绩为:中。 ELSE ELSE IF (S90) THEN IF (S90) THEN WRITE( W
16、RITE(* *, ,* *) )该学生成绩为:良。该学生成绩为:良。 ELSEELSE write( write(* *, ,* *) )该学生成绩为:优。该学生成绩为:优。 END IFEND IF END IF END IF END IF END IFEND IFEND IFENDEND.09/10学年第一学期 13 READ READ (* *, ,* *)S )S ! !程序三程序三 IF (S60) THENIF (S60) THEN write( write(* *, ,* *) )该学生成绩为:不及格。该学生成绩为:不及格。 ELSE IF (S70) THEN ELSE IF
17、 (S70) THEN write( write(* *, ,* *) ) 该学生成绩为:及格。该学生成绩为:及格。 ELSE IF (S80) THEN ELSE IF (S80) THEN write( write(* *, ,* *) ) 该学生成绩为:中。该学生成绩为:中。 ELSE IF (S90) THENELSE IF (S90) THEN write( write(* *, ,* *) ) 该学生成绩为:良。该学生成绩为:良。 ELSE ELSE write( write(* *, ,* *) ) 该学生成绩为:优。该学生成绩为:优。 ENDIFENDIF END END.09
18、/10学年第一学期 14l嵌套块嵌套块IFIF:指块:指块IFIF语句中又包含块语句中又包含块IFIF语句,可有多层嵌套。语句,可有多层嵌套。l对于嵌套块对于嵌套块IFIF,内外层块,内外层块IFIF语句体不能相互交叉。语句体不能相互交叉。l块块IFIF语句可命名语句可命名, ,在嵌套块在嵌套块IFIF中中, ,可对内外层块可对内外层块IFIF语句进行命名。语句进行命名。 l示例:求解方程示例:求解方程axax2 2+bx+c=0,+bx+c=0,需要检查是否需要检查是否a=0,a=0,防止除防止除0 0溢出。溢出。 Disc=bDisc=b* *b b4 4* *a a* *c c Oute
19、r:Outer: IF (a/=0) THEN IF (a/=0) THEN Inner:Inner: IF (Disc0) THEN IF (Disc0) THEN WRITE( WRITE(* *, ,* *)Complex roots)Complex roots ELSE Inner ELSE Inner X1=(-b+SQRT(Disc)/(2 X1=(-b+SQRT(Disc)/(2* *a)a) X2=(-b-SQRT(Disc)/(2 X2=(-b-SQRT(Disc)/(2* *a)a) END IF END IF InnerInner END IF END IF OuterO
20、uter .09/10学年第一学期 15lMS-FORTRAN 90MS-FORTRAN 90引入类似引入类似PASCALPASCAL和和C C语言中块语言中块CASECASE结构的新功能。结构的新功能。lCASECASE结构功能:计算表达式值结构功能:计算表达式值, ,从多个分支中选择一分支执行。从多个分支中选择一分支执行。 SELECTSELECT CASE(SELECT CASE()e) CASE ( CASE () 1) 1 CASE ( CASE ()2) 2 CASE ( CASE ()n) n CASE DEFAULT CASE DEFAULT n+1 END SELECT EN
21、D SELECT :,: 集合表示示例:集合表示示例:l1 1,5 5,7-97-9l1 1,3 3,5 5,7 7,9 9l125125,250250,375375,500500lpenpen, ,pencilpencil, ,deskdesklA A, ,B B, ,C C, ,D Dl.TRUE.TRUE.09/10学年第一学期 16l给定学生成绩给定学生成绩S S,评定优、良、中、及格、不及格等级,并输出。,评定优、良、中、及格、不及格等级,并输出。 INTEGER(1) SINTEGER(1) S READ ( READ (* *, ,* *)S)S SELECT CASE(INT(
22、S) SELECT CASE(INT(S) CASE(90:100) CASE(90:100) WRITE( WRITE(* *, ,* *) )该学生成绩为:优。该学生成绩为:优。 CASE(80:89)CASE(80:89) WRITE( WRITE(* *, ,* *) )该学生成绩为:良。该学生成绩为:良。 CASE(70:79)CASE(70:79) WRITE( WRITE(* *, ,* *) )该学生成绩为:中。该学生成绩为:中。 CASE(60:69)CASE(60:69) WRITE( WRITE(* *, ,* *) )该学生成绩为:及格。该学生成绩为:及格。 CASE(
23、0:59)CASE(0:59) WRITE( WRITE(* *, ,* *) )该学生成绩为:不及格。该学生成绩为:不及格。 END SELECT END SELECT CASE DEFAULTCASE DEFAULT END END WRITE(WRITE(* *, ,* *) )输入成绩数据错!输入成绩数据错! .09/10学年第一学期 174.4 4.4 选择结构程序设计举例选择结构程序设计举例 例例4.44.4任意输入一个整数任意输入一个整数N(N2),N(N2),确定确定N N是否为素数,输出判定结果。是否为素数,输出判定结果。解:解:对于整数对于整数N,N,若为偶数若为偶数, ,
24、则一定不是素数则一定不是素数; ;若为奇数若为奇数, ,从从K=3K=3至至N+1,N+1,逐个测试逐个测试MOD(N,K)MOD(N,K)是否为零是否为零, ,若有一次为零若有一次为零, ,则则N N不是素数不是素数, ,否则否则N N为素数。为素数。 LOGICAL : FLAG=.TRUE.LOGICAL : FLAG=.TRUE. READ( READ(* *, ,* *)N)N SELECT CASE (N) SELECT CASE (N) CASE (2) CASE (2) WRITE( WRITE(* *, ,* *) 2) 2是素数。是素数。 CASE (3:) CASE (3
25、:) IF (MOD(N,2)= IF (MOD(N,2)= =0) THEN =0) THEN WRITE( WRITE(* *,200) N,200) N STOP STOP ENDIF ENDIF M=INT(SQRT(FLOAT(N)+1) M=INT(SQRT(FLOAT(N)+1) DO K=3,M,2 DO K=3,M,2 IF (MOD(N,K)= IF (MOD(N,K)= =0) FLAG=.FALSE.=0) FLAG=.FALSE. ENDDO ENDDO IF (FLAG) THENIF (FLAG) THEN WRITE( WRITE(* *,100) N,100)
26、 N ELSE ELSE WRITE( WRITE(* *,200) N,200) N ENDIF ENDIFCASE DEFAULTCASE DEFAULT WRITE( WRITE(* *, ,* *) ) 数据输入不正确。数据输入不正确。END SELECTEND SELECT100 FORMAT(1X,I4,100 FORMAT(1X,I4,是素数。是素数。) )200 FORMAT(1X,I4,200 FORMAT(1X,I4,不是素数。不是素数。) )ENDEND.09/10学年第一学期 18 例例4.54.5求解方程求解方程AxAx2 2+Bx+C=0+Bx+C=0。A,B,CA
27、,B,C由键盘输入由键盘输入, ,计算且输出方程解。计算且输出方程解。 (1)A=0,B0;(1)A=0,B0;(方程只有一个解方程只有一个解) ) (2)A=0,B=0,C=0;( (2)A=0,B=0,C=0;(方程有无穷个解方程有无穷个解) ) (3)A=0,B=0,C0;( (3)A=0,B=0,C0;(方程无解方程无解) ) (4)A0,B (4)A0,B2 2-4AC-4AC 0;(0;(方程有二个不同的实数解方程有二个不同的实数解) ) (5)A0,B (5)A0,B2 2-4AC=0;(-4AC=0;(方程有二个相同的实数解方程有二个相同的实数解) ) (6)A0,B (6)A
28、0,B2 2-4AC-4AC0;(0;(方程有二个不同的复数解方程有二个不同的复数解) )解:解:依题意设计算法依题意设计算法, ,并画流程图(盒图或并画流程图(盒图或PADPAD图)。图)。 程序程序: 输入:输入:1.0,1.0,-2.01.0,1.0,-2.0 输出:输出:X1= 1.000000 X2= -2.000000X1= 1.000000 X2= -2.000000 .09/10学年第一学期 19真真假假C/=0C/=0假假真真输出输出: :无穷解无穷解输出输出: :无解无解输出输出: :有有1 1解解XR=-B/2AXR=-B/2AD0=SQRT(D)D0=SQRT(D)XI
29、=SQRT(-D)/2AXI=SQRT(-D)/2AX1=(-B+D0)/2AX1=(-B+D0)/2AX2=(-B-D0)/2AX2=(-B-D0)/2AD=BD=B2 2-4AC-4AC输出输出:XR,XI:XR,XI输出输出:X1,X2:X1,X2输入输入A,B,CA,B,C开开 始始A=0A=0假假真真B/=0B/=0假假真真结束结束D0D0.09/10学年第一学期 20WRITE(WRITE(* *, ,* *) PLEASE INPUT A,B,C) PLEASE INPUT A,B,CREAD(READ(* *, ,* *) A,B,C) A,B,CD=BD=B* *B-4B-4
30、* *A A* *C CIF(A= =0)THENIF(A= =0)THEN IF (B/=0) THEN IF (B/=0) THEN WRITE( WRITE(* *, ,* *) ) 只有一个解:只有一个解:,C/B,C/B ELSE IF(C/=0)THEN ELSE IF(C/=0)THEN WRITE( WRITE(* *, ,* *) ) 方程方程无解。无解。 ELSE ELSE WRITE( WRITE(* *, ,* *) ) 方程有方程有无穷解。无穷解。 END IFEND IFELSE IF(D0)THEN ELSE IF(D0)THEN XR=-B/(2 XR=-B/(2* *A);XI=SQRT(-D)/(2A);XI=SQRT(-D)/(2* *A)A) WRITE( WRITE(* *,20) XR,XI;WRITE(,20) XR,XI;WRITE(* *,30) XR,XI,30) XR,XI ELSE ELSE D0=SQRT(D) D0=SQRT(D) X1=(-B+D0)/(2 X1=(-B+D0)/(2* *A)A) X2=(-B-D0)/(2 X2=(-B-D0)/(2* *A)A) WR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025个人电子设备分期购买服务合同
- 2025年度宠物狗繁育基地投资合作合同4篇
- 二零二五年度智能家居窗帘系统安装施工合同4篇
- 二零二五年度林业生物质能项目合作开发合同4篇
- 2025年度出借资产托管与增值服务合同4篇
- 2025年度文化旅游景区商铺租赁合同范本2篇
- 二零二五年度绿色能源技术研发承担连带责任担保借款合同3篇
- 2025年度个人信用评分服务合同范本4篇
- 2025年度文化旅游项目管理个人劳务合同书
- 二零二五年度环保型钻井安全合同模板2篇
- 2023-2024学年西安市高二数学第一学期期末考试卷附答案解析
- 部编版二年级下册道德与法治第三单元《绿色小卫士》全部教案
- 【京东仓库出库作业优化设计13000字(论文)】
- 保安春节安全生产培训
- 初一语文上册基础知识训练及答案(5篇)
- 初中班级成绩分析课件
- 劳务合同样本下载
- 血液透析水处理系统演示
- GB/T 27030-2006合格评定第三方符合性标志的通用要求
- GB/T 13663.2-2018给水用聚乙烯(PE)管道系统第2部分:管材
- 同角三角函数的基本关系式同步练习
评论
0/150
提交评论