- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[第五章循环结构程序设计
第五章 循环结构程序设计 主要内容: 1. DO语句 2. DO WHILE语句 3. 循环的流程控制语句 4. 程序举例 在实际应用中,经常会遇到一些操作并不复杂,但在一定的条件下需要反复多次操作处理的问题,例如,要输入某班100个学生的五门课的成绩、并求每个学生的总分。对于这类问题,在程序设计中,需要反复执行同一种操作,如果用顺序结构的程序来处理,将十分繁琐,有时候可能难以实现,而使用循环结构就可以很简便地实现。循环的作用就是用来自动重复执行某一个操作。善用循环可以使程序变得很精简、提高编程效率。 5.1 DO循环结构 1. DO循环结构的组成 一般格式: DO i=e1,e2[,e3] …(循环体) END DO 其中循环变量i可以是整型或实型变量;初值e1、终值e2、步长e3可以是常量、已赋值的变量或表达式,步长e3的值可以为正数也可以为负数,但是不能为0。当步长e3为1时,常省略 。 【例5-1】显示10行hello。 程序编写如下: do i=1,10, 1 print*,HELLO!,i,次 enddo end do i=1,10, 1 print*,HELLO!,i,次 enddo end do i=1,10, 1 print*,HELLO!,i,次 enddo end 例如: (1) do i=1,10,2 s=s+i end do (2) do n=1,5 f=f*n end do (3) a=2.5 b=3.0 do t=10,a+b,2.0 print*,t end do 2. DO循环结构的执行过程 阅读以下程序,写出运行结果: do i=1,5, 1 print*,HELLO!,i,次 Enddo print*,HELLO!,i,次 end 说明: (1)循环变量在循环体中只能引用,不能再去改变它的值,否则将产生语法错误。例如下列程序段: do m=1,10 n=m**3+6 ! 对循环变量引用 m=n**2!改变循环变量的值,在编译时会发现错误 end do 在编译时会出现错误。错误提示“Error: an Assignment to a DO variable within a DO body is invalid.”。 do m=1,10 n=m**3+6 ! 对循环变量引用 end do m=n**2 !是否有错误?? (2)循环结束后,循环变量的值有意义,其值为最后一次执行完循环体增加一个步长后得到的值。例如: k=0 do i=1,5,2 k=i enddo print *,k,i end 【例5-2】计算5!,并输出。 分析: 5!=1?2?3?4?5。 对于n!的问题,计算公式是:n!=1?2?3?…?(n-1)?n。 显然这是一个重复计算问题,需做n-1次乘法运算。用do循环结构实现。 程序编写如下: parameter(n=5) integer factor factor=1 do i=1,n factor=factor*i end do print*, 5! =,factor end 【例5-3】编写程序输出100-999之间的所有“水仙花数”。 分析:“水仙花数”是指任何一个数各位数字的立方和等于该数本身。从这个条件出发,再对100-999之间的数一一验证是否符合这个条件就可以了。很明显,这是一个循环次数确定的循环,可以用do循环结构编写程序: 程序编写如下: integer n,nb,ns,ng do n=100,999 nb=n/100 ns=mod(n/10,10) ng=mod(n,10) if(nb**3+ns**3+ng**3==n) print*,n,是水仙花数 enddo end 【例5-4】输入某班50位同学一门课程的成绩,并统计各分数段人数。 分数段划分为:90分-100分 80分-89分 70分-79分 60分-69分 60分以下 分析:本程序可用do循环结构来编写,采用边输入边判断的方式进行统计各分数段人数。 程序编写如下: integer n,n90,n8
文档评论(0)