《第三章结构化程序设计.ppt》由会员分享,可在线阅读,更多相关《第三章结构化程序设计.ppt(79页珍藏版)》请在优知文库上搜索。
1、第第3章章 FORTRAN结构化程序设计结构化程序设计本章内容本章内容n 顺序结构程序设计n 选择结构程序设计n 循环结构程序设计 结构化程序设计结构化程序设计:按照一定的结构形式来设计和编写程序,按照一定的结构形式来设计和编写程序,以便阅读与检查。以便阅读与检查。顺序结构顺序结构选择结构选择结构循环结构循环结构A AB BA AB B成成立立条条件件P P不不成成立立执执行行A A当当条条件件P P成成立立时时 执执行行A A直直到到条条件件P P成成立立为为止止当型循环当型循环 直到型循环直到型循环 先上后下,先左后右;即先执行A,再执行B顺序结构顺序结构A AB B【例3-1】输入输入3
2、 3个气象站个气象站5 5个月(汛期)雨量数据,统计个月(汛期)雨量数据,统计每个气象站的总雨量和平均雨量,计算每个气象站的总雨量和平均雨量,计算3 3个站五月、六月、个站五月、六月、七月、八月、九月的平均雨量,输出每个气象站每个月的七月、八月、九月的平均雨量,输出每个气象站每个月的雨量、总雨量和平均雨量,以及五月、六月、七月、八月、雨量、总雨量和平均雨量,以及五月、六月、七月、八月、九月的平均雨量。九月的平均雨量。 站名站名汛期各月雨量(毫米)汛期各月雨量(毫米)5 5月月6 6月月7 7月月8 8月月9 9月月江阴江阴76.876.8176.5176.5308.1308.141.041.0
3、69.669.6定波闸定波闸71.571.5208.5208.5352.1352.147.247.262.662.6肖山肖山65.565.5200.0200.0239.7239.744.344.363.063.0表表3-1 1998年主要站汛期雨量统计表年主要站汛期雨量统计表PROGRAM ex06_02PROGRAM ex06_02IMPLICIT NONEIMPLICIT NONEREAL r11,r12,r13,r14,r15,total11,av11REAL r11,r12,r13,r14,r15,total11,av11REAL r21,r22,r23,r24,r25,total21
4、,av21REAL r21,r22,r23,r24,r25,total21,av21REAL r31,r32,r33,r34,r35,total31,av31REAL r31,r32,r33,r34,r35,total31,av31REAL av1,av2,av3,av4,av5REAL av1,av2,av3,av4,av5WRITE(WRITE(* *,“(28X,5,“(28X,5月月 6 6月月 7 7月月 8 8月月 9 9月月)”)”)WRITE(WRITE(* *,“(1X,“(1X,输入江阴气象站五个月的雨输入江阴气象站五个月的雨: :,)”),)”)READ(READ(* *
5、, ,* *) r11,r12,r13,r14,r15) r11,r12,r13,r14,r15WRITE(WRITE(* *,“(1X,“(1X,输入定波闸气象站五个月的雨量输入定波闸气象站五个月的雨量: :,)”),)”)READ(*,*) r21,r22,r23,r24,r25WRITE(*,“(1X,输入肖山气象站五个月的雨量:,)”)READ(READ(* *, ,* *) r31,r32,r33,r34,r35) r31,r32,r33,r34,r35100100FORMAT(F5.1,F5.1,F5.1,F5.1,F5.1)FORMAT(F5.1,F5.1,F5.1,F5.1,F
6、5.1) total11=r11+r12+r13+r14+r15total11=r11+r12+r13+r14+r15 av11=total11/5av11=total11/5 total21=r21+r22+r23+r24+r25total21=r21+r22+r23+r24+r25 av21=total21/5av21=total21/5 total31=r31+r32+r33+r34+r35total31=r31+r32+r33+r34+r35 av31=total31/5av31=total31/5 av1=(r11+r21+r31)/3av1=(r11+r21+r31)/3 av2=
7、(r12+r22+r32)/3av2=(r12+r22+r32)/3 av3=(r13+r23+r33)/3 av3=(r13+r23+r33)/3 av4=(r14+r24+r34)/3 av4=(r14+r24+r34)/3 av5=(r15+r25+r35)/3av5=(r15+r25+r35)/3WRITE(WRITE(* *,“(26X,5,“(26X,5月月 6 6月月 7 7月月 8 8月月 9 9月月 总雨量总雨量 平均雨量平均雨量)”)”WRITE(WRITE(* *,200),200)江阴气象站五个月的雨量江阴气象站五个月的雨量: :, , r11,r12,r13,r14,
8、r15,total11,av11r11,r12,r13,r14,r15,total11,av11WRITE(WRITE(* *,200),200)定波闸气象站五个月的雨量定波闸气象站五个月的雨量: :, , r21,r22,r23,r24,r25,total21,av21r21,r22,r23,r24,r25,total21,av21WRITE(WRITE(* *,200),200)肖山气象站五个月的雨量肖山气象站五个月的雨量: :, , r31,r32,r33,r34,r35,total31,av31r31,r32,r33,r34,r35,total31,av31200200 FORMAT(
9、1X,A22,5(F5.1,2X),F6.1,2X,F7.3) FORMAT(1X,A22,5(F5.1,2X),F6.1,2X,F7.3) WRITE(WRITE(* *,300) 5,300) 5月月,av1,6,av1,6月月,av2,7,av2,7月月,av3,8,av3,8月月,av4,9,av4,9月月,av5,av5300300 FORMAT(1X,A4,FORMAT(1X,A4,平均雨量:平均雨量:,F7.3),F7.3)ENDEND运行结果:运行结果:3.2.13.2.1 选择结构简介选择结构简介3.2.23.2.2 IFIF语句语句 3.2.33.2.3 SELECT CA
10、SESELECT CASE语句语句 3.2.43.2.4 选择语句的嵌套选择语句的嵌套3.2.13.2.1 选择结构简介选择结构简介依据给定的条件做逻辑判断,再根据判断的结果决依据给定的条件做逻辑判断,再根据判断的结果决定应执行哪种操作定应执行哪种操作选择结构。选择结构。如:如:1 1 输入学生成绩,判定合格与否,输出判定结果。输入学生成绩,判定合格与否,输出判定结果。2 2 已知三个整数已知三个整数A,B,C,A,B,C,输入其值并打印三个数中最大值。输入其值并打印三个数中最大值。 3 3 暴雨预警信号分三级,分别以黄色、橙色、红色表示。暴雨预警信号分三级,分别以黄色、橙色、红色表示。(1
11、1)暴雨黄色预警信号)暴雨黄色预警信号(2 2)暴雨橙色预警信号)暴雨橙色预警信号(3 3)暴雨红色预警信号)暴雨红色预警信号根据降雨量评判当前预警信号,从而做出不同防御指南。必须使根据降雨量评判当前预警信号,从而做出不同防御指南。必须使用选择结构程序来解决这类问题用选择结构程序来解决这类问题 FORTRAN提供了提供了3种典型的块种典型的块IF结构:结构:(1)单分支单分支(2)双分支双分支(3)多分支多分支3.2.23.2.2 IFIF语句语句 (1)(1)单分支块单分支块IFIF结构结构一般形式为:一般形式为:IF(条件条件)THENIF块块END IF这种块这种块IF结构包括:结构包括
12、: 块块IF语句语句“IF(条件)(条件)THEN”。它是块。它是块IF结构的入口语结构的入口语句。句。 IF块。它是一个语句序列,由若干条可执行语句组成。块。它是一个语句序列,由若干条可执行语句组成。 END IF语句。它是块语句。它是块IF结构的出口语句。结构的出口语句。 条件真假if块END IF后继语句【例3-2】从键盘输入一个气温值,如果大于35.0,则显示在屏幕上。1PROGRAM ex04_022IMPLICIT NONE 3REAL T4READ *,T5IF(T35.0)THEN6PRINT *, 这是高温这是高温7PRINT *, T=,T8END IF9END(2)(2)
13、双分支块双分支块IFIF结构结构一般形式为:一般形式为:IF(条件)(条件)THENIF块块ELSEELSE块块END IF条件真假if块END IF后继语句else块【例3-3】由于大气受到污染,一些地区开始形成酸雨区,酸雨是指PH值小于5.6的雨雪或其他形式的大气降水。通过收集水样测量其PH值,判断它的酸碱性并打印出来。根据题意设计算法并画出程序流程图,如图所示。Ph5.6真真假假输出“酸雨”并打印Ph值结结束束输入Ph值输输出出“不不是是酸酸雨雨”1PROGRAM ex07_032IMPLICIT NONE 3REAL ph4WRITE(*,*)Please enter PH value
14、:5READ *,ph!定义变量定义变量ph来存放酸碱度值来存放酸碱度值6IF(ph5.6) THEN!用分支语句来判断用分支语句来判断7WRITE(*,100) ph8ELSE9WRITE(*,200) ph10END IF11100 FORMAT(1X,PH=,F4.2,is acid rain!)12200 FORMAT(1X,PH=,F4.2,is not acid rain!)13END(3)(3)多分支块多分支块IFIF结构结构一般形式为:一般形式为:IF(条件(条件1)THEN块块1ELSE IF(条件(条件2) THEN块块2ELSE IF(条件(条件3) THEN块块3.EL
15、SE IF(条件(条件n) THEN块块nELSE块块n+1END IF条件2条件1条件.条件n真真真真假假假假块1块2块.块nEND IF的后继语句块n+1【例例3-43-4】在气象部门发布的天气预报中小雨、中雨、在气象部门发布的天气预报中小雨、中雨、暴雨等专业术语,它们之间的区别如表所示:暴雨等专业术语,它们之间的区别如表所示: 降雨强度降雨强度降雨量(降雨量(1212小时,小时,单位:单位:mmmm)降雨量(降雨量(2424小时,小时,单位:单位:mmmm)小雨小雨5510140140250250r15r5r30r70真真真真假假假假END IF的后继语句真r140假小雨中雨大雨暴雨大暴
16、雨特大暴雨1PROGRAM ex07_042IMPLICIT NONE3REAL r!定义用来记录降雨量的实型量定义用来记录降雨量的实型量r4WRITE(*,100)5READ *,r6IF(r5) THEN !用多分支用多分支IF语句进行判断语句进行判断7PRINT 2008ELSE IF(r15) THEN9PRINT 30010ELSE IF(r30) THEN11PRINT 40012ELSE IF(r70) THEN13PRINT 50014ELSE IF(r0.0) THENx1=(-b+sqrt(d)/(2.0*a)x2=(-b-sqrt(d)/(2.0*a)PRINT *,两个不等实根:两个不等实根:PRINT *,x1=,x1PRINT *,x2=,x2 ELSE IF(d=0.0) THENPRINT *,两个相等实根两个相等实根PRINT *,-b/(2.0*a) ELSEpr=-b/(2.0*a)pi=sqrt(-d)/(2.0*a)PRINT *,两个复根两个复根PRINT *,x1=,pr,+,pi,iPRINT *,x2=,pr,-,pi,i END IF