第一篇:《算法案例:秦九韶算法》教学教案
秦九韶算法
学习目标
1.了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。
2.掌握数据排序的原理能使用直接排序法与冒泡排序法给一组数据排序,进而能设计冒泡排序法的程序框图及程序,理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用。学习重难点
重点:1.秦九韶算法的特点
2.两种排序法的排序步骤及计算机程序设计 难点:1.秦九韶算法的先进性理解
2.排序法的计算机程序设计
学法与学习用具
学法:1.探究秦九韶算法对比一般计算方法中计算次数的改变,体会科学的计算。
2.模仿排序法中数字排序的步骤,理解计算机计算的一般步骤,领会数学计算在计算机上实施的要求。
学习用具:电脑,计算器,图形计算器 学习设想
(一)创设情景,揭示课题
我们已经学过了多项式的计算,下面我们计算一下多项式
f(x)x5x4x3x2x1当x5时的值,并统计所做的计算的种类及计算次数。
根据我们的计算统计可以得出我们共需要10次乘法运算,5次加法运算。我们把多项式变形为:f(x)x2(1x(1x(1x)))x1再统计一下计算当x5时的值时需要的计算次数,可以得出仅需4次乘法和5次加法运算即可得出结果。显然少了6次乘法运算。这种算法就叫秦九韶算法。
(二)研探新知
/ 4
1.秦九韶计算多项式的方法
f(x)anxnan1xn1an2xn2a1xa0(anxn1an1xn2an2xn3a1)xa0((anxn2an1xn3a2)xa1)xa0(((anxan1)xan2)xa1)a0例1 已知一个5次多项式为f(x)5x52x43.5x32.6x21.7x0.8 用秦九韶算法求这个多项式当x5时的值。解:略
思考:(1)例1计算时需要多少次乘法计算?多少次加法计算?
(2)在利用秦九韶算法计算n次多项式当xx0时需要多少次乘法计算和多少次加法计算?
练习:利用秦九韶算法计算f(x)0.83x50.41x40.16x30.33x20.5x1 当x5时的值,并统计需要多少次乘法计算和多少次加法计算? 例2 设计利用秦九韶算法计算5次多项式
f(x)a5x5a4x4a3x3a2x2a1xa0当xx0时的值的程序框图。解:程序框图如下:
/ 4
开始输入f(x)的系数:a1,a2,a3,a4,a5输入x0n=1v=a5 n=n+1v=v x0+a5-nn≤5是否输出v结束
练习:利用程序框图试编写BASIC程序并在计算机上测试自己的程序。
2.排序
在信息技术课中我们学习过电子表格,电子表格对分数的排序非常简单,那么电子计算机是怎么对数据进行排序的呢? 阅读课本P30—P31面的内容,回答下面的问题:(1)排序法中的直接插入排序法与冒泡排序法的步骤有什么区别?(2)冒泡法排序中对5个数字进行排序最多需要多少趟?(3)在冒泡法排序对5个数字进行排序的每一趟中需要比较大小几次? 游戏:5位同学每人拿一个数字牌在讲台上演示冒泡排序法对5个数据4,11,7,9,6排序的过程,让学生通过观察叙述冒泡排序法的主要步骤.并结合步骤解决例3的问题.例3 用冒泡排序法对数据7,5,3,9,1从小到大进行排序
/ 4
练习:写出用冒泡排序法对5个数据4,11,7,9,6排序的过程中每一趟排序的结果.例4 设计冒泡排序法对5个数据进行排序的程序框图.解: 程序框图如下:
开始输入a1,a2,a3,a4,a5r=1i=1ai>ai+1是否x=aiai=ai+1ai+1=xi=i+1r=r+1i=5否是r=5否是输出a1,a2,a3,a4,a5结束 思考:直接排序法的程序框图如何设计?可否把上述程序框图转化为程序? 练习:用直接排序法对例3中的数据从小到大排序 3.小结:(1)秦九韶算法计算多项式的值及程序设计
(2)数字排序法中的常见的两种排序法直接插入排序法与冒泡排序法(3)冒泡法排序的计算机程序框图设计
/ 4
第二篇:P037算法案例---秦九韶算法教案(共)
清华同方教育技术研究院数学所
2013/04/16 Tuesday 09:41 算法案例---秦九韶算法
教学要求:了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数、提高计算效率的实质;理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用.教学重点:秦九韶算法的特点及其程序设计.教学难点:秦九韶算法的先进性理解及其程序设计.教学过程:
一、复习准备:
1.分别用辗转相除法和更相减损术求出两个正数623和1513的最大公约数.2.设计一个求多项式
f(x)2x5x4x3x6x75432当x5时的值的算法.(学生自己提出一般的解决方案:将x5代入多项式进行计算即可)
提问:上述算法在计算时共用了多少次乘法运算?多少次加法运算?此方案有何优缺点?(上述算法一共做了5+4+3+2+1=15次乘法运算,5次加法运算.优点是简单、易懂;缺点是不通用,不能解决任意多项式的求值问题,而且计算效率不高.)
二、讲授新课: 1.教学秦九韶算法:
① 提问:在计算x的幂值时,可以利用前面的计算结果,以减少计算量,即先计算x,2然后依次计算xx,(xx)x,((xx)x)x的值,这样计算上述多项式的值,一共需
222要多少次乘法,多少次加法?(上述算法一共做了4次乘法运算,5次加法运算)
② 结论:第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率,而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法能更快地得到结果.③ 更有效的一种算法是: 将f(5多x)4项
2x式
3变
5x2形
4x为
3x:
6x7,依次计算2555,55421,2153108,10856534,534572677
故f(5)2677.――这种算法就是“秦九韶算法”.(注意变形,强调格式)
版权所有,盗版必究
第1页,共2页 清华同方教育技术研究院数学所
2013/04/16 Tuesday 09:41 ④ 练习:用秦九韶算法求多项式f(x)2xx3x5x1当x4时的值.(学生板书师生共评教师提问:上述算法共需多少次乘法运算?多少次加法运算?)
⑤ 如何用秦九韶算法完成一般多项式题?
改f(xanxan1xnn1432f(x)anxan1xnn1a1xa0的求值问
写axa)anxanxanxaxa1:
.首先计算最内层括号内一次多项式的值,即次多项式的值,即v2v1xan2v1anxan1,然后由内向外逐层计算一
.,v3v2xan3,,vnvn1xa0⑥ 结论:秦九韶算法将求n次多项式的值转化为求n个一次多项式的值,整个过程只需n次乘法运算和n次加法运算;观察上述n个一次式,可发出
vk的计算要用到
vk1的值,v0an,vvk1xank(k1,2,,n)v0an若令,可得到下列递推公式:k.这是一个反复执行的步骤,因此可用循环结构来实现.⑦ 练习:用秦九韶算法求多项式x5时的值并画出程序框图.f(x)5x2x3.5x2.6x1.7x0.85432当2.小结:秦九韶算法的特点及其程序设计
三、巩固练习:
1、练习:教材P35第2题
2、作业:教材P36第2题
版权所有,盗版必究
第2页,共2页
第三篇:算法案例教案
课题:§1.3算法案例
第1课时 辗转相除法与更相减损术、秦九韶算法
一、教学目标:
根据课标要求:在学生学习了算法的初步知识,理解了表示算法的算法步骤、程序框图和程序三种不同方式以后,再结合典型算法案例,让学生经历设计算法解决问题的全过程,体验算法在解决问题中的重要作用,体会算法的基本思想,提高逻辑思维能力,发展有条理地思考与数学表达能力。制定以下三维目标:
1、知识与技能
理解算法案例的算法步骤和程序框图.2、过程与方法:
引导学生得出自己设计的算法程序.3、情感态度与价值观:
体会算法的基本思想,提高逻辑思维能力,发展有条理地思考与数学表达能力.二、重点与难点:
重点:引导学生得出自己设计的算法步骤、程序框图和算法程序.解决策略:通过分析解决具体问题的算法步骤来引导学生写出算法,根据算法画出程序框图,再根据框图用规范的语言写出程序。
难点:体会算法的基本思想,提高逻辑思维能力,发展有条理地思考与数学表达能力.解决策略:让学生能严谨地按照自己是程序框图写出程序。
三、学法与教学用具:
1、学法:直观感知、操作确认。
2、教学用具:多媒体。
四、教学过程
(一)引入课题
大家喜欢打乒乓球吧,由于东、西方文化及身体条件的不同,西方人喜欢横握拍打球,东方人喜欢直握拍打球,对于同一个问题,东、西方人处理问题方式是有所不同的.在小学,我们学过求两个正整数的最大公约数的方法:先用两个数公有的质因数连续去除,一直除到所得的商是互质数为止,然后把所有的除数连乘起来.当两个数公有的质因数较大
时(如与6 105),使用上述方法求最大公约数就比较困难.下面我们介绍两种不同的算法——辗转相除法与更相减损术,由此可以体会东、西方文化的差异.(二)研探新知
(1)怎样用短除法求最大公约数?
(2)怎样用穷举法(也叫枚举法)求最大公约数?(3)怎样用辗转相除法求最大公约数?(4)怎样用更相减损术求最大公约数? 讨论结果:(1)短除法
求两个正整数的最大公约数的步骤:先用两个数公有的质因数连续去除,一直除到所得的商是两个互质数为止,然后把所有的除数连乘起来.(2)穷举法(也叫枚举法)
穷举法求两个正整数的最大公约数的解题步骤:从两个数中较小数开始由大到小列举,直到找到公约数立即中断列举,得到的公约数便是最大公约数.(3)辗转相除法
辗转相除法求两个数的最大公约数,其算法步骤可以描述如下: 第一步,给定两个正整数m,n.第二步,求余数r:计算m除以n,将所得余数存放到变量r中.第三步,更新被除数和余数:m=n,n=r.第四步,判断余数r是否为0.若余数为0,则输出结果;否则转向第二步继续循环执行.如此循环,直到得到结果为止.这种算法是由欧几里得在公元前300年左右首先提出的,因而又叫欧几里得算法.(4)更相减损术
我国早期也有解决求最大公约数问题的算法,就是更相减损术.《九章算术》是中国古代的数学专著,其中的“更相减损术”也可以用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也.以等数约之.”翻译为现代语言如下:
第一步,任意给定两个正整数,判断它们是否都是偶数,若是,用2约简;若不是,执行第二步,以较大的数减去较小的数,接着把所得的差与较小的数比较,并以大数减小数,继续这个操作,直到所得的数相等为止,则这个数(等数)或这个数与约简的数的乘积就是所求的最大公约数.(三)范例分析
例1 用辗转相除法求8 251与6 105的最大公约数,写出算法分析,画出程序框图,写出算法程序.解:用两数中较大的数除以较小的数,求得商和余数:8 251=6 105×1+2 146.由此可得,6 105与2 146的公约数也是8 251与6 105的公约数,反过来,8 251与6 105的公约数也是6 105与2 146的公约数,所以它们的最大公约数相等.对6 105与2 146重复上述步骤:6 105=2 146×2+1 813.同理,2 146与1 813的最大公约数也是6 105与2 146的最大公约数.继续重复上述步骤: 2 146=1 813×1+333,1 813=333×5+148,333=148×2+37,148=37×4.最后的除数37是148和37的最大公约数,也就是8 251与6 105的最大公约数.这就是辗转相除法.由除法的性质可以知道,对于任意两个正整数,上述除法步骤总可以在有限步之后完成,从而总可以用辗转相除法求出两个正整数的最大公约数.算法分析:从上面的例子可以看出,辗转相除法中包含重复操作的步骤,因此可以用循环结构来构造算法.算法步骤如下:
第一步,给定两个正整数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的最大公约数.解:由于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)怎样求多项式f(x)=x+x+x+x+x+1当x=5时的值呢?
一个自然的做法就是把5代入多项式f(x),计算各项的值,然后把它们加起来,这时,我们一共做了1+2+3+4=10次乘法运算,5次加法运算.另一种做法是先计算x的值,然后依次计算x·x,(x·x)·x,((x·x)·x)·x的值,这样每次都可以利用上一次计算的结果,这时,我们一共做了4次乘法运算,5次加法运算.第二种做法与第一种做法相比,乘法的运算次数减少了,因而能够提高运算效率,对于计算机来说,做一次乘法运算所用的时间比做一次加法运算要长得多,所以采用第二种做法,计算机能更快地得到结果.(2)上面问题有没有更有效的算法呢?我国南宋时期的数学家秦九韶(约1202~1261)在他的著作《数书九章》中提出了下面的算法:
把一个n次多项式f(x)=anx+an-1x+„+a1x+a0改写成如下形式: f(x)=anx+an-1x+„+a1x+a0 =(anx+an-1x+„+a1)x+ a0 =((anx+an-1x+„+a2)x+a1)x+a0 =„
=(„((anx+an-1)x+an-2)x+„+a1)x+a0.求多项式的值时,首先计算最内层括号内一次多项式的值,即v1=anx+an-1,然后由内向外逐层计算一次多项式的值,即 v2=v1x+an-2,n-2n-3n-1n-2nn-1n
n-1
222
5432
v3=v2x+an-3,„
vn=vn-1x+a0,这样,求n次多项式f(x)的值就转化为求n个一次多项式的值.上述方法称为秦九韶算法.直到今天,这种算法仍是多项式求值比较先进的算法.(3)计算机的一个很重要的特点就是运算速度快,但即便如此,算法好坏的一个重要标志仍然是运算的次数.如果一个算法从理论上需要超出计算机允许范围内的运算次数,那么这样的算法就只能是一个理论的算法.例3 已知一个5次多项式为f(x)=5x+2x+3.5x-2.6x+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=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.算法分析:观察上述秦九韶算法中的n个一次式,可见vk的计算要用到vk-1的值,若令v0=an,我们可以得到下面的公式:
32v0an, vvxa(k1,2,,n).k1nkk这是一个在秦九韶算法中反复执行的步骤,因此可用循环结构来实现.算法步骤如下:
第一步,输入多项式次数n、最高次的系数an和x的值.第二步,将v的值初始化为an,将i的值初始化为n-1.第三步,输入i次项的系数ai.第四步,v=vx+ai,i=i-1.第五步,判断i是否大于或等于0.若是,则返回第三步;
否则,输出多项式的值v.程序框图如右图: 程序:
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).秦九韶算法的方法和步骤.以及计算机程序框图.(六)作业布置
1、P48习题1.3 A组1、2
2、完成课后巩固作业
(八)五、教学反思:
_________________________________________________________ ___________________________________________________________________________________________________________________________________________________________________________
_________________________________________________________
1.3 算法案例 第2课时 进位制
一、教学目标:
根据课标要求:掌握不同进制之间的相互转化,会用程序描述不同进制之间的转化,体会数学的转化思想,制定以下三维目标:
1、知识与技能
学生理解各种进位制与十进制之间转换的规律,会利用十进制与各种进制之间的联系进行各种进位制之间的转换。
2、过程与方法
学生经历得出各种进位制与十进制之间转换的规律的过程,进一步掌握进位制之间转换的方法。
3、情感、态度与价值观
学生通过合作完成任务后,领悟十进制,二进制的特点,了解计算机的电路与二进制的联系,进一步认识到计算机与数学的联系,培养他们的合作精神和严谨的态度。
二、教学重点、难点
重点:各进位制之间的转换。
解决策略:让学生弄懂各进位制的特点和联系,再搭配习题讲解。难点:“除k取余法”的理解。
解决策略:先给出具体的例子讲解,再延伸到一般的情况。
三、学法与教学用具
1、学法:讲授法、归纳法、讨论法。
2、教学用具:多媒体,投影仪
四、教学过程
(一)引入课题
在日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采用七进制、十二进制、六十进制,至今我们仍然使用一周七天、一
年十二个月、一小时六十分的历法.今天我们来学习一下进位制.(二)研探新知
进位制是人们为了计数和运算方便而约定的计数系统,约定满二进一,就是二进制;满十进一,就是十进制;满十二进一,就是十二进制;满六十进一,就是六十进制等等.也就是说:“满几进一”就是几进制,几进制的基数(都是大于1的整数)就是几.在日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采用七进制、十二进制、六十进制,至今我们仍然使用一周七天、一年十二个月、一小时六十分的历法.十进制使用0 ~9十个数字.计数时,几个数字排成一行,从右起,第一位是个位,个位上的数字是几,就表示几个一;第二位是十位,十位上的数字是几,就表示几个十;接着依次是百位、千位、万位„„
例如:十进制数3 721中的3表示3个千,7表示7个百,2表示2个十,1表示1个一.于是,我们得到下面的式子: 3 721=3×10+7×10+2×10+1×10.与十进制类似,其他的进位制也可以按照位置原则计数.由于每一种进位制的基数不同,所用的数字个数也不同.如二进制用0和1两个数字,七进制用0~6七个数字.一般地,若k是一个大于1的整数,那么以k为基数的k进制数可以表示为一串数字连写在一起的形式 anan-1„a1a0(k)(0<an<k,0≤an-1,„,a1,a0<k).其他进位制的数也可以表示成不同位上数字与基数的幂的乘积之和的形式,如 110 011(2)=1×2+1×2+0×2+0×2+1×2+1×2,7 342(8)=7×8+3×8+4×8+2×8.非十进制数转换为十进制数比较简单,只要计算下面的式子值即可: anan-1„a1a0(k)=an×k+an-1×k+„+a1×k+a0.第一步:从左到右依次取出k进制数anan-1„a1a0(k)各位上的数字,乘以相应的k的幂,k的幂从n开始取值,每次递减1,递减到0,即an×k,an-1×k,„,a1×k,a0×k; 第二步:把所得到的乘积加起来,所得的结果就是相应的十进制数.关于进位制的转换,教科书上以十进制和二进制之间的转换为例讲解,并推广到十进制和
n
n-
10nn-1321
0
543210321
0
其他进制之间的转换.这样做的原因是,计算机是以二进制的形式进行存储和计算数据的,而一般我们传输给计算机的数据是十进制数据,因此计算机必须先将十进制数转换为二进制数,再处理,显然运算后首次得到的结果为二进制数,同时计算机又把运算结果由二进制数转换成十进制数输出.1°十进制数转换成非十进制数
把十进制数转换为二进制数,教科书上提供了“除2取余法”,我们可以类比得到十进制数转换成k进制数的算法“除k取余法”.2°非十进制之间的转换
一个自然的想法是利用十进制作为桥梁.教科书上提供了一个二进制数据与16进制数据之间的互化的方法,也就是先由二进制数转化为十进制数,再由十进制数转化成为16进制数.(三)范例分析
例1 把二进制数110 011(2)化为十进制数.解:110 011(2)=1×2+1×2+0×2+0×2+1×2+1×2=1×32+1×16+1×2+1=51.点评:先把二进制数写成不同位上数字与2的幂的乘积之和的形式,再按照十进制的运算规则计算出结果.例2设计一个算法,把k进制数a(共有n位)化为十进制数b.算法分析:从例1的计算过程可以看出,计算k进制数a的右数第i位数字ai与k的乘积ai·k,再将其累加,这是一个重复操作的步骤.所以,可以用循环结构来构造算法.算法步骤如下: 第一步,输入a,k和n的值.第二步,将b的值初始化为0,i的值初始化为1.第三步,b=b+ai·k,i=i+1.第四步,判断i>n是否成立.若是,则执行第五步;否则,返回第三步.第五步,输出b的值.程序框图如右图:
i-1i-1
i-154
0
程序:
INPUT “a,k,n=”;a,k,n 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×1+0,1=2×0+1,所以
89=2×(2×(2×(2×(2×2+1)+1)+0)+0)+1 =2×(2×(2×(2×(2+1)+1)+0)+0)+1 =„=1×2+0×2+1×2+1×2+0×2+0×2+1×2 =1 011 001(2).这种算法叫做除2取余法,还可以用右边的除法算式表示:
把上式中各步所得的余数从下到上排列,得到89=1 011 001(2).上述方法也可以推广为把十进制数化为k进制数的算法,称为除k取余法.6543
02
例4 设计一个程序,实现“除k取余法”.算法分析:从例2的计算过程可以看出如下的规律:
若十制数a除以k所得商是q0,余数是r0,即a=k·q0+r0,则r0是a的k进制数的右数第1位数.若q0除以k所得的商是q1,余数是r1,即q0=k·q1+r1,则r1是a的k进制数的左数第2位数.„„
若qn-1除以k所得的商是0,余数是rn,即qn-1=rn,则rn是a的k进制数的左数第1位数.这样,我们可以得到算法步骤如下:
第一步,给定十进制正整数a和转化后的数的基数k.第二步,求出a除以k所得的商q,余数r.第三步,把得到的余数依次从右到左排列.第四步,若q≠0,则a=q,返回第二步;否则,输出全部余数r排列得到的k进制数.程序框图如右图: 程序:
INPUT “a,k=”;a,k b=0 i=0 DO q=ak r=a MOD k b=b+r*10^i i=i+1 a=q LOOP UNTIL q=0 PRINT b END
(四)随堂练习
1、将十进制数34转化为二进制数. 解:
即34(10)=100 010(2)
2、把1 234(5)分别转化为十进制数和八进制数. 解:1 234(5)=1×5+2×5+3×5+4=194. 则1 234(5)=302(8)
所以,1 234(5)=194=302(8)
点评:本题主要考查进位制以及不同进位制数的互化.五进制数直接利用公式就可以转化为十进制数;五进制数和八进制数之间需要借助于十进制数来转化.
32(五)归纳总结
(1)理解算法与进位制的关系.(2)熟练掌握各种进位制之间转化.(六)作业布置
1、习题1.3A组3、4.2、完成课后巩固作业
(九)五、教学反思:
_________________________________________________________ ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________
第四篇:高中数学《秦九韶算法与排序》教案1 北师大版必修3
第三、四课时 秦九韶算法与排序
(1)教学目标(a)知识与技能
1.了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。
2.掌握数据排序的原理能使用直接排序法与冒泡排序法给一组数据排序,进而能设计冒泡排序法的程序框图及程序,理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用。
(b)过程与方法
模仿秦九韶计算方法,体会古人计算构思的巧妙。能根据排序法中的直接插入排序法与冒泡排序法的步骤,了解数学计算转换为计算机计算的途径,从而探究计算机算法与数学算法的区别,体会计算机对数学学习的辅助作用。(c)情态与价值
通过对秦九韶算法的学习,了解中国古代数学家对数学的贡献,充分认识到我国文化历史的悠久。通过对排序法的学习,领会数学计算与计算机计算的区别,充分认识信息技术对数学的促进。
(2)教学重难点
重点:1.秦九韶算法的特点
2.两种排序法的排序步骤及计算机程序设计 难点:1.秦九韶算法的先进性理解
2.排序法的计算机程序设计(3)学法与教学用具
学法:1.探究秦九韶算法对比一般计算方法中计算次数的改变,体会科学的计算。2.模仿排序法中数字排序的步骤,理解计算机计算的一般步骤,领会数学计算在计算机上实施的要求。
教学用具:电脑,计算器,图形计算器
(4)教学设想
(一)创设情景,揭示课题
我们已经学过了多项式的计算,下面我们计算一下多项式
5432f(x)xxxxx1当x5时的值,并统计所做的计算的种类及计算次数。
根据我们的计算统计可以得出我们共需要10次乘法运算,5次加法运算。
2我们把多项式变形为:f(x)x(1x(1x(1x)))x1再统计一下计算当x5时的值时需要的计算次数,可以得出仅需4次乘法和5次加法运算即可得出结果。显然少了6次乘法运算。这种算法就叫秦九韶算法。
(二)研探新知
1.秦九韶计算多项式的方法
用心
爱心
专心 31
f(x)anxan1x(anxn1n2nn1an2xn3n2a1xa0a1)xa0an1xn2an2xn3((anxan1xa2)xa1)xa0
(((anxan1)xan2)xa1)a0例1 已知一个5次多项式为f(x)5x52x43.5x32.6x21.7x0.8 用秦九韶算法求这个多项式当x5时的值。解:略
思考:(1)例1计算时需要多少次乘法计算?多少次加法计算?
(2)在利用秦九韶算法计算n次多项式当xx0时需要多少次乘法计算和多少次加法计算?
练习:利用秦九韶算法计算f(x)0.83x50.41x40.16x30.33x20.5x1 当x5时的值,并统计需要多少次乘法计算和多少次加法计算? 例2 设计利用秦九韶算法计算5次多项式
f(x)a5xa4xa3xa2xa1xa0当xx0时的值的程序框图。5432解:程序框图如下:
开始输入f(x)的系数:a1,a2,a3,a4,a5输入x0n=1v=a5 n=n+1v=v x0+a5-nn≤5是否输出v结束
用心
爱心
专心
练习:利用程序框图试编写BASIC程序并在计算机上测试自己的程序。
2.排序
在信息技术课中我们学习过电子表格,电子表格对分数的排序非常简单,那么电子计算机是怎么对数据进行排序的呢? 阅读课本P30—P31面的内容,回答下面的问题:(1)排序法中的直接插入排序法与冒泡排序法的步骤有什么区别?(2)冒泡法排序中对5个数字进行排序最多需要多少趟?(3)在冒泡法排序对5个数字进行排序的每一趟中需要比较大小几次? 游戏:5位同学每人拿一个数字牌在讲台上演示冒泡排序法对5个数据4,11,7,9,6排序的过程,让学生通过观察叙述冒泡排序法的主要步骤.并结合步骤解决例3的问题.例3 用冒泡排序法对数据7,5,3,9,1从小到大进行排序
解:P32 练习:写出用冒泡排序法对5个数据4,11,7,9,6排序的过程中每一趟排序的结果.例4 设计冒泡排序法对5个数据进行排序的程序框图.解: 程序框图如下:
开始输入a1,a2,a3,a4,a5r=1i=1ai>ai+1是否x=aiai=ai+1ai+1=xi=i+1r=r+1i=5否是r=5否是输出a1,a2,a3,a4,a5结束 思考:直接排序法的程序框图如何设计?可否把上述程序框图转化为程序? 练习:用直接排序法对例3中的数据从小到大排序
用心
爱心
专心
3.小结:(1)秦九韶算法计算多项式的值及程序设计
(2)数字排序法中的常见的两种排序法直接插入排序法与冒泡排序法(3)冒泡法排序的计算机程序框图设计(5)评价设计
作业:P38 A(2)(3)
补充:设计程序框图对上述两组数进行排序
用心
爱心
专心 34
第五篇:算法案例教学设计
算法案例——辗转相除法与更相减损术
唐劲松
一、教材解读
本节内容是在学习了算法的基础知识上,探究古代典型的算法案例——辗转相除法和更相减损术,巩固算法三种描述性语言(算法步骤,程序框图和程序语言),使学生对算法中的迭代思想有一个初步的认识。一方面以辗转相除法及更相减损术为载体,使学生通过模仿,操作,探索经历算法设计的全过程,帮助学生进一步体会算法的基本思想,感受算法在解决实际问题中的重要作用,另一方面让学生体会中国古代数学家对现代数学发展的贡献。
二、教学重难点
重点:辗转相除法与更相减损术的方法和步骤;
难点:辗转相除法的原理及其程序。
三、教学过程
Ⅰ引入新课
简单回顾短除法求两个数的最大公约数,并提出问题:当两个数较大时(如:8251与6105),如何求它们的最大公约数?引出课题——辗转相除法。
Ⅱ知识探究
1、以求8251与6105的最大公约数的过程为例,讲解如何利用辗转相除法求两个数的最大公约数。对于辗转相除法的原理,书本介绍的不是很详细,学生容易产生疑惑,需要教师讲解清楚。
2、通过这个实例,让学生能够模仿求任意两个数的最大公约数,体会这种迭代的思想,并能与前面学习的循环结构联系起来。
3、训练(学生演排),了解学生的掌握情况,及时指出问题。
4、简单介绍欧几里得其人,增强学生人文素养。
5、引导学生根据前面的过程画出辗转相除法的程序框图,并编写出程序。灵活运用直到型循环结构及当型循环结构,并能转化成语句。完成课本P45练习1:用辗转相除法求下列两个数的最大公约数:(1)225,135;(2)98,196;(3)72,168;(4)153,119.并用程序进行演示判断是否正确。
6、巩固提高:
(1)求三个数:324,243,135的最大公约数;(2)求228与1995的最小公倍数。
7、介绍另一种求最大公约数的方法——更相减损术,简单介绍相关数学史的知识,对学生进行数学文化熏陶,增强民族自豪感。
8、通过实例:求98与63的最大公约数 来理解更相减损术的原理和过程。
9、分别用辗转相除法和更相减损术求168与93的最大公约数,来体会和总结辗转相除法和更相减损术的区别。
Ⅲ课堂小结
学生回顾总结两种方法的步骤,教师加以补充和点评。