1.2.3基本算法语句--循环语句
- 格式:ppt
- 大小:405.00 KB
- 文档页数:22
张喜林制1.2.3 循环语句教材知识检索考点知识清单1.在算法程序语言中一般通过来处理算法中的循环结构.2.Scilab程序语言中提供了两种循环语句:.3.for循环的格式为:,while循环的格式为要点核心解读1.循环语句(1)循环语句的概念,在程序处理中,经常需要对一条或一组语句重复执行多次,最终完成某项任务,这就是循环的概念,例如统计所有考生的成绩的总分需要一个人一个人地计算;寻找一批数据中的某一个,需要逐个地鉴别……这类处理的一个特点是对不同的运算对象进行若干次的相同运算或处理,这种处理模式在程序设计中是用循环结构来实现的.在Scilab程序语言中提供了两种循环语句,for循环和while循环.(3)for循环的一般格式2.循环语句的应用循环语句主要用来处理算法中的循环结构,在处理一些需要有规律地重复计算问题,如累加求和、累乘求积及其他问题时常常用到循环语句编写程序,用for 循环编写程序时要注意设定好循环变量的初值、步长和终值,避免出现多一次循环或少一次循环的情况,用while 循环编写程序时,一定要注意表达式的写法,当表达式为真时执行循环体,表达式为假时结束循环,以防出现表达式正好相反的错误.循环结构在生活中有着广泛的应用,用循环语句描述循环结构的算法简洁、方便.[例] 猴子第1天摘下若干个桃子,当即吃一半,还不过瘾,又多吃了一个.第2天早上又将剩下的桃子吃掉一半又多吃了一个.以后每天早上都吃了前一天剩下的一半还多一个,到第10天早上想再吃时,见只剩下一个桃子.求第1天共摘多少个桃子?[解析] 第10天为,110=s 第9天为,42)11(9=⨯+=s 第8天则为,102)14(8=⨯+=S ……第1天则为,2)1(21⨯+=S S 得到递推公式为,2)1(,1110⨯+==+n n s S s.9,,2,1 =n[答案] 根据思路,程序框图如图1-2 -3 -2所示, 根据框图,程序为:;1=i ;1=S e whi 1 ;10<i;2*)1(+=S S ;1+=i iend);),2((%S io nt np [点拨] 本题算法称为递推法,由前项推后项,递推公式重复运用,因此可用循环语句处理.典例分类剖析考点1 for 循环语句的编写[例1]设计一个计算997531⨯⨯⨯⨯⨯ 值的算法,画出程序框图,写出程序. [答案] 这是一个有规律的累乘问题,第一个数为1,以后每个数均比前一个数大2,共50个数相乘,因此可用循环结构设计算法,用循环语句编写程序, 算法步骤如下:Sl 令;1=S S2 令;1=I S3 令;I S S ⨯= S4 令;2+=I IS5 若,991≤那么执行S3;否则执行S6; S6 输出S程序框图如图1-2 -3 -3所示,[点拨] (1)由于是一个累乘问题,我们设定S初始值为l,所以程序中的第二行语句也可改写为for i=3:2:99,最后程序的运行结果是一样的.知道循环次数,常用for语句.(2)本题中的程序也可用while循环语句编写如下:1.编写程序计算2005的值,考点2 while循环语句的编写[例2] 标有l,2,3,4,5,6六个号码球,有一个最重的,写出模拟挑出最重球的程序.[答案] 设第一个球是最重的,然后与其他几个球依次比较,如有比第一个球重的,就交换过来.=i;1whi1 i< = 6e)((“输入小球重量”);a=inputii=i;1+endi;2==a();max i61<=i ewhi )(max i a if < );(max i a = end;1+=i iendmax);),2((%io nt np [点拨] 本题中有两个循环体),(max 1i a hk i i =+=注意循环语句的嵌套,未知循环次数常用while语句,,10000_______531.2>⨯⨯⨯⨯ 那么如何寻找满足条件的最小正整数呢?试写出解决此问题的算法,并写出程序,考点3 同一问题的两种语句处理[例3] 用两种语句写出求22210021+++ 的值的算法.[答案] 若用while 语句,循环终止条件为,100≤i 用for 语句,其步长为1,终值为100. e whi 1语句: for 语句:;1=i ;0=sum ,0=sum 010:1:1.=i for 100.1<=i e whi ;*i i sum sum +=;*i i sum sum += end;1+=i i );),2((%sum io nt n p end);),2((%sum io nt np [点拨] (1)在描述循环条件的算法时,若循环次数是明确的,两种语句均可使用,若循环次数不明确,一般用while 语句.(2)若用while 语句,循环终止条件为,100≤i 用for 语句其步长为1,终值为100. 3.编写求解下列问题的程序:;100014131211)1(+++++.10099433221)2(⨯++⨯+⨯+⨯考点4 循环结构在生活中的应用[例4]高-(3)班共有54名同学参加了数学竞赛,现在已有了这54名同学的竞赛分数.请设计算法,要求计算出竞赛成绩优秀的同学的平均分并输出(规定90分以上为优秀),画出程序框图,写出程序. [答案] 我们可以用循环结构控制输入54名同学的分数,用条件结构来判断分数是否高于90分,同时统计累加高于90分的成绩的总和和人数,从而求出平均分, 程序框图如图1.2 -3 -4所示.程序如下:[点拨]设计算法,画出程序框图,条件语句与循环同时运用.用while 语句,循环终止条件为.54≤i 4.某服装厂2007年的产值为2000万元,如果年生产增长率为5%,计算最早哪一年生产总值超过3000万元,画出程序框图,并写出程序.优化分层测训学业水平测试1.下面算法语句中,输出的结果为( ).;0=Sdo to x for .7..3.= begin ;x S S +=输出S . end25.A 18.B 7,6,5,4,3.C 25,18,12,7,3.D2.循环语句中的步长( ).A .可以省略B .不能省略C .只有步长为1时才可省略D .以上全错 3.循环语句“while 表达式循环体end”中说法正确的是( ).A .总是执行循环B .执行一次循环C .表达式为真,则执行循环D .遇到end 就结束 4.读算法语句:do to fori 31= begindo to forj 51= begin输出i 十f end则输出i*j 语句执行次数为 5.阅读算法语句:,1=w ;2=i repeat,*i w w = ;1+=i i 20001>w unti 输出.1-i该算法语句的意义为: . 6.编写61514131211-+-+-的运算程序, 高考能力测试(测试时间:45分钟测试满分:100分)一、选择题(本大题共8小题,每小题5分,共40分,在每小题给出的四个选项中,只有一项是符合题目要求的)1.下列关于for 循环的说法中错误的是( ).A .在for 循环中,循环表达式也称为循环体B .在for 循环中,步长为l ,可以省略不写,若为其他值,则不可省略C .理解for 循环的关键是理解为循环变量设定的初值、步长、终值D .在for 循环中“end”控制结束一次循环,开始一次新的循环 2.下列说法中正确的是( ).A .while 循环和for 循环的结构相同B .while 循环结构首先要求对表达式进行判断,如果表达式为真,则执行循环体部分C .while 循环每次开始执行循环体前,都要判断表达式是否为假D .while 循环每次开始执行循环体前,都要判断表达式是否为假,这样重复执行,一直到表达式的值为真时,就跳过循环体部分,重新判断表达式的值,直到循环结束3.(2010年惠州模拟题)下面的程序运行后,输出的结果为( ).[注:5)(MOD j a +是j +5“除以5的余数”]50.A 5.B 25.C 0.D,190:10:100.4-=forx 该程序共执行循环( ).A.29次 B .30次 C .28次 D .19次 5.当2=x 时,下面程序的运行结果是( ).;1=i;0=S 4.<=i while;1*+=X S S ;1+=i iend S3.A 7.B 15.C 17.D6.如图1-2 -3 -6流程图中,语句1(语句1与i 无关)将被执行的次数是( ).23.A 24.B 25.C 26.D7.执行下列程序时,计算机能输出的结果仅是15的是( ).)(;;;5:1;0.s disp end X s s f s A orx +===).(;;8,5:1;0.s disp end X s forx s B +=== end s disp x s s forX s C );(;,5:1;0.+=== )(;;,5:1;0.s disp end X s s krX s D +===8.(2011年北京高考题)执行如图1-2 -3 -7所示的程序框图,若输入A 的值为2,则输出的P 值为( ).2.A3.B4.C5.D二、填空题(本大题共4小题,每小题5分,共20分.把答案填在题后的相应位置)9.(2011年山东高考题)执行如图1-2 -3 -8所示的程序框图,输入,5,3,2==⋅=n m l 则输出的y 的值是10.(2011年江西高考题)如图1-2 -3 -9所示是某算法的程序框图,则程序运行后输出的结果是 . 1l.程序:以上程序运行后的结果是12.以下给出求99531⨯⨯⨯⨯ 的值的四个程序,其中正确的有(1)(2)(3)三、解答题(本题共4小题,每小题10分,共40分,解答须写出文字说明、证明过程和演算步骤)13.现欲求12151311-++++n 的和(其中n 的值由键盘输入),已给出了其程序框图(如图1 -2 -3 -10),请将其补充完整并设计出程序.14.已知,)(2x x f =把区间[0,1]十等分,设计程序求该函数在各分点处和区间端点的函数值.15.设计程序求π的近似值可以用以下公式:++=22221116π⋅++22131n 用上述公式求,62π即逐项进行累加,直到00001.012<n 为止(该项不累加),然后求出π的近似值.16.画出求平方值小于2000的最大整数的程序框图,并编写程序.。
案例:1.2.3 循环语句
一、教学目标:
1.知识与技能:(1)通过具体的实例理解,了解循环语句的结构特征,掌握循环语句的具体应用;
(2)利用循环语句表达结局具体问题的过程,体会算法的基本思想;
2.过程与方法:借助框图中的循环结构,借助Scilab语言中的循环语句来设计程序,进一步体会算法的重要性和有效性
3.情感、态度与价值观:在学习过程及解决实际问题的过程中,尽可能的用基本算法语句描述算法、体会算法思想的作用及应用,增进对算法的了解,形成良好的数学学习情感、积极的学习态
度。
二、教学的重点、难点:
1.重点:理解for 语句与while语句的结构与含义,并会应用
2.难点:应用两种循环语句将具体问题程序化,搞清for循环和while循环的区别和联系
三、教学方法与手段:
采用观察、分析、抽象、概括、自主探究、合作交流的教学方法,通过各种教学媒体(计算机)调动学生参与课堂教学的主动性与积极性。
1.2.3 循环语句循环语句1.循环语句的概念用来处理算法中的循环结构的语句.2.在Scilab语言中,for循环和w hile循环的格式1.下面循环语句中,循环终止时,n等于()A.6B.7C.8D.9C[当n≤7成立时,执行循环体n=n+1,直至n=8时终止循环.]2.关于for x=a∶b∶c,下列说法正确的有()①当x=c时,程序结束;②当x=c时,还要继续执行一次;③当b>0,x≥c 时程序结束;④当b<0,x<c时程序结束.A.1个B.2个C.3个D.4个B[当x为终值时,还要进行一次,才能离开循环体,故①③错,②④正确.] 3.在下面图中给出的四个框图,其中满足while循环语句格式的是()B[while循环语句格式:故选B.]4.执行语句“for n=1:50”时.(1)变量n的第1个值为________.(2)变量n的第2个值为________.(3)变量n的最后1个值为________.(1)1(2)2(3)50[“for n=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=3 2,第三次输出的数是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.(变条件)写出求平方值小于1 000的最大整数的计算程序.[解]用Scilab的格式来解决这个问题.在输入完程序的第三行后,击Enter键,再在提示符下输入j,击Enter键后,输出最大的j值.4.(变结论)本例能否用for循环语句写程序?请你尝试一下.[解]1.计算机执行while型循环语句时,先判断条件的真假,若条件为真,执行循环体,若为假则退出.这是确定是否应用while型语句的关键.2.while型循环语句中while和end成对出现.3.判断条件往往是控制循环次数的变量.【例4】1.5%,画出求多少年后我国人口将达到超过15亿的程序框图,并写出相应的程序.[思路探究]解决本题的关键是先读懂题目含义,然后结合算法循环语句的特点,寻找循环变量,这里考虑人口增长需要有个累加变量s,还有年数的增加需要有计数变量i.[解]程序框图如图所示:程序为:1.本题的程序设计具有通用性,递增求和、递减求和问题都可以仿照此题的程序写出.2.解答此类题的一般步骤为:2.某服装厂2019年的生产总值为2 000万元,如果年生产增长率为5%,计算最早哪一年生产总值超过3 000万元,画出程序框图,并用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. 下面程序输出的结果为()2019-2020年人教B 版数学必修三讲义:第1章+1.2.3 循环语句及答案- 11 - / 11 A .17 B .19 C .21 D .23C [S =2×9+3=21.]4.设计一个计算1+3+5+7+…+99的值的程序,并画出程序框图.[解] 程序如下:程序框图如图所示.。