2022年算法案例教案 .pdf

上传人:Q****o 文档编号:25198789 上传时间:2022-07-10 格式:PDF 页数:12 大小:208.81KB
返回 下载 相关 举报
2022年算法案例教案 .pdf_第1页
第1页 / 共12页
2022年算法案例教案 .pdf_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《2022年算法案例教案 .pdf》由会员分享,可在线阅读,更多相关《2022年算法案例教案 .pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、优秀教案欢迎下载课题: 13 算法案例第 1 课时辗转相除法与更相减损术、秦九韶算法一、教学目标:根据课标要求:在学生学习了算法的初步知识,理解了表示算法的算法步骤、程序框图和程序三种不同方式以后,再结合典型算法案例,让学生经历设计算法解决问题的全过程,体验算法在解决问题中的重要作用,体会算法的基本思想,提高逻辑思维能力,发展有条理地思考与数学表达能力。制定以下三维目标:1、知识与技能理解算法案例的算法步骤和程序框图. 2、过程与方法:引导学生得出自己设计的算法程序. 3、情感态度与价值观:体会算法的基本思想,提高逻辑思维能力,发展有条理地思考与数学表达能力. 二、重点与难点:重点: 引导学生

2、得出自己设计的算法步骤、程序框图和算法程序. 解决策略: 通过分析解决具体问题的算法步骤来引导学生写出算法,根据算法画出程序框图,再根据框图用规范的语言写出程序。难点: 体会算法的基本思想,提高逻辑思维能力,发展有条理地思考与数学表达能力. 解决策略: 让学生能严谨地按照自己是程序框图写出程序。三、学法与教学用具:1、学法:直观感知、操作确认。2、教学用具:多媒体。四、教学过程(一)引入课题大家喜欢打乒乓球吧,由于东、西方文化及身体条件的不同,西方人喜欢横握拍打球,东方人喜欢直握拍打球,对于同一个问题,东、西方人处理问题方式是有所不同的. 在小学,我们学过求两个正整数的最大公约数的方法:先用两

3、个数公有的质因数连续去除,一直除到所得的商是互质数为止,然后把所有的除数连乘起来. 当两个数公有的质因数较大精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 12 页优秀教案欢迎下载时(如与 6 105) ,使用上述方法求最大公约数就比较困难. 下面我们介绍两种不同的算法辗转相除法与更相减损术, 由此可以体会东、西方文化的差异. (二)研探新知(1)怎样用短除法求最大公约数?(2)怎样用穷举法(也叫枚举法)求最大公约数?(3)怎样用辗转相除法求最大公约数?(4)怎样用更相减损术求最大公约数?讨论结果:(1)短除法求两个正整数的最大公约数的

4、步骤:先用两个数公有的质因数连续去除,一直除到所得的商是两个互质数为止,然后把所有的除数连乘起来. (2)穷举法(也叫枚举法)穷举法求两个正整数的最大公约数的解题步骤:从两个数中较小数开始由大到小列举,直到找到公约数立即中断列举,得到的公约数便是最大公约数. (3)辗转相除法辗转相除法求两个数的最大公约数,其算法步骤可以描述如下:第一步,给定两个正整数m ,n. 第二步,求余数r :计算 m除以 n,将所得余数存放到变量r 中. 第三步,更新被除数和余数:m=n ,n=r. 第四步,判断余数r 是否为 0. 若余数为0,则输出结果;否则转向第二步继续循环执行. 如此循环,直到得到结果为止. 这

5、种算法是由欧几里得在公元前300 年左右首先提出的,因而又叫欧几里得算法. (4)更相减损术我国早期也有解决求最大公约数问题的算法,就是更相减损术. 九章算术是中国古代的数学专著, 其中的“更相减损术”也可以用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也. 以等数约之 . ”翻译为现代语言如下:第一步,任意给定两个正整数,判断它们是否都是偶数,若是,用2 约简;若不是,执行第二步,以较大的数减去较小的数,接着把所得的差与较小的数比较,并以大数减小数,继续这个操作,直到所得的数相等为止,则这个数(等数)或这个数与约简的数的乘积就是所求的最大公约

6、数. (三)范例分析精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 12 页优秀教案欢迎下载例 1 用辗转相除法求8 251 与 6 105 的最大公约数 , 写出算法分析,画出程序框图,写出算法程序 .解: 用两数中较大的数除以较小的数,求得商和余数:8 251= 6 1051+2 146.由此可得, 6 105 与 2 146 的公约数也是8 251 与 6 105 的公约数,反过来,8 251 与 6 105的公约数也是6 105 与 2 146 的公约数,所以它们的最大公约数相等. 对 6 105 与 2 146 重复上述步骤:

7、 6 105=2 146 2+1 813.同理, 2 146 与 1 813 的最大公约数也是6 105 与 2 146 的最大公约数 . 继续重复上述步骤:2 146=1 813 1+333,1 813=3335+148,333=1482+37,148=374.最后的除数37 是 148 和 37 的最大公约数,也就是8 251 与 6 105 的最大公约数. 这就是辗转相除法. 由除法的性质可以知道,对于任意两个正整数,上述除法步骤总可以在有限步之后完成,从而总可以用辗转相除法求出两个正整数的最大公约数. 算法分析: 从上面的例子可以看出,辗转相除法中包含重复操作的步骤,因此可以用循环结构

8、来构造算法. 算法步骤如下:第一步,给定两个正整数m ,n. 第二步,计算m除以 n 所得的余数为r. 第三步, m=n ,n=r. 第四步,若r=0,则 m ,n 的最大公约数等于m ;否则,返回第二步. 程序框图如右图:程序:INPUT m,n DO r=m MOD n m=n n=r LOOP UNTIL r=0 PRINT m END 例 2 用更相减损术求98 与 63 的最大公约数.精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 12 页优秀教案欢迎下载解: 由于 63 不是偶数,把98 和 63 以大数减小数,并辗转相减,

9、如下图所示. 98-63=35 63-35=28 35-28=7 28-7=21 21-7=14 14-7=7 所以, 98 和 63 的最大公约数等于7. 前面我们学习了辗转相除法与更相减损术,现在我们来学习一种新的算法:秦九韶算法. (1)怎样求多项式f(x)=x5+x4+x3+x2+x+1 当 x=5 时的值呢?一个自然的做法就是把5 代入多项式f(x),计算各项的值,然后把它们加起来,这时,我们一共做了1+2+3+4=10 次乘法运算, 5 次加法运算 . 另一种做法是先计算x2的值,然后依次计算x2x, ( x2x)x,( (x2x)x)x 的值,这样每次都可以利用上一次计算的结果,

10、这时,我们一共做了4 次乘法运算, 5 次加法运算 . 第二种做法与第一种做法相比,乘法的运算次数减少了,因而能够提高运算效率,对于计算机来说, 做一次乘法运算所用的时间比做一次加法运算要长得多,所以采用第二种做法,计算机能更快地得到结果. (2)上面问题有没有更有效的算法呢?我国南宋时期的数学家秦九韶(约 12021261)在他的著作数书九章中提出了下面的算法:把一个 n 次多项式f(x)=anxn+an-1xn-1+a1x+a0改写成如下形式:f(x)=anxn+an-1xn-1+a1x+a0=(anxn-1+an-1xn-2+a1) x+ a0=( (anxn-2+an-1xn-3+a2

11、)x+a1)x+a0=(anx+an-1)x+an-2)x+a1)x+a0. 求多项式的值时,首先计算最内层括号内一次多项式的值,即v1=anx+an-1,然后由内向外逐层计算一次多项式的值,即v2=v1x+an-2,v3=v2x+an-3,vn=vn-1x+a0,精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 12 页优秀教案欢迎下载这样,求n次多项式f (x)的值就转化为求n 个一次多项式的值. 上述方法称为秦九韶算法. 直到今天,这种算法仍是多项式求值比较先进的算法. ( 3)计算机的一个很重要的特点就是运算速度快,但即便如此,算

12、法好坏的一个重要标志仍然是运算的次数. 如果一个算法从理论上需要超出计算机允许范围内的运算次数,那么这样的算法就只能是一个理论的算法. 例 3 已知一个5 次多项式为f(x)=5x5+2x4+3.5x3-2.6x2+1.7x-0.8,用秦九韶算法求这个多项式当x=5 时的值 .解: 根据秦九韶算法,把多项式改写成如下形式:f(x)=((5x+2)x+3.5)x-2.6)x+1.7)x-0.8,按照从内到外的顺序,依次计算一次多项式当x=5 时的值:v0=5;v1=55+2=27;v2=275+3.5=138.5;v3=138.55-2.6=689.9; v4=689.95+1.7=3 451

13、.2; v5=3 415.2 5 -0.8=17 255.2; 所以,当x=5 时,多项式的值等于17 255.2. 算法分析:观察上述秦九韶算法中的n个一次式,可见 vk的计算要用到vk-1的值, 若令 v0=an,我们可以得到下面的公式:).,2, 1(,10nkaxvvavknkkn这是一个在秦九韶算法中反复执行的步骤,因此可用循环结构来实现. 算法步骤如下:第一步,输入多项式次数n、最高次的系数an和 x 的值 . 第二步,将v 的值初始化为an,将 i 的值初始化为n-1. 第三步,输入i 次项的系数ai. 第四步, v=vx+ai,i=i-1. 第五步,判断i 是否大于或等于0.

14、若是,则返回第三步;否则,输出多项式的值v. 程序框图如右图:程序:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 12 页优秀教案欢迎下载INPUT “n=”; n INPUT “an=”; a INPUT “x=”; x v=a i=n-1 WHILE i =0 PRINT “i= ”; i INPUT “ai= ”; a v=v*x+a i=i-1 WEND PRINT v END (四)随堂练习P45练习 1 、 2 (五)归纳总结(1)用辗转相除法求最大公约数. (2)用更相减损术求最大公约数. (3) . 秦九韶算法的方法和

15、步骤. 以及计算机程序框图. (六)作业布置1、P48 习题 1.3 A组 1、2 2、完成课后巩固作业(八)五、教学反思:_ _精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 12 页优秀教案欢迎下载1.3 算法案例第 2 课时进位制一、教学目标:根据课标要求:掌握不同进制之间的相互转化,会用程序描述不同进制之间的转化,体会数学的转化思想,制定以下三维目标:1、知识与技能学生理解各种进位制与十进制之间转换的规律,会利用十进制与各种进制之间的联系进行各种进位制之间的转换。2、过程与方法学生经历得出各种进位制与十进制之间转换的规律的过程,

16、进一步掌握进位制之间转换的方法。3、情感、态度与价值观学生通过合作完成任务后,领悟十进制,二进制的特点,了解计算机的电路与二进制的联系,进一步认识到计算机与数学的联系,培养他们的合作精神和严谨的态度。二、教学重点、难点重点:各进位制之间的转换。解决策略:让学生弄懂各进位制的特点和联系,再搭配习题讲解。难点:“除 k 取余法”的理解。解决策略:先给出具体的例子讲解,再延伸到一般的情况。三、学法与教学用具1、学法:讲授法、归纳法、讨论法。2、教学用具:多媒体,投影仪四、教学过程(一)引入课题在日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采用七进制、

17、十二进制、六十进制,至今我们仍然使用一周七天、一年十二个月、一小时六十分的历法. 今天我们来学习一下进位制. (二)研探新知精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 12 页优秀教案欢迎下载进位制是人们为了计数和运算方便而约定的计数系统,约定满二进一,就是二进制;满十进一,就是十进制;满十二进一,就是十二进制;满六十进一,就是六十进制等等. 也就是说:“满几进一”就是几进制,几进制的基数(都是大于1 的整数)就是几. 在日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采用七进制、十二进

18、制、六十进制,至今我们仍然使用一周七天、一年十二个月、一小时六十分的历法. 十进制使用0 9 十个数字 . 计数时,几个数字排成一行,从右起,第一位是个位,个位上的数字是几,就表示几个一;第二位是十位,十位上的数字是几,就表示几个十;接着依次是百位、千位、万位例如:十进制数3 721 中的 3 表示 3 个千, 7 表示 7 个百, 2 表示 2 个十, 1 表示 1 个一 .于是,我们得到下面的式子:3 721=3103+7102+2101+1100. 与十进制类似,其他的进位制也可以按照位置原则计数. 由于每一种进位制的基数不同,所用的数字个数也不同. 如二进制用0 和 1 两个数字,七进

19、制用06七个数字 . 一般地,若k 是一个大于1 的整数,那么以k 为基数的k 进制数可以表示为一串数字连写在一起的形式 anan-1a1a0(k) (0ank,0an-1, a1,a0k). 其他进位制的数也可以表示成不同位上数字与基数的幂的乘积之和的形式,如110 011(2)=125+124+023+022+121+120,7 342(8)=783+382+481+280. 非十进制数转换为十进制数比较简单,只要计算下面的式子值即可:anan-1a1a0(k)=ankn+an-1kn-1+a1k+a0. 第一步:从左到右依次取出k 进制数 anan-1a1a0(k) 各位上的数字,乘以相

20、应的k 的幂, k的幂从 n 开始取值,每次递减1,递减到0,即 ankn,an-1kn-1, ,a1k,a0k0;第二步:把所得到的乘积加起来,所得的结果就是相应的十进制数. 关于进位制的转换,教科书上以十进制和二进制之间的转换为例讲解,并推广到十进制和其他进制之间的转换. 这样做的原因是,计算机是以二进制的形式进行存储和计算数据的,精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 12 页优秀教案欢迎下载而一般我们传输给计算机的数据是十进制数据,因此计算机必须先将十进制数转换为二进制数,再处理,显然运算后首次得到的结果为二进制数,同时

21、计算机又把运算结果由二进制数转换成十进制数输出. 1十进制数转换成非十进制数把十进制数转换为二进制数,教科书上提供了“除2 取余法”,我们可以类比得到十进制数转换成k 进制数的算法“除k 取余法”.2非十进制之间的转换一个自然的想法是利用十进制作为桥梁. 教科书上提供了一个二进制数据与16进制数据之间的互化的方法,也就是先由二进制数转化为十进制数,再由十进制数转化成为16 进制数. (三)范例分析例 1 把二进制数110 011(2)化为十进制数.解: 110 011(2)=125+124+023+022+121+120=132+116+12+1=51.点评: 先把二进制数写成不同位上数字与2

22、 的幂的乘积之和的形式,再按照十进制的运算规则计算出结果. 例 2 设计一个算法,把k 进制数 a(共有 n 位)化为十进制数b. 算法分析: 从例 1 的计算过程可以看出,计算k 进制数 a 的右数第i 位数字 ai与 ki-1的乘积 aiki-1,再将其累加,这是一个重复操作的步骤. 所以,可以用循环结构来构造算法. 算法步骤如下:第一步,输入a, k 和 n 的值 . 第二步,将b 的值初始化为0,i 的值初始化为1. 第三步, b=b+aiki-1,i=i+1. 第四步,判断i n是否成立 . 若是,则执行第五步;否则,返回第三步. 第五步,输出b 的值 . 程序框图如右图:程序:IN

23、PUT “a,k ,n=”; a,k,n 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 12 页优秀教案欢迎下载b=0 i=1 t=a MOD 10 DO b=b+t*k( i-1 ) a=a10 t=a MOD 10 i=i+1 LOOP UNTIL i n PRINT b END 例 3 把 89 化为二进制数.解: 根据二进制数“满二进一”的原则,可以用2 连续去除89 或所得商,然后取余数.具体计算方法如下:因为 89=244+1,44=222+0,22=211+0,11=25+1,5=22+1,2=21+0,1=20+1,所

24、以89=2(2(2(2(22+1)+1)+0)+0)+1 =2(2(2(2(22+1)+1)+0)+0)+1 =126+025+124+123+022+021+120=1 011 001(2). 这种算法叫做除2 取余法,还可以用右边的除法算式表示:把上式中各步所得的余数从下到上排列,得到89=1 011 001(2). 上述方法也可以推广为把十进制数化为k 进制数的算法,称为除k 取余法 . 例 4 设计一个程序,实现“除k 取余法”.算法分析: 从例 2 的计算过程可以看出如下的规律:若十制数a除以 k 所得商是q0,余数是 r0,即 a=kq0+r0,则 r0是 a 的 k 进制数的右数

25、第精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 12 页优秀教案欢迎下载1 位数 . 若 q0除以 k 所得的商是q1,余数是r1,即 q0=kq1+r1,则 r1是 a 的 k 进制数的左数第2位数 . 若 qn-1除以 k 所得的商是0,余数是rn,即 qn-1=rn,则 rn是 a 的 k 进制数的左数第1 位数 . 这样,我们可以得到算法步骤如下:第一步,给定十进制正整数a 和转化后的数的基数k. 第二步,求出a 除以 k 所得的商q,余数 r. 第三步,把得到的余数依次从右到左排列. 第四步,若q0,则 a=q,返回第二步

26、;否则,输出全部余数r 排列得到的k 进制数 . 程序框图如右图:程序:INPUT “a,k=”; a,k b=0 i=0 DO q=ak r=a MOD k b=b+r*10i i=i+1 a=q LOOP UNTIL q=0 PRINT b END (四)随堂练习1、将十进制数34 转化为二进制数解:即 34(10)=100 010(2)2、把 1 234(5)分别转化为十进制数和八进制数精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 12 页优秀教案欢迎下载解: 1 234(5)=153+252+35+4 194则 1 234(5)=302(8)所以, 1 234(5)=194302(8)点评: 本题主要考查进位制以及不同进位制数的互化五进制数直接利用公式就可以转化为十进制数;五进制数和八进制数之间需要借助于十进制数来转化(五)归纳总结(1)理解算法与进位制的关系. (2)熟练掌握各种进位制之间转化. (六)作业布置 1、 习题 1.3A 组 3、4. 2、完成课后巩固作业(九)五、教学反思:_ _精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 12 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁