2019-2020学年北师大版数学必修三导学同步课件与课时作业:第2章 算法初步 3.2(课件+课时作业)

文档属性

名称 2019-2020学年北师大版数学必修三导学同步课件与课时作业:第2章 算法初步 3.2(课件+课时作业)
格式 zip
文件大小 1.9MB
资源类型 教案
版本资源 北师大版
科目 数学
更新时间 2020-02-10 13:25:01

文档简介

课件44张PPT。第二章算法初步§3 几种基本语句3.2 循环语句自主预习学案
1.For语句
循环结构是算法中的基本结构,For语句是表达循环结构最常见的语句之一,它适用于预先知道____________的循环结构.For语句的一般形式是:
For 循环变量=初始值 To终值
循环体
Next循环次数 2.Do Loop语句
在循环结构中,若预先不知道循环次数,一般用_____________________来描述,Do Loop语句的一般形式为:
Do
 循环体
Loop While 条件为真Do Loop语句
[特别提示]
For循环语句和Do Loop循环语句的异同:
For循环语句和Do Loop循环语句都能表达循环结构的算法,但是它们在表达方式和功能上又有一定的区别,它们的区别主要表现为以下几点:
1.书写格式不同.
2.作用不同:For循环语句主要适用于预先知道循环次数的循环结构;如果预先不知道循环次数,则使用Do Loop循环语句.
3.For循环语句循环条件在前,首先判断循环条件再执行,如果条件不满足,一次也不执行;而Do Loop循环语句循环条件在后.
4.用For循环语句编写时要注意设定好循环变量的初始值、终值、循环变量的改变量,应避免出现多一次循环或少一次循环的情况;用Do Loop循环语句编写程序时,一定要注意表达式的写法,当表达式为真时,继续执行循环体,当表达式为假时,结束循环,防止出现表达式正好相反的错误.1.下列问题可以设计成循环语句的有(  )
①求1+3+32+…+39的和;
②比较a,b两个数的大小;
③对于分段函数,要求输入自变量,输出函数值;
④求平方值小于100的最大整数.
A.0个         B.1个
C.2个 D.3个
[解析] ②③是由条件语句来实现的;①④都可由循环语句来实现.C2.对于下面的语句:
x=-1
Do
 x=x*x
Loop While x≤10
输出x.
下列说法正确的是(  )
A.输出结果是1 B.能执行一次
C.能执行10次 D.是“死循环”,有语法错误D[解析] 从循环语句的格式看,这个循环语句是Do Loop语句,那么当满足条件x>10时,终止循环体,但是第一次执行循环体后x=1,由于x=1<10成立,则再次执行循环体,执行完成后x=1,则这样无限循环下去,是一个“死循环”,有语法错误,循环终止的条件永远不能满足.故选D.
3.(1)有下列算法语句:
For x=1 To 5
Next
输出x
该程序的输出结果是______.5 (2)有下列算法语句:
For x=1 To 5
输出x
Next
该程序的输出结果是______________________.
[解析] (1)中循环体为空,最后输出的值为循环变量x的终值;(2)中循环体为“输出x”,故输出循环变量x的每一个值.1 2 3 4 5 互动探究学案命题方向1 ?循环语句的理解 写出下列语句执行后输出的结果.
(1)a=2
 Do
  a=a+2
 Loop While a≤10
 输出a.(2)M=0
 For i=1 To 3
  M=M+i
 Next
 输出M.
[思路分析] (1)这个算法语句中a是循环变量,循环体为a=a+2,实际上这个算法处理的是求a=2+2+2+2+…的问题,循环终止条件为a>10.
(2)由For语句的形式,本题中i是循环变量,初始值为1,终值为3,循环体为M=M+i.[解析] (1)运行结果为2+2+2+2+2+2=12.
(2)运行过程是:M=0;i=1时,M=M+i=0+1=1;i=2时,M=M+i=1+2=3;i=3时,M=M+i=3+3=6.跳出循环,输出6.『规律总结』 判断含有循环语句的算法的执行结果关键是明确循环终止条件.在Do Loop语句中,当条件不满足时终止循环;而在For语句中,当循环变量取终值时,再执行一次循环体才终止循环.〔跟踪练习1〕 写出下列语句执行后输出的结果.
(1)s=1
 For i=9 To 11
  s=s*i
 Next
 输出s.
(2)x=100
 Do
  x=x-20
 Loop While x≥0
 输出x.
[解析] (1)该程序的运行过程是:s=1;i=9时,s=s*i=1*9=9;i=10时,s=s*i=9*10=90;i=11时,s=s*i=90*11=990.跳出循环,输出990.
(2)这个算法语句中x是循环变量,循环体为x=x-20,实际上这个算法处理的是求x=100-20-20-20-20…的问题,循环终止条件为x<0,最后输出的结果为-20(100-20-20-20-20-20-20=-20).命题方向2 ?For语句的应用[思路分析] 用i表示循环次数,用S表示总和,步骤如下:
第一步:输入i、S,i的初始值为1,S的初始值为0;
第二步:i从1开始循环到1 000,i=i+1,S=S+1/i;
第三步:循环结束后,输出S.[解析] 用i表示循环次数,用S表示总和,算法步骤如下:
1.令S的初始值为0,i的初始值为1;
2.S=S+1/i,i=i+1;
3.如果i≤1 000,返回执行第2步,否则输出S.
算法流程图如图所示:
用For语句表示如下:
S=0
i=1
For i=1 To 1 000
  S=S+1/i
Next
输出S.『规律总结』 (1)For语句是从循环变量的初始值开始执行一次循环后,直到循环变量取到其终值结束循环,适用于预先知道循环次数的循环结构.
(2)在For循环语句中,我们默认循环变量每次的增量为1.如果需要考虑增加量不为1的情况,需使用参数step.
例如:“输出1到100内的所有奇数”的算法语句为:
For i=1 To 100 Step 2
 输出i
Next〔跟踪练习2〕 请阅读用For语句给出的算法,画出算法框图并说明该算法的处理功能.[解析] 算法的框图如图所示,因此,这个算法实际上处理的是求和S=1+3+5+7+9+11+13+15+17+19.命题方向3 ?Do Loop语句的应用 以下给出的是用循环语句编写的一个算法,根据该算法写出此题的算法功能,并画出相应的算法框图. [思路分析] 该算法表示的功能是:找出并输出1至100的正整数中的所有偶数.
[解析] 算法框图如图所示:『规律总结』 在Do Loop语句中,每一次重复后,都要检验While后的条件是否满足,一旦不满足,循环停止.〔跟踪练习3〕
若1+3+5+…+n>6 000,试设计一个程序,寻找满足条件的最小n值.
[解析] S=0
i=1
Do
S=S+i
i=i+2
Loop Whlie S≤6 000
n=i-2
输出n编写程序,计算1+2+3+…+100的值.
[错解1] 用For语句描述如下:
i=1
sum=0
For i=1 To 100
sum=sum+i
Next
输出sum 编写程序,计算1+2+3+…+100的值.
[错解1] 用For语句描述如下:
i=1
sum=0
For i=1 To 100
sum=sum+i
Next
输出sum[错解2] 用Do Loop语句描述如下:
i=1
sum=0
Do
sum=sum+i
i=i+1
Loop While i>100
输出sum[辨析] 错误的原因是对循环语句的结构不清,应用混乱.错解1中“i=1”不用写.错解2中“Loop While i>100”应改成“Loop While i<=100”,因为Do Loop语句的一般格式为:
Do
循环体
Loop While 条件为真[正解1] 用For语句描述如下:
sum=0
For i=1 To 100
sum=sum+i
Next
输出sum[正解2] 用Do Loop语句描述如下:
i=1
sum=0
Do
sum=sum+i
i=i+1
Loop While i<=100
输出sum『规律总结』 Do Loop语句是先执行一次循环体,再判断是否满足条件,若满足,再执行循环体,然后再检查是否满足条件,若满足,再执行循环体,再判断是否满足条件,如此反复,直到不满足条件为止.循环语句的综合应用 设计一个求20个数的平均数的算法,分别用For语句和Do Loop语句写出其程序.
[思路分析] 可用一个循环依次输入20个数,并将它们的和存在一个变量S中,最后用S除以20即可得到它们的平均数.[解析] 用Do Loop语句程序如下;
S=0
i=1
Do
  输入x
  S=S+x
  i=i+1
Loop While i<=20
  a=S/20
  输出a用For语句则程序如下:
S=0
For i=1 To 20
  输入 x
  S=S+x
  i=i+1
Next
  a=S/20
  输出a『规律总结』 本例既可以用For语句写出程序也可以使用Do Loop语句写出程序,要注意这类题目特点,选择恰当的方法.1.关于Do Loop循环语句叙述正确的是(  )
A.至少执行循环体一次
B.执行一次循环体
C.满足条件时执行循环体
D.遇到Do Loop就结束
[解析] 对于Do Loop循环语句,先执行循环体,再根据条件是否成立来确定执行循环体,因此至少执行一次循环体.A2.算法语句如下:
S=0
For i=1 To 1 000
 S=S+i
Next
其中,语句“For i=1 To 1 000”的作用是(  )
A.表示一个数字从1到1 000
B.表示从1一直加到1 000
C.表示从1开始循环到1 000
D.表示i从1开始以1为增量累加到1 000
[解析] 由For语句知选D.D3.执行下面算法语句,输出的结果是________.34 [解析] 循环结构中的循环体的作用是将前两个数相加,得到后一个数;如果没有循环条件的限制,程序中的循环结构将连同初始值,依次给A、B赋值为1、1,2、3,5、8,13、21,…,其中第一、三、五、…个数为A的值,第二、四、六、…个数为B的值;可见,当B=21时,循环结束,此时A=13,所以,C=A+B=34.第二章 §3 3.2
A级 基础巩固
一、选择题
1.若For i=-10 To 19为某一循环语句中的一个步骤,则该循环共循环( B )
A.29次       B.30次
C.28次 D.19次
[解析] 循环次数为(终值-初始值)+1=30.
2.如图所示,给出的四个流程图中,满足Do Loop语句格式的是( D )
[解析] Do Loop语句是先执行一次循环体,再判断是否满足条件,排除B,C,当条件不满足时跳出循环体,排除A,故选D.
3.下列算法语句的目的是( D )
S=0
For a=1 To 4
a=2*a
S=S+a
Next
输出a
A.计算2+22+23+24 B.计算2+22+23
C.计算23 D.计算24
[解析] 本题输出的为最后的a值,共循环了4次,故输出24的值.
4.如果以下程序运行后输出的结果是100,那么在程序中While后面的条件表达式应为( B )
S=0
i=1
Do
 S=S+i^3
 i=i+1
Loop While条件表达式
输出S
A.i>5  B.i≤4 
C.i≥4  D.i≤5
[解析] 该程序中使用了Do Loop循环语句,当While后的条件表达式结果为真时,执行循环体,为假时结束循环,由于输出结果为100,因此条件应为i≤4.
二、填空题
5.下列算法:
A=2
B=1
Do
  B=A*B
  A=A+1
Loop While A≤5
输出B
该算法的功能是_计算1×2×3×4×5的值___.
6.设计算法计算1+2+3+…+50的值时,如果用循环语句应用_For___语句,循环次数为_50___.
[解析] 因为知道循环次数,故应用For语句,其语句描述为:
S=0
For i=1 To 50
  S=S+i
Next
输出S.
三、解答题
7.计算1+2+22+23+…+263,写出用Do Loop语句描述的算法.
[解析] 用语句描述如下:
S=1
n=2
i=1
Do
S=S+n^i
i=i+1
Loop While i<=63
输出S
8.把100~200内所有能被3整除的数输出,用程序语句描述算法.
[解析]
 For i=100 To 200
If M Mod 3=0 Then
输出M
End If
Next
B级 素养提升
一、选择题
1.读程序,对甲、乙两程序和输出的结果判断正确的是( B )
甲:          乙:
i=1 000   S=0
S=0   For i=1 To 1 000
Do     S=S+i
 S=S+i     i=i+1
 i=i-1   Next
Loop While i>=1   输出 S
输出 S
A.程序不同,结果不同
B.程序不同,结果相同
C.程序相同,结果不同
D.程序相同,结果相同
[解析] 甲程序是用Do Loop语句写的,乙程序是用For语句写的,但两者运行结果都是500 500,S乙=1+2+3+…+1 000,S甲=1 000+999+…+1.
2.以下语句用来计算( C )
S=1
For i=1 To 10
  S=3*S
Next
输出S
A.3×10的值
B.39的值
C.310的值
D.1×2×3×…×10的值
[解析] 由循环体,S为3n的形式,由For i=1 To 10,∴S=310,故选C.
二、填空题
3.阅读下面的算法语句段:
b=1
For k=1 To 5
 b=b*k
 If b>=15 Then
   退出For循环
 End If
Next
输出k;b.
在上述语句段中,k循环共执行_4___次,在窗体上显示的结果为_24___.
[解析] 本题主要考查For循环语句,首先观察循环的条件If b>=15 Then退出循环,可知b的最终值为24,k从1到4,所以,k的最终值为4.这时b=24.
4.下面是求1×2×3×4×5×6×7×8×9×10的一个算法语句,将其补充完整.
[解析] a的初始值为10,故循环体中的值应该递减,即a从10减小到1,循环体的条件应为a>0,也可以为a≥1.
三、解答题
5.试用循环语句描述求1-+-+…+-的和.
[解析] 本题适合用For语句来描述,用For语句如下:
S=0
i=1
For i=1 To 10
  S=S+(-1)i+1/i
  Next
输出S.
6.求12+22+32+…+n2<1 000成立的n的最大整数值,用基本算法语句表示其算法.
[解析] 用语句描述如下:
S=1
i=2
Do
A=i^2
S=S+A
i=i+1
Loop While S<1 000
i=i-1
输出n的最大整数值i.
7.已知一个算法框图如图所示,请根据框图写出用基本语句编写的程序,并指明该程序的功能.
[解析] 算法如下:
s=0
For i=1 To 99
  s=s+1/(i*(i+1))
Next
输出s
该算法的功能为求+++…+的值.