chapter5-循环控制流程

合集下载

5第五章 循环控

5第五章 循环控

第六章循环控制(6.1—6.5)
(2学时)
一、教学目的及要求
本节课是C语言程序设计中的重点之一,要求学生熟练循环结构的概念,While、Do—while、for语句的一般形式、流程图、执行过程,并能对三种结构进行比较,能熟练运用到综合例题中。

二、教学重点及难点
重点:1.While 语句的执行过程及while语句的应用
2.Do--while语句的执行过程及while语句的应用
3.for语句的执行过程及应用
难点:1.while语句的应用
2.Do--while语句应用
3.for语句的应用
三、教学手段
板书与多媒体课件演示相结合
四、教学方法
启发式教学、讲解、演示
五、作业
1、习题册5.1—5.6,5.16—5.18, 5.26—5.30 , 5.64—5.67
2、输入一行字符,分别统计出其中英文字母、空格、数字、和其他字符的个数。

3、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

例如153就是一水仙花数。

153=13+53+33
六、参考资料
1、王明福、乌云高娃主编《C语言程序设计教程》第四章
2、苏小红,陈惠鹏,孙志岗等《C 语言程序设计教程》第三章
七、教学内容与教学设计。

C语言程序设计第5单元

C语言程序设计第5单元

例5.2流程图
N
8
5.1 while语句
程序代码: #include<stdio.h> main() { int i=1,n;
float fac=1; printf("please input an integer>=0:\n"); scanf("%d",&n); if(n==0||n==1)
printf("factorial is 1.\n"); else
int i,sum=0,score; float ave=0; printf("\n计算学生总成绩和平 均成绩\n"); printf("请输入10名学生的成 绩:\n");
for(i=1;i<=10;i++) { scanf("%d",&score); sum=sum+score; } ave=sum/10.0; printf("总成绩为%d 平均成绩为
1. break语句
出现在循环体中的break语句使循环结束。若在多层循环体 中使用break语句,则只结束本层循环。
【例5.11】使用for语句输出50个“*”,使用break控制数量。
#include <stdio.h>
main()
{
int i;
for(i=1;;i++)
{
if(i>50) break;
方法三:
#include "stdio.h"
int main()
{
int i=1;
for(;i<=10;)
{

第六章 循环控制

第六章 循环控制

对下半部每一行:$数+空格数=列数(n) 行数 $数 空格数(单边) ㄩ$ $ $ $ $ 1 n-1*2 1 ㄩㄩ$ $ $ 2 n-2*2 2 ㄩㄩㄩ$ 3 n-3*2 3 i n-i*2 i
分析:分上下两部分考虑
上一页
5 下一页 返回上一级
#include <stdio.h> void main( ) { int n_blank, n_dollar, i, j, n, m; scanf(“%d”, &n);/*输入图案行数数目(奇数)*/ m=(n+1)/2; /*图案上半部的行数数目*/
循环嵌套
一个循环体内包含另一个完整的循环结构, 称为循环的嵌套。while循环、do-while循环和
for循环可以互相嵌套。
while() do do for(;;) { for(;;) {┋ while() {┋ {┋ do ┋ {┋ {┋ do while() for(;;) for(;;) {… } while() {… } {} while(); {} {┋ } while(); {… } ┋ } } ┋ } } } } while(); while();
上一页
下一页 返回上一级
for (i = 1; i < m; i++) /*下半部行控制,总共m-1行*/ { n_blank = i; /* i行的空格数目*/ n_dollar = n – 2 * i; /*i行的$数目*/ for (j = 0; j < n_blank; j++) putchar(‘ㄩ‘); /*输出i行空格*/ for (j = 0; j < n_dollar; j++) putchar(‘$’); /*输出i行$*/ putchar(‘\n’); /*换行*/ }

《流程控制模块——循环语句的应用》参考教案

《流程控制模块——循环语句的应用》参考教案

流程控制模块——循环语句的应用【教学目标】1、知识与技能目标:了解流程控制模块;学会循环语句的使用方法。

2、过程与方法目标:通过学生自学、讨论、交流、汇报等活动,培养学生探究、分析、归纳、协作等综合能力。

3、情感态度与价值观目标:培养学生对机器人的浓厚兴趣,通过小组合作自学,培养学生合作学习的意识和探索研究的精神。

【教学重点、难点】教学重点:循环语句的使用方法。

教学难点:循环语句的使用方法。

【课时安排】1课时【教学过程】1、任务驱动,导入新课流程图描述了机器人解决问题的过程,而对应的就产生了流程控制模块,流程控制模块是整个编程的骨架,有了流程控制模块就可以添加我们设计程序了。

流程控制模块主要包括条件判断模块、条件循环模块、多次循环模块、永久循环模块。

使用好这些模块是我们进行机器人编程的基础。

今天就让我们学习其中的循环语句的应用。

2、探索自学、获取新知一、循环语句的应用当一个动作直行了几次或者几十次的时候,就需要循环语句了。

(一)多次循环语句的应用例:设计一组程序,让机器人走一个四边形。

学生自学课本,小组讨论操作步骤。

学生上机尝试操作,教师辅导。

学生汇报演示方法与过程,学生互评。

教师总结(二)永久循环语句的应用永久循环的使用与多次循环的区别,在于永久循环语句没有循环次数输入框。

动手试一试:用永久循环命令来代替例1程序中的多次循环命令,其他条件不变,到仿真界面中看一看机器人如何运动。

学生上机尝试操作,教师辅导。

学生汇报演示方法与过程,学生互评。

教师总结(三)条件循环语句例:用条件循环语句设计组程序,让机器人前进、右转。

当条件成真时,就让机器人停止运动。

学生自学课本,小组讨论操作步骤。

学生上机尝试操作,教师辅导。

学生汇报演示方法与过程,学生互评。

教师总结4、基本应用、巩固练习学生小组合作一起作课后练习题。

5、小结今天你有什么收获吗?板书设计。

生化危机3图文攻略游戏生化危机5Chapter5-6详尽图文攻略

生化危机3图文攻略游戏生化危机5Chapter5-6详尽图文攻略

生化危机3图文攻略游戏生化危机5Chapter5-6详尽图文攻略Chapter5-11-前走来到尽头处开门继续前进,左边的房间里有补给,拿完出来进前面的门2-一路前进,来到转把门前,转动门把后开门进去,调查前面的装置进入剧情,剧情后打破旁边的玻璃继续前进3-前走可以看到很多动物被关在笼子里,来到拐角处即可看到两只猎尸者干掉后左走,转动门把开门继续前进4-走上楼梯来到门前,与黑妹配合开门,前走就可以看到左边的封闭室里有很多猎尸者,这里先无视它们5-来到尽头的门前,与黑妹配合踢开门,门一开它们自然就冲过来了,来到电梯处按下电梯,等一会电梯就上来了6-电梯上来后马上进入电梯,把黑妹一起叫过来,别跟它们浪费太多时间跟弹药7-出电梯前走进入剧情,连续的剧情后进入BOSS战(打法很简单,打两只脚,用威力强一点的武器打会快很多,脚打几下BOSS就会进入气绝状态,快速跑过去使用QTE,反复3次即可干掉BOSS,时间拖的久的话BOSS会招一群小蜜蜂,比较碍事)8-干掉后进入剧情,剧情后Chapter5-1结束Chapter5-21-前走开门,在开门前走即可看到前方3个雇佣兵,用狙击枪干掉后继续前进2-开门后还会发现很多雇佣兵,数量比较多,如果雷够多的话就多用3-都干掉后来到门前与黑妹配合开门,开门还会看到很多雇佣兵+丧尸,都干掉后来到电梯处,进入电梯里进入剧情4-剧情后前走会看到很多猎尸者,无视它们直接冲过去就可以,开门来到一间旧工厂,这里丧尸跟雇佣兵也比较多5-先清理掉杂兵,清光后顺着中间的传送带过去,来到尽头处右走走上楼梯,开门来到下一区域6-这里也是要利用传送带来过去,这里也有不少杂兵,这里的传送带上是油桶,所以要注意点,不要被敌人利用这些油桶来打你7-来到下一区域后先来到中间的位置,调查装置后回走,回去的路想会碰到新型敌人,非常抗打,不过还在只出现一只,干掉后来到地图提示点位置,调查装置启动传送带,传送带旁有一把新枪(图1)顺着传送带一路过,传送带的右侧有箱子,左侧则是丧尸的尸体,不过不光是尸体还有活着的,踩到它的话它就会起来咬你,这里只能走左侧,右侧有箱子是过不去的,走蛇型路线即可,过去后来到尽头处开门进入剧情8-剧情后进入BOSS战(利用喷火枪可以非常轻松,要想毫发无伤的话就别贪,其他的没什么好说的,BOSS的招起手都很明显,非常容易闪) 9-干掉后Chapter5-2结束Chapter5-31-关卡开始后前走开门,开门过去后对面几个雇佣兵,先用狙击枪干掉他们2-干掉后换上散弹枪前走来到拐角处,会出现上一关碰到的那类虫型敌人,用散弹轰吧,命中一下就会漏出核心部份3-瞄准了打就行,注意别离的太近,离的太近被抓到的话直接被秒,解决掉这只后跳过去有几个雇佣兵,解决掉后拐角处还有一只,还是用散弹轰吧4-干掉后一路来到(图1)的位置,调查装置后没反映,之后左走开门进去,调查装置(图2)后返回图1处再调查装置即可5-调查完进入剧情,剧情后传送带可以用了,不过上面有3个丧尸,干掉后让黑妹站上去,控制传送带将她送过去6-黑妹过去后用狙击枪掩护她,将她身边的几个丧尸干掉后在把远端的狙击手干掉,之后黑妹会将传送带送回来7-站上去即可与她会合,会合后前走有大量的丧尸+雇佣兵,而且RPG就有4,5个,时刻注意找掩护,一但被RPG轰到就是重来了游戏生化危机5Chapter5-6详尽图文攻略8-这里的清光后开门一路走来到地图提示点位置,开门后这里有很多补给9-补给拿完了后前走来到5-1BOSS时的场地,控制旁边电脑的机关后开始往上升,升的途中会遭遇两次敌人的反击,第一次敌人会把升降器关掉,第二次敌人会降慢升降器的速度,两次都要快速用狙击枪干掉控制机器的敌人,上到顶层后楼梯处有很多雇佣兵,都解决掉后走上楼梯来到尽头处,开门来到遗迹10-前走来到右上角把电源关掉,来到左侧电梯旁调查装置把电梯升上来,控制电梯将她送上去,她上去后会出现一堆猎尸者,掩护她到达屋子即可,不要一直打,不然等它们跳下来被抓到就是被秒,门锁打开后快速冲进去调查装置把桥放下来11-之后快速冲出屋子一路过去走到尽头开门进入剧情,剧情后进入BOSS战,第一阶段是2对2,不要向JILL开枪,近身在她背对你时按X 即可抓住她,快速连打A键后让黑妹过来帮忙,摔几次后进入剧情,W哥把咱逼到了门外,这里不要跟W哥硬拼,暂时是没法拼,他两招即可送你回家,从另一边饶回到大厅里,继续抓JILL,再抓几次后进入剧情,剧情后进入第二阶段12-第二阶段是1对2,这里就很简单了,一直抓JILL即可,抓住了就连打A,成功了黑妹就会射击JILL的弱点部位,然后摔出去,这时控制Chris过去再补抓(按X)重复几次即可拿掉控制JILL的控制器13-拿掉后进入剧情,剧情后Chapter5-3结束。

chapter5程序的基本结构和语句

chapter5程序的基本结构和语句

#include <stdio.h> main() { float h, w, t;
例4.5 用在else子句中 嵌入if语句的形式编程
当t < 18时,为低体重; 当18 ≤ t < 25时,为正常体重; 当25 < t < 27时,为超重体重; 当t ≥ 27时,为肥胖。
printf("Please enter h,w:"); scanf("%f, %f", &h, &w); t = w / (h * h);
printf("Please enter your friend's age:"); scanf("%d", &hisAge); /*输入你朋友的年龄hisAge*/
max = (yourAge >= hisAge) ? yourAge : hisAge;
printf("The older age is = %d\n", max);
t = w / (h * h);
if (t < 27) { 18 25 27 if (t < 25) { if (t < 18) printf("t=%f\tLower weight!\n", t); else printf("t=%f\tStandard weight!\n", t); } else printf("t=%f\tHigher weight!\n", t); } else printf("t=%f\tToo fat!\n", t); }
18
例 #include <stdio.h> 4.5 用在if子句中嵌入if main() 语句的形式编程 { float h, w, t; 当t < 18时,为低体重; printf("Please enter h,w:"); ≤ t < 25时,为正常体重; 当18 scanf("%f, %f", &h, &w); 当25 < t < 27时,为超重体重; t = w / (h * h); 当t ≥ 27时,为肥胖。 if (t < 18) {printf("t=%f\tLower weight!\n", t);} 18 25 27 else {if (t < 25) { printf("t=%f\tStandard weight!\n", t); } else {if (t < 27) {printf("t=%f\tHigher weight!\n", t);} else {printf("t=%f\tToo fat!\n", t);} } } 19 }

第五章循环控制-.ppt

第五章循环控制-.ppt

下列程序的输出结果为
void main() {int i=5,j;
j=i++;
j=++i;
printf(“i=%d,j=%d\n”,i,j);
}
程序结果:
i=6,j=5
i=6,j=6
4)多用于循环语句中,使变量自增或者自减,也用于指针 变量,使指针指向下一个或者前一个地址。
例如前例中:
#include <stdio.h> void main() {
i=i+1; }}
1、循环结构之 ——while语句
形式: while (条件)
{ 循环体 }
1、循环结构之 ——while语句
用来实现“当型”循环 形式:
流程图:
while (条件) {

循环体
条件p
}
真 循环体
后续语句
功能:在程序遇到while时,首 先检查条件是否成立,若成立则 执行循环体语句,然后再去检查 条件,若条件仍然成立则继续执 行循环体,依次反复,直到某个 时刻条件不再成立,则退出循环 执行后续语句。
1:编写一个猜数的小游戏。 游戏规则:由计算机随机产生一个100以内的整数,用户猜该数是 多少,如果没有猜对,则系统提示“太大”或者“太小”,然后继 续猜。直到猜对为止。(guess.c)
引申练习:可以玩多次的猜数游戏,知道不想玩为止。
2:编程进行100以内的四则运算练习。并统计做题的总数、答 对题的数目和答错题的数目。(opration.c)
i++; } printf(“s=%d\n”,s);
}
练习:求p=5!
pS==10,i=1 假
i<=1500 真

第4讲 循环控制30页PPT

第4讲 循环控制30页PPT

输出:
5050
24.05.2020
13
100
例4-2 用while语句求 n n 1
main() {
int i,sum=0; i=1; while(i<=100)
{ sum=sum+i; i++; } printf("%d\n",sum); }
传统流程图
输出:
5050
24.05.2020
计算机与信息工程分院
例4-4 while和do-while循环比较
main() {int sum=0,i; scanf(“%d”,&i); while(i<=10)
{sum=sum+i; i++; } printf(“sum=%d”,sum); }
main() {int sum=0,i; scanf(“%d”,&i); do
分类:
循环体
1)用goto语句和if语句构成循环;
2)用while语句;
3)用do-while语句;
4)用for语句
24.05.2020
返回主菜单
2
2.循环控制语句(1)
计算机与信息工程分院
2.1 goto语句 一般形式: goto 语句标号;
由字母、数字和下划线组 成,不能使用整数
例 4-1
24.05.2020
2.循环控制语句(5)
2.5 几种循环的比较
1)四种循环都可以用来处理同一个问题,一般可 以互相代替。但一般不提倡用goto型循环。
2)while和do-while循环,循环体中应包括使循环 趋于结束的语句。for语句功能最强。
3)用while和do-while循环时,循环变量初始化的 操作应在while和do-while语句之前完成,而 for语句可以在表达式1中实现循环变量的初始 化。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ch5 循环程序结构
能力目标:
正确认识循环程序的执行特点 运用3种循环语句(while语句、do while语句、for语句)进行循环程序设计 运用2个循环辅助语句(break语句、 continue语句),更好地控制程序流程
1hile语句
1.初识while语句 (1)思考:在程序设计中,通常会遇到输出一个星号 ‘*’,可以用一个printf()语句,那么输出5个星号‘*’、 10个星号‘*’,甚至更多的星号‘*’,该如何处理呢? (2)观察下面两个程序,完成问题。
语句一: while(n++<=5) printf(“%d”,n);
①两条语句的关键字是什么?
while ②关键字后的括号内是什么表达式? 关系表达式、逻辑表达式
语句二: while(i>0&&i<5) { scanf(“%d”,&x); i = i + 1; ③关键字后的语句部分可以是哪些语句? } 简单语句、复合语句
goto语句的使用范围只局限于一 个函数内部 语法: goto 标号; 控制从多重循环内部退出
用法
构成循环
23
【例】输入一串字符,以 ‘\n’为结束标志 #include "stdio.h" void main() { char c; printf("input a $:"); do{ scanf("%c",&c); if(c=='\n') goto end; }while(1); end: printf("end!\n"); }
2
①上面两个程序分别实现什么功能? 答:它们都实现输出5个星号 ‘*’。 ②两个程序中,哪一个简便?在程序中能否 用循环语句来实现对重复操作的控制? 答:程序二简便,在程序中能用循环语句 来实现对重复操作的控制。
微电子系 老杨 设计制作
3
2.学习while语句的形式
(1)请观察下面while语句的形式,完成问题。
n
正确地写出一个 while循环结构,对循环控制变量做3个工作 :一 是给控制变量赋初值;二是写出正确的循环条件;三是控制变量的 更新。
微电子系 老杨 设计制作
9
5.2 do–while语句
语法: do { 程序段;
其中必须含有 改变条件表达 式值的语句
}while (条件表达式);
10
【例】使用do–while循环求两个 正整数的最小公倍数。
#include"stdio.h" main() { int I; char ch; ch='# '; I=1; while(I<3) { printf( "%c \n",ch); I++; } }
①流程图:
②循环条件是 循环体是
I=1
I<3 printf(“%c\n”,ch); I I<3
循环控制变量是 是 、
15
4.表达式1和表达式3可以通过“;” 包含一个以上的简单表达式,如: for(sum=0,i=1;i<=100;i++,j--) k=i+j; 5.表达式2一般是: 关系表达式 (i<=100) 逻辑表达式 (a<b && x<y) 数值表达式 字符表达式
16
5.4 多重循环
多重循环(循环嵌套),for、while、 do…while等循环可以相互嵌套使用
13
#include “stdio.h” 输出结 果? main() { int i; for (i=0;i<8;i++) printf ( “%d,”,++i); printf ( “%d,”,i++); } 1,3,5,7,8,
14
for 语句注意事项
1.表达式1可以省略 如 for( ;i<=10;i++) s=s+i; 2.表达式2一般不能省略,否则 无法使循环停止 3.表达式3也可以省略,但对于 for(i=1;i<=100;i++) 如果i++省略,则循环体内一 定有i++,否则循环无法结束
for(表达式1;表达式2;表达式3) { …… while(表达式) 嵌套方式 { …… 有很多 } }
17
#include <stdio.h> main( ) { int i=1,j,k; while(i>=0) { printf(”i=%d\n",i); for(j=1;j<=i;j++) { k=i+j; printf(”k=%d\n",k); } i++; } }
程序一 main() { printf(“*\n”); printf(“*\n”); printf(“*\n”); printf(“*\n”); printf(“*\n”); }
程序二 main() { int i=1; while(i++<=5) printf(“*\n”); }
微电子系 老杨 设计制作
21
#include "stdio.h" void main() { char c; int num=0; while((c=getchar())!='\n') { if(c<97||c>122) continue; num++; } printf("%d\n",num); }
22
5.7 goto 语句
24
5.8 结构化程序设计及应用举例
【例】编程求三个数字x、y、z (0~9) 满足: xyz+zyx=1231 #include "stdio.h" main( ) { int i,j,k; xyz=100*x+10*y+z for(i=1;i<=9;i++) { for(j=0;j<=9;j++) { for(k=0;k<=9;k++) { if(101*i+20*j+101*k==1231) break; } } } printf("x=%d,y=%d,z=%d\n",i,j,k); 25 }
嵌套循环 过程也要 避免死循 环,这个 程序将输 出什么?
18
5.6 循环和开关(switch)分支 的中途退出
(1)break: 退出当前循环或当前switch结构 继续执行逻辑上的下一条语句
(2)continue: 用于结束本次循环 ,接着进行是否 执行下一次循环的判断
19
main() /* y=a*x^2+b*x+c */ { 结束的是 int a,b,c,x,y; 整个循环 a=5;b=10;c=15; for(x=1;x<=10;x++) { y=a*x*x+b*x+c; if (y>250&&y<350) break; printf("break---x=%d, y=%d\n",x,y); } for(x=1;x<=10;x++) 结束本次循环, { 进入下一个循环 y=a*x*x+b*x+c; if (y>250&&y<350) continue; printf("continue--x=%d, y=%d\n",x,y); } }
#include "stdio.h" void main() { int m,n,result; scanf("%d%d",&m,&n); result=m>n?m:n; result--; do { result++; }while(result%m!=0||result%n!=0); printf("result=%d\n",result); }
20
#include "stdio.h" void main() { int i,a=1,b=2,c=3,result; for (i=1;i<10;i++) { result=a*i*i+b*i+c; printf("result=%d",result); if(result>20) break; } }
(2)试写出while语句的一般形式。 while(表达式) 语句
微电子系 老杨 设计制作
4
3.学习while语句的执行过程
(1)请观察while语句的流程,描述一下while语句的执 行过程?

表 达 式 真
语句
微电子系 老杨 设计制作
5
(2)请分析该程序的执行过程,画出以下程序的流程图,并指出 循环条件、循环体及循环控制变量分别是什么,同时指出对循环变 量所做的三个工作。
11
5.3 for语句
语法:
非0时执 行循环体 for(语句S1;条件表达式C;语句S2) { 程序段; 循环 每次执行 } 前先 完循环体 求解 后求解
12
【例】用for循环求12+22+32+42+…1002
#include "stdio.h" 用int,会出现 void main( ) 什么问题? { int k; long result=0; for(k=1;k<=100;k++) result+=k*k; printf("result=%ld\n",result); }
相关文档
最新文档