高中数学教学案——算法案例(进位制)
- 格式:doc
- 大小:181.00 KB
- 文档页数:5
必修三《1.3算法案例》教学案进位制●三维目标1.知识与技能了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换.2.过程与方法学习各种进位制转换成十进制的计算方法,研究十进制转换为各种进位制的除k去余法,并理解其中的数学规律.3.情感、态度与价值观领悟十进制,二进制的特点,了解计算机的电路与二进制的联系,进一步认识到计算机与数学的联系.●重点难点重点:各进位制表示数的方法及各进位制之间的转换.难点:除k去余法的理解以及各进位制之间转换的程序框图的设计.●教学建议本节课主要采用演示、讲解和练习三结合的教学方法,教学内容上选用趣味性较强的数字进行举例说明,使学生在学习的过程中随时有新的发现,让他们感觉到原来数字之间还有这么多的联系.这种方法充分体现了以教师为主导、学生为主体的教学原则.通过具体实例,帮助学生理解十进制与其他进制之间的相互转换;通过练习,使学生进一步巩固所学到的知识.在课堂上让学生带着问题听老师讲解相关的知识,在此过程中,指导学生积极思考所提出的问题;然后布置相应的练习,让学生边学边练,实际操作,自我探索,自主学习,使学生在完成练习的过程中不知不觉实现知识的传递、迁移和融合;最后归纳总结,引导学生提出问题、讨论问题和解决问题,进一步加深对知识的理解和记忆,有助于知识的掌握.●教学流程创设问题情境引入问题:二进制,十进制之间怎样相互转化⇒学生自主学习,主动探索二进制与十进制的相互转化⇒分组讨论、各组展示自己的成果教师总结,强调关键点及注意点⇒通过例1的教学,使学生掌握k进制转化为十进制的方法⇒通过例2及变式训练使学生掌握十进制转化为k进制的方法⇒通过例3的学习使学生掌握不同进位制间的相互转化⇒归纳整理,课堂小结、整体认识进位制间的关系⇒完成当堂双基达标,巩固所学知识,并进行反馈矫正课标解读 1.了解进位制的概念.(重点)2.掌握不同进位制之间的相互转化.(难点)进位制的概念【问题导思】十进制使用0~9十个数字,那么二进制使用哪些数字?六进制呢?【提示】二进制使用0~1两个数字,六进制使用0~5六个数字.进位制是人们为了计数和运算方便而约定的记数系统,“满几进一”就是几进制,几进制的基数就是几.进位制之间的相互转化【问题导思】二进制数110 011(2)化为十进制数是多少?【提示】110 011(2)=1×25+1×24+0×23+0×22+1×21+1×20=51.k进制化为十进制的方法a n·a n-1·a n-2……a0(k)=a n×k n+a n-1×k n-1+…a1k+a0.k进制转化为十进制将二进制数101 101(2)化为十进制数.【思路探究】按二进制化十进制的方法,写成不同位上的数乘以基数的幂的形式,再相加求和.【自主解答】101 101(2)=1×25+0×24+1×23+1×22+0×21+1×20=32+8+4+1=45.一个k进制的正整数就是各位数码与k的方幂的乘积的和,其中幂指数等于相应数码所在位数(从右往左数)减1.例如:230 451(k)=2×k5+3×k4+0×k3+4×k2+5×k+1.将下列各数化成十进制数.(1)11 001 000(2);(2)310(8).【解】(1)11 001 000(2)=1×27+1×26+0×25+0×24+1×23+0×22+0×21+0×20=200;(2)310(8)=3×82+1×81+0×80=200.十进制转化为k进制(1)将194化成八进制数;(2)将48化成二进制数.【思路探究】除k取余→倒序写出→标明基数【自主解答】(1)∴194化为八进制数为302(8).(2)∴48化为二进制数为110 000(2).1.将十进制化成k进制的方法:用除k取余法,用k连续去除十进制数所得的商,直到商为零为止,然后将各步所得的余数倒序写出,即为相应的k进制数.2.为了区分不同的进位制,常在数的右下角标明基数.十进制数一般不标注基数.将十进制数30化为二进制数.【解】∴30(10)=11 110(2).不同进位制之间的转化将七进制数235(7)转化为八进制数.【思路探究】七进制→十进制→八进制【自主解答】235(7)=2×72+3×71+5×70=124,利用除8取余法(如图所示).∴124=174(8),∴235(7)转化为八进制为174(8).1.本题在书写八进制数174(8)时,常因漏掉右下标(8)而致误.2.对于非十进制数之间的互化,常以“十进制数”为中间桥梁,用除k取余法实现转化.将二进制数1 010 101(2)化为十进制数结果为________;再将该数化为八进制数结果为________.【解析】 1 010 101(2)=1×26+0×25+1×24+0×23+1×22+0×21+1×20=85.∴85化为八进制数为125(8).【答案】85125(8)(见学生用书第26页)算法案例在实际问题中的应用(12分)古时候,当边境有敌人来犯时,守边的官兵通过在烽火台上点火向境内报告,如图1-3-1所示,烽火台上点火表示数字1,未点火表示数字0,约定二进制数对应的十进制数的单位是1 000,请你计算一下,这组烽火台表示有多少敌人入侵?图1-3-1【思路点拨】观察图形发现中间的烽火台未点火,得出其代表数字为0,其他都为1,由此得出二进制数,再将其转化为实际人数.【规范解答】由图易知这组烽火台表示的二进制数为11 011(2),4分它表示的十进制数为11 011(2)=1×24+1×23+0×22+1×21+1×20=27,8分由于十进制数的单位是1 000,故入侵敌人的数目为27×1 000=27 000.12分本题将军事知识与进位制之间的转化巧妙结合起来,在将二进制数转化为十进制数后,应明确此数并不是所求敌人的人数,不要忽视题目中条件“单位是1 000”.把一个非十进制数转化为另一种非十进制数,通常是把这个数先转化为十进制数,然后再利用除k取余法,把十进制数转化为k进制数.而在使用除k取余法时要注意以下几点:1.必须除到所得的商是0为止;2.各步所得的余数必须从下到上排列;3.切记在所求数的右下角标明基数.(见学生用书第26页)1.下列各数中可能是四进制数的是()A.55B.32C.41D.38【解析】四进制数中最大数不超过3,故B正确.【答案】 B2.110(2)转化为十进制数是()A.5 B.6 C.4 D.7【解析】110(2)=1×22+1×21+0×20=6.【答案】 B3.把153化为三进制数,则末位数是()A.0 B.1 C.2 D.3【解析】153÷3=51,余数为0,由除k取余法知末位数为0. 【答案】 A4.把154(6)化为七进制数.【解】154(6)=1×62+5×61+4×60=70.∴70=130(7).∴154(6)=130(7).一、选择题1.下列写法正确的是()A.858(8)B.265(7)C.312(3)D.68(6)【解析】k进制中各位上的数字均小于k,故A、C、D选项错误.【答案】 B2.(2013·洛阳高一检测)把89转化为五进制数是()A.324(5)B.253(5)C.342(5)D.423(5)【解析】故89=324(5).【答案】 A3.三位五进制数表示的最大十进制数是() A.120 B.124 C.144 D.224【解析】三位五进制数最大为444(5),444(5)=4×52+4×51+4×50=124.【答案】 B4.由389化为的四进制数的末位是() A.3 B.2 C.1 D.0【解析】∵∴389=12 011(4),故选C.【答案】 C5.下列各数中,最小的数是()A.111 111(2)B.75C.200(6)D.105(8)【解析】111 111(2)=1×25+1×24+1×23+1×22+1×21+1×20=63. 200(6)=2×62=72.105(8)=1×82+0×81+5×80=69.【答案】 A二、填空题6.将101 110(2)化为十进制数为________.【解析】101 110(2)=1×25+0×24+1×23+1×22+1×21+0×20=32+8+4+2=46.【答案】467.已知一个k进制数132(k)与十进制数30相等,则k等于________.【解析】132(k)=1×k2+3×k+2=k2+3k+2=30,∴k=4或-7(舍).【答案】 48.五进制数23(5)转化为二进制数为________.【解析】23(5)=2×51+3×50=13,将13化为二进制数13=1 101(2).【答案】 1 101(2)三、解答题9.在什么进制中,十进制数71记为47?【解】设47(k)=71(10),则4×k1+7×k0=4k+7=71,∴k=16,即在十六进位制中,十进制71记为47.10.设m是最大的四位五进制数,将m化为七进制.【解】∵m是最大的四位五进制数,∴m=4 444(5),∴m=4×53+4×52+4×51+4×50=624(10),∴,∴4 444(5)=1 551(7).11.若二进制数10b 1(2)和三进制数a 02(3)相等,求正整数a ,b . 【解】 ∵10b 1(2)=1×23+b ×2+1=2b +9, a 02(3)=a ×32+2=9a +2, ∴2b +9=9a +2,即9a -2b =7, ∵a ∈{1,2},b ∈{0,1}, 当a =1时,b =1适合, 当a =2时,b =112不适合.∴a =1,b =1.计算机为什么要采用二进制呢?第一,二进制只有0和1两个数字,要得到表示两种不同稳定状态的电子器件很容易,而且制造简单,可靠性高.例如,电位的高与低,电容的充电与放电,晶体管的导通与截止,等等.第二,在各种记数法中,二进制运算规则简单,有布尔逻辑代数作理论依据,简单的运算规则使得机器内部的操作也变得简单.二进制加法法则只有4条:0+0=0,0+1=1,1+0=1,1+1=10,而十进制加法法则从0+0=0到9+9=18,有100条.二进制的乘法法则也很简单:0×0=0,0×1=0,1×0=0,1×1=1,而十进制的乘法法则要由一张“九九表”来规定,比较复杂.。
必修3第一章1.3算法案例:案例3进位制[教学目标]:(1)了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换。
(2)学习各种进位制转换成十进制的计算方法,研究十进制转换为各种进位制的除k 去余法,并理解其中的数学规律。
[教学重点]各进位制表示数的方法及各进位制之间的转换[教学难点]除k取余法的理解[情感态度价值观] 学生通过合作完成任务,领悟十进制,二进制的特点,了解计算机与二进制的联系,进一步认识到计算机与数学的联系,培养他们的合作精神和严谨的态度。
[教学方法] 讲解法、尝试法、归纳法、讨论法、[教学用具]多媒体电脑[学法] 学习各种进位制特点的同时探讨进位制表示数与十进制表示数的区别与联系,熟悉各种进位制表示数的方法,从而理解十进制转换为各种进位制的除k取余法。
[教学过程]一、创设情景,揭示课题辗转相除法和更相减损术,是求两个正整数的最大公约数的算法,秦九韶算法是求多项式的值的算法,将这些算法转化为程序,就可以由计算机来完成相关运算。
人们为了计数和运算方便,约定了各种进位制,本节课我们来共同学习《进位制》你都了解那些进位制?比如说?在日常生活中,我们最熟悉、最常用的是十进位制,据说这与古人曾以手指计数有关;由于计算机的计算与记忆元件特点,计算机上通用的是二进位制;一周七天是七进位;一年十二个月〔生肖、一打〕是十二进制;旧式的称是十六进制;〔老称一斤为16两,故而有了半斤八两之说〕、24进制〔节气〕一小时六十分、角度的单位是六十进位制。
二进制是有德国数学家莱布尼兹发明的。
第一台计算机ENIAC〔埃尼阿克〕用的就是十进制。
计算机之父冯·诺伊曼研究后,提出改进意见,用二进制替代十进制。
主要原因①二进制只有0和1两个数字,要得到两种不同稳定状态的电子器件很容易,而且制造简单,可靠性高;②各种计数法中,二进制运算规那么简单。
如:十进 制乘法叫九九表,二进制只有4句。
诚西郊市崇武区沿街学校第四中学高中数学算法案例-进位制教案A版必修3一.教学目的(1)知识与技能:学生理解进位制的概念,学会表示进位制数,理解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联络进展各种进位制之间的转换.(2)过程与方法:学生经历得出各种进位制与十进制之间转换的规律的过程,进一步掌握进位制之间转换的方法.(3)情感态度价值观:学生通过完成任务,领悟十进制,二进制的特点,理解计算机的电路与二进制的联络,进一步认识到计算机与数学的联络,培养他们的精神和严谨的态度.二.教学重点与难点重点:各进位制表示数的方法及各进位制之间的转换.难点:“除k取余法〞的理解.三.教学方法与手段讲授法、归纳法、讨论法.计算机辅助教学(未能呈现)四.教学过程Ⅰ.创设情景提醒课题我们常见的数字都是十进制的,但是并不是生活中的每一种数字都是十进制的.你能举出一些实例么生活中的进位制:如:60进制(在时间是是上,1小时分成60分钟,1分钟分成60秒;在角度上,1度分成60分,1分分成60秒)、12进制〔月份、生肖、一打〕、七进制〔一周七天〕、16进制〔老称一斤为16两,故而有了半斤八两之说〕、24进制〔节气〕等等.那么什么是进位制不同的进位制之间又有什么联络呢Ⅱ.新课讲授一、进位制的概念进位制是人们为了计数和运算方便而约定的记数系统,约定满二进一,就是二进制;满十进一,就是十进制;满十二进一,就是十二进制;等等,也就是说,“满几进一〞就是几进制,几进制的基数就是几. 考虑1日常生活中,常用的是十进制数,十进制数用哪些数字进展记数?答:0、1、2、3、4、5、6、7、8、9.考虑2二进制用的是那些数字?七进制用的是那些数字?答:0、1;0、1、2、3、4、5、6.特别地,十六进制:0、1、2、3、4、5、6、7、8、9、A 、B 、C 、D 、E 、F.那么,对于k 进制数〔k 是一个大于1的整数〕怎样〔以k 为基数〕记一个数呢?怎样才能分清,不和其它进制数发生混淆呢?二、k 进制数的表示对于任何一个数,我们可以用不同的进位制来表示.考虑3假设k 是一个大于1的整数,那么以k 为基数的k 进制数可以表示为一串数字连写在一起的形式:其中,对于011,,,,a a a a n n 有什么要求呢?明确两个要点:(1)第一个数字(最高位)不能等于0;(2)每一个数字都必须小于k .即:表示各种进位制数一般在数字右下角标明基数(十进制一般不标明基数).如:)2(111001表示二进制数;)8(71表示八进制.考虑4十进制数3721如何表示成10的幂的乘积之和的形式?也就是说十进制中的3721中的3表示3个千,7表示7个百,2表示2个十,1表示1个一.十进制数在计数时,几个数字排成一排,从右起,第一位是个位,个位上的数字是几,就表示几个一,第二位是十位,因为满十进一,十位上的数字是几,就表示几个十,接着依次是百位,千位,万位,….对于十进制数,比方说:3721,根据它的意义,我们可以把它写成下面的形式:3721=3×103+7×102+2×101+1×100请你模拟上述过程,把二进制数11011〔2〕改写成上述形式:11011〔2〕=1×24+1×23+0×22+1×21+1×203421〔5〕=3×53+4×52+2×51+1×50考虑5:k 进位制的数可以写成什么样的形式呢?〔课本40页探究〕假设)(011k n n a a a a 表示一个k 进制的数,请你把它写成各个位上数字与k 的幂的乘积之和的形式.上面这个改写过程,就是把k 进制的数转化为十进制数的方法,只要写成各个位上数字与k 的幂的乘积之和的形式,就完成了转换.题型二:十进制数转化为k 进制数例2把89转化为二进制数.解:因为二进制数要满足“满二进一〞的原那么,所以第一步,用2去除89,得到它的商与余数.第二步,用上一步的商去除以2,得到它的商与余数,继续执行第二步,直到商为0为止.89=2×44+144=2×22+022=2×11+011=2×5+15=2×2+12=2×1+01=2×0+1所以,89=2×(2×(2×(2×(2×2+1)+1)+0)+0)+1=……=1×26+0×25+1×24+1×23+0×22+0×21+1×20=1011001(2)这种算法叫做除2取余法,还可以用下面的除法算式表示:最后把所有的余数倒着写一遍,得到89=1011001(2).这种方法可以推广到:把十进制数化为k进制数的算法,称为“除k取余法〞.注意:我们将十进制数转换为二进制数的时候,希望将十进制数写成基数2的幂的乘积之和的形式。
凡事豫(预)则立,不豫(预)则废。
1.3.3 算法案例---进位制教学要求:了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换;学习各种进位制转换成十进制的计算方法,研究十进制转换为各种进位制的除k 去余法,并理解其中的数学规律.教学重点:各种进位制之间的互化.教学难点:除k 取余法的理解以及各进位制之间转换的程序框图及其程序的设计.教学过程:一、复习准备:1. 试用秦九韶算法求多项式52()42f x x x =-+当3x =时的值,分析此过程共需多少次乘法运算?多少次加法运算?2. 提问:生活中我们常见的数字都是十进制的,但是并不是生活中的每一种数字都是十进制的.比如时间和角度的单位用六十进位制,电子计算机用的是二进制,旧式的秤是十六进制的,计算一打数值时是12进制的......那么什么是进位制?不同的进位制之间又有什么联系呢?二、讲授新课:1. 教学进位制的概念:① 进位制是人们为了计数和运算方便而约定的记数系统,“满几进一”就是几进制,几进制的基数就是几. 如:“满十进一”就是十进制,“满二进一”就是二进制L . 同一个数可以用不同的进位制来表示,比如:十进数57,可以用二进制表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是一样的. 表示各种进位制数一般在数字右下脚加注来表示,如上例中:(2)(8)(16)1110017139==② 一般地,任意一个k 进制数都可以表示成不同位上数字与基数的幂的乘积之和的形式,即110110()110110...(0,0,...,,)n n n n k n n n n a a a a a k a a a k a k a k a k a k ----<<≤<=⨯+⨯+⨯+⨯L . 如:把(2)110011化为十进制数,(2)110011=1⨯25+1⨯24+0⨯23+0⨯22+1⨯21+1⨯20=32+16+2+1=51.把八进制数(8)7348化为十进制数,3210(8)7348783848883816=⨯+⨯+⨯+⨯=.2. 教学进位制之间的互化:①例1:把二进制数(2)1001101化为十进制数.(学生板书→教师点评→师生共同总结将非十进制转为十进制数的方法)分析此过程的算法过程,编写过程的程序语言. 见P34②练习:将(5)2341、(3)121转化成十进制数.③例2、把89化为二进制数.分析:根据进位制的定义,二进制就是“满二进一”,可以用2连续去除89或所得商,然后取余数. (教师板书)上述方法也可以推广为把十进制化为k 进制数的算法,这种算法成为除k 取余法.④练习:用除k 取余法将89化为四进制数、六进制数.⑤例3、把二进制数(2)11011.101化为十进制数.解:43210123(2)11011.101121202121212021227.625---=⨯+⨯+⨯+⨯+⨯+⨯+⨯+⨯=. (小数也可利用上述方法化进行不同进位制之间的互化. )变式:化为八进制→方法:进制互化3. 小结:进位制的定义;进位制之间的互化.三、巩固练习:1、练习:教材P35第3题四、作业:教材P38第3题。
第3课时案例3 进位制(一)导入新课情境导入在日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采用七进制、十二进制、六十进制,至今我们仍然使用一周七天、一年十二个月、一小时六十分的历法.今天我们来学习一下进位制.(二)推进新课、新知探究、提出问题(1)你都了解哪些进位制?(2)举出常见的进位制.(3)思考非十进制数转换为十进制数的转化方法.(4)思考十进制数转换成非十进制数及非十进制之间的转换方法.活动:先让学生思考或讨论后再回答,经教师提示、点拨,对回答正确的学生及时表扬,对回答不准确的学生提示引导考虑问题的思路.讨论结果:(1)进位制是人们为了计数和运算方便而约定的计数系统,约定满二进一,就是二进制;满十进一,就是十进制;满十二进一,就是十二进制;满六十进一,就是六十进制等等.也就是说:“满几进一”就是几进制,几进制的基数(都是大于1的整数)就是几.(2)在日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采用七进制、十二进制、六十进制,至今我们仍然使用一周七天、一年十二个月、一小时六十分的历法.(3)十进制使用0~9十个数字.计数时,几个数字排成一行,从右起,第一位是个位,个位上的数字是几,就表示几个一;第二位是十位,十位上的数字是几,就表示几个十;接着依次是百位、千位、万位……例如:十进制数3 721中的3表示3个千,7表示7个百,2表示2个十,1表示1个一.于是,我们得到下面的式子:3 721=3×103+7×102+2×101+1×100.与十进制类似,其他的进位制也可以按照位置原则计数.由于每一种进位制的基数不同,所用的数字个数也不同.如二进制用0和1两个数字,七进制用0~6七个数字.一般地,若k是一个大于1的整数,那么以k为基数的k进制数可以表示为一串数字连写在一起的形式a n a n-1…a1a0(k)(0<a n<k,0≤a n-1,…,a1,a0<k).其他进位制的数也可以表示成不同位上数字与基数的幂的乘积之和的形式,如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.非十进制数转换为十进制数比较简单,只要计算下面的式子值即可:a n a n-1…a1a0(k)=a n×k n+a n-1×k n-1+…+a1×k+a0.第一步:从左到右依次取出k进制数a n a n-1…a1a0(k)各位上的数字,乘以相应的k的幂,k的幂从n开始取值,每次递减1,递减到0,即a n×k n,a n-1×k n-1,…,a1×k,a0×k0;第二步:把所得到的乘积加起来,所得的结果就是相应的十进制数.(4)关于进位制的转换,教科书上以十进制和二进制之间的转换为例讲解,并推广到十进制和其他进制之间的转换.这样做的原因是,计算机是以二进制的形式进行存储和计算数据的,而一般我们传输给计算机的数据是十进制数据,因此计算机必须先将十进制数转换为二进制数,再处理,显然运算后首次得到的结果为二进制数,同时计算机又把运算结果由二进制数转换成十进制数输出.1°十进制数转换成非十进制数把十进制数转换为二进制数,教科书上提供了“除2取余法”,我们可以类比得到十进制数转换成k进制数的算法“除k取余法”.2°非十进制之间的转换一个自然的想法是利用十进制作为桥梁.教科书上提供了一个二进制数据与16进制数据之间的互化的方法,也就是先由二进制数转化为十进制数,再由十进制数转化成为16进制数.(三)应用示例思路1例1 把二进制数110 011(2)化为十进制数.解:110 011(2)=1×25+1×24+0×23+0×22+1×21+1×20=1×32+1×16+1×2+1=51.点评:先把二进制数写成不同位上数字与2的幂的乘积之和的形式,再按照十进制的运算规则计算出结果.变式训练设计一个算法,把k进制数a(共有n位)化为十进制数b.算法分析:从例1的计算过程可以看出,计算k进制数a的右数第i位数字a i与k i-1的乘积a i·k i-1,再将其累加,这是一个重复操作的步骤.所以,可以用循环结构来构造算法.算法步骤如下:第一步,输入a,k和n的值.第二步,将b的值初始化为0,i的值初始化为1.第三步,b=b+a i·k i-1,i=i+1.第四步,判断i>n是否成立.若是,则执行第五步;否则,返回第三步.第五步,输出b的值.程序框图如下图:程序:INPUT “a,k,n=”;a,k,nb=0i=1t=a MOD 10DOb=b+t*k^(i-1)a=a\\10t=a MOD 10i=i+1LOOP UNTIL i>nPRINT bEND例2 把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×(22+1)+1)+0)+0)+1=…=1×26+0×25+1×24+1×23+0×22+0×21+1×20=1 011 001(2).这种算法叫做除2取余法,还可以用下面的除法算式表示:把上式中各步所得的余数从下到上排列,得到89=1 011 001(2).上述方法也可以推广为把十进制数化为k进制数的算法,称为除k取余法.变式训练设计一个程序,实现“除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位数.……若q n-1除以k所得的商是0,余数是r n,即q n-1=r n,则r n是a的k进制数的左数第1位数.这样,我们可以得到算法步骤如下:第一步,给定十进制正整数a和转化后的数的基数k.第二步,求出a除以k所得的商q,余数r.第三步,把得到的余数依次从右到左排列.第四步,若q≠0,则a=q,返回第二步;否则,输出全部余数r排列得到的k进制数.程序框图如下图:程序:INPUT “a,k=”;a,kb=0i=0DOq=a\\kr=a MOD kb=b+r*10^ii=i+1a=qLOOP UNTIL q=0PRINT bEND思路2例1 将8进制数314 706(8)化为十进制数,并编写出一个实现算法的程序.解:314 706(8)=3×85+1×84+4×83+7×82+0×81+6×80=104 902.所以,化为十进制数是104 902.点评:利用把k进制数转化为十进制数的一般方法就可以把8进制数314 706(8)化为十进制数.例2 把十进制数89化为三进制数,并写出程序语句.解:具体的计算方法如下:89=3×29+2,29=3×9+2,9=3×3+0,3=3×1+0,1=3×0+1,所以:89(10)=10 022(3).点评:根据三进制数满三进一的原则,可以用3连续去除89及其所得的商,然后按倒序的顺序取出余数组成数据即可.(四)知能训练将十进制数34转化为二进制数.分析:把一个十进制数转换成二进制数,用2反复去除这个十进制数,直到商为0,所得余数(从下往上读)就是所求.解:即34(10)=100 010(2)(五)拓展提升把1 234(5)分别转化为十进制数和八进制数.解:1 234(5)=1×53+2×52+3×5+4=194.则1 234(5)=302(8)所以,1 234(5)=194=302(8)点评:本题主要考查进位制以及不同进位制数的互化.五进制数直接利用公式就可以转化为十进制数;五进制数和八进制数之间需要借助于十进制数来转化.(六)课堂小结(1)理解算法与进位制的关系.(2)熟练掌握各种进位制之间转化.(七)作业习题1.3A组3、4.。
导学案教学过程:一、〖创设情境〗日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关.但是 并不是生活中的每一种数字都是十进制的,比如爱好天文学的古人也曾经采用七进制、十二 进制、六十进制,至今我们仍然使用一周七天、一年十二个月、一小时六十分的历法,角度 的单位用六十进制,电子计算机用的是二进制,那么什么是进位制?不同的进位制之间又有什 么联系呢?我们这节课就来学习进位制的知识. 二、〖新知探究〗 (一)进位制进位制是人们为了计数和运算方便而约定的记数系统,约定满二进一,就是二进制; 满十进一,就是十进制;满十二进一,就是十二进制;满六十进一,就是六十进制;即 “满几进一”就是几进制,几进制的基数就是几.对于任何一个数,我们可以用不同的进位制来表示.比如:十进数57,可以用二进制 表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是 一样的.即57=111001(2) ,57=71(8) ,57=39(16).一般地,若k 是一个大于1的整数,那么以k 为基数的k 进制数可以表示为一串数字连写在一起的形式)(011k n n a a a a 00(,k a n ≤1 n a ,…,1a ,)0k a .若)(011k n n a a a a 表示一个k 进制数,它也可以写成各位上的数字与k 的幂的乘积之和的形式, 即:001111)(011k a k a ka k a a a a a n n nn k n n .如:01231011021071033721 ,012345)2(212020212121111001 , 0123)8(828483877342 ,例1 把二进制数)2(110011化为十进制数.解:51121632212120202121110011012345)2( .〖思考〗:如何改进上述算法,把其他进位制数化为十进制数?001111)(011k a k a k a k a a a a a n n n n k n n例2 设计一个算法,把k 进制数a (共有n 位)化为十进制数b .(参考课本P41—P42)(二)除k 取余法例3 把89化为二进制数.解:根据二进制数“满二进一”的原则,可以用2连续去除89或所得商,然后取余数. 具体的计算方法如下: 因为 89=2 44+144=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 26+0 25+1 24+1 23+0 22+0 21+1 20=1011001(2)这种算法叫做除2取余法,还可以用下面的除法算式表示:把上式中各步所得的余数从下到上排列即可得到89=1011001(2)上述方法也可以推广为把十进制化为k 进制数的算法,这种算法成为除k 取余法.例4 设计一个程序,实现“除k 取余法”. (参考课本P43—P44) 随堂练习:1.用除k 取余法把73转换为二进制数;2.用除k 取余法把89转换为五进制数;3.用除k 取余法把2008转换为二进制数和八进制数. 三、〖归纳小结〗1.进位制的概念及表示方法;2.十进制与k 进制之间转换的方法及计算机程序. 四、〖书面作业〗 课本P48习题1.3 A 组3.六、〖教后记〗 1.2.七、〖巩固练习〗1.《自主学习丛书》P14例2;2.《自主学习丛书》P15的巩固练习.44 22 11 5 2 1 0 89 2 2 2 2 2 2 2 余数。
第3课时案例3 进位制
(一)导入新课
情境导入
在日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采用七进制、十二进制、六十进制,至今我们仍然使用一周七天、一年十二个月、一小时六十分的历法.今天我们来学习一下进位制.
(二)推进新课、新知探究、提出问题
(1)你都了解哪些进位制?
(2)举出常见的进位制.
(3)思考非十进制数转换为十进制数的转化方法.
(4)思考十进制数转换成非十进制数及非十进制之间的转换方法.
活动:先让学生思考或讨论后再回答,经教师提示、点拨,对回答正确的学生及时表扬,对回答不准确的学生提示引导考虑问题的思路.
讨论结果:
(1)进位制是人们为了计数和运算方便而约定的计数系统,约定满二进一,就是二进制;满十进一,就是十进制;满十二进一,就是十二进制;满六十进一,就是六十进制等等.也就是说:“满几进一”就是几进制,几进制的基数(都是大于1的整数)就是几.
(2)在日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采用七进制、十二进制、六十进制,至今我们仍然使用一周七天、一年十二个月、一小时六十分的历法.
(3)十进制使用0~9十个数字.计数时,几个数字排成一行,从右起,第一位是个位,个位上的数字是几,就表示几个一;第二位是十位,十位上的数字是几,就表示几个十;接着依次是百位、千位、万位……
例如:十进制数3 721中的3表示3个千,7表示7个百,2表示2个十,1表示1个一.于是,我们得到下面的式子:
3 721=3×103+7×102+2×101+1×100.
与十进制类似,其他的进位制也可以按照位置原则计数.由于每一种进位制的基数不同,所用的数字个数也不同.如二进制用0和1两个数字,七进制用0~6七个数字.
一般地,若k是一个大于1的整数,那么以k为基数的k进制数可以表示为一串数字连写在一起的形式
a n a n-1…a1a0(k)(0<a n<k,0≤a n-1,…,a1,a0<k).
其他进位制的数也可以表示成不同位上数字与基数的幂的乘积之和的形式,如
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.
非十进制数转换为十进制数比较简单,只要计算下面的式子值即可:
a n a n-1…a1a0(k)=a n×k n+a n-1×k n-1+…+a1×k+a0.
第一步:从左到右依次取出k进制数a n a n-1…a1a0(k)各位上的数字,乘以相应的k的幂,k的幂从n开始取值,每次递减1,递减到0,即a n×k n,a n-1×k n-1,…,a1×k,a0×k0;
第二步:把所得到的乘积加起来,所得的结果就是相应的十进制数.
(4)关于进位制的转换,教科书上以十进制和二进制之间的转换为例讲解,并推广到十进制和其他进制之间的转换.这样做的原因是,计算机是以二进制的形式进行存储和计算数据的,而一般我们传输给计算机的数据是十进制数据,因此计算机必须先将十进制数转换为二
进制数,再处理,显然运算后首次得到的结果为二进制数,同时计算机又把运算结果由二进制数转换成十进制数输出.
1°十进制数转换成非十进制数
把十进制数转换为二进制数,教科书上提供了“除2取余法”,我们可以类比得到十进制数转换成k进制数的算法“除k取余法”.
2°非十进制之间的转换
一个自然的想法是利用十进制作为桥梁.教科书上提供了一个二进制数据与16进制数据之间的互化的方法,也就是先由二进制数转化为十进制数,再由十进制数转化成为16进制数.
(三)应用示例
思路1
例1 把二进制数110 011(2)化为十进制数.
解:110 011(2)=1×25+1×24+0×23+0×22+1×21+1×20=1×32+1×16+1×2+1=51.
点评:先把二进制数写成不同位上数字与2的幂的乘积之和的形式,再按照十进制的运算规则计算出结果.
变式训练
设计一个算法,把k进制数a(共有n位)化为十进制数b.
算法分析:从例1的计算过程可以看出,计算k进制数a的右数第i位数字a i与k i-1的乘积a i·k i-1,再将其累加,这是一个重复操作的步骤.所以,可以用循环结构来构造算法.
算法步骤如下:
第一步,输入a,k和n的值.
第二步,将b的值初始化为0,i的值初始化为1.
第三步,b=b+a i·k i-1,i=i+1.
第四步,判断i>n是否成立.若是,则执行第五步;否则,返回第三步.
第五步,输出b的值.
程序框图如下图:
程序:
INPUT “a,k,n=”;a,k,n
b=0
i=1
t=a MOD 10
DO
b=b+t*k^(i-1)
a=a\\10
t=a MOD 10
i=i+1
LOOP UNTIL i>n
PRINT b
END
例2 把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×(22+1)+1)+0)+0)+1
=…=1×26+0×25+1×24+1×23+0×22+0×21+1×20
=1 011 001(2).
这种算法叫做除2取余法,还可以用下面的除法算式表示:
把上式中各步所得的余数从下到上排列,得到89=1 011 001(2).
上述方法也可以推广为把十进制数化为k进制数的算法,称为除k取余法.
变式训练
设计一个程序,实现“除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位数.
……
若q n-1除以k所得的商是0,余数是r n,即q n-1=r n,则r n是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=a\\k
r=a MOD k
b=b+r*10^i
i=i+1
a=q
LOOP UNTIL q=0
PRINT b
END
思路2
例1 将8进制数314 706(8)化为十进制数,并编写出一个实现算法的程序.
解:314 706(8)=3×85+1×84+4×83+7×82+0×81+6×80=104 902.
所以,化为十进制数是104 902.
点评:利用把k进制数转化为十进制数的一般方法就可以把8进制数314 706(8)化为十进制数.
例2 把十进制数89化为三进制数,并写出程序语句.
解:具体的计算方法如下:
89=3×29+2,
29=3×9+2,
9=3×3+0,
3=3×1+0,
1=3×0+1,
所以:89(10)=10 022(3).
点评:根据三进制数满三进一的原则,可以用3连续去除89及其所得的商,然后按倒序的顺序取出余数组成数据即可.
(四)知能训练
将十进制数34转化为二进制数.
分析:把一个十进制数转换成二进制数,用2反复去除这个十进制数,直到商为0,所得余数(从下往上读)就是所求.
解:
即34(10)=100 010(2)
(五)拓展提升
把1 234(5)分别转化为十进制数和八进制数.
解:1 234(5)=1×53+2×52+3×5+4=194.
则1 234(5)=302(8)
所以,1 234(5)=194=302(8)
点评:本题主要考查进位制以及不同进位制数的互化.五进制数直接利用公式就可以转化为十进制数;五进制数和八进制数之间需要借助于十进制数来转化.
(六)课堂小结
(1)理解算法与进位制的关系.
(2)熟练掌握各种进位制之间转化.
(七)作业
习题1.3A组3、4.。