• 61.50 KB
  • 2022-08-15 发布

高中数学 533(循环语句)教案 苏教版必修3 教案

  • 10页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
第9课时5.3基本算法语句重点难点重点:正确理解循环语句的概念,并掌握其结构;会应用循环语句编写程序;并能进行简单的综合应用。难点:理解循环语句的表示方法、结构和用法;会编写程序中的循环语句.【学习导航】知识网络循环语句→当型循环语句学习要求1.正确理解循环语句的概念,并掌握其结构;会应用循环语句编写程序;并能进行简单的综合应用。2.理解并掌握循环语句在计算机程序语言中的作用,掌握两种循环语句应用的实例:数列求和、求积。【课堂互动】自学评价1.问题:设计计算的一个算法。【分析】将上述表达式看成49个乘法,用公式表示为:S←S×IS初始为1,I为1,将每次的乘积都赋予S,I从1到99,每次增加2,公式S←S×I会被重复执行,这种执行过程可用循环结构表示。算法一:S1S←1;S2I←1;\nS3I←I+2;S4S←S×I;S5如果I小于99,那么转S3;S6输出S上述算法用流程图表示如下:【说明】算法一是先执行后判断的直到型循环结构,常用“Do”语句表示,我们不再学习。开始S←1I←1S←S×II≥99开始YN输出SI←I+2算法二:S1S←1;S2I←1;S3当I不大于99时转S4,否则转S6;S4S←S×I;Y开始S←1I←1S←S×II≤99开始N输出SI←I+2S5I←I+2;S6输出S上述算法用流程表示如图所示:\n【说明】算法二可以理解为:当I>99时,才循环执行S4和S5两步,这种先判断后执行的循环结构我们称为当型循环,常用“While”语句和“For”语句表示,其中“While语句”可以用如下代码表示:While条件P成立要执行的语句……EndWhile用伪代码表示为:S←1I←1WhileI≤99S←S×II←I+2EndWhilePrintS由此可见,同一个问题可以用不同的循环方式来解决,直到型循环和当型循环的控制条件是不同的,请注意流程图中判断分支的流向条件。在算法二的伪代码中,可以看成I从1到99,每次增加2,用For语句写成IFrom1To99Step2,“Step2”意为I每次增加2。写成一般形式为:ForIFrom“初值”To“终值”Step“步长”……EndFor\n注意黑体字部分是For循环语句的关键词,在“For”和“EndFor”之间的步骤称为循环体,如果省略“Step2”,那么循环时I的值默认增加1。上述问题用For循环语句的伪代码可以表示为:S←1ForIFrom1To99Step2S←S×IEndForPrintS【总结】当循环的次数确定时,我们通常用For循环语句,而当循环的次数不确定时,我们通常用While循环语句,这两种语句都是前测试语句,即先判断后执行。若初始条件不成立,则一次也不执行循环体中的内容,任何一种需要重复处理的问题都可以用这种前测试循环来实现。【经典范例】例1分别用While语句和For语句写出求1+2+3+…+100的和的一个算法。【解】用伪代码表示为:S←0ForIFrom1To100S←S+IEndForPrintS或:S←0WhileI≤100S←S+II←I+1\nEndWhilePrintS【注意】在累加的算法中,S的初始值一般设为0,在累乘的算法中,S的初始值一般设为1,为什么?例2问题:将前面的问题改为>10000,那么,如何寻找满足条件的最小整数呢?请用伪代码写出一个算法。【分析】这个问题中,因为不知道循环需要进行的次数,所以不能用For循环语句。【解】算法:S1S←1;S2I←1;S3如果S≤10000,那么I←I+2,S←S×I,重复S3;S4输出I。上述算法可以理解为:当S≤10000时,循环执行S3。伪代码如下:S←1;I←1WhileS≤10000S←S×II←I+2EndWhilePrintI在“For”语句中,I的变化是通过“Step”设置的,在程序运行时自动改变,所以循环体中没有如“I←I+2”这样的语句,而在“While”语句中,则需要手工编写如“I←I+2”这样的代码以控制程序的运行,避免出现“死循环”。例3\n抛掷一枚硬币时,既可能出现正面,也可能出现反面,预先做出确定的判断是不可能的,但是假如硬币的质量均匀,那么当抛掷次数很多时,出现正、反面的机率都应接近于50%,试设计一个循环语句模拟抛掷硬币的过程,并计算抛掷中出现正面的机率。分析:抛掷硬币的过程实际上是一个不断重复的地做同一件事情的过程,这样的过程我们可以通过循环语句模拟。在程序语言中,有一个随机函数“Rnd”,它能产生0与1之间的随机数,这样,我们可以用大于0.5的随机数表示出现正面,不大于0.5的随机数表示出现反面,【解】用伪代码表示为:S←0{求累计和,初始值设为0}ReadnForIFrom1TonIfRnd>0.5ThenS←S+1EndForPrint出现正面的频率为{单行条件语句不需要结束标志“EndIf”}追踪训练1.下面的伪代码中,“For”语句的循环体是__________________________.S←0ForIFrom1To11Step2S←2S+3IfS>20ThenS←S-20EndIfEndForPrintS【解】循环体是S←2S+3,IfS>20ThenS←S-20EndIf\n2.我们曾研究过问题>2004,试用“While”语句描述这一问题的算法过程。【解】S←0I←1WhileS≤2004S←S+II←I+1EndWhilePrintI3.2000年我国人口数约为13亿,如果每年的人口自然增长率为15‰,那么多少年后我国人口数将达到或超过15亿?这个问题可通过循环方式计算完成,即每一次在原有的基础上增加15‰,直到达到或超过15亿,再记下循环次数,试用循环语句表示这一过程。【解】s←1300000000i←0whiles≤1500000000s←s×(1+0.015)i←i+1EndWhilePrinti4.1,1,2,3,5,8,13,…这一列数的规律是:第1、第2个数是1,从第3个数起,该数是其前面2个数之和,试用循环语句描述计算这列数中前20个数之和的算法.【解】\na←1b←1S←2FornFrom3To20c←a+bS←S+ca←bb←cEndForPrintS第9课时基本算法语句(3)分层训练1、下列程序框中,出口可以有两个流向的是()A.起止框B.输入输出框C.处理框D.判断框2、下面程序运行结果是。S←0I←10Whilei≥1S←S+ii←i-1EndWhilePrintS3、下面程序运行结果是。j←1S←0Whiles≤10S←S+jj←j+1EndWhilePrintj\n4、下面算法实现的功能是。S←1I←1WhileS≤2005i←i+2S←S×iEndWhilePrinti思考运用5、将下列问题的算法用伪代码中的“for”语句表示(写在下面的框中).I←1S←0Whilei≤10S←S+iI←I+1EndWhilePrintS\n6、试用算法语句表示:使成立的最小正整数的算法过程.解:7、读入80个自然数,统计出其中偶数的个数,用伪代码表示解决这个问题的算法过程.解:

相关文档