北师大版必修三 循环语句 学案
- 格式:doc
- 大小:442.50 KB
- 文档页数:9
2.3 循环结构知识点循环结构[填一填]1.循环结构(1)定义:按照一定条件,反复执行某一步骤的算法结构称为循环结构,反复执行的部分称为循环体.(2)循环变量:控制着循环的开始和结束的变量,称为循环变量.(3)循环的终止条件:决定是否继续执行循环体的判断条件,称为循环的终止条件.2.在画出算法流程图之前,需要确定三件事(1)确定循环变量和初始条件;(2)确定算法中反复执行的部分,即循环体;(3)确定循环的终止条件.3.循环结构的算法流程图的基本模式[答一答]如何理解循环结构中的计数变量和累计变量?提示:在大部分循环结构中会有一个计数变量和一个累计变量.计数变量用于记录循环次数,累计变量用于输出结果,它们一般是同步执行,累计一次,计数一次,例如i=i+1,sum=sum+t.i=i+1的含义是:将变量i的值加1,然后把计算结果再存储到变量i中,即i在原值的基础上又增加了1.变量sum作为累加变量,用来表示所求数据的和.如sum的初值为0,当第一个数据送到变量t中时,累加的动作为sum=sum+t,即把sum的值与变量t的值相加,将所得结果再送到变量sum中,如此循环,则可实现数的累加求和.类似于这个原理,我们也可以实现累乘求积的问题.在具体画算法框图时,要注意:流程线上要有标志执行顺序的箭头;判断框后边的流程线应根据情况标注“是”或“否”;在循环结构中,要注意根据条件设计合理的计数变量、累加变量等,特别是条件的表述要恰当、精确.画循环结构算法框图的要领:①确定循环变量和初始条件;②确定算法中反复执行的部分,即循环体;③确定循环的转向位置;④确定循环的终止条件.类型一循环结构的基本概念例1在使用循环结构描述一个具体问题的算法时,循环变量的初始值()A.是唯一的B.是固定不变的C.根据结构特点有时可以变化D.以上答案都不对解析循环结构中,若循环体不同,所给的循环变量的初值可以不同,故选C.答案 C规律方法对循环结构的有关概念的正确理解是解循环结构题目的关键,应认真掌握.下面的算法流程图中是循环结构的是(C)A.①②B.②③C.③④D.②④解析:①为顺序结构,②为条件结构,③④为循环结构.类型二含循环结构的程序的运行例2如果执行如图所示的算法框图,输入x=-2,h=0.5,那么输出的各个数的和等于()A.3B.3.5C.4D.4.5思路探究本题主要考查循环结构内嵌套多个选择结构的算法框图,需要反复进行判断和运算直到满足条件.题中涉及三个变量,注意每个变量的运行结果和执行情况.解析按照算法框图依次执行为:初始值x=-2,h=0.5.(1)x=-2,h=0.5,y=0;(2)x=-1.5,h=0.5,y=0;(3)x=-1,h=0.5,y=0;(4)x=-0.5,h=0.5,y=0;(5)x=0,h=0.5,y=0;(6)x=0.5,h=0.5,y=0.5;(7)x=1,h=0.5,y=1;(8)x=1.5,h=0.5,y=1;(9)x=2,h=0.5,y=1.所以输出的各个数的和等于3.5.答案 B规律方法对于循环结构的算法框图的读图问题,要读懂框图的执行方向和其中的判断条件,明确循环次数,弄清每次的赋值.如图所示,算法框图的输出结果是( D )A.16B.2524C.34D.1112解析:第一次循环,s =12,n =4;第二次循环,s =34,n =6;第三次循环,s =1112,n =8.此时跳出循环,输出s =1112.类型三 含循环结构算法框图的设计例3 写出一个求满足1×3×5×7×…×n >60 000的最小正整数n 的算法,并画出相应的算法框图.思路探究 本题需要重复执行乘法,故引入循环结构,算法的结束需要引入一个累乘变量来控制.解 算法如下: 1.令s =1; 2.令n =1;3.如果s ≤60 000,那么n =n +2,s =s ×n ,重复执行第3步,否则,执行第4步; 4.输出n .算法框图如图所示.规律方法 设计循环结构的算法框图的注意点解决具体的循环结构的算法问题,要尽可能少地引入循环变量,否则较多的变量会使得设计程序比较麻烦,同时应尽可能使得循环嵌套的层数少.另外,要注意:(1)在循环结构中,循环变量要赋初始值,循环变量的自加不要忘记,自加多少不能弄错. (2)循环结构中循环的次数要严格把握,区分“<”与“≤”等.另外,同一问题利用两种不同的结构解决时,其判断条件不同.设计一个算法计算11×2+12×3+13×4+14×5+15×6的值,并画出相应的算法框图.解:具体算法步骤如下: 1.k =1,S =0;2.S =S +1k (k +1),k =k +1;3.若k <6,则反复执行第2步,否则,执行第4步; 4.输出S .相应的算法框图如图.类型四 循环结构的实际应用例4 用分期付款的方式购买价格为2 150元的冰箱,如果购买时先付1 150元,以后每月付50元,并加付欠款的利息,若一个月后付第一个月的分期付款,月利率为1%,那么购冰箱钱全部付清后,实际共付出款额多少元?画出算法框图.思路探究 用循环结构设计算法解决应用问题.解 购买时付款1 150元,余款1 000元分20次分期付款,每次的付款数为: a 1=50+(2 150-1 150)×1%=60(元), a 2=50+(2 150-1 150-50)×1%=59.5(元), ……a n =50+[2 150-1 150-(n -1)×50]×1%=60-12(n -1).∴a 20=60-12×19=50.5(元),总和S =1 150+60+59.5+…+50.5=2 255(元). 算法框图如图:规律方法用循环结构设计算法解决应用问题的步骤:1.审题;2.建立数学模型;3.用自然语言表述算法步骤;4.确定每一个算法步骤所包含的逻辑结构,对于要重复执行的步骤,通常用循环结构来设计,并用相应的算法框图表示,得到表示该步骤的算法框图;5.将所有步骤的算法框图用流程线连接起来,并加上终端框,得到表示整个算法的算法框图.以下是某次考试中某班15名同学的数学成绩:72,91,58,63,84,88,90,55,61,73,64,77,82,94,60,画出求80分以上的同学的平均分的算法框图.解:程序框图如下:——易错警示——循环结束的条件判断不准致误例5如图所示,若此程序运行结果为S=720,则在判断框中应填入关于k的判断条件是()A.k≥6B.k=7 C.k≥8D.k≥9错解本题可以按照开始的输入值、程序执行的规律和输出结果进行综合解决.容易出错的地方是不清楚这个判断条件是什么,本题是当不满足判断框中的条件时结束循环,当判断框中的条件满足时执行循环,故应该从k=10开始按照递减的方式逐步进行,直到S的输出结果为720.错解分析考生应注意题中“否”对应着输出框,所以只有不满足判断框内的条件时,循环才能结束.另外,计数变量k在题中不仅体现了循环的次数,而且还参与了累乘变量的变化过程,如果计数变量k的变化与累乘变量的变化的先后顺序改变,则k的初始值和判断框中的条件也要发生变化.正解第一次运行结果为S=10,k=9;第二次运行结果为S=10×9=90,k=8;第三次运行结果为S=720,k=7.这个程序满足判断框的条件时执行循环,故判断条件是k≥8.故选C.答案 C执行如图所示的算法框图,如果输出的a值大于2 015,那么判断框内应填(C)A.k≤6 B.k<5C.k≤5 D.k>6解析:第一次循环,a=4×1+3=7,k=1+1=2;第二次循环,a=7<2 015,故继续循环,所以a=4×7+3=31,k=2+1=3;第三次循环,a=31<2 015,故继续循环,所以a=4×31+3=127,k=3+1=4;第四次循环,a=127<2 015,故继续循环,所以a=4×127+3=511,k=4+1=5;第五次循环,a=511<2 015,故继续循环,所以a=4×511+3=2 047,k=5+1=6;第六次循环,a=2 047>2 015,故不符合条件,终止循环,输出a值.所以判断框内应填的条件是k≤5.一、选择题1.以下说法不正确的是(C)A.顺序结构是由若干个依次执行的处理步骤组成的,每一个算法都离不开顺序结构B.循环结构是在一些算法中从某处开始按照一定条件,反复执行某一处理步骤,故循环结构中一定包含选择结构C.循环结构中不一定包含选择结构D.用算法流程图表示算法,使之更加直观形象,容易理解解析:任何算法都是由若干个顺序结构组成,循环结构中要对是否循环进行判断,所以一定包含选择结构,故选C.2.执行两次下图所示的算法框图,若第一次输入的a的值为-1.2,第二次输入的a的值为1.2,则第一次、第二次输出的a的值分别为(C)A.0.2,0.2 B.0.2,0.8C.0.8,0.2 D.0.8,0.8解析:本题考查了循环结构.第一次输入a=-1.2<0→a=-1.2+1=-0.2<0→a=-0.2+1=0.8>0且a<1→输出a=0.8;第二次输入a=1.2≥1→a=1.2-1=0.2→输出a=0.2.3.如图所示,算法框图的输出结果是(B)A.3 B.4C.5 D.8解析:本题考查了算法循环结构的直到型的流程图及赋值语句问题.x 1248y 123 4二、填空题4.阅读如图所示的算法框图,运行相应的程序,若输入m的值为2,则输出的结果i =4.解析:本题考查算法框图的循环结构.i=1,A=2,B=1;i=2,A=4,B=2;i=3,A=8,B=6;i=4,A=16,B=24;此时A<B,则输出i=4.5.执行如图所示的算法框图,若输入n的值为8,则输出s的值为8.解析:本题考查算法框图的循环结构.第1次,i =2,s =2,第2次i =4,s =12(2×4)=4;第3次,i =6,s =13(4×6)=8,第4次,i =8,输出s =8.注意变量赋值的顺序.三、解答题6.已知有一列数12,23,…,n n +1,设计算法求这列数前100项的和. 解:S 1 赋值i =1,S =0S 2 S =S +i i +1S 3 i =i +1S 4 判断i >100S 5 i >100,则输出S否则,返回S 2S 6 结束程序框图:。
3.2 循环语句-北师大版必修3教案一、教学目标1.理解循环语句的概念及运作原理。
2.掌握使用for循环和while循环实现特定代码逻辑的方法。
3.培养学生良好的编程思维和代码风格。
二、教学重点和难点教学重点1.循环语句的概念及分类。
2.for循环和while循环的使用。
教学难点1.学生对循环语句的理解和掌握。
2.如何优化循环结构以提高代码效率。
三、教学过程1.引入新知识通过学生自行编写一个乘法表的例子,引导学生思考循环语句的作用以及循环体和循环控制条件的关系。
2.讲授循环语句的概念及分类1.定义循环语句: 循环语句是一种特殊的控制语句,它可以让程序执行重复的操作,直到达到指定的条件才停止。
2.分类:循环语句主要有for循环和while循环,根据循环条件的位置可以把循环语句分为前测试循环、后测试循环和无限循环。
3.讲解for循环的使用for循环语法如下:for (初始化表达式; 循环条件; 循环后的操作表达式) {循环体}其中初始化表达式只在循环开始前执行一次,循环条件每次循环前都会执行,循环后的操作表达式每次循环后都会执行一次。
循环体是需要重复执行的代码块。
4.讲解while循环的使用while循环语法如下:while (循环条件) {循环体}该循环只有一个循环条件,每次循环开始前都会判断循环条件是否成立,只要循环条件成立,循环就会一直执行,直到循环条件不成立为止。
5.通过实例讲解二者使用的区别1.for循环属于前测试循环,在循环进入时就会进行测试条件是否成立,判断之后才会开始执行循环体,循环结束后也会进行测试并判断循环条件是否成立,如果不成立,就跳出循环。
2.while循环属于后测试循环,在循环进入时不会进行测试,直接进入循环体执行,循环结束后会进行测试并判断循环条件是否成立,如果成立,就继续执行循环体,直到循环条件不成立时跳出循环。
6.编写练习题目编写一个在控制台打印1到100的数字,一行打印10个数字的程序。
3.2循环语句(教师用书独具)●三维目标1.知识与技能掌握循环语句的功能和格式,能由循环结构写出循环语句,并学会用计算机解决简单的实际问题.2.过程与方法通过观察、转化、类比、联想等思想方法的运用,培养探索能力和逻辑思维能力,增强表达能力.3.情感、态度与价值观在合作学习中形成团体精神,在观察发现中树立探索精神,在上机操作中增强实践意识,在编程成功后体验学习乐趣.●重点难点重点:(1)由循环结构写出循环语句;(2)跟踪变量的转化,理解语句的执行过程;(3)区分当型语句和直到型语句.难点:跟踪变量,理解程序的执行过程,尤其是控制条件的改变对程序的影响.(教师用书独具)●教学建议教师应创设情境,设置一系列问题,引导学生思考、归纳、总结.●教学流程创设问题情境,引出问题:如何求1到100内所有奇数的和⇒引导学生结合学习过的条件语句,观察、比较、分析,采取从特殊到一般的方法发现并能写出对应的语句⇒通过引导学生回答所提问题,理解两种循环结构成立的条件、特征及其应用⇒通过例1及其变式训练,使学生掌握利用For语句书写程序的方法⇒通过例2及其变式训练,使学生掌握利用Do Loop语句设计程序的方法,并注意循环条件的设置⇒探究两种循环结构的特征及区别和联系,完成例3及其变式训练,从而解决循环语句与条件语句的综合应用问题⇒归纳整理,进行课堂小结,整体认识本节课所学知识并分层布置作业⇒完成当堂双基达标,巩固所学知识并进行反馈、矫正画出For语句和Do Loop语句各自对应的循环结构的框图,它们之间有何区别?【提示】For语句满足条件时执行循环体,不满足条件时退出循环体.Do Loop语句,先执行循环体,再判断条件,条件满足时,继续执行循环体,直到条件不满足,循环终止.1.For语句在循环结构中,若预先知道循环次数,一般用For语句来表达,其一般形式为:For循环变量=初始值To终值循环体Next2.Do Loop语句在一些循环结构中,预先不知道循环的次数,要根据其他形式的终止条件停止循环,这种情况下,一般用Do_Loop语句来描述,其一般形式为:Do循环体Loop While条件为真基本语句描述的算法显得直观、清楚、明了,它的另一个优点是比较接近程序语言,便于编写程序,上机实现.【思路探究】每项加的数都比前一个数大2,在计算机上我们用For语句,把循环变量的增量设为2,即可实现求值.【自主解答】用For语句描述为:S=0For i=1To 999 Step 2S=S+iNext输出S算法框图如下:1.解决本题时,先引入计数变量S和循环变量i,并确定循环次数和反复执行的步骤S =S+i,其中i的后一个值比前一个值大2,即i的增量为2,用Step 2表示.2.For语句是表达循环结构最常见的语句之一,它适用于预先知道循环次数的循环结构,有些循环中如果不能直接看出循环次数,则可通过题目中的规律先求出循环次数再写循环语句.编写一个计算1×3×5×…×999的算法,画出程序框图,并用For语句描述这个算法.【解】算法语句为:S=1For i=1 To 999 Step 2S=S*iNext输出S算法框图如下:【思路探究】结束循环的条件是和大于500,可以用累加的方法,一个数一个数地加到累加器中,每加一个数就把累加器的值与500比较,直到大于500为止.由于预先不知道循环次数,故用Do Loop语句描述该算法.【自主解答】算法框图如下:用基本语句描述为:i=1S=0DoS=S+ii=i+2Loop While S≤500i=i-2输出i.是i=45,∴输出i-2.2.对于重复执行某操作的算法,一般用循环语句来实现.如果预先不知道循环的次数,一般用Do Loop语句来实现.计算机执行Do Loop语句,先执行一次循环体,若符合条件,继续执行循环体;当不符合条件时,跳出循环,执行Do Loop语句后的语句.下面是用For语句描述计算1×3×5×…×99的值的算法,请用Do Loop语句写出算法描述.S=1For i=1 To 50S=S*(2]【解】用Do Loop语句描述算法如下:i=1S=1DoS=S*ii=i+2Loop While i<=100输出S.综合应用用基本语句描述a1,a2,a3,a4的最大值的一个算法.【思路探究】本题需判断a1,a2,a3,a4的大小故可采用条件语句及循环语句共同完成该算法.【自主解答】用算法语句描述为:输入a1,a2,a3,a4;1.本题的求解方法是先假定这个序列第一个数是最大值“max”,然后将其他的数分别与之比较,这种方法常称为擂台法.2.擂台法常用于求最值的问题,以求最大值为例:用变量max作为“擂台”,先让a1作为初始“擂主”,然后让a2与a1进行比较,若a2>a1,则a2代替a1成为新“擂主”,否则a1仍为“擂主”.再由a3去“挑战擂主”,依次类推.直到所有数都上过“擂台”后,最终的“擂主”即为最大值.用基本语句写一个算法,要求输出1~100(包括1和100)中能被7整除的所有整数.【解】用语句描述如下:i=1DoIf i MOD 7=0 Then输出iEnd Ifi=i+1Loop While i<=100.混淆两种循环语句基本格式致误编写循环语句计算2+4+6+…+100的值.【错解】(1)用For语句:sum=0While i=2 To 100 Step 2sum=sum+iNext输出sum(2)用Do loop语句:i=2sum=0sum=sum+ii=i+2Loop While i>100输出sum【错因分析】(1)中只要将“While”换为“For”即可;(2)中“sum=sum+i”的上一行应有执行语句“Do”,错因在于没有掌握好两种循环语句的结构.【防范措施】要明确两种循环语句的基本格式,应是“For”与“Next”搭配,“Do”与“Loop While”搭配,不要混淆.【正解】(1)用For语句:sum=0For i=2 To 100 Step 2sum=sum+iNext输出sum(2)用Do loop语句:i=2sum=0Dosum=sum+ii=i+2Loop While i>100输出sum编写循环语句的程序,要注意以下几点1.循环体要正确,尤其要注意循环体中的变量是否齐全.2.循环条件要正确,条件与初始值要对应.3.注意For语句与Do Loop语句的书写格式.。
2.4.3循环语句【课程标准】经历将具体问题的程序框图转化为程序语句的过程,理解几种基本算法语句——输入语句、输出语句、赋值语句、条件语句、循环语句,进一步体会算法的基本思想 【学习目标】1.理解、掌握循环语句;2.能运用循环语句表达解决具体问题的过程;3.培养学生逻辑思维能力与表达能力,进一步体会算法思想. 【学习重点】循环语句的表示方法、结构和用法【学习难点】将具体问题的程序框图转化为程序语句的过程,当型循环和直到型循环的格式与逻辑的区别与联系. 【学习过程】 一、回顾知识1. 什么是循环结构?画出其程序框图.2. 引例:设计一个计算1+2+…+100的值的算法,并画出程序框图. 分析:由程序框图转化为程序语句,引入循环语句. 二、循环语句1. 当型(WHILE 型)语句的一般格式: WHILE 条件 循环体 WEND说明:当计算机遇到WHILE 语句时,先判断条件的真假,如果条件符合,就执行WHIL E 与WEND 之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止.这时,计算机将不执行循环体,直接跳到WEND 语句后,接着执行WEND 之后的语句.因此,当型循环有时也称为“前测试型”循环.满足条件? 否循环体是2. 直到型(UNTIL 型)语句的一般格式: DO循环体 LOOP UNTIL 条件说明:当计算机遇到UNTIL 语句时,先执行DO 和LOOP UNTIL 之间的循环体,然后判断条件是否成立,如果不成立,执行循环体.这个过程反复执行,直到某一次符合条件为止,这时不再执行循环体,跳出循环体执行LOOP UNTIL 后面的语句. 因此,直到型循环有时也称为“后测试型”循环.3.当型循环与直到型循环的区别:①当型循环先判断后执行,直到型循环先执行后判断. ②当型循环用WHILE 语句,直到型循环用UNTIL 语句. ③对同一算法来说,当型循环和直到循环的条件互为反条件. 三、知识应用〖例1〗:编写程序,计算自然数1+2+3+……+99+100的和。
3.2 循环语句预习课本P108~109,思考并完成以下问题(1)For语句的格式是什么?(2)Do Loop语句的格式是什么?(3)For语句和Do Loop语句的适用范围有什么不同?错误!1.For语句(1)格式For循环变量=初始值To终值循环体NextFor语句适用于预先知道循环次数的循环结构.[点睛] (1)循环体是由计算机反复执行的一组语句构成的.For后面的“条件”是用于控制计算机执行循环体或跳出循环体的.(2)在For语句里,我们默认循环变量每次的增量为1,增量不为1时,需用参数Step,即“For循环变量=初始值To终值Step增量”.2.Do Loop语句(1)格式错误!(2)适用范围Do Loop语句适用于预先不知道循环次数的循环结构.[点睛]用Do Loop语句编写程序时,一定要注意While后面的条件,条件为真时执行循环体,条件为假时结束循环.[小试身手]1.判断正误.(正确的打“√”,错误的打“×”)(1)循环语句与算法框图中的循环结构相对应.()(2)For语句与Do Loop语句都是循环语句.()(3)所有的循环结构框图都可以用For语句与Do Loop语句描述.()(4)For语句不能用来描述循环次数不确定的循环结构.()答案:(1)√(2)√(3)×(4)√2.若i的初始值为0,当执行完Do i=i+1 Loop While i≤10后i的值变为( )A.9 B.10C.11 D.12解析:选C 由Do Loop语句的形式和执行条件易得循环结束后,i=11.3.下面算法语句的功能是( )S=0For i=1 To 100S=S+iNext输出S.A.求1×2×3×…×100的值B.求1×3×5×…×99的值C.求1+2+3+…+100的值D.求1+3+5+…+99的值解析:选C 由“S=S+i”可知该算法解决的是累加问题;由循环变量i的增量为1,从1到100可知,求的是1+2+3+…+100的值.4.给出下列For语句:S=0For i=1 To 10S=S+iNext循环变量是________,循环变量的初始值是________,循环变量的终值是________,循环体是________.解析:循环变量是i,循环变量的初始值是1,循环变量的终值是10,循环体是S=S+i。
第3课时循环结构[核心必知]1.循环结构的概念在算法中,从某处开始,按照一定的条件反复执行某些步骤的结构称为循环结构,用算法框图如图所示.反复执行的部分称为循环体,控制着循环的开始和结束的变量,称为循环变量,决定是否继续执行循环体的判断条件,称为循环的终止条件.2.循环结构的设计过程设计循环结构之前需要确定的三件事:(1)确定循环变量和初始值;(2)确定算法中反复执行的部分,即循环体;(3)确定循环的终止条件.循环结构的算法框图的基本模式,如图所示.[问题思考]1.循环结构中一定含有选择结构吗?提示:在循环结构中需要判断是否继续循环,故循环结构中一定含有选择结构.2.循环结构中判断框中条件是唯一的吗?提示:不是,在具体的算法框图设计时,判断框中的条件可以不同,但不同的表示应该有共同的确定的结果.3.算法框图的基本结构有哪些?提示:顺序结构、选择结构和循环结构.讲一讲1.利用循环结构写出12+23+…+100101的算法并画出相应的算法框图.[尝试解答] 算法如下: 1.S =0; 2.i =1; 3.S =S +ii +1;4.i =i +1;5.如果i 不大于100,转第3步,否则输出S . 相应框图如下图表示:1.如果算法问题中涉及到的运算进行了多次重复,且参与运算的数前后有规律可循,就可以引入变量以参与循环结构.2.在不同的循环结构中,应注意判断条件的差别,及计数变量和累加(乘)变量的初始值与运算框先后关系的对应性.练一练1.利用循环结构写出1×2×3×…×100的算法.并画出相应的框图. 解:算法步骤如下: 1.S =1;2.i=1;3.S=S×i;4.i=i+1;5.判断i是否大于100,若成立,则输出S,结束算法;否则返回第3步重新执行.算法框图如图所示:讲一讲2.1×3×5×…×n>1000.问:如何寻找满足条件的n的最小正整数值?请设计算法框图.[尝试解答]算法框图如下图所示:解决该类问题一般分以下几个步骤:(1)根据题目条件写出算法并画出相应的框图;(2)依据框图确定循环结束时,循环变量的取值;(3)得出结论.练一练2.看下面的问题:1+2+3+…+()>10 000,这个问题的答案虽然不唯一,但我们只要确定出满足条件的最小正整数n0,括号内填写的数字只要大于或等于n0即可.画出寻找满足条件的最小正整数n0的算法的算法框图.解:1.S=0;2.n=0;3.n=n+1;4.S=S+n;5.如果S>10 000,则输出n,否则执行6;6.回到3,重新执行4,5.框图如右图:讲一讲3.某高中男子田径队的50 m赛跑成绩(单位:s)如下:6.3 , 6.6, 7.1, 6.8, 7.1, 7.4, 6.9, 7.4, 7.5, 7.6, 7.8, 6.4, 6.5, 6.4, 6.5, 6.7, 7.0, 6.9, 6.4, 7.1, 7.0, 7.2.设计一个算法,从这些成绩中搜索出成绩小于6.8 s的队员,并画出算法框图.[尝试解答]此男子田径队有22人,要解决该问题必须先对运动员进行编号.设第i 个运动员编号为N i,成绩为G i,设计的算法如下:1.i=1.2.输入N i,G i.3.如果G i<6.8,则输出N i,G i,并执行4;否则直接执行4.4.i=i+1.5.如果i≤22,则返回2;否则,算法结束.该算法的框图如图所示.解决此类问题的关键是读懂题目,建立合适的模型,注意循环结构与选择结构的灵活运用.练一练3.2000年底我国人口总数约为13亿,现在我国人口平均年增长率为1%,写出计算多少年后我国的人口总数将达到或超过18亿的算法框图.解:【解题高手】【易错题】阅读如图所示的算法框图,若输出S的值为-7,则判断框内可填写()A.i<3B.i<4 C.i<5 D.i<6。
3.2循环语句1.理解并掌握For语句和Do Loop语句两种基本循环语句.(重点)2.掌握两种循环语句的一般格式.3.能够利用两种基本循环语句解决相关的问题.(难点)[基础·初探]教材整理阅读教材P108~P109“练习”以上部分,完成下列问题.1.For语句和Do Loop语句(1)For语句:在循环结构中,若预先知道循环次数,一般用For语句来表达,其一般形式为:For循环变量=初始值To终值循环体Next(2)Do Loop语句:在一些循环结构中,预先不知道循环的次数,要根据其他形式的终止条件停止循环,这种情况下,一般用Do_Loop语句来描述,其一般形式为:Do循环体Loop While条件为真2.基本语句描述算法的优点使用基本语句描述算法,和自然语言相比,基本语句描述的算法显得直观、清楚、明了,它的另一个优点是比较接近程序语言,便于编写程序,上机实现.判断(正确的打“√”,错误的打“×”)(1)For语句适用于任何循环结构.()(2)循环语句中循环体是反复执行的.()(3)For语句与Do Loop语句之间可以相互转化.()【解析】(1)×,For语句只适用于预先知道循环次数的循环结构.(2)√,由定义知循环体在循环语句中是反复执行的.(3)×,For语句与Do Loop语句之间相互转化是要看条件的,只有知道了循环次数后才可以转化.【答案】(1)×(2)√(3)×[质疑·手记]预习完成后,请将你的疑问记录,并与“小伙伴们”探讨交流:疑问1:解惑:疑问2:解惑:疑问3:解惑:[小组合作型]For语句画出求1+12+13+…+11 000的值的算法框图,并用For语句描述该算法.【精彩点拨】观察式子特点,这是一个累加问题,后一个数的分母比前一个数的分母大1,根据此特点设计其算法,画出算法框图,并用For语句描述即可.【自主解答】算法框图为:用For语句描述算法为:S=0For i=1 To 1 000S=S+1/iNext输出S.利用For语句实现循环结构的三个关键点:第一,确定变量的初值,即进行初始化操作.第二,确定循环的次数、步长以及终值.第三,确定循环体的内容.[再练一题]1.用For循环写出一个计算1×3×5×7×…×199的算法程序,画出程序框图.【解】程序框图如下:程序如下:S=1For i=1To 199 Step 2S=S*iNext输出SDo Loop语句n的算法框图,并用相应的算法语句描述该算法. 【导学号:63580029】【精彩点拨】这是一个累加求和问题,可以使用循环语句描述算法,又因为循环次数不能事先预知,仅知道结束循环的条件,因此可设置一个累加变量来控制循环次数.每循环一次累加变量就增加一个数,并将它与2 011进行比较,直到大于2 011为止.【自主解答】算法框图如下:用Do Loop语句描述为:S=0i=1DoS=S+ii=i+2Loop While S<=2 011输出i-2.利用Do Loop语句的两个关注点:(1)在利用Do Loop语句解决相关问题时,要熟练掌握Do Loop语句的一般格式.在运行语句的时候,先执行循环体,然后再判断条件是否成立.(2)Do Loop语句可以不知道循环的次数,但是结束循环的条件必须确定.[再练一题]2.求12+22+32+…+n2<1 000成立的n的最大正整数值,用算法语句表示其算法.【解】S=1i=2DoS=S+i2i=i+1Loop While S<1 000输出i-2.[探究共研型]循环语句的综合应用探究1【提示】在处理问题时,对某一步骤或若干步骤重复执行多次,即对不同的运算对象进行若干次的相同运算式处理,这种模式由循环语句来实现.探究2For语句与Do Loop语句可以相互转化的条件是什么?【提示】当知道循环体被执行的次数时,两者可以相互转化.探究3循环语句与条件语句的关系是什么?【提示】循环语句中一定有条件语句,条件语句是循环语句的一部分,离开条件语句,循环语句无法循环.但条件语句可以脱离循环语句单独存在,可以不依赖循环语句独立地解决问题.探究4两种循环语句的区别与联系是什么?【提示】(1)联系:两种循环语句都是用来解决具有规律性的重复计算的相关问题,实现算法中的循环结构的.有时,这两种循环语句可以进行互化.两种循环语句在循环流程中都必须具备三个要素:第一,需要进行初始化操作,限定约束条件.第二,循环需要有结束的机会,不能出现死循环的情况.第三,在循环中,每执行一次循环体,变量就会发生改变,并逐渐接近满足跳出循环的条件.(2)区别:For语句,首先确定了循环的次数,然后执行循环体,而Do Loop 语句是先执行循环体.再设定循环结束的条件.(1)根据下列算法语句画出算法框图.S=1n=1DoS=S*nn=n+1Loop While S<5 000输出n-2.(2)某商场第一年销售平板电脑5 000台,如果平均每年销售量比上一年增加10%,那么从第一年起,大约几年可使总销售量达到30 000台?画出解决此问题的算法框图,并写出算法语句.【精彩点拨】(1)明确循环体及控制变量是解题的关键.(2)写出第几年销量时注意控制条件为总和小于30 000.【自主解答】(1)算法框图:(2)算法框图如图所示:算法语句:m=5 000S=0i=0DoS=S+mm=m*(1+0.1)i=i+1Loop While S<30 000输出i-1.应用循环语句编写程序时应注意的问题:(1)在循环体中一定要改变控制条件的变量的值,否则会出现“死循环”,并且循环体每执行一次,控制条件中的变量就应更逼近满足跳出循环体的条件.(2)与条件语句一样,循环语句也可以嵌套,但应注意内层与外层的对应关系.(3)程序编写时应注意跳出循环时对边界数值的检查,防止漏项或多项,可通过几次循环加以验证.[再练一题]3.输入100个数,将其中的正数输出,并计算正数的个数,试用基本语句编写算法.【解】用基本语句表示如下:i=0m=0Do输入xi=i+1If x>0Then输出xm=m+1End IfLoop While i<=100输出m[构建·体系]1.下列问题,设计程序求解时,要用到循环语句的有()①输入每个同学的数学成绩,求全班同学的平均分;②求分段函数的函数值;③求连续100个自然数的平方和;④输入100个数,从中找出最大的数.A.1个B.2个C.3个D.4个【解析】①③④要用到循环语句.【答案】 C2.以下算法运行的结果为()t=2For i=2To8Step 2t=t*iNext输出t.A.96B.192C.394 D.768【解析】第一次循环,t=2×2,第二次循环,t=4×4,第三次循环,16×6=96,第四次,96×8=768.【答案】 D3.下面的算法语句执行后输出的结果为________.i=1S=0DoS=S+ii=i+1Loop While i<=9输出S.【解析】该程序是求S=1+2+3+…+9=45.【答案】454.以下程序表示的是求1+13+15+…+199的值.其中①处应填________.S=0For①S=S+1/iNext输出S【解析】由题意知i初值为1,终值为99,步长为2,故①处填i=1 To 99 Step 2.【答案】i=1To99Step 25.请用循环语句设计计算2+4+6+…+20值的算法.【解】S=0For i=1To10S=S+2* iNext输出S.我还有这些不足:(1)(2)我的课下提升方案:(1)(2)学业分层测评(建议用时:45分钟)[学业达标]一、选择题1.观察下面的算法语句:S=0For i=1To100S=S+iNext输出S.该算法语句的功能是()A.求1×2×3×4×…×100的值B.求1+2+3+4+…+100的值C.求1×3×5×…×99的值D.求1+3+5+…+99的值【解析】根据For循环语句的作用可知通过累加求式子1+2+3+4+…+100的值.【答案】 B2.以下程序S=0For x=-1To11S=x*xNext输出S.该程序输出结果是()A.-1B.11C.100 D.121【解析】由For语句的算法特点可知,S=11×11=121.【答案】 D3.下列程序的运行结果为()i=0S=0Doi=i+1S=S+iLoop While S<=20输出i.A.5 B.6C.7 D.8【解析】由于0+1+2+3+4+5=15,0+1+2+3+4+5+6=21,所以输出i=6.【答案】 B4.下列程序中循环语句的循环终止条件是()m=1Dom=m+3Loop While m<10输出m.A.m=10 B.m<10C.m>10 D.m≥10【解析】当m<10时不成立,即m≥10时循环终止.【答案】 D5.运行下面的程序时,Do循环语句的执行次数是()N=0DoN=N+1N=N*NLoop While N<20输出N.A.3 B.4C.15 D.19【解析】0<20,1<20,2×2<20,5×5>20,循环结束.故While循环语句共执行了3次,所以选A.【答案】 A二、填空题6.以下算法语句:【导学号:63580030】S=1k=13DoS=S*kk=k-1Loop While ________输出S.若语句运行的结果是S=156,则横线处应填入的k的条件是________.【解析】第一次循环是S=1×13=13,第二次循环是S=13×12=156,故k的条件应是k>=12或k>11.【答案】k>=12或k>117.执行下面的算法语句后输出的结果是________.S=0For i=1 To 4S=S*i+lNext输出S.【解析】当i=1时,S=0×1+1=1;当i=2时,S=1×2+1=3;当i=3时,S=3×3+1=10;当i=4时,S=10×4+1=41,循环结束,输出S,所以输出S的值为41.【答案】418.算法语句j=1Doj=j+1Loop While j*j<100j=j-1输出j.运行的结果是________.【解析】①当j=1时,j=2,2×2<100;②j=3,3×3<100;③j=4,4×4<100;…;⑧j=9,9×9<100;⑨j=10,10×10=100,结束循环,此时输出j-1=9.【答案】9三、解答题9.据下列框图写出对应算法语句.图2-3-3【解】S=0i=1DoS=S+ii=i+1Loop While i<=1000输出S.10.给出以下10个数:4,10,70,33,95,74,29,17,60,30.要求将大于40的数找出来,画出求解该问题的算法框图,并写出程序.【解】算法框图如图所示:i=1Do输入xIf x>40 Then输出xEnd Ifi=i+1Loop While i<=10[能力提升]1.如果算法语句运行后输出的结果是720,则在横线处应填入的正整数为()t=10S=1DoS=S*tt=t-1Loop While t>输出S.A.9B.8C.7 D.6【解析】第一次执行循环体,S=1×10=10,t=9,第二次执行循环体,S=10×9=90,t=8,第三次执行循环体,S=90×8=720,t=7,依题意,循环结束,根据Do Loop语句的要求,条件不满足时,结束循环,所以条件应为t>7,故选C.【答案】 C2.下列算法运行后输出的结果为()i=7S=0DoS=S+ii=i-1Loop While S<15输出i.A.1B.2C.3 D.4【解析】执行第一次循环后,S=7,i=6,满足条件;执行第二次循环后,S=13,i=5,满足条件;执行第三次循环后,S=18,i=4,不满足条件,结束循环.故输出的i=4.【答案】 D3.(2015·江苏高考)根据如图所示的程序语句,可知输出的结果S为________.【解析】由程序可知,S=1,I=1,I<8;S=3,I=4,I<8;S=5,I=7,I<8;S=7,I=10,I>8,此时结束循环,输出S=7.【答案】74.写出求函数y=x3+3x2-24x+30的值的算法语句,连续输入11个自变量的取值,输出相应的函数值.【解】解决本题的算法步骤:1.输入自变量x的值.2.计算y=x3+3x2-24x+30.3.输出y.4.记录输入次数.5.判断输入的次数是否大于11.若是,则结束算法;否则,返回第一步.显然,可以用计数变量n(1≤n≤11)记录次数,通过循环结构来实现算法.算法框图如图:算法语句:n=1Do输入x;y=x3+3* x2-24*x+30 输入yn=n+1Loop While n≤11。
2.4.2循环语句一、教学目标:1、知识与技能:(1)正确理解循环语句的概念,并掌握循环语句的结构。
(2)会应用循环语句编写程序,能运用循环语句表达解决具体问题的过程。
2、过程与方法:经历对现实生活情境的探究,认识到应用计算机解决数学问题方便简捷,促进发展学生逻辑思维能力与表达能力,进一步体会算法思想。
3、情感态度与价值观:了解循环语句在程序中起判断转折作用,在解决实际问题中起决定作用。
深刻体会到条件语句在解决大量问题中起重要作用。
通过本课内容的学习,有益于我们养成严谨的数学思维以及正确处理问题的能力。
二、教学重点:两种循环语句的表示方法、结构和用法,用循环语句表示算法. 教学难点:理解循环语句的表示方法、结构和用法,会编写程序中的循环语句.三、教学方法:探究交流法。
四、教学过程(一)、问题情境1.问题1:设计计算135799⨯⨯⨯⨯⨯ 的一个算法,并画出流程图.(二)、学生活动解决问题1的算法是:对于以上算法过程,我们可以用循环语句来实现.(三)、建构数学 1.循环语句:循环语句一般有种:“For 循环”、“While 循环”和“Do 循环”(由于该种循环变化较多,教材中暂不介绍).(1)“For 循环”是在循环次数已知时使用的循环,其一般形式为: 例如:问题1中算法可用“For 循环”语句表示为:S1 S ←1S2 I ←3S3 S ←S ×IS4 I ←I+2S5 若I ≤99,则返回S3S6 输出S流程图: For I from “初值”to “终值”step “步长”… End for1S ←Print SEnd说明:①上面“For ”和“End For ”之间缩进的步骤称为循环体;②如果省略“Step 2”,默认的“步长”为1,即循环时,I 的值每次增加1(步长也可以为负,例如,以上“For 循环”第1行可写成:For I From 99 To 1 Step -2); ③“For 循环”是直到型循环结构,即先执行后判断.(2)“While 循环”的一般形式为:其中A 为判断执行循环的条件.例如:问题1中的算法可“While 循环”语句表示为:1S ←3I ←Print SEnd说明:①上面“While ”和“End While ”之间缩进的步骤称为循环体;②“While 循环”是当型循环结构,其特点是“前测试”,即先判断,后执行.若初始条件不成立,则一次也不执行循环体中的内容;③任何一种需要重复处理的问题都可以用这种前测试循环来实现.(四)、数学运用1.例题:例1.编写程序,计算自然数1+2+3+……+99+100的和。
3.2 循环语句
知识点For语句与Do Loop语句
[填一填]
1.For语句
(1)格式:
(2)适用于预先知道循环次数的循环结构.
2.Do Loop语句
(1)格式:
Do
循环体
Loop While条件为真
(2)适用于预先不知道循环次数的循环结构.
(3)Do Loop语句的执行流程:先进入循环体,执行一次循环体后,检查While后的条件是否被满足,“是”则继续执行循环体,“否”则退出循环体.
[答一答]
如何使用循环语句?
提示:循环语句主要用来处理算法中的循环结构,在处理一些需要有规律重复的问题,
如累加求和、累乘求积等问题时常用循环语句来编写程序.在循环次数不确定时,使用Do Loop 循环语句.在Do Loop循环语句中,当表达式的结果为真时,执行循环体,结果为假时,停止循环.在For循环语句中循环变量的值与终值比较,未超过终值时执行循环体,否则停止循环.
(1)两种循环语句的比较.
相同点:两种循环语句都是前测试型循环语句,即先判断表达式所描述的条件,若满足就执行循环体,直到不满足时终止循环.两种循环语句都含有循环变量、终止条件和循环体三要素.且都必须以End结尾.
不同点:①两种循环语句的语句符号和格式不同.
②For循环语句主要用于预先知道循环次数的情形,而Do Loop循环语句主要用于预先不知道循环次数的情形.用For循环语句编写程序时要注意设定好循环变量的初值、步长和终值,避免出现多一次循环或少一次循环的情况;用Do Loop循环语句编写程序时,一定要注意表达式的写法,当表达式为真时执行循环体,表达式为假时,结束循环,以防出现表达式正好相反的错误.
(2)循环语句与条件语句的关系:循环语句中一定有条件语句,条件语句是循环语句的一部分,离开条件语句,循环语句无法循环,但条件语句可以脱离循环语句单独存在,可以不依赖循环语句独立地解决问题.
类型一For语句表达的循环结构
例1用语句描述计算12+32+52+…+992的算法.
思路探究这是一个累加求和问题,可以使用循环语句编写程序,引入一个变量i,控制循环的次数,由S=S+i2实现累加求和,由于各底数依次相差2,因此每求一次和,计数变量的值就增加2.
解用For语句描述为:
sum=0
For i=1 To 99Step 2
sum=sum+i*i
Next
输出sum
规律方法编写此类问题的程序,要把握以下几点:
(1)循环体要正确,尤其要注意除计数变量和累加(或累积)变量外,是否还有其他语句在循环体中.
(2)循环条件要正确,条件与初始值要对应.
(3)程序语句的格式要正确.
用For语句设计算法,计算3+6+9+…+150的值.
解:S=0
For i=1 To 50
S=S+3*i
Next
输出S.
类型二Do Loop语句表达的循环结构
例2以下给出的是用循环语句编写的一个算法,写出该算法的功能,并画出相应的算法框图.
I=1
Do
a=I Mod 2
If a=0Then
输出I
End If
I=I+1
Loop While I<=100
思路探究根据算法中的条件,可以确定此算法的功能,也可以先画出算法框图,这样更容易判断算法的功能.
解该算法的功能是输出1至100的正整数中的所有偶数.算法框图如图所示.
规律方法解决循环语句与算法框图的互化问题的思路
(1)由算法框图写语句时,应该先判断循环结构的类型,再将框图中的输入、输出框,处理框,判断框转化为相应的语句.
(2)读循环语句画对应框图时,首先由程序中的循环语句,画出基本结构框,再将初值、输入值、输出值、赋值语句填入相应的算法框图中.
执行下面的程序,输出的结果为14.
i=1
S=0
Do
i=i+1
S=S+i
Loop While i<5
输出S
解析:循环变量i第一次进入循环体首先增加1,所以S的第一个加数应为2;当i=4时仍满足判断条件,继续循环,所以S的最后一个加数应为5.输出的结果为S=2+3+4+5=14.
类型三用循环语句解决实际问题
例3相传古代印度国王舍罕要褒赏他聪明能干的宰相达依尔(国际象棋发明者),问他
需要什么,达依尔说:“国王只要在国际象棋的棋盘第一个格子里放一粒麦子,第二个格子里放两粒,第三个格子里放四粒,以后按此比例每一格多放一倍,一直放到第64个格(国际象棋是8×8=64格),只要把棋盘上全部麦子给我,其他什么也不要了.”国王想:“这有多少,还不容易!”他让人扛来一袋小麦,但不到一会儿就全用没了,再来一袋很快又没有了,结果全印度的粮食都用完还不够,国王纳闷,怎么也算不清这笔帐,请你设计一个算法,帮国王计算一下共需多少粒麦子,画出算法框图并写出程序.
解依题意本题是求1+2+22+…+263的值.算法:
第一步:令sum=0,i=0;
第二步:m=2i,sum=sum+m,i=i+1;
第三步:如果i≤63,那么转到第二步;否则执行第四步;
第四步:输出sum.
算法框图如下图所示.
程序如下:
S=0
For i=0To63
S=S+2i
Next
输出S
规律方法本题已知循环次数,故利用For语句实现循环结构,注意循环变量的起始值为0,终值为63.
某玩具厂2018年的生产总值为200万元,如果年生产增长率为5%,计算最早哪一年生产总值超过400万元,画出算法框图,并写出程序.
解:经过x年后生产总值为200×(1+5%)x,可把2018年的产值赋给变量a,然后对其进行累乘,用n作为计数变量,进行循环,直到a的值超过400万元.
算法框图如图所示:
程序如下:
——易错警示——
审题不清致误
例4某商场第一年销售计算机5 000台,如果平均每年销售量比上一年增加10%,那
么从第一年起,大约经过几年可使总销量达到40 000台?写出解决此问题的程序.错解程序如下:
S
=5 000;
i=0;
Loop While S<40 000
S=S*(1+0.1);
i=i+1;
End
输出i
易错点分析 1.循环体求出的S不是总销量,而是每年的年销量.
2.审题不清,没有将每年的销量累加起来求得总销量.
防范措施对于本题,只要先用“m=m*(1+0.1)”表示累乘,求出每年销量,再用“S =S+m”表示累加,求出总销量.
正解程序如下:
m=5 000;
S=0;
i=0;
Loop While S<40 000
S=S+m;
m=m*(1+0.1);
i=i+1;
End
输出i
请用基本语句设计一个算法,求平方值小于1 000的所有正整数的平方和.
解:用Do Loop语句描述如下:
S=0
i=1
Do
S=S+i2
i=i+1
Loop While i2<1 000
输出S.
一、选择题
1.下列关于For循环语句的说法错误的是(C)
A.在For循环语句中,循环表达式也称为循环体
B.在For循环语句中,步长为1,可以省略不写,若为其他值,则不可省略
C.理解For循环语句的关键是理解循环变量设定的初始值、步长、终值
D.在For循环中“Next”控制结束一次循环,开始一次新的循环或结束循环
解析:理解“For”循环的关键是理解循环体在计算机中是如何执行的.
2.读下面程序,输出结果为(B)
A.786 B.1 534
C.3 070 D.383
解析:本循环语句反复执行S=2(S+1)共9次,第1次为S=4,第2次为S=2×(4+1)=10,…,第9次为S=1 534.
二、填空题
3.补充下列算法语句(只写式子不计算).
三、解答题
4.写出下列程序运行的结果.
a=2;
Do
If a>10 Then
输出a
Else
If a≤10Then
a=a+2
End If
Loop While a≤10
输出a
解:这个程序中a是循环变量,循环体为a=a+2,实际上这个算法处理的是求a=2+2+2+2+…的问题,循环终止条件为a>10,其最后运行结果为2+2+2+2+2+2=12.。