下载此文档

第六章循环结构程序设计.doc


文档分类:IT计算机 | 页数:约19页 举报非法文档有奖
1/19
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/19 下载此文档
文档列表 文档介绍
第六章循环结构程序设计
许多问题的求解归结为重复执行的操作,比如数值计算中的方程迭代求根,非数值计算中的对象遍历。重复执行就是循环。重复工作是计算机特别擅长工作之一。
重复执行不是简单地重复,每次重复,操作的数据(状态、条件)都可能发生变化。
重复的动作是受控制的,比如满足一定条件继续做,一直做直到某个条件满足,做多少次结束。也就是说重复工作需要进行控制-循环控制。C语言提供了三种循环控制语句(不考虑goto/if构成的循环),构成了三种基本的循环结构:
while语句构成的循环结构(“当型循环”)
do-while语句构成的循环结构(“直到型循环”)
for语句构成的循环结构(“当型循环”)
6、1 while语句(当型循环)
while(表达式)语句;
或:
while(表达式)
{
语句序列;
}
while语句的一般形式是:
循环体
循环条件
其中:表达式称为“循环条件”,语句称为“循环体”。为便于初学者理解,可以读做“当条件(循环条件)成立(为真),循环执行语句(循环体)”
执行过程是:
先计算while后面的表达式的值,如果其值为“真”则执行循环体,
在执行完循环体后,再次计算while后面的表达式的值,如果其值为“真”则继续执行循环体,如果表达式的值为假,退出此循环结构。
while循环的执行流程:
当表达式为“真”
循环体
使用while语句需要注意以下几点:
while语句的特点是先计算表达式的值,然后根据表达式的值决定是否执行循环体中的语句。因此,如果表达式的值一开始就为“假”,那么循环体一次也不执行。
当循环体为多个语句组成,必须用{}括起来,形成复合语句。
在循环体中应有使循环趋于结束的语句,以避免“死循环”的发生。
例6-1:利用while语句,编写程序计算1+2+3+…+100。
解:
算法1:直接写出算式
S1: result<=1+2+3+4+5+…+100
很简单。但是写都写得累死了。
算法2:
考虑到1+2+3+…+100可以改写为:(((1+2)+3)+…+100),
S1:p1<=1+2
S2: p2<=p1+3
S3: p3<=p2+4

S99: p99<=p98+100 结果在p100里。
此算法也一样麻烦,要写99步,同时要使用99个变量。本算法同样不适合编程。
但是可以从本算法看出一个规律。即:每一步都是两个数相加,加数总是比上一步加数增加1后参与本次加法运算,被加数总是上一步加法运算的和。可以考虑用一个变量i存放加数,一个变量p存放上一步的和。那么每一步都可以写成:p+i,然后让p+i的和存入p,即:每一步都是p<=p+i。也就是说p既代表被加数又代表和。这样可以得到算法3。执行完步骤S99后,结果在p中。
算法3:
S0: p<=0,i<=1
S1: p<=p+i, i<=i+1
S2: p<=p+i, i<=i+1
S3: p<=p+i, i<=i+1

S99: p<=p+i, i<=i+1
从算法3表面上看与算法2差不多,同样要写99步。但是从算法3可以看出S1-S99步骤实际上是一样的,也就是说S1-S99同样的操作重复做了99次。计算机对同样的操作可以用循环完成,循环是计算机工作的强项(计算机高速度运算)。算法4就是在算法3的基础上采用循环功能的算法实现。
算法4:
S0: p<=0,i<=1(循环初值)
S1: p<=p+i, i<=i+1(循环体)
S2: 如果i小于或等于100,返回重新执行步骤S1及S2;否则,算法结束(循环控制)。
p中的值就是1+2+…+100的值。
从算法4可以看出这是一个典型的循环结构程序,流程图:
i<=1,sum<=1
当i≤100
sum<=sum+I
i<=i+1
打印sum
main()
{
int i=1,sum=0;
while(i<=100)
{
sum=sum+i;
i++;
}
printf(sum);
}
结论:编制循环程序要注意下面几个方面:
遇到数列求和,求积的一类问题,一般可以考虑使用循环解决。
注意循环初值的设置。一般对于累加器常常设置为0,累乘器常常设置为1。
循环体中做要重复的工作,同时要保证使循环倾向于结束。循环的结束由while中的表达式(条件)控制。
例6-2:利用while语句,计算机1+1/2+1/4+…+1/50.
观察数列1,1/2,…,1/50。=1/1,1/2,,1/50。分子全部为1,分母除第一项外,全部是偶数。同样考虑用循环实现。其中累加器用sum表示(初值设置为第一项1,以后不累加第一项),循环控制

第六章循环结构程序设计 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数19
  • 收藏数0 收藏
  • 顶次数0
  • 上传人170486494
  • 文件大小220 KB
  • 时间2018-02-12