新课程人教A版数学必修(Ⅲ)教案 1.3算法案例一—进位制 教学目标: 1.了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进 行各种进位制之间的转换 2.学习各种进位制转换成十进制的计算方法,,研究十进制转换为各种进位制的除k去 余法,掌握不同进位制之间的互化,并理解其中的数学规律 3.能写出进位制之间的互化程序,理解数学算法与计算机算法的区别。 、教学重点:各进位制表示数的形式(方法)及各进位制之间的转换。 三、教学难点:除k取余法的理解以及各进位制之间转换的程序框图及其程序的设计 学法:学习各种进位制特点的同时探讨进位制表示数与十进制表示数的区别与联系,熟 悉各种进位制表示数的方法,从而理解十进制转换为各种进位制的除k取余法 四、教学过程 1、【问题引入】我们常见的数字都是十进制的,比如一般的数值计算,但是并不是生活中 的每一种数字都是十进制的。比如时间和角度的单位用六十进位制,电子计算机用的是二进 制,旧式的称是十六进制的,计算一打数值时是12进制的 阅读课本P32-33,思考以下问题: (1)、什么是进位制? (2)、最常见的进位制是什么?除此之外还有哪些常见的进位制?请举例说明. (3)、不同的进位制之间又又什么联系呢? 2、【知识讲解】 (1)进位制:进位制是人们为了计数和运算方便而约定的记数系统,它用有限的数字在 不同的位置表示不同的数值。约定满二进一,就是二进制:满六十进一,就是六十进制:也 就是说“满k进一”,就是k进制 可使用数字符号的个数称为基数,基数为k,即可称k进位制,简称k进制。k进制需 要使用k个数字。比如现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数
新课程人教 A 版数学必修(Ⅲ)教案 1.3 算法案例——进位制 一、教学目标: 1.了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进 行各种进位制之间的转换。 2.学习各种进位制转换成十进制的计算方法,,研究十进制转换为各种进位制的除 k 去 余法,掌握不同进位制之间的互化,并理解其中的数学规律。 3.能写出进位制之间的互化程序,理解数学算法与计算机算法的区别。 二、教学重点:各进位制表示数的形式(方法)及各进位制之间的转换。 三、教学难点:除 k 取余法的理解以及各进位制之间转换的程序框图及其程序的设计。 学法:学习各种进位制特点的同时探讨进位制表示数与十进制表示数的区别与联系,熟 悉各种进位制表示数的方法,从而理解十进制转换为各种进位制的除 k 取余法。 四、教学过程 1、【问题引入】我们常见的数字都是十进制的,比如一般的数值计算,但是并不是生活中 的每一种数字都是十进制的。比如时间和角度的单位用六十进位制,电子计算机用的是二进 制,旧式的称是十六进制的,计算一打数值时是 12 进制的...... 阅读课本 P32--33,思考以下问题: (1)、什么是进位制? (2)、最常见的进位制是什么?除此之外还有哪些常见的进位制?请举例说明. (3)、不同的进位制之间又又什么联系呢? 2、【知识讲解】 (1)进位制:进位制是人们为了计数和运算方便而约定的记数系统,它用有限的数字在 不同的位置表示不同的数值。约定满二进一,就是二进制;满六十进一,就是六十进制;也 就是说“满 k 进一”,就是 k 进制; 可使用数字符号的个数称为基数,基数为 k,即可称 k 进位制,简称 k 进制。k 进制需 要使用 k 个数字。比如现在最常用的是十进制,通常使用 10 个阿拉伯数字 0-9 进行记数
如:2345=2×103+3×102+4×103+5×10°。 对于任何一个数,我们可以用不同的进位制来表示。比如:十进数57,可以用二进制 表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是 样的。 一般地,若k是一个大于一的整数,那么以k为基数的k进制可以表示为一串数字连写 在一起的形式:anan1ak)(0<an<k,0≤a (2)k进制的数转化为十进制的数的方法: 先把这个k进制数写成用各位上的数字与k的幂的乘积之和的形式,再按照十进制数的 运算规则计算出结果。如: =a×k"+a,×km+…+a、×k2+a×k+ 其中要注意的是,k的幂的最高次数应是该k进制数的位数减去1,然后逐个减小1 最后是0次幂。(如:anan1…241a0k有nt+1位数) (3)十进制数转化为k进制数的方法:(除k取余法) 用k连续去除该十进制数或所得的商,直到商为零为止,然后把每次所得的余数倒着排 成一个数,就是相应的k进制数。 3【例题示范】 〖例1〗:把二进制数110011(2)化为十进制数 解:110011(2)=1×2+1×2+0×23+1×24+0×2+1×2+1×20 32+16+2+1=51 练习:把八进制数7348化为十进制数 解:7348。=7*83+3*82+4*81+8*8=3816 〖例2〗:把89化为二进制数 解:根据二进制数满二进一的原则,可以用2连续去除89或所得商,然后去余数 具体的计算方法如下
如: 2345 3 2 1 0 = 210 + 310 + 410 + 510 。 对于任何一个数,我们可以用不同的进位制来表示。比如:十进数 57,可以用二进制 表示为 111001,也可以用八进制表示为 71、用十六进制表示为 39,它们所代表的数值都是 一样的。 一般地,若 k 是一个大于一的整数,那么以 k 为基数的 k 进制可以表示为一串数字连写 在一起的形式: 1 1 0( ) 1 1 0 ... (0 , 0 ,..., , ) n n k n n a a a a a k a a a k − − , (2)k 进制的数转化为十进制的数的方法: 先把这个 k 进制数写成用各位上的数字与 k 的幂的乘积之和的形式,再按照十进制数的 运算规则计算出结果。如: 其中要注意的是,k 的幂的最高次数应是该 k 进制数的位数减去 1,然后逐个减小 1, 最后是 0 次幂。(如: n n k 1 2 1 0( ) a a a a a − 有 n+1 位数) (3)十进制数转化为 k 进制数的方法:(除 k 取余法) 用 k 连续去除该十进制数或所得的商,直到商为零为止,然后把每次所得的余数倒着排 成一个数,就是相应的 k 进制数。 3【例题示范】 〖例 1〗:把二进制数 110011(2)化为十进制数. 解:110011(2)=1×2 5 +1×2 4 +0×2 3 +1×2 4 +0×2 2 +1×2 1 +1×2 0 =32+16+2+1 = 51 练习:把八进制数 (8) 7348 化为十进制数. 解: 3 2 1 0 (8) 7348 7*8 3*8 4*8 8*8 3816 = + + + = 〖例 2〗:把 89 化为二进制数. 解:根据二进制数满二进一的原则,可以用 2 连续去除 89 或所得商,然后去余数. 具体的计算方法如下: 1 2 1 2 1 0( ) 1 2 1 0 n n n n k n n a a a a a a k a k a k a k a − − − = + + + + +
89=2×44+1 44=2×22+0 22=2×11+0 11=2×5+1 5=2×2+1 所以:89=2×(2×(2×(2×(2×2+1)+1)+0)+0)+1 =1×2+0×25+1×24+1×2+0×22+0×2+1×20 =1011001(2) 这种算法叫做除2取余法,还可以用下面的除法算式表示 余数 89 2 把上式中的各步所得的余数从下到上排列即可得到89=1011001(2) 上述方法也可以推广为把十进制数化为k进制数的的算法,称为除k取余法 例3〗把89化为五进制数.(解略) 〖例4把k进制数a(共有n位)转换为十进制数b的过程可以利用计算机程序来实现, 解 语句如下
89=2×44+1 44=2×22+0 22=2×11+0 11=2×5+1 5=2×2+1 所以: 89=2×(2×(2×(2×(2×2+1)+1)+0)+0)+1 =1×2 6 +0×2 5 +1×2 4 +1×2 3 +0×2 2 +0×2 1 +1×2 0 =1011001(2) 这种算法叫做除 2 取余法,还可以用下面的除法算式表示: 把上式中的各步所得的余数从下到上排列即可得到 89=1011001(2) 上述方法也可以推广为把十进制数化为 k 进制数的的算法,称为除 k 取余法。 〖例 3〗:把 89 化为五进制数.(解略) 〖例 4〗:把 k 进制数 a(共有 n 位)转换为十进制数 b 的过程可以利用计算机程序来实现, 解: 语句如下: 89 44 22 11 5 2 1 2 2 2 2 2 2 2 0 余数 1 0 0 1 1 0 1 0 1
第一步:输入a,k,n的值 INPUT a k,n 第二步:b=0,i=1 i=1,b=0 第三步:b=b+a2·k-,i=i+1 WHILE in成立否。 t=GET alil 若是执行第五步; b=b+t*k^(i-1) 否则,返回第三步 第五步:输出b的值。 WEND Print b 4【知识小结】 (1)进位制的概念及表示方法 (2)十进制与二进制之间转换的方法及程序 (3)上机操作进一步激发学生在算法方面的潜能,更能体现学生们的创造精神。 五、作业布置 选择题 1.以下各数中有可能是五进制数的为() A.55B.106C.732 D.2134 2.下列各数中最小的数是 A.11l111(2)B.210(6C.1000 填空题 3.将300化为二进制数得 4.1231(5 三、解答题: 5.试将二进制数101101101(2)转化为八进制数。 6.课本P36、P38 参考答案:1.D2.A3.111104.362 5.(提示先将二进制数转化为十进制数,然后转化为八进制数)
INPUT a,k,n i=1,b=0 WHILE i<=n t=GET a[i] b=b+t*k^(i-1) i=i+1 WEND PRINT b END 第一步:输入 a,k,n 的值; 第二步:b=0 ,i =1; 第三步: −1 = + i b b ai k , i = i +1 ; 第四步:判断 i n 成立否。 若是执行第五步; 否则,返回第三步。 第五步:输出 b 的值。 4【知识小结】 (1) 进位制的概念及表示方法; (2) 十进制与二进制之间转换的方法及程序; (3) 上机操作进一步激发学生在算法方面的潜能,更能体现学生们的创造精神。 五、作业布置 一、选择题: 1.以下各数中有可能是五进制数的为( ) A.55 B.106 C.732 D.2134 2.下列各数中最小的数是( ) A.111 111(2) B.210(6) C.1000(4) D.81(8) 二、填空题: 3.将 30(10)化为二进制数得 4.1231(5)= (7) 三、解答题: 5.试将二进制数 101 101 101(2) 转化为八进制数。 6.课本 P36、P38 ; 参考答案:1.D 2.A 3.11 110 4.362 5.(提示先将二进制数转化为十进制数,然后转化为八进制数)
解:1011011012=1×28+0×2+1×2+1×25+0×2+1×23+1×22+0×2+1× 2=256+64+32+8+4+1=365 又365=8×45+5;45=8×5+5;5=8×0+5 所以365(0=555(8 即:101101101a2)=55(8
解:101 101 101(2)=1×2 8 +0×2 7 +1×2 6 +1×2 5 +0×2 4 +1×2 3 +1×2 2 +0×2 1 +1× 2 0 =256+64+32+8+4+1=365 又 365=8×45+5 ;45=8×5+5 ;5=8×0+5 所以 365(10)=555(8) 即:101 101 101(2)=555(8)