用循环编写程序要注意些什么 c语言,C语言-桂林理工大学5-第五章 循环结构程序设计(15页)-原创力文档...

C语言程序设计 授课教案

PAGE 1

PAGE 16

学时安排:4

授课题目:循环结构程序设计

目标要求:

理解算法的特征及结构化程序设计的思想,掌握顺序、分枝、循环三种基本的程序设计技术,能够熟练运用它们来进行程序设计。

授课类型: 理论课 授课场地: 教室

教学方式:讲授、演示、提问、讨论 教辅设备: 投影仪

授课内容:

第五章 循环结构程序设计

许多问题的求解归结为重复执行的操作,比如数值计算中的方程迭代求根,非数值计算中的对象遍历。重复执行就是循环。重复工作是计算机特别擅长工作之一。

重复执行不是简单地重复,每次重复,操作的数据(状态、条件)都可能发生变化。

重复的动作是受控制的,比如满足一定条件继续做,一直做直到某个条件满足,做多少次结束。也就是说重复工作需要进行控制-循环控制。C语言提供了三种循环控制语句(不考虑goto/if构成的循环),构成了三种基本的循环结构:

while语句构成的循环结构(“当型循环”)

do-while语句构成的循环结构(“直到型循环”)

for语句构成的循环结构(“当型循环”)

编写程序计算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次。计算机对同样的操作可以用循环完成,循环是计算机工作的强项(计算机高速度运算)。

5、1 while语句(当型循环)

while(表达式)

while(表达式)语句;

或:

while(表达式)

{

语句序列;

}

循环体

循环体

循环条件

循环条件

其中:表达式称为“循环条件”,语句称为“循环体”。 为便于初学者理解,可以读做“当条件(循环条件)成立(为真),循环执行语句(循环体)”

执行过程是:

先计算while后面的表达式的值,如果其值为“真”则执行循环体,

在执行完循环体后,再次计算while后面的表达式的值,如果其值为“真”则继续执行循环体,如果表达式的值为假,退出此循环结构。

while循环的执行流程:

使用while语句需要注意以下几点:

while语句的特点是先计算表达式的值,然后根据表达式的值决定是否执行循环体中的语句。因此,如果表达式的值一开始就为“假”,那么循环体一次也不执行。

当循环体为多个语句组成,必须用{}括起来,形成复合语句。

在循环体中应有使循环趋于结束的语句,以避免“死循环”的发生。

编写程序计算1+2+3+…+100。

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<=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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值