第一章算法初步1.2基本算法语句1.2.3循环语句学习目标核心素养1.理解循环语句的两种格式及功能.(重点)2.掌握两种循环语句的使用条件.(易混点)3.正确应用循环语句编写程序.(难点)1.通过循环语句概念及两种格式的学习,体现了数学抽象的核心素养.2.借助循环语句编写程序的学习,提升逻辑推理的数学核心素养.自主探新知预习循环语句1.循环语句的概念用来处理算法中的_________的语句.循环结构2.在Scilab语言中,for循环和while循环的格式名称格式适合条件作用for循环for循环变量=初值:步长:终值循环体;end用于预先知道_________的情形while循环while表达式循环体;end用于预先不知道_________的情形用来控制有规律的或者在程序中需要对某些语句进行____________重复的执行循环次数循环次数重复运算1.下面循环语句中,循环终止时,n等于()A.6B.7C.8D.9C[当n≤7成立时,执行循环体n=n+1,直至n=8时终止循环.]2.关于forx=a∶b∶c,下列说法正确的有()①当x=c时,程序结束;②当x=c时,还要继续执行一次;③当b0,x≥c时程序结束;④当b0,x<c时程序结束.A.1个B.2个C.3个D.4个B[当x为终值时,还要进行一次,才能离开循环体,故①③错,②④正确.]3.在下面图中给出的四个框图,其中满足while循环语句格式的是()B[while循环语句格式:故选B.]4.执行语句“forn=1:50”时.(1)变量n的第1个值为________.(2)变量n的第2个值为________.(3)变量n的最后1个值为________.(1)1(2)2(3)50[“forn=1:50”的意思是n的初值为1,步长为1,终值为50,因此变量n的第1个值是1,第2个值是2,最后1个值是50.]合作提素养探究读程序【例1】下列程序语句的算法功能是________.计算11×2+12×3+13×4+…+199×100的值[该程序为while循环语句,初始值S=0,i=1,当i≤99时,执行循环体S=S+1i×i+1,i=i+1,故其算法功能是计算11×2+12×3+13×4+…+199×100的值.]读循环语句程序时,首先应看清是for循环语句还是while循环语句,再根据两种循环语句的特点逐步运行程序,直至得出答案.1.下面的程序运行后第3次输出的数是________.2[第一次输出的数是x=12+12=1,第二次输出的数是x=1+12=32,第三次输出的数是x=1+12+12=2.][探究问题]1.循环语句与条件语句有什么关系?编写程序时,什么情况下使用循环语句?[提示]循环语句中一定有条件语句,条件语句是循环语句的一部分,离开条件语句,循环语句无法循环,但条件语句可以脱离循环语句单独存在,可以不依赖循环语句独立地解决问题.在问题处理中,对不同的运算对象进行若干次相同运算或处理时,一般用到循环结构,在编写程序时要用到循环语句.2.两种循环语句执行循环体的顺序相同吗?[提示]两种循环语句执行循环体的顺序不同.在for循环语句中,循环变量的值和终值比较,结果为真时执行循环体,结果为假时,停止循环.在while循环语句中,当表达式的结果为真时执行循环体;结果为假时,停止循环.3.在两种循环语句中,循环体执行的次数相同吗?[提示]在两种循环语句中,循环体执行的次数是不同的,由于for语句是先执行循环体再判断条件,因此,任何一个for语句中,循环体至少要执行一次,直到满足条件为止;而while语句是先判断条件,因此,循环体可能一次也不执行就退出循环体.【例2】画出计算12+32+52+…+9992的程序框图,并写出程序.[思路探究]根据累加的特点,用循环结构,然后用for循环语句编写.[解]由题意知各项指数相同,底数相差2,可以借助于循环结构设计算法.①程序框图:②程序为:1.(变条件)用for循环语句写出求1+122+132+…+1992的值的计算程序.[解]2.(变结论)本例若用while循环语句写程序,该如何写?请你尝试一下.[解]1.for循环语句的格式:2.根据for语句中所给定的初值、终值和步长,来确定循环次数,反复执行循环体内各语句.3.执行过程:通过for语句进入循环,将初值赋给循环变量,当循环变量的值不超过终值时,则顺序执行循环体内的各个语句,遇到end,将循环变量增加一个步长的值,再与终值比较,如果仍不超过终值范围,则再次执行循环体,这样重复执行,直到循环变量的值超过终值,则跳出循环.【例3】编写程序求2×4×6×…×100的值.[思路探究]可用while循环语句编写,循环的条件是累乘变量小于等于100.[解]程序框图如下:程序如下:3.(变条件)写出求平方值小于1000的最大整数的计算程序.[解]用Scilab的格式来解决这个问题.在输入完程序的第三行后,击Enter键,再在提示符下输入j,击Enter键后,输出最大的j值.4.(变结论)本例能否用for循环语句写程序?请你尝试一下.[解]1.计算机执行while型循环语句时,先判断条件的真假,若条件为真,执行循环体,若为假则退出.这是确定是否应用while型语句的关键.2.while型循环语句中while和end成对出现.3.判断条件往往是控制循环次数的变量.循环语句的实际应用【例4】2010年我国人口数约为13.56亿,如果每年的人口自然增长率为1.5%,画出求多少年后我国人口将达到超过15亿的程序框图,并写出相应的程序.[思路探究]解决本题的关键是先读懂题目含义,然后结合算法循环语句的特点,寻找循环变量,这里考虑人口增长需要有个累加变量s,还有年数的增加需要有计数变量i.[解]程序框图如图所示:程序为:1.本题的程序设计具有通用性,递增求和、递减求和问题都可以仿照此题的程序写出.2.解答此类题的一般步骤为:2.某服装厂2019年的生产总值为2000万元,如果年生产增长率为5%,计算最早哪一年生产总值超过3000万元,画出程序框图,并用while语句描述这一算法.[解]程序框图如图所示:程序为:1.本节课的重点是理解两种循环语句的格式与功能.难点是会用两种循环语句编写算法语句,能根据程序写出运行结果.2.本节课要掌握以下几类问题:(1)把握两种语句的内涵,准确使用两种语句解题.(2)把握两种语句的转化方法.3.本节课的易错点有两个:(1)混淆两种语句.(2)对控制循环的条件理解不清而致错.当堂固双基达标1.思考辨析(1)在循环次数不确定时,可使用while循环语句.()(2)while语句是先判断条件,后执行循环体.()(3)在for循环语句中,结果为真时终止循环,结果为假时执行循环体.()[答案](1)√(2)√(3)×2.关于循环语句的说法不正确的是()A.算法中的循环结构由while语句来实现B.循环语句中有for语句和while语句C.一般来说for语句和while语句可以互相转换D.算法中的循环结构由循环语句来实现A[算法中的循环结构由循环语句来实现,循环语句包括for语句和while语句两种不同的格式,且一般情况下这两种语句可以相互转换.所以选项A是错误的,其余都正确.]3.下面程序输出的结果为()A.17B.19C.21D.23C[S=2×9+3=21.]4.设计一个计算1+3+5+7+…+99的值的程序,并画出程序框图.[解]程序如下:程序框图如图所示.