《2022年算法案例教案.docx》由会员分享,可在线阅读,更多相关《2022年算法案例教案.docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选学习资料 - - - - - - - - - 优秀教案 欢迎下载课题:13 算法案例第 1 课时 辗转相除法与更相减损术、秦九韶算法一、教学目标:依据课标要求:在同学学习了算法的初步学问,懂得了表示算法的算法步骤、程序框图和程序三种不同方式以后,再结合典型算法案例,让同学经受设运算法解决问题的全过程,体验算法在解决问题中的重要作用,体会算法的基本思想,提高规律思维才能,进展有条理地摸索与数学表达才能;制定以下三维目标:1、学问与技能懂得算法案例的算法步骤和程序框图 . 2、过程与方法:引导同学得出自己设计的算法程序 . 3、情感态度与价值观:体会算法的基本思想,提高规律思维才能,进展有条理
2、地摸索与数学表达才能 . 二、重点与难点:重点: 引导同学得出自己设计的算法步骤、程序框图和算法程序 . 解决策略: 通过分析解决详细问题的算法步骤来引导同学写出算法,依据算法画出程序框图,再依据框图用规范的语言写出程序;难点: 体会算法的基本思想,提高规律思维才能,进展有条理地摸索与数学表达才能 . 解决策略: 让同学能严谨地依据自己是程序框图写出程序;三、学法与教学用具:1、学法:直观感知、操作确认;2、教学用具:多媒体;四、教学过程(一)引入课题大家喜爱打乒乓球吧,由于东、西方文化及身体条件的不同,西方人喜爱横握拍打球,东方人喜爱直握拍打球,对于同一个问题,东、西方人处理问题方式是有所不
3、同的 . 在小学,我们学过求两个正整数的最大公约数的方法:先用两个数公有的质因数连续去除,一直除到所得的商是互质数为止,然后把全部的除数连乘起来. 当两个数公有的质因数较大名师归纳总结 - - - - - - -第 1 页,共 12 页精选学习资料 - - - - - - - - - 优秀教案 欢迎下载时(如 与 6 105),使用上述方法求最大公约数就比较困难 . 下面我们介绍两种不同的算法辗转相除法与更相减损术 , 由此可以体会东、西方文化的差异 . (二)研探新知(1)怎样用短除法求最大公约数?(2)怎样用穷举法(也叫枚举法)求最大公约数?(3)怎样用辗转相除法求最大公约数?(4)怎样用
4、更相减损术求最大公约数?争论结果:(1)短除法求两个正整数的最大公约数的步骤:先用两个数公有的质因数连续去除,始终除到所得的商是两个互质数为止,然后把全部的除数连乘起来 . (2)穷举法(也叫枚举法)穷举法求两个正整数的最大公约数的解题步骤:从两个数中较小数开头由大到小列举,直到找到公约数立刻中断列举,得到的公约数便是最大公约数 . (3)辗转相除法辗转相除法求两个数的最大公约数,其算法步骤可以描述如下:第一步,给定两个正整数 m,n. 其次步,求余数 r :运算 m除以 n,将所得余数存放到变量 r 中. 第三步,更新被除数和余数:m=n,n=r. 第四步,判定余数 r 是否为 0. 如余数
5、为 0,就输出结果;否就转向其次步连续循环执行 . 如此循环,直到得到结果为止 . 这种算法是由欧几里得在公元前 300 年左右第一提出的,因而又叫欧几里得算法 . (4)更相减损术我国早期也有解决求最大公约数问题的算法,就是更相减损术. 九章算术是中国古代的数学专著, 其中的“ 更相减损术” 也可以用来求两个数的最大公约数,即“ 可半者半之,不行半者,副置分母、子之数,以少减多,更相减损,求其等也 代语言如下:. 以等数约之 . ” 翻译为现第一步,任意给定两个正整数,判定它们是否都是偶数,如是,用 2 约简;如不是,执行其次步,以较大的数减去较小的数,接着把所得的差与较小的数比较,并以大数
6、减小数,连续这个操作,直到所得的数相等为止,就这个数(等数)或这个数与约简的数的乘积就是所求的最大公约数 . (三)范例分析名师归纳总结 - - - - - - -第 2 页,共 12 页精选学习资料 - - - - - - - - - 优秀教案 欢迎下载例 1 用辗转相除法求 8 251 与 6 105 的最大公约数 , 写出算法分析,画出程序框图,写出算法程序 .解: 用两数中较大的数除以较小的数,求得商和余数:8 251= 6 105 1+2 146.由此可得, 6 105 与 2 146 的公约数也是 8 251 与 6 105 的公约数,反过来,8 251 与 6 105的公约数也是
7、 6 105 与 2 146 的公约数,所以它们的最大公约数相等 . 对 6 105 与 2 146 重复上述步骤: 6 105=2 146 2+1 813.同理, 2 146 与 1 813 的最大公约数也是 2 146=1 813 1+333,1 813=333 5+148,333=148 2+37,148=37 4.6 105 与 2 146 的最大公约数 . 连续重复上述步骤:最终的除数 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 页- - - - - - -
9、精选学习资料 - - - - - - - - - 解: 由于 63 不是偶数,把优秀教案欢迎下载. 98 和 63 以大数减小数,并辗转相减,如下图所示98-63=35 63-35=28 35-28=7 28-7=21 21-7=14 14-7=7 所以, 98 和 63 的最大公约数等于 7. 前面我们学习了辗转相除法与更相减损术,现在我们来学习一种新的算法:秦九韶算法 . (1)怎样求多项式 fx=x 5+x 4+x 3+x 2+x+1 当 x=5 时的值呢?一个自然的做法就是把 5 代入多项式 fx,运算各项的值,然后把它们加起来,这时,我们一共做了 1+2+3+4=10 次乘法运算,
10、5 次加法运算 . 另一种做法是先运算 x 2 的值,然后依次运算 x 2 x,( x 2 x)x,(x 2 x)x) x 的值,这样每次都可以利用上一次运算的结果,这时,我们一共做了 4 次乘法运算, 5 次加法运算 . 其次种做法与第一种做法相比,乘法的运算次数削减了,因而能够提高运算效率,对于计算机来说, 做一次乘法运算所用的时间比做一次加法运算要长得多,所以采纳其次种做法,运算机能更快地得到结果 . (2)上面问题有没有更有效的算法呢?我国南宋时期的数学家秦九韶(约 12021261)在他的著作数书九章中提出了下面的算法:把一个 n 次多项式 fx=a nx n+an-1x n-1+
11、+a 1x+a0 改写成如下形式:fx=a nx n+an-1x n-1+ +a 1x+a 0=(anx n-1+an-1 x n-2 + +a1) x+ a 0=(anx n-2+an-1x n-3 + +a2)x+a 1x+a 0=( (anx+an-1 )x+a n-2)x+ +a 1)x+a0. 求多项式的值时,第一运算最内层括号内一次多项式的值,即 v1=anx+an-1,然后由内向外逐层运算一次多项式的值,即v2=v1x+an-2 ,v3=v2x+an-3 ,vn=vn-1 x+a0,名师归纳总结 - - - - - - -第 4 页,共 12 页精选学习资料 - - - - -
12、- - - - 优秀教案 欢迎下载这样,求 n 次多项式 f (x)的值就转化为求 n 个一次多项式的值 . 上述方法称为秦九韶算法 . 直到今日,这种算法仍是多项式求值比较先进的算法 . ( 3)运算机的一个很重要的特点就是运算速度快,但即便如此,算法好坏的一个重要标志仍旧是运算的次数 . 假如一个算法从理论上需要超出运算机答应范畴内的运算次数,那么这样的算法就只能是一个理论的算法 . 例 3 已知一个 5 次多项式为 f (x)=5x 5+2x 4+3.5x 3-2.6x 2+1.7x-0.8,用秦九韶算法求这个多项式当 x=5 时的值 .解: 依据秦九韶算法,把多项式改写成如下形式:fx
13、=(5x+2x+3.5x-2.6x+1.7x-0.8,x=5 时的值:依据从内到外的次序,依次运算一次多项式当v0=5;v1=5 5+2=27;v2=27 5+3.5=138.5;v3=138.5 5 -2.6=689.9; v4=689.9 5+1.7=3 451 .2; v5=3 415.2 5 -0.8=17 255.2; 所以,当x=5 时,多项式的值等于17 255.2. vk-1 的值,如令 v 0=an,算法分析:观看上述秦九韶算法中的n 个一次式,可见 v k的运算要用到我们可以得到下面的公式:v 0 a n ,v k v k 1 x a n k k ,1 2 , , n .这
14、是一个在秦九韶算法中反复执行的步骤,因此可用循环结构来实现 . 算法步骤如下:第一步,输入多项式次数 n、最高次的系数 an和 x 的值 . 其次步,将 v 的值初始化为 an,将 i 的值初始化为 n-1. 第三步,输入 i 次项的系数 ai . 第四步, v=vx+a i,i=i-1. 第五步,判定 i 是否大于或等于 0. 如是,就返回第三步;否就,输出多项式的值 v. 程序框图如右图:程序:名师归纳总结 - - - - - - -第 5 页,共 12 页精选学习资料 - - - - - - - - - 优秀教案 欢迎下载INPUT “ n=” ; n INPUT “ an=” ; a
15、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) . 秦九韶算法的方法和步骤. 以及运算机程序框图(六)作业布置1、P48 习题 1.3 A组 1、2 2、完成课后巩固作业(八)五、教学反思:_ _名师归纳总结 - - - - - - -第 6 页,共 12 页精选学习资料 - - - - - - - -
16、- 1.3 算法案例优秀教案欢迎下载第 2 课时进位制一、教学目标:依据课标要求:把握不同进制之间的相互转化,会用程序描述不同进制之间的转化,体会数学的转化思想,制定以下三维目标:1、学问与技能同学懂得各种进位制与十进制之间转换的规律,各种进位制之间的转换;2、过程与方法会利用十进制与各种进制之间的联系进行同学经受得出各种进位制与十进制之间转换的规律的过程,进一步把握进位制之间转换的 方法;3、情感、态度与价值观 同学通过合作完成任务后,领会十进制,二进制的特点,明白运算机的电路与二进制的联 系,进一步熟识到运算机与数学的联系,培育他们的合作精神和严谨的态度;二、教学重点、难点重点: 各进位制
17、之间的转换;解决策略: 让同学弄懂各进位制的特点和联系,再搭配习题讲解;难点:“ 除 k 取余法” 的懂得;解决策略: 先给出详细的例子讲解,再延长到一般的情形;三、学法与教学用具1、学法:讲授法、归纳法、争论法;2、教学用具:多媒体,投影仪四、教学过程(一)引入课题 在日常生活中,我们最熟识、最常用的是十进制,据说这与古人曾以手指计数有关,爱好 天文学的古人也曾经采纳七进制、十二进制、六十进制,至今我们仍旧使用一周七天、一年十二个月、一小时六非常的历法. 今日我们来学习一下进位制. (二)研探新知名师归纳总结 - - - - - - -第 7 页,共 12 页精选学习资料 - - - - -
18、 - - - - 优秀教案 欢迎下载进位制是人们为了计数和运算便利而商定的计数系统,商定满二进一,就是二进制;满十进一,就是十进制;满十二进一,就是十二进制;满六十进一,就是六十进制等等. . 也就是说:“ 满几进一” 就是几进制,几进制的基数(都是大于1 的整数)就是几在日常生活中,我们最熟识、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采纳七进制、十二进制、六十进制,至今我们仍旧使用一周七天、一年十二个月、一小时六非常的历法 . 十进制使用 0 9 十个数字 . 计数时,几个数字排成一行,从右起,第一位是个位,个位上的数字是几,就表示几个一;其次位是十位,十位上的
19、数字是几,就表示几个十;接着依次是百位、千位、万位 例如:十进制数 3 721 中的 3 表示 3 个千, 7 表示 7 个百, 2 表示 2 个十, 1 表示 1 个一 .于是,我们得到下面的式子:3 721=3 103+7 102+2 101+1 100. 与十进制类似,其他的进位制也可以依据位置原就计数. 由于每一种进位制的基数不同,所用的数字个数也不同 . 如二进制用 0 和 1 两个数字,七进制用 06 七个数字 . 一般地,如 k 是一个大于 1 的整数,那么以 k 为基数的 k 进制数可以表示为一串数字连写在一起的形式 a nan-1 a 1a0(k)(0ank,0a n-1,
20、, a1,a0k. 其他进位制的数也可以表示成不同位上数字与基数的幂的乘积之和的形式,如110 011(2)=1 25+1 24+0 23+0 22+1 21+1 20,7 342 (8)=7 83+3 82+4 81+2 80. 非十进制数转换为十进制数比较简洁,只要运算下面的式子值即可:anan-1 a 1a0k =an k n+an-1 k n-1 + +a1 k+a 0. 第一步:从左到右依次取出 k 进制数 anan-1 a 1a0k 各位上的数字,乘以相应的 k 的幂, k的幂从 n 开头取值,每次递减 1,递减到 0,即 an k n,a n-1 k n-1, ,a 1 k,a
21、0 k 0;其次步:把所得到的乘积加起来,所得的结果就是相应的十进制数 . 关于进位制的转换,教科书上以十进制和二进制之间的转换为例讲解,并推广到十进制和名师归纳总结 其他进制之间的转换. 这样做的缘由是,运算机是以二进制的形式进行储备和运算数据的,第 8 页,共 12 页- - - - - - -精选学习资料 - - - - - - - - - 优秀教案 欢迎下载而一般我们传输给运算机的数据是十进制数据,因此运算机必需先将十进制数转换为二进 制数,再处理,明显运算后首次得到的结果为二进制数,同时运算机又把运算结果由二进 制数转换成十进制数输出 . 1 十进制数转换成非十进制数把十进制数转换为
22、二进制数,教科书上供应了“ 除数转换成k 进制数的算法“ 除k 取余法” .2 非十进制之间的转换2 取余法” ,我们可以类比得到十进制一个自然的想法是利用十进制作为桥梁 . 教科书上供应了一个二进制数据与 16 进制数据之间的互化的方法,也就是先由二进制数转化为十进制数,再由十进制数转化成为 16 进制数. (三)范例分析例 1 把二进制数110 011 2 化为十进制数 .1+1 20=1 32+1 16+1 2+1=51.解: 110 011 2 =1 25+1 24+0 23+0 22+1 2点评: 先把二进制数写成不同位上数字与 规章运算出结果 . 2 的幂的乘积之和的形式,再依据十
23、进制的运算例 2 设计一个算法,把 k 进制数 a(共有 n 位)化为十进制数 b. 算法分析: 从例 1 的运算过程可以看出,运算 k 进制数 a 的右数第 i 位数字 ai 与 k i-1 的乘积 ai k i-1 ,再将其累加,这是一个重复操作的步骤 . 所以,可以用循环结构来构造算法 . 算法步骤如下:第一步,输入 a, k 和 n 的值 . 其次步,将 b 的值初始化为 0,i 的值初始化为 1. 第三步, b=b+ai k i-1 ,i=i+1. 第四步,判定 i n 是否成立 . 如是,就执行第五步;否就,返回第三步 . 第五步,输出 b 的值 . 程序框图如右图:程序:INPU
24、T “ 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=2 44+1,44=2 22+0,22=2 11+0,11=2 5+1,5=2 2+1,2=2
25、1+0,1=2 0+1,所以89=2 (2 (2 (2 (2 2+1)+1)+0)+0)+1 =2 (2 (2 (2 ( 2 2+1)+1)+0)+0)+1 = =1 26+0 25+1 24+1 23+0 22+0 21+1 20k 取余法 . =1 011 0012 . 这种算法叫做除2 取余法,仍可以用右边的除法算式表示:把上式中各步所得的余数从下到上排列,得到89=1 011 0012 . 上述方法也可以推广为把十进制数化为k 进制数的算法,称为除例 4 设计一个程序,实现“ 除k 取余法” .算法分析: 从例 2 的运算过程可以看出如下的规律:名师归纳总结 如十制数a 除以 k 所得
26、商是 q0,余数是 r 0,即 a=k q 0+r 0,就 r 0 是 a 的 k 进制数的右数第第 10 页,共 12 页- - - - - - -精选学习资料 - - - - - - - - - 优秀教案 欢迎下载1 位数 . 如 q0除以 k 所得的商是q1,余数是r 1,即 q0=k q 1+r 1,就 r 1是 a 的 k 进制数的左数第2位数 . 如 qn-1 除以 k 所得的商是0,余数是 rn,即 qn-1=rn,就 rn 是 a 的 k 进制数的左数第1 位数 . 这样,我们可以得到算法步骤如下:第一步,给定十进制正整数a 和转化后的数的基数k. r 排列得到的k 进制数 .
27、 其次步,求出a 除以 k 所得的商 q,余数 r. 第三步,把得到的余数依次从右到左排列. 第四步,如q 0,就 a=q,返回其次步;否就,输出全部余数程序框图如右图:程序: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 转化为二进制数解:即 3410 =100 01022、把 1 234 5 分别转化为十进制数和八进制数名师归纳总结 - - - - - - -第 11 页,共 12 页精选学习资料 - - - - - - - - - 解: 1 234 5 =1 53+2 5优秀教案欢迎下载2+3 5+4 194就 1 234 5 =3028 所以, 1 234 5 =1943028点评: 此题主要考查进位制以及不同进位制数的互化五进制数直接利用公式就可以转化 为十进制数;五进制数和八进制数之间需要借助于十进制数来转化(五)归纳总结(1)懂得算法与进位制的关系 . (2)娴熟把握各种进位制之间转化 . (六)作业布置 1、 习题 1.3A 组 3、4. 2、完成课后巩固作业(九)五、教学反思:_ _名师归纳总结 - - - - - - -第 12 页,共 12 页
限制150内