循环结构语句(当型循环语句)
2022年《循环语句》教学优秀教案2
循环语句学习目标1.理解学习根本算法语句的意义.2.学会循环语句的根本用法.3.理解算法步骤、程序框图和算法语句的关系,学会算法语句的写法.重点难点学习重点:循环语句的根本用法.学习难点:循环语句的写法.学习过程一、情景引入一位同学不小心违反了学校纪律,班主任令其写检查,他写完后交给班主任,班主任看后说:“认识不深刻,拿回去重写,直到认识深刻为止〞.这位同学一想,这不是一个循环结构吗?可惜我还没学循环语句,不然可以写一个算法语句输入计算机了.同学们,今天我们开始学习循环语句.二、提出问题1.试用程序框图表示循环结构.2.指出循环语句的格式及功能.3.指出两种循环语句的相同点与不同点.4.揭示程序中的循环语句与程序框图中的条件结构存在一一对应关系.三、讨论结果:1.循环结构循环结构有两种形式:当型循环结构和直到型循环结构.(1)当型循环结构,如图〔1〕所示(2)直到型循环结构,如图〔2〕所示,〔1〕当型循环结构〔2〕直到型循环结构2.循环语句(1)当型循环语句当型〔WHILE型〕语句的一般格式为:WHILE 条件循环体WEND功能:计算机执行此程序时,遇到WHILE语句,先判断条件是否成立,如果成立,那么执行WHILE和WEND之间的循环体;然后返回到WHILE语句再判断上述条件是否成立,如果成立,再执行循环体,这个过程反复执行,直到一次返回到WHILE语句判断上述条件不成立为止,这时不再执行循环体,而是跳到WEND语句后,执行WEND后面的语句.因此当型循环又称“前测试型〞循环,也就是我们经常讲的“先测试后执行〞“先判断后循环〞.3.直到型循环语句直到型〔UNTIL型〕语句的一般格式为:DO循环体LOOP UNTIL 条件功能:计算机执行UNTIL语句时,先执行DO和LOOP UNTIL之间的循环体,然后判断“LOOP UNTIL〞后面的条件是否成立,如果条件不成立,返回DO语句处重新执行循环体.这个过程反复执行,直到一次判断“LOOP UNTIL〞后面的条件成立为止,这时不再返回执行循环体,而是跳出循环体执行“LOOP UNTIL条件〞下面的语句.因此直到型循环又称“后测试型〞循环,也就是我们经常讲的“先执行后测试〞“先循环后判断〞.相同点:都是反复执行循环体语句.不同点:当型循环语句是先判断后循环,直到型循环语句是先循环后判断.4.下面为循环语句与程序框图中的条件结构的一一对应关系.(1)直到型循环结构:(2)当型循环结构:四、例题讲解例1修改前面编写过的求函数的值的程序,连续输入11个自变量的取值,输出相应的函数值.算法分析:与前面不同的是,本例要求连续输入11个自变量的取值.并输出相应的函数值,先写出解决本例的算法步骤:第一步,输入自变量x的值.第二步,计算.第三步,输出y.第四步,记录输入次数.第五步,判断输入的次数是否大于11.假设是,那么结束算法;否那么,返回第一步.显然,可以用计数变量n〔1≤n≤11〕记录次数,通过循环结构来实现算法.程序框图如下列图:程序:n=1DOINPUT xy=x^3+3*x^2-24*x+30PRINT yn=n+1LOOP UNTIL n>11END例2用“二分法〞求方程x2-2=0〔x>0〕的近似解的程序框图包含了顺序结构、条件结构和循环结构.下面,我们把这个程序框图转化为相应的程序.解:程序为:INPUT “a,b,d=〞;a,b,dDOm=(a+b)/2g=a^2-2f=m^2-2IF g*f<0 THENb=mELSEa=mEND IFLOOP UNTIL ABS(a-b)<d OR f=0PRINT mEND点评:ABS〔〕是一个函数,用来求某个数的绝对值,即ABS〔x〕=|x|.例3编写一个程序,求1!+2!+…+10!的值〔其中n!=1×2×3×…×n〕.分析:这个问题可以用“WHILE+ WHILE〞循环嵌套语句格式来实现.程序结构要做到如下步骤:①处理“n!〞的值;〔注:处理n!的值的变量是一个内循环变量〕②累加“n!〞的值.〔注:累加n!的值的变量是一个外循环变量〕显然,通过10次循环可分别求出1!、2!、…、10!的值,并同时累加起来, 可求得S的值.而求T=n!,又可以用一个循环〔内循环〕来实现.解:程序为:s=0i=1WHILE i<=10j=1t=1WHILE j<=it=t*jj=j+1WENDs=s+ti=i+1WENDPRINT sEND思考:上面程序中哪个变量是内循环变量,哪个变量是外循环变量?解答:内循环变量:j,t.外循环变量:s,i.上面的程序是一个的“WHILE+WHILE〞型循环嵌套语句格式.这是一个比拟好想的方法,但实际上对于求n!,我们也可以根据求出的(n-1)!乘上n即可得到,而无需重新从1再累乘到n.程序可改为:s=0i=1j=1WHILE i<=10j=j*is=s+ji=i+1WENDPRINT sEND显然第二个程序的效率要比第一个高得多.第一程序要进行1+2+…+10=55次循环,而第二程序进行10次循环.如题目中求的是1!+2!+…+1 000!,那么两个程序的效率区别会更明显.解决具体的构造循环语句的算法问题,要尽可能地少引入循环变量,否那么较多的变量会使得设计程序比拟麻烦,并且较多的变量会使得计算机占用大量的系统资源,致使系统缓慢.另外,也尽可能使得循环嵌套的层数少,否那么也浪费计算机的系统资源.五、课堂小结本节的导入符合学生心理要求,能够激发学生的学习兴趣.算法像一个故事,循环语句就是故事的,它以前面的内容为根底,是前面内容的总结和开展.本节选用了大量的精彩例题为故事的到来作好了铺垫,精彩的点评把本节推向了,所以本节教案值得期待.。
C语言循环语句课件四章
Page 14ຫໍສະໝຸດ while语句(当型循环)
❖例 求自然数1~10之和。
▪ 分析:本题需要用累加算法,累加 过程是一个循环过程,可以用 while语句实现。
▪ 流程图
开始
sum=0 i=1
i<=10 false
true sum=sum+i
i=i+1
输出sum
结束
Page 15
while语句(当型循环)
▪ 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例 如6=1+2+3
8. 求水仙花数:是指一个n(>=3)位数字的数,它等于每个数 字的n次幂之和。
9. 输入两个正整数m和n,求其最大公约数和最小公倍数。
Page 29
3.求1~599中能被3整除,且至少 有一位数字为5的所有整数。
❖ 判断a、b、c中是否有5:将1~599中三位整数i分 解成个位、十位、百位,分别存放在变量a、b、 c中。然后判断这三个变量是否含5。将三位整数i (设i=513)分解成个位、十位、百位的方法是: c=i/100; //百位 b=i%100/10; //十位 a=i%100%10; //个位
❖ 流程图
❖ 注意:在循环体中,一般应该 包含改变条件表达式的语句。
语句
true 表达式
false
Page 19
do…while语句(直到型循环)
❖例 用do…while语句求自然数 1~10之和。
▪ 分析:本题需要用累加算法,累加 过程是一个循环过程,可以用 do…while语句实现。
▪ 流程图
❖ 表达式1和3可以是简单表达式,也可以是逗号表 达式
▪ for(i=0,j=100;i<=j;i++,j--) k=i+j;
高一数学必修3课件:1-2-3循环语句
[答案] D
第一章 1.2 1.2.3
成才之路 ·数学 ·人教A版 · 必修3
[解析]
本题给定的分段函数有三段, 所以在条件结构中
需运用两次判断框,故选 D.
第一章
1.2
1.2.3
成才之路 ·数学 ·人教A版 · 必修3
4.已知如下程序: INPUT x IF x>=0 THEN y=1 ELSE y=-1 END IF PRINT “y=”;y END
新赋值i=i-1后输出. (2)本题也可利用UNTIL语句编写程序如下: i=0 DO i=i+1 T=i^2 LOOP UNTIL T>=2000 i=i-1 PRINT i END
第一章
1.2
1.2.3
成才之路 ·数学 ·人教A版 · 必修3
3.请思考改为求平方值大于2000的最小整数,该怎样 修改程序.最关键的是要明确,例2在当型循环中条件不满 足时,i的值已比满足条件的i值大了1,还应注意i=i+1与T =i^2语句的先后顺序对输出表达式的影响.
第一章
1.2
1.2.3
成才之路 ·数学 ·人教A版 · 必修3
解法2:程序框图如下图所示.
第一章
1.2
1.2.3
成才之路 ·数学 ·人教A版 · 必修3
程序如下: S=0 i=1 DO S=S+i i=i+2 LOOP UNTIL S>10000 PRINT “最小整数为”;i-2 END
第一章
第一章
1.2
1.2.3
成才之路 ·数学 ·人教A版 · 必修3
解法二:(直到型循环)程序框图如下图.
第一章
1.2
1.2.3
成才之路 ·数学 ·人教A版 · 必修3
第5章 循环结构1
说明:
(3)最简单的应用形式: for(循环变量赋初值;循环条件;循环变量增值) 例如:for(i=1;i<=10;i++) sum=sum+i; (4)三个表达式均可缺省,但起分割作用的两个分号 不可省略。 例如:for( ; ; ) i=1;for(;i<=10;i++) sum=sum+i; 或 for(i=1;i<=10;) {sum=sum+i;i++;} • 表达式1省略,应在for之前对循环变量赋初值 • 表达式2省略,则不判断条件,循环无终止进行下去 • 表达式3省略,则应另设法保证循环的结束
5.4
循环的嵌套
一个循环体内又包含另一个完整的循环结构称为循 环的嵌套。
① while() {… while() {…} } ② do {… do {…} while(); } while() ; ③ for(;;) { for(;;) {…} }
5.4
④ while() {… do {…} while(); … } 说明:
在许多问题中都需要用到循环结构,如
要求计算全校每个学生的平均成绩,计算两 个正整数的最大公约数和最小公倍数等都需
要用到循环控制。C语言中有三种循环语句, 分别是while语句、do…while语句和for语 句。
5.1 while循环语句
while循环语句是用来实现“当型”循环结构的。 它的特点是先判断表达式,后执行语句。 格式: while(表达式) 语句; 该语句的执行顺序是:先计算表达式的值,再判 断其值是否为“真”(即非0)。若结果为“真”, 则执行语句;此过程重复执行,直到表达式的值为 “假”(即为0)时,结束循环。其流程图和N-S图 分别如图5-1和5-2所示。
Python语言程序设计第五章循环结构程序设计
14
第5章
循环结构程序设计
5.2 for语句 结构
1. for语句一般形式: for 目标变量 in 序列对象: 循环体语句 说明:
for语句的首行定义了目标变量和遍历的序 列对象,后面是需要重复执行的语句块。语 句块中的语句要向右缩进,且缩进量要一致。
15
第5章
循环结构程序设计
注意:
(1)for语句是通过遍历任意序列的元素来建立 循环的。 (2)for 语句也支持一个可选的else块,一般格 式如下: for 目标变量 in序列对象: 语句块 else: 语句
5
第5章
循环结构程序设计
在while语句中使用else子句
while exp: 循环体 else: 语句
Python可以在循环语句中使用else子句,即构 成了while.......else循环结构。
6
第5章
循环结构程序设计
例 :求
100
n 1
n
开始 sum,n=0,1 n<=100
1)问题分析:
29
第5章
循环结构程序设计
5.4 循环控制语句
有时候我们需要在循环体中提前跳 出循环,或者在某种条件满足时,不执行 循环体中的某些语句而立即从头开始新的 一轮循环,这时就要用到循环控制语句 break、continue和pass语句。
30
第5章
循环结构程序设计
(1) break语句
一般格式 break 功能
371printdddijk40728python语言程序设计第5章循环结构程序设计第5章循环结构程序设计循环结构程序设计51while语句当型循环52for语句结构53循环的嵌套54循环控制语句55循环结构程序举例2第5章循环结构程序设计循环结构的基本类型exptaf
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;)
{
§1.2.3循环语句
n>11?
是
结 束
2013-8-15 重庆市万州高级中学 曾国荣 wzzxzgr@ 9
§1.2.3循环语句
x2 写出用“二分法”求方程 2 0( x 0) 法. 第一步:令 f ( x ) x 2 2, 给定精确度d.
近似解的算
第二步:确定区间[a, b], 满足 f (a ) f (b) 0
直接跳到UNTIL语句后,接着执行UNTIL语句之后
的语句.
2013-8-15 重庆市万州高级中学 曾国荣 wzzxzgr@ 16
§1.2.3循环语句
当型循环语句的一般格式
当 型 循 环
循环体 是 满足条件? 否
WHILE 条件 循环体 WEND
先判断条件真假,如果条件符合,就执行WHILE
先判断条件真假,如果条件符合,就执行WHILE 和WEND之间的循环体;然后再检查上述条件,若条件 符合,再次执行循环体,直到某次条件不符合为止.这时, 计算机将不执行循环体,直接跳到WEND语句后,接着
执行WEND语句后的语句.
2013-8-15 重庆市万州高级中学 曾国荣 wzzxzgr@ 7
ab 第三步:取区间中点 m 2 第四步:若 f (a ) f ( m ) 0, 则含零点的区间为 [a , m]; 否则,
含零点的区间为 [m, b]. 将新得到的含零点的区间仍记为 [a , b]. 第五步:判断 [a , b] 的长度是否小于d或f(m)是否等于0. 若是,则m是方程的近似值;否则,返回第三步.
n不是质数
n是质数
否
结束
重庆市万州高级中学 曾国荣 wzzxzgr@
13
§1.2.3循环语句
INPUT “n=”;n
高一数学人教A版必修3课件:1.2.3 循环语句6
知识探究(一):直到型循环语句
思考1:直到型循环结构的程序框图是什 么?
循环体
满足条件?
否
是
思考2:该循环结构对应的循环语句的一 般格式设定为: DO 循环体 LOOP UNTIL 条件
循环体
满足条件?
否
是
你能说明计算机在执行上述语句时是怎 样工作的吗?
DO
循环体 LOOP UNTIL
循环体
算法分析: 第一步,输入自变量x的值. 第二步,计算y=x3+3x2-24x+30. 第三步,输出y. 第四步,记录输入次数. 第五步,判断输入的次数是否大于11.若是, 则结束算法;否则,返回第一步.
开始 n=1 输入x
y=x3+3x2-24x+30
输出y n=n+1 否 n>11? 是 结束
n=1 DO INPUT x y=x∧3+3*x∧2-24*x+30 PRINT y n=n+1 LOOP UNTIL n>11 END
思考4:阅读下面的程序,你能说明它是 一个什么问题的算法吗? x=1 WHILE x∧2<1000 PRINT x=x+1 WEND END
求满足x2<1000的所有正整数x的值.
理论迁移
例1 已知函数y=x3+3x2-24x+30,写 出连续输入自变量的11个取值,分别输 出相应的函数值的程序.
小结作业
1.两种循环语句源于两种循环结构,直 到型循环语句先执行循环体,再判断条 件;当型循环语句先判断条件,再执行 循环体. 2.直到型循环语句在条件不符合时再执 行循环体,当型循环语句在条件符合时 再执行循环体.
你能利用UNTIL语句写出这个算法对 应的程序吗?
循环结构中“当型”与“直到型”判断的理解
循环结构中“当型”与“直到型”判断的理解贵州省贵定一中 莫云勇 赵云龙新课标的高考考试中,每年都有一道与算法初步有关的试题,而这些试题大多数与循环结构有关。
我们知道,循环结构分“当型”与“直到型”,而对这两种结构的判断,《数学》必修3,人民教育出版社,A版(以下简称教材),在对这两种结构的特征描述上不够准确,仅各以一种形式加以表述,给部分老师在教学上带来困惑,以至于学生不能理解二者的区别。
故作此文,期望能与同行商榷,以达到抛砖引玉之功效。
在教材中,有如下描述(P12-13):循环结构可以用程序框图表示为(图1.1-12)这个循环结构有如下特征:在执行了一次循环后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环。
因此,这种循环结构称为直到型循环结构。
除直到型循环结构外,图1.1-13表示的也是常见的循环结构,它有如下特征:在每次执行循环体前,对条件进行判定,当条件满足时,执行循环体,否则终止循环。
因此,这种循环结构称为当型循环结构。
从以上两种不同形式的循环结构可以看出,循环结构中一定包含条件结构,用于确定何时终止循环体。
无独有偶,在《数学周报》人教版3.2011-2012学年第27期第三版《算法与程序框图检测题》基础训练第4题:例1 直到型循环结构的框图为()其所提供的参考答案为(B)。
这样的判断合理吗?让我们来看,教材第十五页例7:例2 某工厂2005年的年生产总值为200万元,技术革新后,预计以后每年的年生产总值都比上一年增长,设计程序框图,输出预计年生产总会超过300万元的最早年份。
说明:图甲是教材原图,图乙是笔者作改动后的框图:很显然,两个框图执行结果完全一样,请仔细观察两框图中,虚线框住部分:图甲明显满足教材中对“直到型”循环的特征要求,而图乙却是先执行判断后执行循环体,那么图乙是“当型”循环?很显然不对,因为“当型”的另一个特征是跳出循环体的方式是“条件不满足”。
第四章 循环结构程序设计
while(i<=100)
{ i++;
程序运行结果: sum=5050
sum=sum+i;
}
6
4.3 do-while语句
do-while语句的结构 do 语句 while(表达式);
例如: do
x-=1; while(x>0);
功能:
1)执行“语句”。 2)计算“表达式”的值。如果值为非0,转1);否则转3)。
}
8
4.3 do-while语句
1)循环体如果包含一个以上的语句,要用复合语句表示。 2)在循环体中应有使循环趋于结束的语句。 3)while语句的特点是先执行循环体,然后判断表达式的值。 4)一般情况下,用while语句和用do-while语句处理同一 个问题时,若二者的循环体部分一样,其结果也一样。但如
18
4.7 goto语句以及用goto语句构成循环结构
goto语句的一般格式:
goto 语句标号;
例如: goto loop;
功能:程序执行到goto语句时,将程序流程转到语句标号指定的 语句去执行。
有标号的语句的格式:
语句标号: 语句
例如: loop: sum=sum+i;
19
4.7 goto语句以及用goto语句构成循环结构
【例4-9】用goto语句实现求1~100累加和。
#include <stdio.h>
main() { int n=1, sum=0; loop: sum += n; n++;
if(n<=100) goto loop;
printf("sum=%d\n",sum); }
