配套K12高中数学第1章算法初步1.3基本算法语句1.3.4循环语句教材梳理导学案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.3.4 循环语句教材梳理

庖丁巧解牛

知识·巧学

1.循环语句的概念

循环语句是主要用来实现算法中的循环结构的算法语句,处理一些需要反复执行的运算任务.如累加求和,累乘求积等问题中常用到.

2.循环语句的两种形式

循环语句一般有两种:“For循环”“While循环”.

(1)For循环:

格式:

功能:根据For语句中所给定的初值、终值和步长,来确定循环次数,反复执行循环体内各语句.

通过For语句进入循环,将初值赋给变量I,当循环变量的值不超过终值时,则顺序执行循环体内的各个语句,遇到Endfor,将循环变量增加一个步长的值,再与终值比较,如果仍不超过终值范围,则再次执行循环体.这样重复执行,直到循环变量的值超过终值,则跳出循环.

误区警示“For”和“End For”之间缩进的步骤称为循环体;

①只有当循环次数明确时,才能使用本语句.

②Step可以省略,此时默认步长为1.

③步长可以为正、负,但不能是0,否则会陷入“死循环”.步长为正时,要求终值大于初值,如果终值小于初值,循环将不能执行.步长为负时,要求终值必须小于初值.

(2)While循环

格式:

功能:给语句对应于流程图中的当型循环,如图1-3-12:

图1-3-12

先判断条件是否成立,当条件成立时,执行循环体,遇到Endwhile语句时,就返回继续判断条件,若仍成立,则重复上述过程,若不成立,则退出循环.

学法一得①该语句以While开头,Endwhile结束,是模块化结构.

②该循环是前测试型循环,即在执行循环体之前先判断条件.只有当条件成立时,才执行循环,条件不成立时,退出循环.所以在循环体内必须有改变条件的语句,以便在适当时候退出循环.

③该循环适用于循环次数不确定的情况,当循环次数确定时也可用该语句.

典题·热题

知识点一循环次数有限的问题

例1 设计流程图计算2+22+23+…+210,并用循环语句表示.

图1-3-13

思路分析:本题利用等比数列的有限项的和.该循环次数已经确定,可以用“For”语句,也可用“While”语句来实现循环.

解:流程图如图1-3-13:

用For循环语句表示为:

S←0

For i From 1 to 10

S←S+2i

End For

Print S

变式方法:(用While循环实现)

S←0

i←1

While i≤10

S←S+2i

i←i+1

End While

Print S

方法归纳面对新问题,在构造算法时,我们应该先把算法结构理清了,再将结构用算法语句表达出来,从而减少错误率,增加直观性.

知识点二不确定数值输入的问题

例2试设计一个循环语句模拟抛硬币的过程,并计算抛掷中出现正面的概率.

思路分析:随机模拟可通过两种途径实现:一种是用实物模拟,如用抛掷一枚硬币,记录总次数及分别出现正面、反面的次数;另一种是借助于计算机高速的运算、存储能力来实现随机模拟,这个过程实际上是让计算机产生一系列的随机数,事先假设某些数表示什么,另外一些数表示什么.

解:用While循环表示:

S←0

Read n {输入模拟次数}

While i≤n

a=RND {产生一个0到1之间的随机数,并赋给变量a}

If a>0.5 Then

S←S+1

End If

End While

S

Print “出现正面的频率为”,

n

变式方法:用FOR循环表示:

s←0

Read n

For I From 1 to n

If Rnd>0.5 Then s←s+1

End For

s

Print “出现正面的频率为”,

n

拓展延伸①运用RND函数可产生0到1之间的随机函数(不包括1,包括0),本例中用大于0.5的数表示出现正面,用小于0.5的数表示出现反面,如此用来模拟计算.在以后的训练中,我们要注意RND函数的正确用法.

②变式方法中运用Read n输入数值,一旦输入,就确定了数值,所以可用FOR循环.平时练习时要深化对输入语句的理解.

③“For”和“End For”之间缩进的步骤称为循环体;“While”和“End While”之间也是一个循环体;设计语句时,必须注意其完整性.

知识点三循环次数不确定的问题

例3 设计一个算法,计算并输出一批数据中正数和负数的个数.预先不指定数据的个数,输入0时程序结束(即所有有效的数据,其值均不为0).

思路分析:引入循环结构,每次输入一个数据,并判断是正数还是负数,分别设两个变量m,n,统计正数、负数的个数.因为是一批数据,可用Read语句,预先不指定数据的个数,也即循环次数不确定,可使用While语句,注意循环条件是输入的数不为0.

解:流程图如图1-3-14所示:

图1-3-14

用While循环表示:

m←0

n←0

Read x

W hile x≠0

If x>0 then

m←m+1

Else

n←n+1

End If

Read x

End While

Print m,n

方法归纳

1.用For循环的一般思路

(1)确定好初值与终值、步长.

(2)循环变量的初值设置及改变在For语句中实现,如题中For I From 0 to 100,程序中的Sum←Sum+i在用伪代码表示时内置于For语句中,其他位置不能再出现.

2.用While循环设计算法的一般思路

(1)把反复要做的工作,作为循环体放在While与End While之间.

(2)确定循环条件,并在While之前,要设置好初始条件.如题中的i←0,i←1.

(3)考虑在循环体内怎样改变条件以退出循环.

问题·探究

思想方法探究

问题解决同一个问题,可以有不同的算法;同一个算法稍加改造,可以用于解决不同的问题.

学习算法时,尤其是对循环语句中“累加器”应用,我们能否对其进行优化或改造,从而达到使算法更具通用性、更有效?

探究过程:结合对程序框图的认识及算法的三种基本逻辑结构,有利于对程序语言的理解和掌握.类似地,对算法的优化或改造,在算法的程序框图上进行,也有利于学生看清算法的结构和更好地把握“算理”.

这里,我们来改造求1+2+…+100的值的“累加器”的程序框图(如图1-3-15),

图1-3-15

(1)求1+2+…+m(m∈Z*)的值的过程;

(2)求3+5+…+(2m+1)(m∈Z*)的值的过程;

(3)输出1,1+2,1+2+3,…,1+2+3+…+100的过程;

(4)求2+22+…+2100的值的过程;

(5)求使2+22+…+2n(n∈Z*)的和大于100的最小正整数n的过程;等等.其中,(1)将求

相关文档
最新文档