第七章--循环结构程序设计.ppt

上传人:龙*** 文档编号:100661 上传时间:2018-07-06 格式:PPT 页数:55 大小:2.31MB
下载 相关 举报
第七章--循环结构程序设计.ppt_第1页
第1页 / 共55页
第七章--循环结构程序设计.ppt_第2页
第2页 / 共55页
第七章--循环结构程序设计.ppt_第3页
第3页 / 共55页
第七章--循环结构程序设计.ppt_第4页
第4页 / 共55页
第七章--循环结构程序设计.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、1. 循环结构概述 2. 用DO循环语句实现循环 3. 用DO WHILE语句实现循环 4. 用IF和GOTO语句实现循环 5. 强制性终止循环过程 6. 特殊DO循环语句与EXIT语句 7. 循环嵌套 8. 循环结构程序设计应用举例 9. 习题七,第七章 循环结构程序设计,9,FORTRAN90程序设计课多媒体课件,7.1 循环结构概述,重复问题 循环结构 循环分类,7.1 循环结构概述,第七章 循环结构程序设计,7.1 循环结构概述/循环结构,7.1 循环结构概述,第七章 循环结构程序设计,重复问题 循环结构 循环分类,7.1 循环结构概述/循环分类,7.1 循环结构概述,循环结构分为两类

2、: 循环体的循环次数事先确定(如例7.1中循环结构),这类循环结构称为确定性循环,或称“计数型”循环,使用计数型循环语句(如DO循环语句)实现这类循环结构。循环次数为:MAX(终值-初值)/步长+1,0)。 循环体的循环次数事先不确定(如例7.2中循环结构),这类循环结构称为非确定性循环,或称“条件型”循环,使用条件型循环语句(如DO WHILE循环语句)实现这类循环结构。条件型循环又分“当型”循环和“直到型”循环。,第七章 循环结构程序设计,重复问题 循环结构 循环分类,7.1 循环结构概述/循环结构/示例1,7.1 循环结构概述,例7.1 求S=1+2+3+N的值(N由键盘输入,N2)。编

3、写程序。解:求解这一问题,将执行N-1次加法运算。如果将等式写成S=0+1+2+N,则执行N次加法运算。重复问题易采用循环结构实现。用S保存和,用N保存最大求和值,用I作计数器。编写程序如下: INTEGER S,N,I READ(*,*)N S=0 DO I=1,N S=S+I EDNDO WRITE(*,*) S=,S END,第七章 循环结构程序设计,重复问题 循环结构 循环分类,7.1 循环结构概述/循环结构/示例2,7.1 循环结构概述,第七章 循环结构程序设计,例7.2 读入某班级考试成绩(人数不定),计算其平均成绩,并输出。解:由于学生人数不定,所以输入的学生成绩个数不确定,以输

4、入-1作为结束标志(因为成绩不可能为负数),从而动态确定学生人数n。平均成绩计算公式是:av=(x1+x2+xn)/n INTEGER sum,n,x REAL av sum=0;n=0 READ *,x DO WHILE (x-1) n=n+1;sum=sum+x;READ *,x ENDDO av=sum/n WRITE(*,*) 平均成绩为:,av END,重复问题 循环结构 循环分类,7.1 循环结构概述/循环分类/例71,7.1 循环结构概述,第七章 循环结构程序设计,循环结构分为两类: 循环体的循环次数事先确定(如例7.1中循环结构),这类循环结构称为确定性循环,或称“计数型”循环

5、,使用计数型循环语句(如DO循环语句)实现这类循环结构。循环次数为:MAX(终值-初值)/步长+1,0)。 循环体的循环次数事先不确定(如例7.2中循环结构),这类循环结构称为非确定性循环,或称“条件型”循环,使用条件型循环语句(如DO WHILE循环语句)实现这类循环结构。条件型循环又分“当型”循环和“直到型”循环。,例7.1 求S=1+2+3+N的值(N由键盘输入,N2)。编写程序。解:求解这一问题,将执行N-1次加法运算。如果将等式写成S=0+1+2+N,则执行N次加法运算。重复问题易采用循环结构实现。用S保存和,用N保存最大求和值,用I作计数器。编写程序如下: INTEGER S,N,

6、I READ(*,*)N S=0 DO I=1,N S=S+I EDNDO WRITE(*,*) S=,S END,重复问题 循环结构 循环分类,7.1 循环结构概述/循环分类/例72,7.1 循环结构概述,第七章 循环结构程序设计,循环结构分为两类: 循环体的循环次数事先确定(如例7.1中循环结构),这类循环结构称为确定性循环,或称“计数型”循环,使用计数型循环语句(如DO循环语句)实现这类循环结构。循环次数为:MAX(终值-初值)/步长+1,0)。 循环体的循环次数事先不确定(如例7.2中循环结构),这类循环结构称为非确定性循环,或称“条件型”循环,使用条件型循环语句(如DO WHILE循

7、环语句)实现这类循环结构。条件型循环又分“当型”循环和“直到型”循环。,例7.2 读入某班级考试成绩(人数不定),计算其平均成绩,并输出。解:由于学生人数不定,所以输入的学生成绩个数不确定,以输入-1作为结束标志(因为成绩不可能为负数),从而动态确定学生人数n。平均成绩计算公式是:av=(x1+x2+xn)/n INTEGER sum,n,x REAL av sum=0;n=0 READ *,x DO WHILE (x-1) n=n+1;sum=sum+x;READ *,x ENDDO av=sum/n WRITE(*,*) 平均成绩为:,av END,重复问题 循环结构 循环分类,计数型循环

8、示例,第七章 循环结构程序设计,当型循环示例,第七章 循环结构程序设计,直到型循环示例,第七章 循环结构程序设计,7.2 使用DO循环语句实现计数型循环,一般格式 执行过程 示例1 示例2,7.2 使用DO循环语句实现计数型循环,: DO =, ENDDO 说明:v为循环变量,一般为整型变量,用来控制循环次数。e1、e2和e3为表达式,其类型与循环变量类型相同。e1代表循环变量v的初值,e2代表循环变量v的终值,e3代表循环变量v的步长,e3可缺省,e3缺省指e3为1。 循环次数计算公式是:MAX(e2-e1)/e3 + 1 ,0)。如果e30,则一般要求e1e2,否则循环次数为0,即循环体一

9、次也不执行。 如果e30,则一般要求e1e2,否则循环次数为0,即循环体一次也不执行。 如果e30,则一般要求e1e2,否则循环次数为0,即循环体一次也不执行。在循环体中可引用循环变量v的值,但不能赋值,即修改它的值。(示例),M=1;N=10;L=1DO I=1,10,2 !输出1、3、5、7、9 PRINT *,IENDDODO I=10,1,-2 !输出10、8、6、4、2 PRINT*,IENDDODO I=M+1,N+2,L+3 !输出2、6、10 PRINT *,IENDDODO I=1,5 !输出1、2、3、4、5 PRINT *,IENDDO,一般格式 执行过程 示例1 示例2

10、,7.3 使用DO WHILE循环语句实现循环,一般格式 执行过程 示例,7.3 使用DO WHILE循环语句实现循环,第七章 循环结构程序设计,7.3 使用DO WHILE循环语句实现循环/一般过程,7.3 使用DO WHILE循环语句实现循环,第七章 循环结构程序设计,DO WHILE循环语句在每次循环体执行前都要计算表示循环控制条件的逻辑表达式,其计算结果决定循环体是否继续执行,循环体的执行过程必须对循环控制条件产生影响。,一般格式 执行过程 示例,7.3 使用DO WHILE循环语句实现循环/示例,7.3 使用DO WHILE循环语句实现循环,第七章 循环结构程序设计,一般格式 执行过

11、程,7.3 使用DO WHILE循环语句实现循环/说明,7.3 使用DO WHILE循环语句实现循环,第七章 循环结构程序设计,PROGRAM cycle1sum=0READ *,xDO WHILE (x-1) sum=sum+x READ *,xENDDOPRINT *,sum=,sumEND,PROGRAM cycle2sum=0READ *,xDO WHILE (0=x .AND. x1e-7) x0=x1 x1=(x0+a/x0)/2END DOPRINT *PRINT *,a,平方根为:,x1END!输入数据:输入计算平方根的数:2!输出数据为:2.000000 平方根为: 1.41

12、4214,例712算法和程序,第七章 循环结构程序设计,PROGRAM Sin_xPARAMETER(pi=3.14159278,eps=1E-7)INTEGER :n=1,maxterms=10REAL x,T,sinxWRITE(*,“(A)”,ADVANCE=NO) 输入一个度数值:READ*,xx=x*pi/180 !转换为弧度值T=x;sinx=TDO WHILE(ABS(T)ERR).AND.(neps)THEN PRINT*,发散级数,不能得到结果。ELSE PRINT*,程序计算得到的正弦值:,sinx PRINT*,FORTRAN 90内部函数值:,SIN(x)END IFE

13、ND,输入数据: 输入一个度数值:45输出结果为: 程序计算得到的正弦值: 0.7071068 Fortran 90内部函数值: 0.7071068,例713程序,第七章 循环结构程序设计,INTEGER :ms=12, nINTEGER cycle_countREAL :a=1000, p!r为年利率,r0为最低利率,r1为最高利率,rc为利率增量REAL r,r0,r1,rc READ*,r0,r1,rc !输入最低利率,最高利率,利率增量cycle_count=INT(r1-r0)/rc)+1 !计算循环次数r=r0PRINT*,利率 15年 20年 25年DO i=1,cycle_co

14、unt WRITE(*,(F5.2,%),ADVANCE=NO) 100*R DO n=15,25,5 p=r/ms*a*(1+r/ms)*(ms*n)/(1+r/ms)*(ms*n)-1) WRITE(*,(F10.2),ADVANCE=NO) p END DO PRINT * r=r+rcEND DOEND,输入数据:0.1,0.2,0.01输出结果为: 利率 15年 20年 25年 10.00% 10.75 9.65 9.09 11.00% 11.37 10.32 9.80 20.00% 17.56 16.99 16.78,例713程序,第七章 循环结构程序设计,INTEGER :ms=

15、12, nINTEGER cycle_countREAL :a=1000, p!r为年利率,r0为最低利率,r1为最高利率,rc为利率增量REAL r,r0,r1,rc READ*,r0,r1,rc !输入最低利率,最高利率,利率增量cycle_count=INT(r1-r0)/rc)+1 !计算循环次数r=r0PRINT*,利率 15年 20年 25年DO i=1,cycle_count WRITE(*,(F5.2,%),ADVANCE=NO) 100*R DO n=15,25,5 p=r/ms*a*(1+r/ms)*(ms*n)/(1+r/ms)*(ms*n)-1) WRITE(*,(F1

16、0.2),ADVANCE=NO) p END DO PRINT * r=r+rcEND DOEND,输入数据:0.1,0.2,0.01输出结果为: 利率 15年 20年 25年 10.00% 10.75 9.65 9.09 11.00% 11.37 10.32 9.80 20.00% 17.56 16.99 16.78,例714程序,第七章 循环结构程序设计,PROGRAM fibonacciINTEGER :F1=1, F2=1, F3WRITE(*,(1X,2X,I5,2X,I5) F1, F2DO i=3,20 F3=F2+F1 WRITE(*,(2X,I5) F3 F1=F2; F2=

17、F3 IF (MOD(i,10)= =0) WRITE(*,(/, )ENDDOEND!输出数据:! 1 1 2 3 5 8 13 21 34 55! 89 144 233 377 610 987 1597 2584 4181 6765,例715程序,第七章 循环结构程序设计,PROGRAM validateINTEGER :L=0, R, nWRITE(*,(1X,输入项数n:),ADVANCE=NO) READ *, nDO i=1,n !计算等式左端值L L=L+i*iENDDOR=n*(n+1)*(2*n+1)/6 !计算等式右端值RIF (L= =R) THEN PRINT *,公式

18、正确!ELSE PRINT *,公式不正确! ENDIFEND !输入数据:输入项数n:10!输出数据:公式正确!,例716程序,第七章 循环结构程序设计,PROGRAM narcissusINTEGER :i,n1,n2,n3,num=0PRINT *,三位数的水仙花数有:DO i=100,999 n3=i/100 !求百位数字 n2=(i-n3*100)/10 !求十位数字 n1=i-n3*100-n2*10 !求个位数字 temp=n3*n3*n3+n2*n2*n2+n1*n1*n1 IF (temp= =i) THEN PRINT *,i,是一个水仙花数。 num=num+1 ENDIFENDDOPRINT (1X,三位数的水仙花数有,I2, 个。),numEND,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。