《高二数学复习课课件算法初步新人教.ppt》由会员分享,可在线阅读,更多相关《高二数学复习课课件算法初步新人教.ppt(121页珍藏版)》请在三一办公上搜索。
1、算法初步复习课(必修3),课件制作:大冶华中学校高中部数学组 hchdmx,第1节 算法与程序框图,1程序框图(1)程序框图又称,是一种用规定的、及 来准确、直观地表示算法的图形(2)程序框图通常由 和 组成(3)基本的程序框有、,基础知识梳理,流程线,图形,指向线,文字说明,程序框,终端框(起止框),输入、,输出框,处理框(执行框),判断框,流程图,2三种基本逻辑结构,基础知识梳理,依次执行,条件是否成立,反复执行,循环体,基础知识梳理,基础知识梳理,思考?,三种基本逻辑结构的共同点是什么?【思考提示】三种逻辑结构的共同点即只有一个入口和一个出口,每一个基本逻辑结构的每一部分都有机会被执行到
2、,而且结构内不存在死循环,感悟高考,1任何一个算法都必须有的基本结构是()A顺序结构 B条件结构C循环结构 D三个都是答案:A,三基能力强化,2下列关于算法的说法正确的有()求解某一类问题的算法是唯一的;算法必须在有限步操作之后停止;算法的每一步操作必须是明确的,不能有歧义或模糊;算法执行后产生确定的结果A1个 B2个C3个 D4个答案:C,三基能力强化,3给出如图程序框图,其功能是()A求ab的值 B求ba的值C求|ab|的值 D以上都不对答案:C,三基能力强化,4指出下列程序框图的运行结果若输入4,则输出结果_答案:是负数,三基能力强化,5(教材习题改编)已知函数y|x1|,如图程序框图表
3、示的是给定x值,求其相应函数值的算法,将该程序框图补充完整,其中处填_,处填_,三基能力强化,算法不同于求解一个具体问题的方法,它要满足以下条件:(1)写出的算法要适用于一类问题,并且再遇到类似问题时能够重复使用;(2)算法过程要做到能一步一步地执行,每一步执行的操作必须是明确有效的,不能含糊不清;,课堂互动讲练,(3)所确定的算法必须在有限步后得到问题的结果,决不能无限地进行下去,课堂互动讲练,写出解二元一次方程组,【思路点拨】本题是解二元一次方程组的问题,可先考虑解二元一次方程组的一般方法,如加减消元法,然后确定解决步骤本题算法可按三步去设计,课堂互动讲练,【解】第一步:3得10y10 第
4、二步:解得y1;第三步:将y1代入得x0.,例题1 写出解二元一次方程组,课堂互动讲练,【方法总结】解方程组的算法设计,一般可以通过相应的数学模型,把相应的数学方法分解成清晰的步骤使之条理化,把本例中的二元一次方程组改为三元一次方程组,课堂互动讲练,互动探究,解:第一步:得4x2y3 第二步:2得4xy1 第三步:得y4;,课堂互动讲练,(1)顺序结构的形式为,课堂互动讲练,(2)顺序结构是最简单的算法结构,语句和语句之间,框与框之间是按从上到下的顺序进行,课堂互动讲练,求两底面半径分别为1和4且高为4的圆台的表面积及体积,写出该问题的一个算法,并画出程序框图,【思路点拨】如图,设两底面半径分
5、别为r1、r2,高为h,母线长为l,上、下底面积分别为S1、S2,侧面积S3,表面积S,体积V,则S1r12,S2r22,S3(r1r2)l,,课堂互动讲练,【解】算法设计如下:第一步:r11,r24,h4.第五步:输出S和V.该算法的程序框图如图:,课堂互动讲练,课堂互动讲练,【解】算法设计如下:第一步:r11,r24,h4.第五步:输出S和V.该算法的程序框图如图:,【思维总结】利用公式求解问题,先写出公式,看公式中的条件是否满足,若不满足先求出需要的量,看要求的量根据哪些条件求解,需要的条件必须先输入,或将已知条件全部输入,求出未知的量,然后将公式中涉及的量全部代入求值即可,课堂互动讲练
6、,利用条件结构解决算法问题时,要引入判断框,要根据题目的要求引入一个或多个判断框,而判断框内的条件不同,对应的下一图框中的内容和操作要相应地进行变化,故要逐个分析判断框内的条件,课堂互动讲练,课堂互动讲练,到银行办理汇款(不超过10万元),银行收取一定的手续费汇款额度不超过100元,收取1元手续费;超过100元但不超过5000元,按汇款额的1%收取;超过5000元,一律收取50元设计一个描述汇款额为x元,银行收取手续费y元的算法,并画出相应的程序框图,【思路点拨】,课堂互动讲练,到银行办理汇款(不超过10万元),银行收取一定的手续费汇款额度不超过100元,收取1元手续费;超过100元但不超过5
7、000元,按汇款额的1%收取;超过5000元,一律收取50元设计一个描述汇款额为x元,银行收取手续费y元的算法,并画出相应的程序框图,【解】由题意可知,y,课堂互动讲练,到银行办理汇款(不超过10万元),银行收取一定的手续费汇款额度不超过100元,收取1元手续费;超过100元但不超过5000元,按汇款额的1%收取;超过5000元,一律收取50元设计一个描述汇款额为x元,银行收取手续费y元的算法,并画出相应的程序框图,算法如下:第一步,输入x.第二步,若0 x100,则y1;否则执行第三步第三步,若x5000,则y1%x;否则y50.第四步,输出y.程序框图如图所示:,课堂互动讲练,【解】由题意
8、可知,y,课堂互动讲练,算法如下:第一步,输入x.第二步,若0 x100,则y1;否则执行第三步第三步,若x5000,则y1%x;否则y50.第四步,输出y.程序框图如图所示:,【规律小结】解决分段函数的求值问题时,一般采用条件结构设计算法利用条件结构解决算法问题时,要引入判断框,要根据题目的要求引入一个或多个判断框而判断框内的条件不同,对应的下一图框中的内容和操作要相应地进行变化,故要逐个分析判断框内的条件,课堂互动讲练,循环结构有两种形式,即当型和直到型这两种形式的循环结构在执行流程上有所不同,当型循环是当条件满足时执行循环体,不满足时退出循环体;而直到型循环则是当条件不满足时执行循环体,
9、满足时退出循环体,课堂互动讲练,课堂互动讲练,(解题示范)(本题满分12分)某企业2009年的生产总值为200万元,技术创新后预计以后每年的生产总值将比上一年增加5%,问最早哪一年的年生产总值将超过300万元?试写出解决该问题的一个算法,并画出相应的程序框图,【思路点拨】设第n年后该企业生产总值为a,则a200(10.05)n,此时为2009n年,课堂互动讲练,【解】算法设计如下:第一步,n0,a200,r0.05.第二步,Tar(计算年增量)第三步,aaT(计算年产量)3分第四步,如果a300.那么nn1,重复执行第二步,如果a300,则执行第五步第五步,N2009n.第六步,输出N.6分程
10、序框图如下:12分,课堂互动讲练,课堂互动讲练,【解】算法设计如下:第一步,n0,a200,r0.05.第二步,Tar(计算年增量)第三步,aaT(计算年产量)3分第四步,如果a300.那么nn1,重复执行第二步,如果a300,则执行第五步第五步,N2009n.第六步,输出N.6分程序框图如下:12分,【名师点评】设计循环结构应注意的几个问题循环条件:循环条件设定时要注意和题设相符合,如由不等式限定的条件,要注意是“”,“”,“”或“”,课堂互动讲练,循环体:设定循环体时,要注意所给条件的规律,然后选择合适的累加变量、累积变量或计数变量,并注意变量初始值的确定首末循环:设计循环体时,一定要注意
11、首次循环和末次循环的结果是否与题设吻合,以免“多算”或“漏算”,课堂互动讲练,(本题满分12分)设计一个计算13599的算法,并画出相应的程序框图,课堂互动讲练,解:算法如下:第一步,输入S1.第二步,输入i1.第三步,SSi.第四步,ii2.第五步,如果i99,则执行下一步,否则返回执 行第三步第六步,输出S.6分程序框图如下图所示:12分,课堂互动讲练,(本题满分12分)设计一个计算13599的算 法,并画出相应的程序框图,高考检阅,课堂互动讲练,解:算法如下:第一步,输入S1.第二步,输入i1.第三步,SSi.第四步,ii2.第五步,如果i99,则执行下一步,否则返回执行第三步第六步,输
12、出S.6分程序框图如下图所示:12分,1画程序框图之前应先对问题设计出合理的算法,然后分析算法的逻辑结构,根据逻辑结构画出相应的程序框图2条件分支结构主要用在一些需要依据条件进行判断的算法中,如分段函数的求值,数据的大小关系等问题循环结构主要用在一些有规律的重复计算的算法中,如累加求和,累乘求积等问题,规律方法总结,3在循环结构中,要注意根据条件,设计合理的计数变量,累加变量等,特别要注意循环结构中条件的表述要恰当、精确,以免出现多一次循环或少一次循环的情况,规律方法总结,二、基本算法语句与算法案例1输入语句(1)输入语句的一般格式是:INPUT“提示内容”;变量(2)输入语句的作用是实现算法
13、的输入信息功能(3)“提示内容”提示用户输入什么样的信息(4)变量是指程序在运行时其值可以变化的量(5)输入语句要求输入的值只能是具体的常数,不能是函数、变量或表达式(6)提示内容与变量之间用分号“;”隔开,可以一次为一个或多个变量赋值,若输入多个变量,变量与变量之间用“,”隔开,2输出语句(1)输出语句的一般格式是:PRINT“提示内容”;表达式(2)输出语句的作用是实现算法的输出结果功能(3)“提示内容”提示用户输出什么样的信息(4)表达式是指程序要输出的数据(5)输出语句可以输出常量、变量或表达式的值以及字符,3赋值语句用来表明赋给某一个变量一个具体的确定值的语句叫做赋值语句(1)赋值语
14、句的一般格式是:变量表达式(2)赋值语句的作用是:先计算出赋值号右边表达式的值,然后把该值赋给赋值号左边的变量,使该变量的值等于表达式的值赋值号左边只能是变量名字,而不是表达式.赋值号左右不能对换赋值语句是将赋值号右边的表达式的值赋给赋值号左边的变量不能利用赋值语句进行代数式的演算,赋值语句中的“”号,称做赋值号赋值号与数学中的等号的意义不同赋值号左边的变量如果原来没有值,则在执行赋值语句后获得一个值,如果原已有值,则执行该语句后,以赋值号右边的表达式的值代替该变量的原值对于一个变量可以多次赋值,变量总是取最后赋出的值一个赋值语句只能给一个变量赋值,不能出现两个或多个“”“表达式”可以是一个数
15、据、常量和算式,如果“表达式”是一个算式时,赋值语句的作用是先计算出“”右边表达式的值,然后将该值赋给“”左边的变量,4条件语句处理条件分支逻辑结构的算法语句,叫做条件语句(1)条件语句的一般格式IF条件THEN 语句序列1;ELSE语句序列2;END IF计算机执行这种格式的条件语句时,如果表达式结果为真,则执行条件表达式后的语句序列1;当表达式结果为假时,执行ELSE后面的语句序列2,不管执行语句序列1还是语句序列2,执行完后跳到END IF后执行,其对应的程序框图如图所示,(2)条件语句的简单格式IF条件THEN语句序列;END IF其对应的框图如图计算机执行这种格式的条件语句时,先对表
16、达式的结果进行判断,若表达式结果为真,则执行表达式后面的语句序列,否则直接跳过语句序列,执行END IF后的其它语句条件语句后必须用END IF结尾,(3)条件语句的嵌套在某些较为复杂的算法中,有时需要按条件要求执行某一语句(特别是ELSE后的语句)后,继续按照另一条件进行判断,这时可以再利用条件语句完成这一要求,这就形成了条件语句的嵌套,其一般形式是:IF条件1THEN 语句序列1;ELSE IF条件2THEN 语句序列2;ELSE 语句序列3;END IF END IF,编写嵌套条件语句、可分块处理识读程序时,可用文字缩进来表示嵌套的层次5循环语句(1)在算法程序语言中,处理一些需要反复执
17、行的运算任务,如累加求和,累乘求积,递推等问题时,常常要用循环语句编写程序(2)循环语句的格式WHILE(当型循环)语句,WHILE语句的一般格式是,其中循环体是由计算机反复执行的一组语句组成的,WHILE后面的“条件”是用于控制计算机执行循环体还是跳出循环体的当条件满足时,就执行条件和WEND之间的循环体,然后再检查上述条件,若条件仍符合,再次执行循环体,这个过程反复执行,直到某一次条件不符合为止,这时计算机将不再执行循环体,而是跳到WEND语句后,执行WEND语句后的其它语句,UNTIL(直到型循环)语句UNTIL语句的一般格式是 计算机执行该语句时,先执行一次循环体,然后进行条件的判断,
18、若条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到LOOP UNTIL语句后执行其它语句,两种循环语句格式的区别在WHILE语句中,是当条件满足时执行循环体,而在UNTIL语句中,是当条件不满足时执行循环体当型循环先判断后执行,直到型循环先执行后判断当型循环语句中,要注意WHILE与WEND的配对,6辗转相除法与更相减损术(1)用两数中较大的数减去较小的数,再用所得差和较小数构成新的一对数,再用大数减小数,以同样的操作一直做下去,直到所得的两数相等为止,这个数就是这两个数的最大公约数这个方法称作“更相减损术”,用它编写的算法称作
19、“等值算法”更相减损术求最大公约数的程序设计如下:,INPUT“a,b”;a,bWHILEab IFabTHENaab ELSEbba END IFWENDPRINTaEND,(2)古希腊求两个正整数的最大公约数的方法是辗转相除法:用较大的数除以较小的数所得的余数和较小的数构成新的一对数,继续做上面的除法,直到大数被小数除尽,这个较小的数就是最大公约数据此编写的算法,也称作“欧几里得算法”对于正整数a与b(ab),总能找到整数q和r(0rb)使得abqr成立,这个算式称为带余除法通常记作raMODb.辗转相除法的程序框图,辗转相除法求两个数的最大公约数的程序设计:INPUT“a,b”;a,b
20、IFabTHEN ta ab bt END IF DOra MOD babbr LOOP UNTIL r0 PRINTa END,7秦九韶算法(1)对于n次多项式f(x)anxnan1xn1a1xa0改写成如下形式:f(x)(anxan1)xan2)xa1)xa0求多项式的值时,首先计算最内层括号内一次多项式的值,然后由内向外逐层计算一次多项式的值这样通过一次式的反复运算,逐步得出高次多项式的值的方法称作秦九韶算法,(2)程序框图:(3)算法语句:INPUT“n”;nINPUT“an”;aINPUT“x”;xvain1WHILEi0INPUT“ai”;avv*xaii1WENDPRINTv,8
21、进位制(1)进位制是人们为了计数和运算方便而约定的记数系统“满十进一”就是十进制,“满二进一”就是二进制,“满k进一”就是k进制,k进制的基数是k,因此k进制需要使用k个数字(2)若k是一个大于1的整数,以k为基数的k进制数可以表示为一串数字连写在一起的形式:anan1a1a0(k)(0ank,0an1,a1,a0k)其中右下角括号内的数字k表明此数是k进制数,十进制的基数不标注,(3)十进制数与k进制数可以相互转换把k进制数化为十进制数的方法是:先把这个k进制数写成用各位上的数字与k的幂的乘积之和的形式,再按照十进制数的运算规则计算出结果如anan1a2a1a0(k)anknan1kn1a2k2a1ka0.其中要注意的是,k的幂的最高次数应是该k进制的位数减去1,然后逐个减小1,最后是0次幂将十进制化为k进制数的方法叫除k取余法即用k连续去除该十进制数或所得的商,直到商是零为止,然后把每次所得的余数倒着排成一个数,就是相应的k进制数例如,把十进制数化为二进制数的方法是除2取余法,把k进制数a(共有n位)转换成十进制数的算法程序:INPUT“a,k,n”;a,k,nb0i1ta MOD 10DObbt*k(i1)aa10ta MOD 10ii1LOOP UNTILinPRINTbEND.,例题选讲,2011年高考选讲,三基能力强化,算法语句,三年模拟,