- 5.61 MB
- 2022-08-17 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
苏教版高中数学必修3全部教案【精美整理版】目录第五章算法初步1第1课时5.1算法的含义【学习导航】1第2课时5.2流程图4第3课时5.2流程图7第4课时5.2流程图12第5课时5.2流程图17第6课时5.2流程图21第7课时5.3基本算法语句24第8课时5.3基本算法语句29第9课时5.3基本算法语句34第10课时5.3基本算法语句39第11课时5.4算法案例42第12课时5.4算法案例46第13课时5.4算法案例50第14课时5.4基本算法语句及算法案例53第15课时5.5全章复习56第六章统计58第16课时6.1.1简单随机抽样59第17课时系统抽样61第18课时分层抽样63第19课时频率分布表67第20课时频率分布直方图和折线图71第21课时茎叶图【学习导航】77第22课时复习课180第23课时平均数及其估计83第24课时方差与标准差86第25课时线性回归方程90第26课时线性回归方程93第27课时复习课296第28课时6.5实习作业98第29课时6.5复习课3100第七章概率103第30课时7.1.1随机现象103第31课时7.1.2随机事件的概率105第32课时7.2.1古典概型108第33课时7.2.2古典概型110第34课时7.2.3复习课1114第35课时7.3.1几何概型115第36课时7.3.2几何概型118第37课时7.3.3几何概型120第38课进7.4.1互斥事件及其发生的概型122第39课时7.4.2互斥事件及其发生的概型125\n第40课时7.4.3复习课2127第41课时7.5复习课3(全章复习)129本站资源汇总[优秀资源,值得收藏]132\n第五章算法初步【知识结构】【重点难点】重点算法的描述,理解算法的思路与过程;基本语句的作用,能进行算法的分析并用基本语句进行表示。难点算法的理解与设计;在算法的实现上,如何用好选择结构与循环结构.第1课时5.1算法的含义【学习导航】知识网络学习要求1.理解算法的含义2.通过实例分析理解算法的有限性和确定性.3.能用自然语言描述简单的算法.【课堂互动】自学评价问题1简述给一个朋友打电话的过程.【解】过程如:找出电话本、找到朋友电话号码、拨通电话、通话等。问题2常有这样一种娱乐节目:就是猜数,让参加者从0~1000中猜出某商品的价格,猜测了以后,主持人说是高了,还是低了,然后再猜,直到猜中为止.而在这游戏中,较好的方法就是二分法:第一步报出500第二步如果是说高了,就再报250;如果低了,就报750;第三步在前一个数与再前一个数之间,取它们的中间值;直到猜中为止.问题3给出求1+2+3+4+5的一个算法【解】方法1按照逐一相加的程序进行.第一步计算1+2,得到3第二步将第一步中的运算结果3与3相加,得到6.第三步将第二步中的运算结果6与4相加,得到10.第四步将第三步中的运算结果10与5相加,得到15.方法2:可以运用公式直接计算.第50页共134页\n第一步取n=5;第二步计算;第三步输出运算结果.【小结】算法(algorithm)的含义:对一类问题的机械的、统一的求解方法.本章所研究的算法特指用计算机解决数学问题的方法.【体会】算法具有不唯一性.问题4给出求解方程组的一个算法.【解】用消元法求解这个方程组,算法如下:第一步方程①不动,将方程②中的x的系数除以方程①中的x系数,得到乘数;第二步方程②减去m乘以方程①,消去方程②中的x项,得到,第三步将上面的方程组自下而上回代求解,得到.所以原方程的解为.【说明】这种消元回代的算法适用于一般的线性方程组的求解.【小结】算法从初始步骤开始,每一个步骤只能有一个确定的后继步骤,从而组成一个步骤序列,序列的终止表示问题得到解答或指出问题没有解答.算法具有如下两个性质:有限性:一个算法在执行有限个步骤后必须结束.确定性:算法的每一个步骤和次序都应该是确定的、明确无误的,不应产生歧义.【经典范例】例1写出解方程的一个算法【解】算法如下:第一步:把3移到等号的右边.第二步:用-3除以2得到例2写出求的一个算法.【解】按照逐一相加的程序进行.第一步计算1×3,得到3第二步将第一步中的运算结果3与5相乘,得到15.第三步将第二步中的运算结果15与7相乘,得到105.例3已知直角坐标系中的两点A(-1,0),B(3,2),写出求直线AB的方程的一个算法.【解】算法如下:第一步计算斜率;第二步用点斜式写出直线方程.第三步化简得方程.例4写出求1+2+3+…+100的一个算法.【解】可以运用公式直接计算.算法如下:第一步取n=100;第50页共134页\n第二步计算.第三步输出运算结果【选修延伸】例5设计一个算法,找出三个数a,b,c中的最大数.【解】算法如下:第一步比较a,b大小,若a小,则转第二步;若a大,则转第三步;第二步比较b,c大小,若b小,则c是最大数,若b大,则b是最大数,结束任务;第三步比较a,c大小,若a小,则c是最大数,若a大,则a是最大数,结束任务。例6(1)写出解不等式x2-2x-3<0的一个算法;(2)写出解不等式ax2+bx+c>0(a>0)的一个算法。【解】(1)算法如下:第一步解出方程x2-2x-3=0的两根是x1=3,x2=-1;第二步由x2-2x-3<0可知不等式的解集为{x|-10,解出方程ax2+bx+c=0的两根(设x1>x2),则不等式解集为{x|x>x1或x2004时,满足条件的n的最小正整数。第(3)个问题的算法:S1取n等于1;S2计算;S3如果计算的值小于等于2004,那么让n的值增加1后转到S2重复操作,否则n就是最终所要求的结果。算法可以用自然语言来描述,但为了使算法的程序或步骤表达得更为直观,我们可以用图形的方式,即流程图来表示算法.2.流程图上述问题(3)的算法流程图表示如下:开始输入n计算的值>2004使n的值增加1Y输出n结束N流程图(flowchart)是用一些规定的图形、连线及简单的文字说明来表示算法及程序结构的一种图形程序.它直观、清晰、易懂,便于检查和修改.流程图中各类图框表示各种操作的类型,具体说明如下表:程序框名称功能起止框表示一个算法的开始和结束输入、输出框表示一个算法输入和输出的信息处理框赋值、计算判断框判断某一个条件是否成立,成立的在出口处标明“是”或“Y”;不成立时标明“否”或“N”画流程图实际上是将问题的算法用流程图符号表示出来,所以首先要明确需要解决什么问题,采用什么算法解决。3.问题:写出作的外接圆的一个算法,并画出流程图。【解】算法如下:第50页共134页\n作的垂直平分线;作的垂直平分线;以与的交点为圆心,为半径作圆,圆即为的外接圆.用流程图表示出作△ABC的外接圆的算法:开始结束作AB的垂直平分线作BC的垂直平分线以与的交点为圆心,MA为半径作圆思考:上述算法的过程有何特点?4.顺序结构以上过程通过依次执行三个步骤,完成了作外接圆这一问题。像这种依次进行多个处理的结构称为顺序结构(sequencestructure)。顺序结构是一种最简单、最基本的结构。【经典范例】例1已知两个变量x和y,试交换这两个变量的值。【解】为了达到交换的目的,需要一个临时的中间变量p,其算法是:S1pxS2xyS3yp上述算法用流程图表示如下:开始PXXYYP结束点评:在计算机中,每个变量都分配了一个存储单元,它们都有各自的“门牌号码”(地址)。例2半径为r的圆的面积计算公式为当时,写出计算圆面积的算法,画出流程图。【解】算法如下:S1{把10赋给变量r}S2{用公式计算圆的面积}S3输出S{输出圆的面积}流程图:开始r←10结束例3设计一个尺规作图的算法来确定线段AB的一个五等分点,并画出流程图。(点拨:确定线段AB的五等分点,是指在线段AB上确定一点M,使得.)【解】算法如下:S1从A点出发作一条与原直线不重合的射线;S2任取射线上一点C,以AC为单位长度,在射线上依次作出点E、F、G、D,使;S3连接,并过点C作的平行线交AB于M,M就是要找的五等分点.流程图如下:第50页共134页\n追踪训练1、写出右边程序流程图的运算结果:如果输入R=8,那么输出a=42、已知三角形的三边a,b,c,计算该三角形的面积。写出算法,并用流程图表示出来。【解】算法如下:S1计算;S2利用公式即可求出三角形的面积。流程图:开始结束三式相加得4式x+y+z=64式减1式得z=34式减2式得x=14式减3式得y=24.用赋值语句写出下列算法,并画出流程图:摄氏温度C为23.5℃,将它转换成华氏温度F,并输出.已知。【解】流程图如下:第50页共134页\n开始结束3、写出解方程组的一个算法,并用流程图表示算法过程。【解】算法如下:S1将三个方程相加得x+y+z=6(4)S2用(4)式减(1)式得z=3S3用(4)式减(2)式得x=1S4用(4)式减(3)式得y=2流程图:第3课时5.2流程图重点难点重点:掌握选择结构的执行过程;用流程图表示顺序结构的算法。难点:选择结构程序执行的过程;用多分支结构描述求解问题的算法。第50页共134页\n【学习导航】知识网络学习要求1.理解选择结构的执行过程2.如何在流程图中用选择框表示选择结构3.理解多分支选择结构的流程【课堂互动】自学评价1.问题:某铁路客运部门规定甲乙两地之间旅客托运行李的费用为其中w(单位:Kg)为行李的重量。计算费用c(单位:元)的算法可以用怎样的算法结构来表示?【分析】为了计算行李的托运费用,应先判断行李的重量是否大于50Kg,然后再选用相应的公式进行计算。其算法为:S1输入行李的重量w;S2如果w≤50,那么,否则;S3输出行李重量w和运费c。上述算法的流程图如下:开始输入nW≤50Y结束N输出w,c第50页共134页\n2.选择结构上述算法过程中,先根据条件作出判断,再决定执行哪一种操作的结构称为选择结构(selectionstructure)(或称“分支结构”)。如下图中,虚线框内是一个选择结构,它包含一个判断,当条件p成立(或称为“真”)时执行A,否则执行B。在A和B中,有且只能有一个被执行,不可能同时被执行,但A和B两个框中可以有一个是空的,即不执行任何操作。NYPAB上述内容可以解释为:如果条件成立那么执行内容A否则执行内容B结束另一种情况:如果条件成立那么执行内容A结束YP用框图可表示为:NA【经典范例】例1任意给定三个正实数,设计一个算法,判断:以这样三个数为边长的三角形是否存在?画出它的框图。分析要判定三个实数能否构成三角形的三条边,主要是根据三角形的边角关系定理:任意两边之和大于第三边。即如果三个数中的任意两个之和大于第三个数,那么它们就可以作为三角形的三条边长。【解】流程图:开始YN输入a,b,ca+b>c,b+c>a,c+a>b是否同时成立存在这样的三角形不存在这样的三角形结束第50页共134页\n例2设计求解一元二次方程的一个算法,并用流程表示。【解】算法如下S1输入a,b,cS2△S3如果△<0,那么输出“由于方程无实数根”,否则,,输出这两个根。流程图:开始输入a,b,c△△<0,N方程无实数根输出两个根结束Y第50页共134页\n例3如果考生的成绩大于或等于60分,则输出“及格”,否则输出“不及格”,用流程图表示这一算法过程。【解】流程图如下:开始输入成绩xX≥60是否成立YN及格不及格结束追踪训练一1、如果考生的成绩(以满分100分计),则输出“优秀”;若成绩,则输出“中等”;若,则输出“及格”;若,则输出“不及格”。若输入的成绩为95,则输出结果为_______优秀_______。2、下边的程序框图(如图所示),能判断任意输入的数x的奇偶性,其中判断框内的条件是.3、下面的流程图表示了一个什么样的算法?开始输入a,b,ca>b且a>cb>cYNYN输出a输出c输出b结束【解】输出a,b,c中最大的数。思考:如果要实现上述流程图所表示的目的,是否还有其它的算法?第50页共134页\n算法:将a与b进行比较,将大的数放入一个临时变量Max中,再将Max与c比较,输出大的数。4、写出解方程(a,b为常数)的算法,并画出流程图。【解】算法如下:S1判断a是否为0。S2如a=0,输出“方程无解”并结束程序。S3输出。开始输入a,ba=0N结束Y方程无解5、设计一个求任意实数的绝对值的算法,并画出流程图.【解】算法如下:S1输入任意实数;S2若,则;否则;S3输出.流程图如下:开始投票淘汰得票最少的城市有一个城市的票数超过半数结束输出该城市YN第4课时5.2流程图重点难点重点:掌握循环结构的执行过程;用流程图表示顺序结构的算法。难点:理解循环结构执行过程;熟悉当型循环与直到型循环。第50页共134页\n【学习导航】知识网络当型循环循环结构直到型循环学习要求1.理解循环结构的执行过程2.了解如何在流程图表示循环结构3.理解当型循环与直到型循环在流程图上的区别,通过分析理解两种循环方式在执行过程上的区别。【课堂互动】自学评价1.问题北京获得了2008年的奥运会的主办权,你知道在申办奥运会的最后阶段时,国际奥委会是如何通过投票来决定主办权归属的吗?对五个申报的城市进行表决的程序是:首先进行的第一轮投票,如果有哪一个城市得票超过半数,那么该城市将获得举办权,表决结束;如果所有的申报城市的票数都没有半数,则将得票最少的城市淘汰,然后重复上述过程,直到选出一个申办城市为止。你能用一个算法来表达上述过程吗?算法:S1:投票S2:统计票数,如果有一个城市的票数超过半数,那么该城市当选,获得主办权,转S3;否则,淘汰得票数最少的城市,转S1;S3:宣布主办城市。上述算法用流程图如下所示:【小结】在该算法中,在主办城市没有出来之前,“投票并淘汰得票最少的城市”第50页共134页\n这一操作将会重复执行,直到有一个城市获半数以上的票。像这种需要重复执行同一操作的结构称为循环结构(cyclestructure)。【注意】粗体字部分是循环结束的条件,即直到该条件成立(或为“真”)时循环才结束。用流程图可表示为(注意圆卷部分是循环结束的条件)。YPAN图A2.写出求值的一个算法。算法一:S1先求,得到;S2将S1得到的结果再乘,得到;S3将S2得到的结果再乘,得到;S4将S3得到的结果再乘,得到最后的结果。;【思考】如果一直乘到100,上述算法有何弊端,有通用性吗?算法二:S1设一个变量T←1;S2设另一个变量为i←2;S3T←T×i{将T×i的结果仍放在变量T中};S4i←i+1{i的值增加1};S5如果i不大于5,转S3,否则输出T,算法结束。【比较】算法二与算法一相比有何优越性?这个方法可以在条件限制中加入任意的值来,比如也可以用同样的程序来执行,只要修改一下限制条件即可。流程图:开始T←1I←2T←T×ii←i+1I>5YN输出T结束第50页共134页\n【思考】将算法二作如下修改,注意与算法二的区别。算法三:S1设一个变量T=1S2设另一个变量为i=2S3如果i不大于5,T←T×i,执行S4,否则转到S5S4i←i+1,重复S3S5输出T分析:在算法三中,执行S3、S4是有条件的,当i小于等于5时才可以。流程图:Y开始T←1I←2i←i+1I≤5N输出T结束T←T×i上述循环结构用示意图表示为:NPY图BA【总结】图A中,循环体一直执行,直到条件成立时退出循环,这种循环称为直到型循环。图B中,当条件成立时循环体才执行,这种循环称为当型循环。【经典范例】例1设计一个计算10个数的平均数的算法。【分析】我们用一个循环依次输入10个数,再用一个变量存放数的累加和,在求出10个数的总和后,除以10,就得到这10个数的平均数。【解】算法如下:第50页共134页\nS1S←0S2I←1S3输入G{输入一个数}S4S←S+G{求S+G,其和仍放在S中}S5I←I+1S6如果I不大于10,转S3{如果I>10不成立,开始循环}S7A←S/10{将平均数S/10存放到A中}S8输出A流程图:开始S←0I←1S←S+GI←I+1I>10YN输出A结束输入GA←S/10【追踪训练】1.算法的三种基本结构是(A)A.顺序结构、选择结构、循环结构B.顺序结构、流程结构、循环结构C.顺序结构、分支结构、流程结构D.流程结构、循环结构、分支结构2.有如下程序框图(如下图所示),则该程序框图表示的算法的功能是(将“=”换成“←”)第50页共134页\n解:求使成立的最小正整数n的值加2。开始I←1G≥80打印YNI←I+1I>50YN结束3.用代表第i个学生的学号,代表第i个学生的成绩(i=1,2,…,50),下图表示了一个什么样的算法?【解】输出学号在1到50号之间成绩大于等于80的学生的学号和成绩。第5课时5.2流程图第50页共134页\n【学习导航】学习要求1.进一步理解循环结构的执行过程,并能进行简单的综合应用.【课堂互动】自学评价我们学习的循环结构分两种基本类型:直到型循环和当型循环.图A中,循环体一直执行,直到条件成立时退出循环,这种循环称为直到型循环。图B中,当条件成立时循环体才执行,这种循环称为当型循环。YPAN图ANPY图BA【经典范例】例1设计算法,输出1000以内能被3和5整除的所有正整数,画出算法流程图。【解】(点拨:凡是能被3和5整除的正整数都是15的倍数,由于1000=15×66+10,因此1000以内一共有66个这样的正整数。)流程图如下:第50页共134页\n例2斐波拉契数列表示的是这样的一列数:0,1,1,2,3,5,…,后一项等于前两项的和。设计一个算法流程图,输出这个数列的前50项。【解】例3先分步写出计算2+4+6+…+100的一个算法,再画出流程图(使用循环结构)。【解】算法如下:S1S←0S2I←2S3S←S+IS4I←I+2S5I是否大于100,如果是,转S6;否则转S3S6输出S。开始S←0I←2S←S+II←I+2I>100YN输出S结束第50页共134页\n【追踪训练】1.下图给出的是计算的值的一个程序框图,其中判断框内应填入的条件是(B)A.i>100B.i≤100C.i>50D.i≤502.请观察给出的流程图(如下图),这是一个求和算法的流程图,请运行几步看一看,指出该循环结构的循环体、循环变量和循环的终止条件。【解】s,i为循环变量;终止条件为i>4第50页共134页\n3.设计算法流程图,输出200以内除以3余1的正整数。解:流程图如下:(将“=”换成“←”)第6课时5.2流程图重点难点重点:运用流程图表示顺序、选择、循环这三种基本结构.YN难点:循环结构算法的流程图.第50页共134页\n【学习导航】知识网络学习要求1.能运用流程图表示顺序、选择、循环这三种基本结构;能识别简单的流程图所描述的算法.2.训练有条理的思考与准确表达自己想法的能力,提高逻辑思维能力.3.学会流程图结构的选择,方法通常如下:若不需判断,依次进行多个处理,只要用顺序结构;若需要先根据条件作出判断,再决定执行哪个后继步骤,必须运用选择结构;若问题的解决需要执行许多重复的步骤,且有相同的规律,就需要引入循环变量,应用循环结构.【自学评价】1.学了算法你的收获有两点,一方面了解我国古代数学家的杰出成就,另一方面,数学的机械化,能做许多我们用笔和纸不能做的有很大计算量的问题,这主要归功于算法语句的(D)A.输出语句B.赋值语句C.条件语句D.循环语句2.A=15,A=-A+5,最后A的值为(A)A.-10B.20C.15D.无意义3.在右图的虚线框内是选择结构的一般形式。在两个操作选项中,__不能__(填入“能”或“不能”)既执行又执行?【经典范例】例1有如下程序框图,则该程序框图表示的算法的功能是.(注:将程序框图中所有“=”换成“←”)【解】求使成立的最小正整数n的值加2第50页共134页\n例2已知,写出求的一个算法,并画出流程图.【解】算法如下:;;;;;若,转,否则输出.流程图如下:输出开始结束例3数学的美是令人惊异的!如三位数153,它满足153=13+53+33,即这个整数等于它各位上的数字的立方的和,我们称这样的数为“水仙花数”.请您设计一个算法,找出大于100,小于1000的所有“水仙花数”.(1)用自然语言写出算法;(2)画出流程图.(提示:取整函数可以解决从三位数的各位上“提取”数字.取整函数为Int(x),如Int(3.5)=3,int(123/100)=1.)【解】算法S1I←101;S2如果I不大于999,则重复S3,否则算法结束;第50页共134页\nS3若这个数I等于它各位上的数字的立方的和,则输出这个数;S4I←I+1,转S2.流程图如下:【追踪训练】1.对顺序结构,下列说法:(1)是最基本、最简单的算法结构;(2)框与框之间是依次进行处理;(3)除输入框、输出框之外,中间过程都为处理框;(4)可以从一个框跳到另一个框进行执行,其中正确的有(C)A.1个B.2个C.3个D.4个2.若在区间内单调,且,则在区间内(C)A.至多有一个根B.至少有一个根C.恰好有一个根D.不确定3.设计算法,求1356和2400的最小公倍数.【解】算法如下:S1对两个数分别进行素因数分解:1356=22×3×113,2400=25×3×52S2确定两数的所有素因数:2,3,5,113S3确定素因数的指数:2的指数为5,3的指数为1,5的指数为2,113的指数为1S4输出结果1356,2400的最小倍数为25×3×52×113.第7课时5.3基本算法语句一、知识结构赋值语句输入、输出语句伪代码描述算法条件语句循环语句重点难点重点:1、学习和理解几种语句的作用和形式,既要有形式上的把握也要理解本质的内涵第50页共134页\n2、能进行最简单的语句的书写,通过训练能编写出一些简单的程序语言难点:几种语句形式上的把握,理解其本质;语句的书写,编写一些简单的程序语言第50页共134页\n【学习导航】学习要求1.理解赋值语句的含义2.理解赋值语句、输入输出语句中的变量与表达式的含义【课堂互动】自学评价1.赋值语句:赋值:顾名思义就是赋予某一个变化量一个具体的数值。例如:变速运动某一时刻的速度大小是5m/s,就是将5赋予速度v,在算法的描述中可以写成如下形式:v←5注意:变化量只能写在“←”左边,值写在“←”的右边。对于匀变速直线运动,v=v0+at,在算法的描述中可以写成如下形式:v←v0+at“←”右边可以是一个具体的值,也可以是一个表达式,程序会将该表达式进行计算后再将结果赋给v。【经典范例】例1:写出求x=23时多项式的值的算法。【解】算法一x←23p←算法二x←23p←【说明】在计算时只要进行3次乘法,而在算法一中则要进行6次算法。显然这种算法更好一些,算法的好坏会直接影响运算速度。这就是著名的秦九韶算法,其特点是:通过一次式的反复计算,逐步得出高次多项式的值,对于一个n次多项式,只要做n次乘法和n次加法。【拓展】A←23A←A+10你能说出第二行的意义吗?2.输入、输出语句在用伪代码描述算法的过程中,用read表示输入,用print表示输出,如:“reada,b”表示输入的数依次赋给a和b。例1的算法可以描述为:S1readxS2p←S3printp【经典范例】例2“鸡兔同笼”是我国隋朝时期的数学著作《孙子算经》中的一个有趣且有深远影响的题目:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何”【分析】设有x只鸡,y只兔,则第50页共134页\n下面我们设计一个解二元一次方程组的通用算法,设二元一次方程组为用消元法解得:因此,只要输入相应的未知数的系数和常数项,就能计算出方程组的解。开始输入,,,,,←←输出x,y结束流程图:伪代码:Read,,,,,←←Printx,y【拓展】1、“鸡兔同笼”的问题是否还有其它他巧妙的数学方法解决呢?2、“鸡兔同笼”问题的解在某一个范围内,如果把这个范围内的数一个一个的试解,那么也能找出问题的解,这种算法能否用循环结构解决?【经典范例】例3设计一个求任意三门功课的平均值的算法流程图,并写出相应伪代码.【解】流程图:伪代码:Reada,b,cA←(a+b+c)/3PrintA第50页共134页\n例4已知一匀速运动的物体的初速度、末速度和加速度分别为求物体运动的距离,试编写求解这个问题的一个算法的流程图,并用伪代码表示这个算法。(点拨:先要根据除速度、末速度和加速度求出运动的时间,在利用物体运动的距离公式求出。)【解】流程图及伪代码如下:流程图伪代码ReadPrint追踪训练1.用秦九韶算法计算多项式在时的值时,需要做乘法和加法的次数分别是(A)A.6,6B.5,6C.5,5D.6,52.按照下面的程序运行的结果是(C)PrintA.20B.60C.120D.2403.已知一个正三棱柱的底面边长为2,高为3,用输入、输入语句和赋值语句表示计算这个正三棱柱的体积的算法。【解】Reada,ha←2h←3v←Print4.已知三角形的三边长分别为a,b,c,借助三角形的面积公式第50页共134页\n用输入、输出语句和赋值语句表示计算三角形面积的一个算法。【解】Reada,b,cp←s←prints5.某市2004年1—12月的产量分别为3.8,4.2,5.3,6.1,5.6,4.8,7.3,4.5,6.4,5.8,4.7,6.5(亿元),该市要统计每季度的月平均产值及2004年的月平均产值,分别用赋值语句和输入、输出语句表示计算上述各个平均值的算法。【解】Readp1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12A←B←C←D←E←PrintA,B,C,D,E第8课时5.3基本算法语句【重点难点】重点:1.正确理解条件语句的步骤、结构及功能,并掌握其结构;2.能正确地使用条件语句表示选择结构.难点:使用条件语句表示选择结构.第50页共134页\n【学习导航】【知识网络】单分支的If语句条件语句双分支的If语句【学习要求】1.正确理解条件语句的步骤、结构及功能,并掌握其结构.2.使用条件语句表示选择结构.3.能利用条件语句进行简单的应用.【课堂互动】自学评价1.问题某居民区的物管部门每月按以下方法收取卫生费:3人和3人以下的住户,每间户收取5元;超过3人的住户,每间超出1人加收1.2元。【分析】为了计算卫生费,应先判断住户人数是否超过3人,然后再选用相应的方法进行计算。其算法为:S1输入住户人数n;S2如果n≤3,那么,否则;S3输出c。上述算法用流程图表示如下:开始输入nn≤3Y结束N输出c该问题算法的自然语言描述中,将汉字部分用英语表示为:ReadnIfn≤3ThenElseEndIfPrintc请留意上面代码中黑体的部分,在程序语言中我们可以通过条件语句(conditionalstatement)来表现流程图中的选择结构。条件语句的一般形式是IfAThenBElseCEndIf第50页共134页\n其中A表示判断的条件,B表示条件满足时执行的操作内容,C表示条件不满足时执行的操作内容,EndIf表示条件语句的结束。注意:Else要单独书写一行,If和EndIf一定要配对。为了便于阅读和清晰,通常将B和C的内容代码缩进书写。如果只要满足条件A就执行B,而不考虑其他任何情况,这时条件语句的一般形式可写成IfAThenBEndIf或IfAThenB前者适用于A是多条语句的情况。上述问题中,有可能被执行的操作内容最多只有两种可能性,在实际问题中会遇到被执行的操作内容有可能不止两种情况,此时我们就要用If语句的嵌套,请看下面的问题:2.问题:儿童乘坐火车时,若身高不超过1.1m,则无需购票;若身高超过1.1m但不超过1.4m,可买半票;若超过1.4m,应买全票,试设计一个购票的算法,画出流程图并写出伪代码。【解】上述购票的算法步骤为:S1测量儿童的身高h。S2如果h≤1.1,那么免费乘车;否则,如果h≤1.4,那么购买半票;否则,购买全票。将上述算法中用黑体表示的文字用含If关键词表示的伪代码为(注意斜体的文字表示):ReadhIfh≤1.1ThenPrint免费乘车ElseIfh≤1.4ThenPrint半票乘车ElsePrint全票乘车EndIf流程图:h≤1.4开始输入hh≤1.1半票乘车全票乘车免费乘车结束YYNN第50页共134页\nIfA1ThenB1ElseIfA2ThenB2ElseIfA3ThenB3ElseBnEndIf…上述If语句的嵌套可用一般形式表示为:【说明】A1,A2,A3表示各类判断的条件,而B1,B2,B3,…,Bn表示在各自条件满足的情况下所执行的操作内容.【经典范例】例1已知函数试写出计算y值的一个算法。【解】用伪代码表示为:ReadxIfx>0Theny←1ElseIfx=0Theny←0Elsey←-1EndIfPrinty流程图:开始输入xYx>0y←-1y←0y←1结束YNNx=0输出y第50页共134页\n例2已知函数,设计一个输入的值,计算的值的算法.【解】算法如下:ReadxIfx<1theny←xElseIfx<10theny←2x-1Elsey←3x-11EndIfPrinty追踪训练1.阅读下列程序:ReadxIftheny←xElsey←-xEndIfPrinty请用一个函数表示y与x的关系____.2.阅读下列程序:ReadxIfx<0Theny←ElseIfx>0Theny←Elsey←0EndIfPrinty如果输入x=-2,则输出结果y为(B)A.3+B.3-C.-5D.--53.用条件语句表示:输入两个数,输出较大的数。【解】Reada,bIfa≥bThenPrintaElsePrintbEndIf第50页共134页\n4.已知函数,试写出计算y值的一个算法。【解】伪代码一:Ifx<0Thenx←-xy←xprinty伪代码二:Ifx≥0Theny←xElsey←-xEndIf5.到银行办理个人异地汇款(不超过100万)时,银行要收取一定的手续费,汇款不超过100元,收取1元手续费;超过100元但不超过5000元,汇款额的1%收取;超过5000元,一律收取50元手续费。试用条件语句描述汇款额为x(元)时,银行收取的手续费y(元)的算法过程,并画出流程图。【解】Readx(x≤1000000)Ifx≤100Theny←1ElseIfx≤5000Theny←0.01xElsey←50EndIfPrinty流程图略.第9课时5.3基本算法语句重点难点重点:正确理解循环语句的概念,并掌握其结构;会应用循环语句编写程序;并能进行简单的综合应用。难点:理解循环语句的表示方法、结构和用法;会编写程序中的循环语句.第50页共134页\n【学习导航】知识网络循环语句→当型循环语句学习要求1.正确理解循环语句的概念,并掌握其结构;会应用循环语句编写程序;并能进行简单的综合应用。2.理解并掌握循环语句在计算机程序语言中的作用,掌握两种循环语句应用的实例:数列求和、求积。【课堂互动】自学评价1.问题:设计计算的一个算法。【分析】将上述表达式看成49个乘法,用公式表示为:S←S×IS初始为1,I为1,将每次的乘积都赋予S,I从1到99,每次增加2,公式S←S×I会被重复执行,这种执行过程可用循环结构表示。算法一:S1S←1;S2I←1;S3I←I+2;S4S←S×I;S5如果I小于99,那么转S3;S6输出S上述算法用流程图表示如下:【说明】算法一是先执行后判断的直到型循环结构,常用“Do”语句表示,我们不再学习。开始S←1I←1S←S×II≥99开始YN输出SI←I+2第50页共134页\n算法二: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上述算法用流程表示如图所示:【说明】算法二可以理解为:当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注意黑体字部分是For循环语句的关键词,在“For”和“EndFor”第50页共134页\n之间的步骤称为循环体,如果省略“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+1EndWhilePrintS【注意】在累加的算法中,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”第50页共134页\n这样的代码以控制程序的运行,避免出现“死循环”。例3抛掷一枚硬币时,既可能出现正面,也可能出现反面,预先做出确定的判断是不可能的,但是假如硬币的质量均匀,那么当抛掷次数很多时,出现正、反面的机率都应接近于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-20EndIf2.我们曾研究过问题>2004,试用“While”语句描述这一问题的算法过程。【解】S←0I←1WhileS≤2004S←S+II←I+1EndWhilePrintI3.2000年我国人口数约为13亿,如果每年的人口自然增长率为15‰,那么多少年后我国人口数将达到或超过15亿?第50页共134页\n这个问题可通过循环方式计算完成,即每一次在原有的基础上增加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个数之和的算法.【解】a←1b←1S←2FornFrom3To20c←a+bS←S+ca←bb←cEndForPrintS第10课时5.3基本算法语句第50页共134页\n【学习导航】学习要求1.进一步掌握循环语句结构,并能进行简单的综合应用.2.进一步培养学生的探索问题、分析问题和解决问题的能力,培养学生思维的严谨性和条理性.【课堂互动】自学评价当型循环:常用“While”循环语句和“For”循环语句表示While循环语句一般形式为:While条件P成立要执行的语句……EndWhileFor循环语句一般形式为:ForIFrom“初值”To“终值”Step“步长”……EndFor【说明】当循环的次数确定时,我们通常用For循环语句,而当循环的次数不确定时,我们通常用While循环语句,这两种语句都是前测试语句,即先判断后执行。若初始条件不成立,则一次也不执行循环体中的内容,任何一种需要重复处理的问题都可以用这种前测试循环来实现。【经典范例】例1读入100个自然数,统计出其中奇数的个数,并将所有奇数输出,用伪代码表示解决这个问题的算法过程.【解】算法的伪代码如下:ForIFrom1To80ReadIfThenPrintEndIfEndForPrint例2假定有一房地产投资,投资10000元,按11.25%的回报率,一年后连本带利润将变为11125元,若将此款继续做房地产投资,试问:多长时间就会连本带利翻一番?请用适当语句写出程序。【解】程序:s←11125i←1r←0.1125第50页共134页\nWhiles<20000i←i+1s←s×(1+r)iEndWhilePrinti例3设区间[0,1]是方程的有解区间,可用二分法求方程近似解(精确到0.001),请用适当的语句描述这个算法.(思路点拨:这也是循环结构中的一条题目,终止条件有两个:(1)(2).)【解】语句如下a←0b←1e←0.001Whilef()≠0And|b-a|≥eIff(a)×f()<0Thenb←Elsea←EndIfEndWhilePrint例4阅读下面程序,试说明程序所实现的功能。如将语句S←S+i和i←i+1调换顺序,运算结果是否有变化,请说明。S←0I←1Whilei≤100S←S+ii←i+1EndWhilePrintS【解】程序实现如下计算:S=1+2+3+…+100。语句S←S+i和i←i+1调换顺序后,程序实现如下计算:S=2+3+4+…+101调换顺序前后,程序在运算功能上有差别。追踪训练第50页共134页\n1、下面的伪代码输出的结果为(A).I←1WhileI<8S←2I+3I←I+2EndwhilePrintSA.17B.19C.21D.232、下面的伪代码输出的结果是(C).A3B5C9D13S←0ForIfrom1to11step2S←2S+3IfS>20thenS←S-20EndIfEndForPrintS3、下面的伪代码中,“While”语句的循环体是____S←2I+1,I=I+1____________.I←1WhileI<8S←2I+1I←I+1EndWhilePrintS第11课时5.4算法案例重点难点重点:通过案例分析,体会算法思想,熟练算法设计,进一步理解算法的基本思想,发展有条理的思考和表达能力,提高逻辑思维能力。难点:在分析案例的过程中设计规范合理的算法第50页共134页\n学习要求1.理解剩余定理的内涵2.能利用剩余定理解决“韩信点兵—孙子问题”【课堂互动】历史背景:韩信是秦末汉初的著名军事家,据说有一次汉高祖刘邦在卫士的簇拥下来到练兵场,刘邦问韩信有什么办法,不要逐个报数,就能知道场上士兵的人数。韩信先令士兵排成3列纵队,结果有2人多余;接着他立刻下令将队形改为5列纵队,这一改,又多出3人;随后他又下令改为7列纵队,这一次又剩下2人无法成整行。韩信看此情形,立刻报告共有士兵2333人。众人都愣了,不知韩信用什么办法清点出准确人数的。这个故事是否属实,已无从查考,但这个故事却引出一个著名的数学问题,即闻名世界的“孙子问题”。这种神机妙算,最早出现在我国《算经十书》之一的《孙子算经》中,原文是:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?答曰:二十三。”所以人们将这种问题的通用解法称为“孙子剩余定理”。【分析】“孙子问题”相当于求关于x,y,z的不定方程组的正整数解。根据题意,m应该满足三个条件:(1)m被3除后余2,即(2)m被5除后余3,即(3)m被7除后余2,即在自然数中可能存在满足条件的数,首先让m=2开始检验条件,若三个条件中有任何一个不满足,则检验下一个数,即m递增1,如此循环下去,一直到m满足三个条件为止。这种解决问题的方法也称为“穷举法”,这种方法在利用计算机解决问题时非常有效,因为计算机最擅长重复机械的操作。【流程图】NYm←m+1结束输出m开始1m←2第50页共134页\n【伪代码】m←2WhileMod(m,3)≠2或Mod(m,5)≠3或Mod(m,7)≠2m←m+1EndWhilePrintm【思考】上述算法只能求出最小的满足条件的数,如果要求出10个满足条件的数,程序要做何修改?你能否用数学上最小公倍数的知识分析出解决该问题的方法吗?可以这样考虑:5和7的公倍数中能被3除余2的最小的公倍数是35;3和7的公倍数中能被5除余3的最小的公倍数是63;3和5的公倍数中能被7除余2的最小的公倍数是30;因此满足条件的其中的一个数就应是35+63+30,为128,若减去3,5,7的最小公倍数105得23,23就是满足题目要求的最小的数。你能画出这种算法的流程图吗?【解】算法流程图如下:输出且且开始结束经典范例例1古今中外,许多人致力于圆周率的研究与计算。我国东汉的数学家刘徽利用“割圆术”第50页共134页\n计算圆的面积及圆周率。“割圆术”被称为千古绝技,它的原理是用圆内接正多边形的面积去逼近圆的面积。具体计算如下:在单位圆内作正六边形,其面积记为A1,边长为a1,在此基础上作圆内接十二边形,面积记为A2,边长为a2,……,一直做下去,记该圆的内接正边形面积为,边长为。由于所考虑的是单位圆,计算出的的值即是圆周率的一个近似值,且越大,与圆周率越接近。你能否设计一个算法,计算圆周率的近似值?思路点拨:画图可知,,.【解】算法步骤如下:Readna←1ForIFrom2TonA←a←sqrtPrintI,A,aEndFor【追踪训练】1.是一正整数,对两个正整数,若是的倍数,则称模同余,用符号表示.则中,的取值可能为(D)A.11B.22C.27D.322.有一堆围棋子,五个五个地数,最后余下2个;七个七个地数,最后余下3个;九个九个地数,最后余下4个.请设计一种算法,求出这堆棋子至少有多少个.【解】算法如下:m←2WhileMod(m,5)≠2或Mod(m,7)≠3或Mod(m,9)≠4m←m+1EndWhilePrintm3.(李白买酒)无事街上走,提壶去买酒,遇店加一倍,见花喝一斗,三遇店和花,喝光壶中酒.设计求酒壶中原有多少酒的一个算法并写出伪代码.【解】算法如下:x←0Forifrom1to3x←x+1x←x/2EndforPrintx4.求方程(其中为自然数)的所有小于100的的正整数解.【解】算法如下:第50页共134页\ny←0x←0Whilex<100x←5y+3Printxy←y+1EndWhile第12课时5.4算法案例重点难点重点:通过案例分析理解辗转相除法与更相减损术求最大公约数的方法,体会算法思想.难点:把辗转相除法与更相减损术的方法转换成程序框图与程序语言.第50页共134页\n学习要求1.理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析.2.基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序.【课堂互动】问题:写出求两个正整数a,b(a>b)的最大公约数的一个算法。1.辗转相除法公元前3世纪,欧几里得介绍了求两个正整数a,b(a>b)的最大公约数的方法,求出一列数:,这列数从第三项开始,每一项都是前两项相除所得的余数(即),余数等于0的前一项,即是a和b的最大公约数,这种方法称为“欧几里得辗转相除法”。例1求两个正数8251和6105的最大公约数.(分析:8251与6105两数都比较大,而且没有明显的公约数,如能把它们都变小一点,根据已有的知识即可求出最大公约数)【解】8251=6105×1+2146显然8251和的2146最大公约数也必是2146的约数,同样6105与2146的公约数也必是8251的约数,所以8251与6105的最大公约数也是6105与2146的最大公约数.6105=2146×2+18132146=1813×1+3331813=333×5+148333=148×2+37148=37×4+0则37为8251与6105的最大公约数.【小结】以上我们求最大公约数的方法就是欧几里得辗转相除法.其求最大公约数的步骤如下:第一步:用较大的数除以较小的数,得到一个商和一个余数;第二步:若,则为的最大公约数;若,则用除数除以余数,得到一个商和一个余数;第三步:若,则为的最大公约数;若,则用除数除以余数得到一个商和一个余数;……依次计算直至,此时所得到的即为所求的最大公约数.【练习】求a=204,b=85的最大公约数,步骤为:S1204÷85的余数为34,S285÷34的余数为17,S334÷17的余数为0。所以它们的最大公约数为17。算法描述:计算出a÷b的余数r,若r=0,则b为a,b的最大公约数;若r≠0,则把前面的除数b作为新的被除数,把余数r作为新的除数(a,b要重新赋值,a←b,b←r),继续进行上述运算,直到余数为0(用While循环语句,循环的执行条件是r≠0,当r=0时,循环终止),此时的除数即为所求的最大公约数。算法如下:S1输入两个正整数a,b(a>b);开始b←rYN结束输入a,ba←br←Mod(a,b)Mod(a,b)≠0输出bS2若Mod(a,b)=0,则转S3;否则,r←Mod(a,b),a←b,b←r,转S2。S3输出最大公约数b.第50页共134页\n【流程图】【伪代码】Reada,bWhileMod(a,b)≠0r←Mod(a,b)a←bb←rEndWhilePrintb2.更相减损法我国早期也有解决求最大公约数问题的算法,就是更相减损术.更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母之数,以少减多,更相减损,求其等也,以等数约之.翻译出来为:第50页共134页\n第一步:任意给出两个正数,判断它们是否都是偶数.若是,用2约简;若不是,执行第二步.第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数.再从这个角度看一下“求a=204,b=85的最大公约数”的问题,S1步可以等价为等式:。S2步可以等价为等式:。这两步从减法的角度可以理解为:204-85,所得的差与减式中的较小数比较,再用大的数减小的数,循环执行以上步骤,直到结果为0。此时减数就是a和b的最大公约数。这一算法根据它的特点,也可以用循环语句完成。参考代码:/a放较大的数,b放较小的数IfarThena←bb←rElsea←rEndIfr←a–b/确保相减后仍用较大的数减去较小的数EndWhilePrintb用“更相减损法”求多于两个数的最大公约数就可以显示出其优越性【小结】比较辗转相除法与更相减损术的区别(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显.(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到.【追踪训练】1.分析下面一段代码的目的:Readm,nWhilem/n≠Int(m/n)c←m-Int(m/n)×nm←nn←cEndWhilePrintn(Int(x)表示不超过x的最大整数)【解】求m,n的最大公约数。2.用辗转相除法求下列各组数的最大公约数。(1)225,135;(2)98,196.3.用更相减损法求下列各组数的最大公约数。(31)72,168;(2)153,119.第50页共134页\n4.现有长度为360cm和780cm两种规格的钢筋若干.要焊接一批正方形模型.问:怎样才能保证正方体体积最大且不浪费?思路点拨:正方体的所有棱长都相等,故必须将钢筋剪裁成长度相等的钢筋条;又必须不浪费,这就说明必须剪后无剩余.于是为了保证正方体的体积最大,故剪的钢筋的最大长度为360cm和780cm的最大公约数,可用更相减损术求最大公约数.第13课时5.4算法案例重点难点重点:理解区间二分法的意义;学会分析类似的问题;通过案例分析,体会算法思想,难点:理解二分法的算法思想和算法表示第50页共134页\n学习要求1.理解区间二分法的意义,二分法主要是采用了循环结构处理问题要会分析类似的问题。2.能由流程图分析出期所含有的结构并用为代码表示出相应的算法.3.GoTo语句的认识及其他语句的进一步熟悉。【课堂互动】问题:用区间二分法写出方程在区间[1,1.5]内的一个近似解(误差不超过0.001)的一个算法。算法设计思想:令函数.如图,如果估计出方程在某区间内有一个根,就能用二分法搜索求得符合误差限制的近似解.取[a,b]的中点,如果f()=0,则就是方程的根;否则判断根在的左侧还是右侧,如果在左侧,就用[a,]代替区间[a,b]。如果在右侧,就用[,b]代替区间[a,b],如此循环下去,直到|a-b|<(c是约定的误差范围,本例中为0.001)时终止,此时≈。算法步骤:S1取[a,b]的中点,将区间一分为二;S2若,则就是方程的根;否则判断根在的左侧还是右侧:若>0,则,以代替a;若<0,则,以代替b;S3若