《13《算法案例3》(新人教A版必修3).ppt》由会员分享,可在线阅读,更多相关《13《算法案例3》(新人教A版必修3).ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、v主讲老师 潘学国第三课时第三课时 1、辗转相除法和更相减损术,是求两个正、辗转相除法和更相减损术,是求两个正整数的最大公约数的算法,秦九韶算法是求多整数的最大公约数的算法,秦九韶算法是求多项式的值的算法,将这些算法转化为程序,就项式的值的算法,将这些算法转化为程序,就可以由计算机来完成相关运算可以由计算机来完成相关运算. 2、人们为了计数和运算方便,约定了各种人们为了计数和运算方便,约定了各种进位制,这些进位制是什么概念,它们与十进进位制,这些进位制是什么概念,它们与十进制之间是怎样转化的?对此,我们从理论上作制之间是怎样转化的?对此,我们从理论上作些了解和研究些了解和研究. .问题提出问题
2、提出思考思考1:进位制是为了计数和运算方便而进位制是为了计数和运算方便而约定的记数系统,如满十进一,就是十约定的记数系统,如满十进一,就是十进制;每七天为一周,就是七进制;每进制;每七天为一周,就是七进制;每十二个月为一年,就是十二进制,每六十二个月为一年,就是十二进制,每六十秒为一分钟,每六十分钟为一个小时,十秒为一分钟,每六十分钟为一个小时,就是六十进制;等等就是六十进制;等等.一般地,一般地,“满满k进进一一”就是就是k进制,其中进制,其中k称为称为k进制的基进制的基数数.那么那么k是一个什么范围内的数?是一个什么范围内的数? 进位制进位制k是大于是大于1的整数。的整数。 二进制可使用的
3、数字有二进制可使用的数字有0和和1,基数是基数是2; 十六进制可使用的数字或符号有十六进制可使用的数字或符号有09等等10个数字个数字以及以及AF等等6个字母个字母(规定字母规定字母AF对应对应1015),十六进十六进制的基数是制的基数是16. 计数时,几个数字排成一行,从右起,位数依次计数时,几个数字排成一行,从右起,位数依次增大。增大。 注意注意: :为了区分不同的进位制为了区分不同的进位制, ,常在数字的右下常在数字的右下脚标明基数脚标明基数,.,. 如如111001111001(2)(2)表示二进制数表示二进制数,34,34(5)(5)表示表示5 5进制数进制数. .十进制数一般不标注
4、基数十进制数一般不标注基数.思考思考2:十进制使用十进制使用09十个数字,那么其它进十个数字,那么其它进制分别使用哪些数字?制分别使用哪些数字? 思考思考3:在十进制中在十进制中10表示十,在二进制中表示十,在二进制中10表表示示2.一般地,若一般地,若k是一个大于是一个大于1的整数,则以的整数,则以k为为基数的基数的k进制数可以表示为一串数字连写在一进制数可以表示为一串数字连写在一起的形式:起的形式: anan-1a1a0(k). 其中各个数位上的数字其中各个数位上的数字an,an-1,a1,a0的取值范围如何?的取值范围如何?思考思考4:十进制数十进制数3721表示的数可以写成表示的数可以
5、写成3103+7102+2101+1100,依此类比,依此类比,二进制数二进制数110011(2),八进制数八进制数 7342(8)分别可分别可以写成什么式子?以写成什么式子? 110011(2)=125+124+023+022+121+120 7342(8)=783+382+481+280.思考思考5:一般地,如何将一般地,如何将k进制数进制数anan-1a1a0(k)写成各数位上的数字与基数写成各数位上的数字与基数k的幂的乘积之和的幂的乘积之和的形式?的形式?思考思考6:如何将其它进位制转化为十进制数呢?如何将其它进位制转化为十进制数呢?0 00 01 11 11 1- -n n1 1-
6、-n nn nn n0 0( (k k) )1 11 1- -n nn nk k a a+ +k k a a+ +. . . .+ +k k a a+ +k k a a= =a a. . . .a aa aa a例例1:把二进制数把二进制数110011(2)化为十进制数。化为十进制数。 110011(2)=125+124+023+022+121+120 =32+16+2+1=51. 练习:练习:把把C7A16(16)化为十进制数。化为十进制数。C7A16(16)=12164+7163+10162 +1161+6160.第四步,判断第四步,判断in 是否成立是否成立.若是,则输出若是,则输出b的
7、的值;否则,返回第三步;值;否则,返回第三步;第一步,输入第一步,输入a,k和和n的值;的值;第二步,令第二步,令b=0,i=1;思考思考7:按照上述思路,把按照上述思路,把k进制进制数数anan-1a1a0(k)化为十进制数化为十进制数b的算法步骤如何设计?的算法步骤如何设计?第三步,第三步, ,i=i+1;1- iikabb+=第五步,输出第五步,输出b的值。的值。开始开始输入输入a,k,nb=0i=1把把a的右数第的右数第i位数字赋给位数字赋给tb=b+tki-1i=i+1in?结束结束是是输出输出b否否思考思考8:上述把上述把k进进制制anan-1a1a0(k)化为十进制数化为十进制数
8、b的算法的程序框的算法的程序框图如何表示?图如何表示?思考思考9:该程序框图对应的程序如何表述?该程序框图对应的程序如何表述?开始开始输入输入a,k,nb=0i=1把把a的右数第的右数第i位数字赋给位数字赋给tb=b+tki-1i=i+1in?结束结束是是输出输出b否否INPUT a,k,nb=0i=1t=a MOD10DOb=b+t*k(i-1)a=a10t=a MOD10i=i+1LOOP UNTIL inPRINT bEND 例例2:将下列各进制数化为十进制数将下列各进制数化为十进制数.(1)10303(4) ; (2)1234(5).10303(4)=144+342+340=307.1
9、234(5)=153+252+351+450=194. 例例3:已知已知10b1(2)=a02(3),求数字求数字a,b的值的值.所以所以2b+9=9a+2,即,即9a-2b=7. 10b1(2)=123+b2+1=2b+9.a02(3)=a32+2=9a+2.故故a=1,b=1. 课时小结课时小结: : 1. k进制数使用进制数使用0(k-1)共)共k个数字,个数字,但左侧第一个数位上的数字(首位数字)不但左侧第一个数位上的数字(首位数字)不为为0.12 1( )n nka aaa-L 2.用用 表示表示k进制数,其中进制数,其中k称为基数,十进制数一般不标注基数称为基数,十进制数一般不标注基数. 3. 把把k进制数化为十进制数的一般算式是:进制数化为十进制数的一般算式是:121( )1210121nnknnnna aa aakakakak-=+LL1: P48 A组组 3(1)()(3)2:资料:资料作业布置作业布置