2019-2020年高中数学第1章算法初步1.3基本算法语句1.3.4循环语句教学案苏教版必修3
- 格式:doc
- 大小:971.50 KB
- 文档页数:17
1.3.4 循环语句1.流程图中的循环结构要用什么语句来表达?2.循环语句有几种格式,它们的表达形式是什么?[新知初探]1.循环语句处理循环结构的算法要用循环语句.2.循环语句的三种格式名称While… End While Do… End Do For语句类型当型直到型循环结构循环语句While P循环体End WhileDo循环体Until PEnd DoFor I From“初值”To“终值”Step“步长”特点先判断后执行先执行后判断循环次数已经确定循环次数不能确定[点睛]“For”语句的一般形式中Step“步长”为1时“Step 1”可省略,否则不能省略.[小试身手]1.关于For循环说法正确的是________.①步长可以是负数;②初值一定小于终值;③步长不可以省略;④初值不能为负数.预习课本P22~24,思考并完成以下问题答案:①2.下列问题的伪代码可以通过循环语句来实现的是________.①计算:1+⎝ ⎛⎭⎪⎫121+⎝ ⎛⎭⎪⎫122+⎝ ⎛⎭⎪⎫123+…+⎝ ⎛⎭⎪⎫12100;②计算:1×3×5×7×9× (99)③比较两个实数a ,b 的大小,并输出较小的数; ④计算:1+12+13+…+1100.答案:①②④ 3.已知如下伪代码:S ←0I ←5While I ≤20 S ←S +I I ←I +5End While Print S上述伪代码运行的结果是________. 答案:50[典例] (1)如果以下伪代码运行后输出的结果是132,那么在伪代码中Until 后面的“条件”应为________.i ←12s ←1Dos ←s ×ii ←i -1Until 条件End Do Print s(2)下面伪代码表示的算法所解决的问题是__________________________________.i ←1S ←0While i ≤100S ←S +i 2i ←i +1End While Print S阅读伪代码表示的循环语句[解析] (1)该程序中使用了直到型循环语句,当条件不满足时执行循环体,满足时退出循环,由于输出的是132,故执行了两次循环体,因此条件应为i<11.(2)令i=1,S=0,第i步的结果可以表示为第i-1步的结果加上i2,则循环体为“S←S+i2,i←i+1”,不断地进行循环,直到不符合条件时结束循环.所以本伪代码所解决的问题是计算12+22+32+…+1002的值.[答案] (1)i<11 (2)计算12+22+32+…+1002的值.阅读伪代码表示的循环语句时,要能够根据伪代码判断算法所要解决的问题,理解各种循环语句所表示的含义,并能够根据伪代码判断循环所满足的条件.[活学活用]T←1For I From 2 To 5T←T×IEnd ForPrint T以上伪代码运行结果T=________.解析:由条件I From 2 To 5知共循环4次.第一次循环T←1×2=2,第二次循环T←2×3=6,第三次循环T←6×4=24,第四次循环T←24×5=120.故运行结果为120.答案:120应用循环语句设计程[典例] 写出计算12+32+52+…+9992的伪代码,并画出相应的流程图.[解] 由题意知各项指数相同,底数相差2,可以借助于循环语句设计算法,因为循环次数是确定的,因而算法语句选用“For”语句,在这个问题里初值I←1,步长是2.伪代码如下:S←0For I From 1 To 999 Step 2S←S+I2End ForPrint S相应流程图如图所示:(1)应用循环语句设计算法程序时,要注意各种循环语句所适用的条件及循环次数是否已知,要注意控制循环的条件是否满足.(2)若循环次数确定,一般用For语句,若循环次数不确定,一般用While语句.设计一个求1×3×5×…×2 017的值的算法,写出伪代码,并画出相应的流程图.解:算法:S1 S←1;S2 i←1;S3 S←S×i;S4 i←i+2;S5 如果i不大于2 017则转S3;S6 输出S值;S7 结束.伪代码:S←1i←1For i From 1 To 2 017 Step 2S←S×iEnd ForPrint S[典例] 某商场第一年销售计算机5 000台,如果平均每年销售量比上一年增加10%,那么从第一年起大约到第几年可使销售量达到40 000台,用循环语句写出解决此问题的一个算法,并画出相应的流程图.[解] 由题意得第二年销售量为5 000(1+0.1),第3年销售量为5 000(1+0.1)2,…,第n年销售量为5 000(1+0.1)n-1.法一:用While语句如下:m←5 000i←1While m<40 000m←m×1+0.1i←i +1End WhilePrint i相应流程图如下:法二:用Do语句如下:m←5 000i←1Dom←m×1+0.1i←i+1Until m≥40 000End DoPrint i相应流程图如下:(1)利用循环语句描述实际应用问题的算法时,首先要分析题意,构建数学模型,再将问题的求解过程步骤化、程序化,最后用算法语句表示算法过程.(2)While语句是当型循环语句,画相应流程图时应用当型结构.Do语句是直到型循环语句,画相应流程图时应用直到型结构.(3)对同一算法,While语句和Do语句中的判断条件是相反的.某玩具厂2015年的产值为200万元,如果年生产增长率为5%,计算最早哪一年生产总值超过400万元,画出流程图,并写出伪代码.解:流程图如图所示:伪代码如下:n←2 015;a←200;p←1.05;While a≤400a←ap;n←n+1;End WhilePrint n-1[层级一学业水平达标]1.以下该算法共执行循环体的次数为________.For i=-3 To 147 Step 3End For解析:循环次数=(终值-初始值)/增量+1=[147--3]3+1=51. 答案:512.有以下伪代码,其中描述正确的是________.k←8While k=0k←k+1End While①循环体语句执行10次;②循环体是无限循环;③循环体语句一次也不执行;④循环体语句只执行一次.解析:不符合条件,循环语句一次也不执行.答案:③3.如图是一算法的伪代码,执行此算法,最后输出的n的值为______.n←6s←0While s<15s←s+nn←n-1End WhilePrint n解析:s=6,n=5;s=11,n=4;s=15,n=3,退出循环,此时n=3. 答案: 34.求1+2+22+…+2100的算法的伪代码为:S←1For i From 1 To 100End ForPrint S其中横线上应填________.解析:1+2+22+…+2100为有规律的累加运算,又S的初值为1,指数i的初值为1,终值为100,步长为1,所以应填S←S+2i.答案:S←S+2i5.如图给出的是计算S=1-12+13-14+…+199-1100的流程图,请填充框图内所缺的式子,并写出伪代码.解:根据流程图的功能得①i<100 ②S=N-T相应的伪代码如下:i←1N←0T←0While i<100N←N+1/iT←T+1/i+1S←N-Ti←i+2End WhilePrint S[层级二应试能力达标]1.下述伪代码表示的算法运行结果为________.N←1S←0DoS←S+NN←N+1Loop While S≤10Print N-1.解析:S=1+2+3+4+5时循环停止,此时输出5.答案:52.给出如下的伪代码,是计算____________的值.S←1I←3While I<99S←S+I3I←I+2End WhilePrint S答案:1+33+53+…+9733.如果下列伪代码运行后输出的结果是720,则在横线处应填入的正整数为________.解析:依题意需计算S←S×8后应结束循环,因此在横线处应填8.答案:84.观察下列程序,该循环变量I共循环________次.S←0I←1While S<60S←S+II←I+1End While解析:由题意知该程序的作用是判断S=1+2+3+…+n≥60的最小整数n.∵1+2+3+…+10=55<601+2+3+…+11=66>60.故可知该程序循环了11次.答案:115.已知下列算法语句:I←12S←1DoS←S×II←I-2Until I<8End DoPrint S则语句执行后输出的结果为________.解析:第一次循环得S=12,I=10.第二次循环得S=12×10,I=8.第三次循环得S=12×10×8=960,I=6<8退出循环.答案:9606.根据以下伪代码,可知输出的结果b为________.a←1b←1While b<5c←a+ba←bb←cEnd WhilePrint b解析:第一步:c=2,a=1,b=2;第二步:c=3,a=2,b=3;第三步:c=5,a =3,b=5.结束循环,输出b=5.答案:57.下面是求1×3×5×…×99的值的四个程序的伪代码,其中正确的序号为________.答案:①④8.给定下面伪代码,输出结果为________.a←2i←1While i≤6a←a+1Print i,ai←i+1End While解析:算法中用到了While循环语句,从a←2,i←1开始,第一次循环求2+1,并输出1,3;第二次求3+1,并输出2,4;第三次求4+1,并输出3,5,…;第六次求7+1,并输出6,8.即输出结果为1,3 2,4 3,5 4,6 5,7 6,8.答案:1,3 2,4 3,5 4,6 5,7 6,89.阅读下面伪代码,完成问题.i←1p←0While i≤99p←p+ii←i+2End WhilePrint p(1)伪代码中的循环语句是什么型循环语句;(2)将伪代码用另外类型的循环语句来实现.解:(1)从伪代码可看出这是一个用当型循环语句给出求1+3+5+…+99的值的一个算法.(2)改成直到型循环语句如下:i←1p←0Dop←p+ii←i+2Until i>99End DoPrint p用For语句表示如下:S←1For I From 3 To 99 Step 2S←S+IEnd ForPrint S10.13世纪初,欧洲最好的数学家斐波那契出了这样一道有趣的数学题:如果一对兔子每月能生一对小兔,而每对小兔子在它出生后的第3个月里,又能开始生一对小兔子,假定在不发生死亡的情况下,由一对初生的兔子开始,一年后能繁殖成多少对兔子?解:假设最初的一对兔子出生在头一年的12月份.显然,1月份只有一对兔子,到2月份时,总共2对兔子;到3月份总共3对兔子;到4月份总共5对兔子;到5月份总共8对兔子,…,观察这组数据,1,1,2,3,5,8,…,里面隐含着一个规律,从第3个数开始,后面的每个数都是它前面两个数的和.根据这个规律,只要作一些简单的加法,就能推算出以后各个月兔子的数目了.我们可以写出算法如下:S1 f1←1,f2←1,i←3;S2 输入N(几个月后?);S3 f3←f1+f2;S4 f1←f2;S5 f2←f3;S6 i←i+1;S7 如果i≤N转第(3)步继续执行;S8 输出f3的值;S9 结束.伪代码为:。
高中数学 第一章 算法初步 1.1.3 算法的三种基本逻辑结构和框图表示(2)课堂探究 新人教B 版必修3循环结构的特点剖析:(1)循环结构不能是永无终止的“死循环”,一定要在某个条件下终止循环,这就需要条件分支结构来作出判断,因此循环结构中一定包含条件分支结构.(2)用循环结构描述算法,一般说需要事先确定三件事:①确定循环变量和初始条件;②确定算法中反复执行的部分,即循环体;③确定循环的条件.(3)一般地,循环结构中都有一个计数变量和累加变量.计数变量用于记录循环次数,同时它的取值还用于判断循环是否终止;累加变量用于输出结果.计数变量和累加变量一般是同步执行的,累加一次,计数一次.另外,还有累乘变量,累乘变量和累加变量的设置目的是一样的,只不过分工不同,累加变量用来计算很多项的和,累乘变量用来处理很多项的积.无论哪一种变量都是为最终输出结果服务的.题型一 利用循环节后求和【例1】 画出计算1+13+15+…+12 013的值的一个程序框图.分析:选好计数变量i 与累加变量S ,且i =i +2,S =S +1i.解:程序框图如图所示.反思 本题是累加问题,代表了一类相邻两个数的差为常数的求和问题的解法,在设计算法时要注意前后两个数的分母相差2,此时计数变量不是“i =i +1”,而是“i =i +2”,但如果计算1+14+17+110+…,此时计数变量应为“i =i +3”,要灵活地改变算法中的相应部分.题型二利用循环结构求积【例2】设计求1×2×3×…×1 000的值的算法,并画出程序框图.分析:本算法若是只采用顺序结构,要一个一个地累乘,需千余步,考虑到运算过程的重复性,引入循环结构,同时设计计数变量和累乘变量来控制循环,因为是乘法运算,所以累乘变量的值不能从0开始,要从1开始,计数变量的值从2开始增至1 000.解:S1 p=1;S2 i=2;S3 p=p×i;S4 i=i+1;S5 如果i>1 000,那么转到S6;否则执行S3;S6 输出p.程序框图如下图所示.反思因本程序框图是先循环后判断,所以它的循环结构是直到型循环.p是累乘变量,i是计数变量,p=1和i=2的先后顺序没有要求.题型三利用循环结构求最值【例3】看下面的问题:1+2+3+…+( )>10 000.这个问题的答案不唯一,我们只要确定出满足条件的最小正整数n0,括号内填写的数字只需大于或等于n0即可.试写出寻找满足条件的最小正整数n0的算法,并画出相应的算法程序框图.分析:由于10 000是一个较大的数,用试或猜的办法是行不通的,因此需设计一个循环结构的程序框图来解决.解:算法一:S1 p=0;S2 i=0;S3 i =i +1; S4 p =p +i ;图1S5 如果p >10 000,则输出i ,否则执行S3. 该算法的程序框图如图1所示. 算法二:S1 取n 的值等于1; S2 计算S =n n +12;S3 如果S 的值大于10 000,那么n 即为所求; 否则,让n 的值增加1,然后转到S2重复操作.根据以上的操作步骤,可以画出如图2所示的算法程序框图.图2题型四易错辨析【例4】设计一个程序框图求S=12+32+52+…+992的值.错解:如图(1),图(2)所示.错因分析:图(1)的错误在于i=i+1,计算的是S=12+22+32+...+992的结果.图(2)的错误在于先执行i=i+2,而后执行S=S+i2,计算的是S=32+52+72+ (992)1012的结果.正解:如下图所示.错解:程序框图如下所示.正解:程序框图如下图所示.。
2019-2020年高中数学必修三:第一章 算法初步第三、四课时 秦九韶算法与排序 教案(1)教学目标(a )知识与技能1.了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。
2.掌握数据排序的原理能使用直接排序法与冒泡排序法给一组数据排序,进而能设计冒泡排序法的程序框图及程序,理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用。
(b )过程与方法模仿秦九韶计算方法,体会古人计算构思的巧妙。
能根据排序法中的直接插入排序法与冒泡排序法的步骤,了解数学计算转换为计算机计算的途径,从而探究计算机算法与数学算法的区别,体会计算机对数学学习的辅助作用。
(c )情态与价值通过对秦九韶算法的学习,了解中国古代数学家对数学的贡献,充分认识到我国文化历史的悠久。
通过对排序法的学习,领会数学计算与计算机计算的区别,充分认识信息技术对数学的促进。
(2)教学重难点重点:1.秦九韶算法的特点2.两种排序法的排序步骤及计算机程序设计难点:1.秦九韶算法的先进性理解2.排序法的计算机程序设计(3)教学设想(一)创设情景,揭示课题我们已经学过了多项式的计算,下面我们计算一下多项式1)(2345+++++=x x x x x x f 当5=x 时的值,并统计所做的计算的种类及计算次数。
根据我们的计算统计可以得出我们共需要10次乘法运算,5次加法运算。
我们把多项式变形为:1)))1(1(1()(2+++++=x x x x x x f 再统计一下计算当5=x 时的值时需要的计算次数,可以得出仅需4次乘法和5次加法运算即可得出结果。
显然少了6次乘法运算。
这种算法就叫秦九韶算法。
(二)研探新知1.秦九韶计算多项式的方法1210123120132211012211)))((())(()()(a a x a x a x a a x a x a x a x a a x a x a x a x a a x a x a x a x a x f n n n n n n n n n n n n n n n n n n n +++++==+++++=+++++=+++++=--------------例1 已知一个5次多项式为8.07.16.25.325)(2345-+-++=x x x x x x f用秦九韶算法求这个多项式当5=x 时的值。
1.3.4 循环语句(2)教学目标:1.进一步巩固基本算法语句:赋值语句、输入输出语句、条件语句、循环语句的概念,并掌握其结构;2.会灵活应用基本算法语句编写程序.教学重点:各种算法语句的表示方法、结构和用法. 教学难点:灵活应用各种算法语句编写程序教学方法:1. 通过编写程序,上机调试的过程,发展编写能力.2. 通过具体实例,发展设计算法,编写程序来解决问题的能力.教学过程:一、问题情境编写函数221, 2.51, 2.5x x y x x ⎧+≤⎪=⎨->⎪⎩的算法,根据输入的x 的值,计算y 的值.二、学生活动分析 这是分段函数,计算前,先对x 的值进行判断,再确定计算法则. 解:其算法步骤如下: 用算法语句可表示如下: S1 输入x ;S2 若 2.5x ≤,则21y x ←+,否则,则21y x ←-;S3 输出y .三、建构教学能根据具体实例确定所需算法语句四、数学运用例1 试用算法语句表示:使22221232006n ++++>L 成立的最小正整数的算法过程.解:本例需要用到循环结构,且循环的次数不定,因此可用“While 循环”语句, 具体描述:例2 读入80个自然数,统计出其中奇数的个数,用伪代码表示解决这个问题的算法过程.解:本题算法的伪代码如下: 0k ←For I From 1 To 80 Read n []22n n T ←- If 0T ≠ Then1k k ←+(Print n ) End If End For0S ← 1I ←While S ≤2006 1I I ←+ 2S S I ←+ End While Print I EndPrint k End变式 若本例中还要将所有奇数输出呢?以上伪代码该作何修改?(见题中括号) 例3 《中华人民共和国个人所得税法》第十四条有下表(部分)个人所得税税率表—(工资、薪金所得使用)目前,上表中“全月应纳税所得额”是从月工资、薪金收入中减去800元后的余额.若工资、薪金的月收入不超过800元,则不需纳税.某人月工资、薪金收入不超过20800元,试给出一个计算其月工资、薪金收入为x 元时应缴纳税款额的算法并用伪代码表示这个算法.解:设月工资、薪金收入为x 元时应缴纳税款额为y 元,伪代码如下: Read xIf 800x ≤ Then y ←0Else If 8001300x <≤ Then y ←(x-800)*0.05Else If 13002800x <≤ Then y ←500*0.05+(x-1300)*0.1 Else If 28005800x <≤ Theny ←500*0.05+1500*0.1+(x-2800)*0.15 Else If 580020800x <≤ Theny←500*0.05+1500*0.1+3000*0.15+(x-5800)*0.2 End IfPrint yEnd五、要点归纳与方法小结本节课学习了以下内容:1.各种算法语句的表示方法、结构和用法;2.灵活应用各种算法语句编写程序.。
——教学资料参考参考范本——2019-2020学年度高中数学第1章算法初步1-3基本算法语句1-3-4循环语句自我检测______年______月______日____________________部门自我检测基础达标1.写出下列程序的运行结果:(1)i←0S←0While S<=20S←S+ii←i+1End WhilePrint iEnd其运行结果为7 .(2)i←0S←0While S<=20i←i+1S←S+iEnd WhilePrint iEnd其运行结果为 6 .2.下面是求1×2×3×4×…×n的积的伪代码,请将其补充完整.Read nMul←1i←2While i<=n①②End WhilePrint MulEnd答案:①Mul←Mul*i②i←i+13.计算函数f(x)=3x2-x+1当x=1,2,3,…,10时的函数值.用伪代码表示算法.解:伪代码表示为:x←1While x<=10y←3*x∧2-x+1Print x,yx←x+1End WhileEnd4.设计一个求n!=1×2×3×…×n的算法,用伪代码表示算法.解:Read“n=”;nA←1i←1While i<=nA←A*i i←i+1End WhilePrint AEnd5.设计算法,计算下面n 个数的和. ,,,,…, .用伪代码表示算法.213243541+n n解:Read“n=”;n i←1 Sum←0 While i<=nSum←Sum+i/(i+1)i←i+1End WhilePrint“Sum=”;Sum End6.组合数公式可以用公式,设计一个用上述公式计算组合数的算法,用伪代码表示算法.!!!)(m n m n C m n -=解:Read“请输入m 和n 的值”;m,n i←1 p←1While i<=np←p*ii←i+1End Whilei←1q←1While i<=mq←q*ii←i+1End Whilei←1S←1While i<=(n-m)S←S*ii←i+1End WhileC1←p/(q*S)Print C1End7.1,1,2,3,5,8,13,……这一列数的规律是:第1,第2个数是1,从第3个数起,该数是其前面2个数之和.试设计一个算法计算这列数前20个数的和,用伪代码表示.解:用伪代码表示为:i←3A←1B←1Sum←A+BWhile i<=20C←A+BSum←Sum+CA←BB←Ci←i+1End WhilePrint“Sum=”;SumEnd8.求1!+2!+3!+…+20!的值,用伪代码表示.解:S←0T←1For N from 1 to 20T←T*NS←S+TEnd forPrint SEnd9.20xx年我国人口有13亿,如果人口每年的自然增长率为,那么多少年后我国人口达到15亿?设计一个算法用伪代码表示.解:A←13R←0.007i←1While A<=15A←A*(1+R)i←i+1End Whilei←i-1Print“达到或超过15亿人口需要的年数为:”;iEnd10.一球从100m高处落下,每次落地后反跳回原高度的一半,再落下.在第10次落地时,共经过多少路程?第10次下落多高?试用伪代码描述上述过程.解法1:S←0h←100S←s+hi←2While i<=10h←h/2S←S+2*hi←i+1End whilePrint“第10次落地时共经过的路程为:”;SPrint“第10次下落的高度为”;hEnd解法2:S←0 h←100 S←S+hFor i From 2 to 10h←h/2 S←S+2*h EDN forPrint“第10次落地时共经过的路程为:”;S༊༉་更上一层1.用近似公式e=1++++…+求自然数e 的数值,取n=10(n 愈大,愈接近e 的真值),设计一算法,用伪代码表示.!11!21!31!n 1解:e←1 T←1For n from 1 to 10T←T*n e←e+T1End forPrint n, e End2.抛掷一枚硬币时,既可能出现正面,也可能出现反面,预先作出确定的判断是不可能的,但是假如硬币质量均匀,那么当抛掷次数很多时,出现正面的频率应接近于50%,试设计一个循环语句模拟抛掷硬币的过程,并计算抛掷中出现正面的频率.解析:有一个随机函数rand( ),它能产生(0,1)之间的随机数,这样我们可以用大于0.5的随机数表示出现正面,否则表示出现反面,其流程图为:用伪代码表示:Read“输入次数”;nS←0t←1While t<nIf rand( )>0.5 thanS←S+1End Ift←t+1End WhilePrint“出现正面的频率”;S/nEnd。
1.3.4 循环语句
一览众山小
诱学·导入
材料:“无事街上走,提壶去买酒,遇店加一倍,见花喝一斗,三遇店和花,喝光壶中酒.”这首诗描绘的是诗仙李白买酒的情景.这首诗的意思是,李白壶中原来就有一些酒,每次遇到酒店就使壶中的酒增加一倍;每次看到花,他就饮酒作诗,喝去一斗.这样经过三次,最后把壶中的酒全部喝光了.
问题:壶中原有多少酒?
导入:
通过分析,我们可以看到计算时有一个递推式,是循环结构的体现,那如何用循环结构将其体现出来?
温故·知新
1.循环结构有几种形式?
循环结构有直到型循环和当型循环两种形式.
2.如何把流程图翻译成伪代码?
要把流程图翻译成伪代码,要注意几个符号框的特定意义与作用.具体设计算法,要分三部分:第一部分是输入部分,为程序运行提供必须的数据,第二部分是数据处理部分,按题目要求进行一系列的操作,得到结果,第三部分是输出部分,输出所求结果.。
2019-2020年高中数学第1章算法初步1.3基本算法语句1.3.4循环语句教学案苏教版必修3[新知初探]1.循环语句处理循环结构的算法要用循环语句.2.循环语句的三种格式[点睛]“For”语句的一般形式中Step“步长”为1时“Step 1”可省略,否则不能省略.[小试身手]1.关于For循环说法正确的是________.①步长可以是负数;②初值一定小于终值;③步长不可以省略;④初值不能为负数.答案:①2.下列问题的伪代码可以通过循环语句来实现的是________.①计算:1+⎝ ⎛⎭⎪⎫121+⎝ ⎛⎭⎪⎫122+⎝ ⎛⎭⎪⎫123+…+⎝ ⎛⎭⎪⎫12100;②计算:1×3×5×7×9× (99)③比较两个实数a ,b 的大小,并输出较小的数; ④计算:1+12+13+…+1100.答案:①②④ 3.已知如下伪代码:S ←0I ←5While I ≤20S ←S +I I ←I +5End While Print S上述伪代码运行的结果是________. 答案:50[典例] (1)如果以下伪代码运行后输出的结果是132,那么在伪代码中Until 后面的“条件”应为________.i ←12s ←1Dos ←s ×ii ←i -1Until 条件End Do Print s(2)下面伪代码表示的算法所解决的问题是__________________________________.i ←1S ←0While i ≤100S ←S +i 2i ←i +1End While Print S[解析] (1)该程序中使用了直到型循环语句,当条件不满足时执行循环体,满足时退阅读伪代码表示的循环语句出循环,由于输出的是132,故执行了两次循环体,因此条件应为i<11.(2)令i=1,S=0,第i步的结果可以表示为第i-1步的结果加上i2,则循环体为“S←S +i2,i←i+1”,不断地进行循环,直到不符合条件时结束循环.所以本伪代码所解决的问题是计算12+22+32+…+1002的值.[答案] (1)i<11 (2)计算12+22+32+…+1002的值.T←1For I From 2 To 5T←T×IEnd ForPrint T以上伪代码运行结果T=________.解析:由条件I From 2 To 5知共循环4次.第一次循环T←1×2=2,第二次循环T←2×3=6,第三次循环T←6×4=24,第四次循环T←24×5=120.故运行结果为120.答案:120应用循环语句设计程[典例] 写出计算12+32+52+…+9992的伪代码,并画出相应的流程图.[解] 由题意知各项指数相同,底数相差2,可以借助于循环语句设计算法,因为循环次数是确定的,因而算法语句选用“For”语句,在这个问题里初值I←1,步长是2.伪代码如下:S←0For I From 1 To 999 Step 2S←S+I2End ForPrint S相应流程图如图所示:设计一个求1×3×5×…×2 017的值的算法,写出伪代码,并画出相应的流程图.解:算法:S1 S←1;S2 i←1;S3 S←S×i;S4 i←i+2;S5 如果i不大于2 017则转S3;S6 输出S值;S7 结束.伪代码:循环语句的实际应用[典例] 某商场第一年销售计算机5 000台,如果平均每年销售量比上一年增加10%,那么从第一年起大约到第几年可使销售量达到40 000台,用循环语句写出解决此问题的一个算法,并画出相应的流程图.[解] 由题意得第二年销售量为5 000(1+0.1),第3年销售量为5 000(1+0.1)2,…,第n 年销售量为5 000(1+0.1)n -1.法一:用While 语句如下:m ←5 000i←1While m <40 000m ←m +i ←i +1End While Print i 相应流程图如下:法二:用Do 语句如下:m ←5 000i ←1Do m ←m +i ←i +1Until m ≥40 000End Do Print i相应流程图如下:某玩具厂xx年的产值为200万元,如果年生产增长率为5%,计算最早哪一年生产总值超过400万元,画出流程图,并写出伪代码.解:流程图如图所示:伪代码如下:[层级一 学业水平达标]1.以下该算法共执行循环体的次数为________. For i =-3 To 147 Step 3 End For解析:循环次数=(终值-初始值)/增量+1=[147--3+1=51.答案:512.有以下伪代码,其中描述正确的是________.k ←8While k =0k ←k +1End While①循环体语句执行10次; ②循环体是无限循环; ③循环体语句一次也不执行; ④循环体语句只执行一次.解析:不符合条件,循环语句一次也不执行. 答案:③3.如图是一算法的伪代码,执行此算法,最后输出的n 的值为______.n ←6s ←0While s <15s ←s +n n ←n -1End While Print n解析: s =6,n =5;s =11,n =4;s =15,n =3,退出循环,此时n =3. 答案: 34.求1+2+22+…+2100的算法的伪代码为:其中横线上应填________.解析:1+2+22+…+2100为有规律的累加运算,又S 的初值为1,指数i 的初值为1,终值为100,步长为1,所以应填S ←S +2i . 答案:S ←S +2i5.如图给出的是计算S =1-12+13-14+…+199-1100的流程图,请填充框图内所缺的式子,并写出伪代码.解:根据流程图的功能得①i <100 ②S =N -T 相应的伪代码如下:i ←1N ←0T ←0While i <100 N ←N +1/i T ←T +i + S ←N -T i ←i +2End While Print S[层级二 应试能力达标]1.下述伪代码表示的算法运行结果为________.N←1S←0DoS←S+NN←N+1Loop While S≤10Print N-1.解析:S=1+2+3+4+5时循环停止,此时输出5.答案:52.给出如下的伪代码,是计算____________的值.S←1I←3While I<99S←S+I3I←I+2End WhilePrint S答案:1+33+53+…+9733.如果下列伪代码运行后输出的结果是720,则在横线处应填入的正整数为________.解析:依题意需计算S←S×8后应结束循环,因此在横线处应填8.答案:84.观察下列程序,该循环变量I共循环________次.S←0I←1While S<60S←S+II←I+1End While解析:由题意知该程序的作用是判断S=1+2+3+…+n≥60的最小整数n.∵1+2+3+…+10=55<601+2+3+…+11=66>60.故可知该程序循环了11次.答案:115.已知下列算法语句:I←12S←1DoS←S×II←I-2Until I<8End DoPrint S则语句执行后输出的结果为________.解析:第一次循环得S=12,I=10.第二次循环得S=12×10,I=8.第三次循环得S=12×10×8=960,I=6<8退出循环.答案:9606.根据以下伪代码,可知输出的结果b为________.a←1b←1While b<5c←a+ba←bb←cEnd WhilePrint b解析:第一步:c=2,a=1,b=2;第二步:c=3,a=2,b=3;第三步:c=5,a =3,b=5.结束循环,输出b=5.答案:57.下面是求1×3×5×…×99的值的四个程序的伪代码,其中正确的序号为________.答案:①④8.给定下面伪代码,输出结果为________.a←2i←1While i≤6a←a+1Print i,ai←i+1End While解析:算法中用到了While循环语句,从a←2,i←1开始,第一次循环求2+1,并输出1,3;第二次求3+1,并输出2,4;第三次求4+1,并输出3,5,…;第六次求7+1,并输出6,8.即输出结果为1,3 2,4 3,5 4,6 5,7 6,8.答案:1,3 2,4 3,5 4,6 5,7 6,89.阅读下面伪代码,完成问题.i←1p←0While i≤99p←p+ii←i+2End WhilePrint p(1)伪代码中的循环语句是什么型循环语句;(2)将伪代码用另外类型的循环语句来实现.解:(1)从伪代码可看出这是一个用当型循环语句给出求1+3+5+…+99的值的一个算法.(2)改成直到型循环语句如下:i←1p←0Dop←p+ii←i+2Until i>99End DoPrint p用For语句表示如下:S←1For I From 3 To 99 Step 2S←S+IEnd ForPrint S10.13世纪初,欧洲最好的数学家斐波那契出了这样一道有趣的数学题:如果一对兔子每月能生一对小兔,而每对小兔子在它出生后的第3个月里,又能开始生一对小兔子,假定在不发生死亡的情况下,由一对初生的兔子开始,一年后能繁殖成多少对兔子?解:假设最初的一对兔子出生在头一年的12月份.显然,1月份只有一对兔子,到2月份时,总共2对兔子;到3月份总共3对兔子;到4月份总共5对兔子;到5月份总共8对兔子,…,观察这组数据,1,1,2,3,5,8,…,里面隐含着一个规律,从第3个数开始,后面的每个数都是它前面两个数的和.根据这个规律,只要作一些简单的加法,就能推算出以后各个月兔子的数目了.我们可以写出算法如下:S1 f1←1,f2←1,i←3;S2 输入N(几个月后?);S3 f3←f1+f2;S4 f1←f2;S5 f2←f3;S6 i←i+1;S7 如果i≤N转第(3)步继续执行;S8 输出f3的值;S9 结束.伪代码为:2019-2020年高中数学第1章算法初步1.3基本算法语句1.3.4循环语句自我检测苏教版必修自我检测基础达标1.写出下列程序的运行结果:(1)i←0S←0While S<=20S←S+ii←i+1End WhilePrint iEnd其运行结果为7 .(2)i←0S←0While S<=20i←i+1S←S+iEnd WhilePrint iEnd其运行结果为 6 .2.下面是求1×2×3×4×…×n的积的伪代码,请将其补充完整.Read nMul←1i←2While i<=n①②End WhilePrint MulEnd答案:①Mul←Mul*i②i←i+13.计算函数f(x)=3x2-x+1当x=1,2,3,…,10时的函数值.用伪代码表示算法.解:伪代码表示为:x←1While x<=10y←3*x∧2-x+1Print x,yx←x+1End WhileEnd4.设计一个求n!=1×2×3×…×n的算法,用伪代码表示算法.解:Read“n=”;nA←1i←1While i<=nA←A*ii←i+1End WhilePrint AEnd5.设计算法,计算下面n个数的和.,,,,…, .用伪代码表示算法.解:Read“n=”;ni←1Sum←0While i<=nSum←Sum+i/(i+1)i←i+1End WhilePrint“Sum=”;SumEnd6.组合数公式可以用公式,设计一个用上述公式计算组合数的算法,用伪代码表示算法.解:Read“请输入m和n的值”;m,ni←1p←1While i<=np←p*ii←i+1End Whilei←1q←1While i<=mq←q*ii←i+1End Whilei←1S←1While i<=(n-m)S←S*ii←i+1End WhileC1←p/(q*S)Print C1End7.1,1,2,3,5,8,13,……这一列数的规律是:第1,第2个数是1,从第3个数起,该数是其前面2个数之和.试设计一个算法计算这列数前20个数的和,用伪代码表示.解:用伪代码表示为:i←3A←1B←1Sum←A+BWhile i<=20C←A+BSum←Sum+CA←BB←Ci←i+1End WhilePr int“Sum=”;SumEnd8.求1!+2!+3!+…+20!的值,用伪代码表示.解:S←0T←1For N from 1 to 20T←T*NS←S+TEnd forPrint SEnd9.xx年我国人口有13亿,如果人口每年的自然增长率为,那么多少年后我国人口达到15亿?设计一个算法用伪代码表示.解:A←13R←0.007i←1While A<=15A←A*(1+R)i←i+1End Whilei←i-1Print“达到或超过15亿人口需要的年数为:”;iEnd10.一球从100m高处落下,每次落地后反跳回原高度的一半,再落下.在第10次落地时,共经过多少路程?第10次下落多高?试用伪代码描述上述过程.解法1:S←0h←100S←s+hi←2While i<=10h←h/2S←S+2*hi←i+1End whilePrint“第10次落地时共经过的路程为:”;SPrint“第10次下落的高度为”;hEnd解法2:S←0h←100S←S+hFor i From 2 to 10h←h/2S←S+2*hEDN forPrint“第10次落地时共经过的路程为:”;SPrint“第10次下落的高度为”;h更上一层1.用近似公式e=1++++…+求自然数e的数值,取n=10(n愈大,愈接近e的真值),设计一算法,用伪代码表示.解:e←1T←1For n from 1 to 10T←T*ne←e+End forPrint n, eEnd2.抛掷一枚硬币时,既可能出现正面,也可能出现反面,预先作出确定的判断是不可能的,但是假如硬币质量均匀,那么当抛掷次数很多时,出现正面的频率应接近于50%,试设计一个循环语句模拟抛掷硬币的过程,并计算抛掷中出现正面的频率.解析:有一个随机函数rand( ),它能产生(0,1)之间的随机数,这样我们可以用大于0.5的随机数表示出现正面,否则表示出现反面,其流程图为:用伪代码表示:Read“输入次数”;nS←0t←1While t<nIf rand( )>0.5 thanS←S+1End Ift←t+1End WhilePrint“出现正面的频率”;S/nEnd。