1、算算 法法 案案 例例(第一课时)1、求两个正整数的最大公约数、求两个正整数的最大公约数(1)求)求25和和35的最大公约数的最大公约数(2)求)求49和和63的最大公约数的最大公约数2、求、求8251和和6105的最大公约数的最大公约数 25(1)5535749(2)77639所以,所以,25和和35的最大公约数为的最大公约数为5所以,所以,49和和63的最大公约数为的最大公约数为7辗转相除法(欧几里得算法)辗转相除法(欧几里得算法)观察用辗转相除法求观察用辗转相除法求8251和和6105的最大公约数的过程的最大公约数的过程 第一步第一步 用两数中较大的数除以较小的数,求得商和余数用两数中较
2、大的数除以较小的数,求得商和余数8251=61051+2146结论:结论:8251和和6105的公约数就是的公约数就是6105和和2146的公约数,求的公约数,求8251和和6105的最大公约数,只要求出的最大公约数,只要求出6105和和2146的公约数就可以了。的公约数就可以了。第二步第二步 对对6105和和2146重复第一步的做法重复第一步的做法6105=21462+1813同理同理6105和和2146的最大公约数也是的最大公约数也是2146和和1813的最大公约数。的最大公约数。完整的过程完整的过程8251=61051+2146 6105=21462+1813 2146=18131+33
3、31813=3335+148333=1482+37148=374+0例例2 用辗转相除法求用辗转相除法求225和和135的最大公约数的最大公约数225=1351+90135=901+4590=452显然显然37是是148和和37的最大公约的最大公约数,也就是数,也就是8251和和6105的最的最大公约数大公约数 显然显然45是是90和和45的最大公约数,也就是的最大公约数,也就是225和和135的最大公约数的最大公约数 思考思考1:从上面的两个例子可以看出计:从上面的两个例子可以看出计算的规律是什么?算的规律是什么?S1:用大数除以小数:用大数除以小数S2:除数变成被除数,余数变成除数:除数变
4、成被除数,余数变成除数S3:重复:重复S1,直到余数为,直到余数为0 辗转相除法是一个反复执行直到余数等于辗转相除法是一个反复执行直到余数等于0停止的步骤,这实际上是停止的步骤,这实际上是一个循环结构。一个循环结构。8251=61051+2146 6105=21462+1813 2146=18131+3331813=3335+148333=1482+37148=374+0m=n q r用程序框图表示出右边的过程用程序框图表示出右边的过程r=m MOD nm=nn=rr=0?是否九章算术九章算术更相减损术更相减损术 算理:算理:可半者半之,不可半者,副置分母、子之数,以少减多,更相减可半者半之,
5、不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数约之。损,求其等也,以等数约之。第一步:第一步:任意给顶两个正整数;判断他们是否都是偶数。若是,则用任意给顶两个正整数;判断他们是否都是偶数。若是,则用2约简;若不是则执行第二步。约简;若不是则执行第二步。第二步:第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止,则这个以大数减小数。继续这个操作,直到所得的减数和差相等为止,则这个等数就是所求的最大公约数。等数就是所求的最大公约数。例例3 用更相减损术求用更相减
6、损术求98与与63的最大公约数的最大公约数解:由于解:由于63不是偶数,把不是偶数,把98和和63以大数减小数,并辗转相减以大数减小数,并辗转相减 9863356335283528728721217141477所以,所以,98和和63的最大公约数等于的最大公约数等于7 练习:课本P36练习第1题算法案例(第二课时)计算多项式计算多项式()=当当x=5的值的值算法算法1:因为因为()=所以所以(5)=55555=3125625125255=3906算法算法2:(5)=55555=5(5555)=5(5(555 )=5(5(5(55)=5(5(5(5 (5 )数书九章数书九章秦九韶算法秦九韶算法0
7、111)(axaxaxaxfnnnn设设)(xf是一个是一个n次的多项式次的多项式对该多项式按下面的方式进行改写:对该多项式按下面的方式进行改写:0111)(axaxaxaxfnnnn01211)(axaxaxannnn012312)(axaxaxaxannnn0121)(axaxaxaxannn这是怎样的一种改写方式?最后的结果是什么?0121)()(axaxaxaxaxfnnn要求多项式的值,应该先算最内层的一次多项式的值,即要求多项式的值,应该先算最内层的一次多项式的值,即11nnaxav然后,由内到外逐层计算一次多项式的值,即然后,由内到外逐层计算一次多项式的值,即212naxvv32
8、3naxvv01axvvnn最后的一项是什么?这种将求一个这种将求一个n次多项式次多项式f(x)的值转化成求)的值转化成求n个一次多项式的值的个一次多项式的值的方法,称为方法,称为秦九韶算法秦九韶算法。例例2 已知一个五次多项式为已知一个五次多项式为8.07.16.25.325)(2345xxxxxxf用秦九韶算法求这个多项式当用秦九韶算法求这个多项式当x=5的值。的值。解:解:将多项式变形:将多项式变形:8.0)7.1)6.2)5.3)25()(xxxxxxf按由里到外的顺序,依此计算一次多项式当按由里到外的顺序,依此计算一次多项式当x=5时的值:时的值:272551v50v5.1385.3
9、5272v9.6896.255.1383v2.34517.159.6894v2.172558.052.34515v所以,当所以,当x=5时,多项式的值等于时,多项式的值等于17255.2你从中看到了怎样的规律?怎么用程序框图来描述呢?开始开始输入输入f(x)的系数:的系数:a0、a1、a2、a3、a4、a5输入输入x0n=0v=a5v=vx0+a5-nn=n+1n 5?输出输出v结束结束否否是是注意:要想使用检验功能,请使用前,先要减低宏的安全限制秦九韶算法检验排序的算法排序的算法将下面数字按由小到大的顺序排列将下面数字按由小到大的顺序排列8,3,2,5,9,6方法方法1:S1:比较第:比较第
10、2个数与第个数与第1个数的大小,并排序得个数的大小,并排序得3,8S2:将第:将第3个数与个数与S1中的数比较,插入适当的位置,得到中的数比较,插入适当的位置,得到2,3,8S3:将第:将第4个数与个数与S2中的数比较,并插入适当的位置,如中的数比较,并插入适当的位置,如此继续下去,直到把最后一个数插入到上一步已排好的数此继续下去,直到把最后一个数插入到上一步已排好的数列的合适位置为止,得到:列的合适位置为止,得到:2,3,5,82,3,5,8,92,3,5,6,8,9S4:S5:排序的算法排序的算法将下面数字按由小到大的顺序排列将下面数字按由小到大的顺序排列8,3,2,5,9,6方法方法1:
11、过过程程演演示示832596开始开始排第排第1次次排第排第2次次排第排第3次次排第排第4次次832596382596238596235896235896排第排第5次次235689排序的算法排序的算法将下面数字按由小到大的顺序排列将下面数字按由小到大的顺序排列8,3,2,5,9,6方法方法2:S1:用第:用第1个数与第个数与第2个数比较,若前者小则两数不变,个数比较,若前者小则两数不变,否则,交换这两个数的位置。否则,交换这两个数的位置。S2:按这样的原则,比较第:按这样的原则,比较第2个数和第个数和第3个数,前者小个数,前者小则两数不变,否则,交换这两个数的位置则两数不变,否则,交换这两个数的
12、位置直到比直到比完最后两个数。(称为完最后两个数。(称为“一趟一趟”)S3:如果前一趟的比较中交换的次数为:如果前一趟的比较中交换的次数为0,说明排序已,说明排序已完成,否则回到完成,否则回到S2。根据题意,一趟后的结果是什么?为什么说前一趟的比较中交换为0次时,排序完成?3,2,5,8,6,9排序的算法排序的算法将下面数字按由小到大的顺序排列将下面数字按由小到大的顺序排列8,3,2,5,9,6请将每一趟的结果写出来请将每一趟的结果写出来第第1趟趟832596382596328596325896325896325869该趟中交换的次数为该趟中交换的次数为_次次4排序的算法排序的算法将下面数字按
13、由小到大的顺序排列将下面数字按由小到大的顺序排列8,3,2,5,9,6请将每一趟的结果写出来请将每一趟的结果写出来第第2趟趟325869235869235869235869235689235689该趟中交换的次数为该趟中交换的次数为_次次2排序的算法排序的算法将下面数字按由小到大的顺序排列将下面数字按由小到大的顺序排列8,3,2,5,9,6请将每一趟的结果写出来请将每一趟的结果写出来第第3趟趟235689235689235689235689235689235689该趟中交换的次数为该趟中交换的次数为_次,次,0所以排序的结果为:所以排序的结果为:2,3,5,6,8,9练习:练习:1、根据前面的
14、介绍阅读课本、根据前面的介绍阅读课本P32的例的例3,并完成图,并完成图1.3-6的填空的填空算法案例(第三课时)1、什么是进位制?2、最常见的进位制是什么?除此之外还有哪些常见的进位制?请举例说明进位制是人们为了计数和运算方便而约定的记数系统。1、我们了解十进制吗?所谓的十进制,它是如何构成的?十进制由两个部分构成例如:372101231011021071037213其它进位制的数又是如何的呢?第一、它有0、1、2、3、4、5、6、7、8、9十个数字;第二、它有“权位”,即从右往左为个位、十位、百位、千位等等。(用10个数字来记数,称基数为10)表示有:1个1,2个十,7个百即7个10的平方
15、,3个千即3个10的立方2、二进制二进制是用0、1两个数字来描述的。如11001等()二进制的表示方法区分的写法:11001(2)或者(11001)201234(2)2120202121110018进制呢?如7342(8)k进制呢?anan-1an-2a2a1(k)?二、二进制与十进制的转换1、二进制数转化为十进制数例1 将二进制数110011(2)化成十进制数解:根据进位制的定义可知012345)2(21212020212111001112116132151所以,110011(2)=51。练习将下面的二进制数化为十进制数?(1)11(2)111(3)1111(4)111112、十进制转换为二
16、进制(除2取余法:用2连续去除89或所得的商,然后取余数)例2 把89化为二进制数解:根据“逢二进一”的原则,有892441 2(2220)+1 2(2(2110)+0)+1 2(2(2(2 51)+0)+0)+15 2 212(2(2(2(221)1)0)0)189126025124123022021120所以:89=1011001(2)2(2(2(2321)0)0)12(2(242220)0)12(2523+2200)12624+23002189244144 222022 211011 2 51 2(2(2(2(2 21)+1)+0)+0)+1所以892(2(2(2(2 2 1)1)0)0
17、)12、十进制转换为二进制例2 把89化为二进制数522212010余数11224889222201101注意:1.最后一步商为0,2.将上式各步所得的余数从下到上排列,得到:89=1011001(2)练习将下面的十进制数化为二进制数?(1)10(2)20(3)128(4)256例3 把89化为五进制数3、十进制转换为其它进制解:根据除k取余法以5作为除数,相应的除法算式为:所以,89=324(5)。895175350423余数将k进制数a转换为十进制数(共有 n位)的程序a=anan-1 a3a2a1(k)=ank(n-1)+an-1k(n-2)+a3k2+a2k1+a1k0b=a1k0b=
18、a2k1+bb=a3k2+bb=ankn-1+bai=GET aiGET函数用于取出a的右数第i位数INPUT a,k,ni=1b=0WHILE i=nt=GET aib=t*k(i-1)+bi=i+1WENDPRINT bENDi=i+1i=1b=aiki-1+b小结与作业作业:课本P38,习题1.3第4题算法案例(第四课时)排序的算法排序的算法将下面数字按由小到大的顺序排列将下面数字按由小到大的顺序排列8,3,2,5,9,6方法方法1:S1:比较第:比较第2个数与第个数与第1个数的大小,并排序得个数的大小,并排序得3,8S2:将第:将第3个数与个数与S1中的数比较,插入适当的位置,得到中的
19、数比较,插入适当的位置,得到2,3,8S3:将第:将第4个数与个数与S2中的数比较,并插入适当的位置,如中的数比较,并插入适当的位置,如此继续下去,直到把最后一个数插入到上一步已排好的数此继续下去,直到把最后一个数插入到上一步已排好的数列的合适位置为止,得到:列的合适位置为止,得到:2,3,5,82,3,5,8,92,3,5,6,8,9S4:S5:排序的算法排序的算法将下面数字按由小到大的顺序排列将下面数字按由小到大的顺序排列8,3,2,5,9,6方法方法1:过过程程演演示示832596开始开始排第排第1次次排第排第2次次排第排第3次次排第排第4次次8325963825962385962358
20、96235896排第排第5次次235689排序的算法排序的算法将下面数字按由小到大的顺序排列将下面数字按由小到大的顺序排列8,3,2,5,9,6方法方法2:S1:用第:用第1个数与第个数与第2个数比较,若前者小则两数不变,个数比较,若前者小则两数不变,否则,交换这两个数的位置。否则,交换这两个数的位置。S2:按这样的原则,比较第:按这样的原则,比较第2个数和第个数和第3个数,前者小个数,前者小则两数不变,否则,交换这两个数的位置则两数不变,否则,交换这两个数的位置直到比直到比完最后两个数。(称为完最后两个数。(称为“一趟一趟”)S3:如果前一趟的比较中交换的次数为:如果前一趟的比较中交换的次数
21、为0,说明排序已,说明排序已完成,否则回到完成,否则回到S2。根据题意,一趟后的结果是什么?为什么说前一趟的比较中交换为0次时,排序完成?3,2,5,8,6,9排序的算法排序的算法将下面数字按由小到大的顺序排列将下面数字按由小到大的顺序排列8,3,2,5,9,6请将每一趟的结果写出来请将每一趟的结果写出来第第1趟趟832596382596328596325896325896325869该趟中交换的次数为该趟中交换的次数为_次次4排序的算法排序的算法将下面数字按由小到大的顺序排列将下面数字按由小到大的顺序排列8,3,2,5,9,6请将每一趟的结果写出来请将每一趟的结果写出来第第2趟趟325869
22、235869235869235869235689235689该趟中交换的次数为该趟中交换的次数为_次次2排序的算法排序的算法将下面数字按由小到大的顺序排列将下面数字按由小到大的顺序排列8,3,2,5,9,6请将每一趟的结果写出来请将每一趟的结果写出来第第3趟趟235689235689235689235689235689235689该趟中交换的次数为该趟中交换的次数为_次,次,0所以排序的结果为:所以排序的结果为:2,3,5,6,8,9练习:练习:1、根据前面的介绍阅读课本、根据前面的介绍阅读课本P32的例的例3,并完成图,并完成图1.3-6的填空的填空课后作业课后作业课本课本P38的习题的习题1.3第第2、3题题