数学:1.2.3循环语句
- 格式:ppt
- 大小:472.00 KB
- 文档页数:5
张喜林制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的最大整数的程序框图,并编写程序.。