一 : 小学数学加减法的速算法
速算也称快速计算,它是口算与笔算的完美结合,主要依靠学生对速算定律的熟练掌握、强烈的数感及对数字的思维、记忆,通过口算配合简单的笔算计算出得数的计算方式。[www.61k.com]新大纲指出:小学数学中的速算法是提高学生的数学运算、推理与交流的重要途径,也是计算能力和应用能力的重要组成部分。由此可见,培养学生的计算能力和应用能力,首先要从速算能力着手。那么怎样培养学生的速算能力呢?我认为应该从以下几个方面着手。
一、打好速算的基本功——口算
口算是速算的基本,要保证速算的准确率,基本口算的教学不可忽视,口算教学不在于单一的追求口算速度,而在于使学生理清算理,只有弄清了算理,才能有效地掌握口算的基本方法。因此,应重视抓好口算基本教学,例如:教学28+21=49时,要从实际操作入手,让学生理解:28 = 20 + 8;21 = 20 + 1。应把20和20相加,8和1相加。也可以用学具摆一摆28 + 21=49的思维过程图。再让学生交流一下看有没有其他的算法,这样在学生充分理解了算理的基础上,简缩思维过程,抽象出两位数加法的法则,这样,学生理解了算理,亦就掌握了口算的基本方法。
二、创设问题情境,唤醒生活体验
问题情境的创设必须要符合儿童的生活实际和已有的知识经验,形象直观而又蕴涵一定的数学知识。加减法的一些简便运算中的“一个数加上或减去接近整十、整百、整千时,先把它看作整十、整百、整千数,多加了几,减去几,多减了几,加上几”,这些话听起来比较拗口,怎样才能使学生容易懂呢?我首先出示了一幅图(画有日常生活用品及其它们的价格),提出了问题:从这幅图中,你看到了什么?想到了什么?因为买东西是每个学生都经历过的,有利于学生思考问题、提出问题,激活学生的内驱力。同时为引出下面的知识做好了铺垫,有利于学生的自主探索。在富有开放性的问题情境中,学生的思路开阔了,思维的火花闪现了,提出了许多问题:
(1)买一双旅游鞋和一套运动服需要多少钱?
(2)买一台电冰箱和一台洗衣机需要多少钱?
(3)如果有200元钱买一只书包还剩多少钱?
他们调动了自己的经验和原有的知识结构去探究这个情境中所蕴涵的数学问题,并积极地从多角度去思考问题,发现问题,达到了很好的教学效果。
三、巧用生活原型,探究运算规律
我们知道,数学本来就是从客观世界的数量关系与空间形式中抽象、概括出来的。当学生从问题情境中,体会出一些数学思想时,教师应以引导者、鉴赏者的身份,即教师只是提供一些建议或信息,而不是代替学生做出判断,同时鼓励学生有创造的想法,使学生在最大的空间去学习、去思考、去探索。在教学加法时,可以分成了两个步骤:
1、独立探索阶段
我们知道,真正地数学学习不是对于所授知识地简单积累,而是通过主体地主动建构。不同的学生由于不同的知识背景就有不同的思维过程,因此,在教学过程中必须充分注意各个学生的特殊性,放手让学生自己决定自己的探索方向,选择自己的方法,独立地进行探索。
教师提出问题:“营业员很快地算出买一套运动服(113元)和一个书包(59元)共需要172元,你们知道这是为什么吗?”学生想出了很多计算方法:
113+59=113+60-1=172。
113+59=113+50+9=172。
113+59=112+ (1+59)=172。
2、合作探讨阶段
未来社会已越来越注重个人能否与他人共事、能否有效地表达自己的看法和见解。在独立探索地基础上,组织学生合作和讨论,可以使他们彼此交流,不断反思自己的思考过程,做出全面地判断。
①每一种方法为什么这样做?请讲讲你的道理?
② 这几种方法哪一种比较简便?为什么?
通过合作交流,学生各抒己见,这样既达到了增强学生合作意识地目的,又培养了学生的主体意识。从而归纳出多加几,减去几;先凑整,再相加这两种方法。
在教孩子学减法时,可以让学生运用原型来揭示算理,探究规律。小学数学的内容大都可以直接在客观世界中找到它的原型。减数接近整十、整百、整千数时,把它看作整十、整百、整千数,多减几,加上几这个数学知识我们可以在生活中找到一个合适的原型——收付钱款时常常发生地“付整找零”的活动,并且在课堂中展示这个活动:妈妈带了165元,其中有一张百元纸币,到商店买钱包花了 97元,妈妈怎样给钱呢?由老师扮妈妈,一名学生扮售货员,妈妈拿出一百元钱给售货员,售货员找给妈妈3元。这里的道理明明白白,是学生所熟悉的常识。这个活动是原始的、最低层次的减法速算法,是学习数学的原型。再引导学生摆这个过程用算式表示出来:165-100+3,从而概括出速算的方法。这样,由常识上升到了数学,学生的学习由低层次上升到了高层次。
【趣味测试:这个女人会怎么样?答对的智商120以上】
在死亡面前,为了求生,即便突破底线,无情无义,也不一定能够生存。
这个女人会死吗?答案绝对不简单,答对的智商120以上
你看出来了吗?实在看不出来的话—
打开微信,关注微信号:znlxy58(←长按复制),回复“求生”可知道测试答案
二 : 计算小数加减法,先把各数的小数点对齐,也就是把()数
计算小数加减法,先把各数的小数点对齐,也就是把()数位上的数对齐。 |
相同 |
考点:
考点名称:小数的加法和减法学习目标:三 : 小数加减法与整数加减法算理、算法的异同
今天QQ群里安徽的老师提出这样一道判断题,与大家探讨交流:“小数加减法与整数加减法的计算方法完全相同。”对还是错?大家讨论激烈,各执一词。这是人教版教材三年级下第七单元的教学内容,教师教学用书中有:“小数点对齐后,计算方法与整数一样”这样的说法,那么这样的判断题究竟是对还是错呢?
先抛开计算方法不说,如果此题改为“小数加减与整数加减的计算算理完全相同”,我想就应该毫无争议了。因为无论是整数加减还是小数加减,算理都是相同数位上的数相加减,尽管在表像上我们看到的是,整数加减法是末位对齐,而小数加减法是小数点对齐,但究其实质是相同的,小数点对齐的根本原因就在于保证数位对齐。这也是我们进行小数加减法教学的关键点所在。计算教学重点在于理解算理,达到算法自动化。
再回过头来解决算法的问题:整数加减法的算法是数位对齐,从低位(个位)算起;小数加减法是小数点(数位)对齐,从低位(末位)算起,被减数数位不够,用零补齐。如果硬要说二者的不同,也确有不同,尤其是当“被减数数位不够用零补齐”,这一点在整数加减法中是万万不会出现的。
我想出题人的本意应该是在考察学生关于末位对齐和小数点对齐说法的不同,借此巩固学生对小数加减法算法的掌握,但我认为这样的考查是舍本逐末的做法。
关于计算教学的算理与算法的问题,还是那个观点,计算教学的重点是理解算理,因为只有理解算理才能达到真正意义上的算法自动化。忽视加深对学生算理理解、片面强调算法巩固训练的计算教学很容易落入算法机械化的误区,得不偿失。
四 : 计算机中负数的加减
这段时间开始看FOC的程序,开始改一些算法。把一些基础知识拣起来第14章计算机中数的表示 | 下一页 |
---|
我们已经了解了计算机中正整数如何表示,加法如何计算,那么负数如何表示,减法又如何计算呢?本节讨论这些问题。为了书写方便,本节举的例子都用8个bit表示一个数,实际计算机做整数加减运算的操作数可以是8位、16位、32位甚至64位的。
要用8个bit表示正数和负数,一种简单的想法是把最高位规定为符号位(Sign Bit),0表示正1表示负,剩下的7位表示绝对值的大小,这称为Sign andMagnitude表示法。例如-1表示成10000001,+1表示成00000001。这样用8个bit表示整数的取值范围是-(27-1)~27-1,即-127~127。
采用这种表示法,计算机做加法运算需要处理以下逻辑:
如果两数符号位相同,就把它们的低7位相加,符号位不变。如果低7位相加时在最高位产生进位,说明结果的绝对值大于127,超出7位所能表示的数值范围,这称为溢出(Overflow)[24],这时通常把计算机中的一个标志位置1表示当前运算产生了溢出。
如果两数符号位不同,首先比较它们的低7位谁大,然后用大数减小数,结果的符号位和大数相同。
那么减法如何计算呢?由于我们规定了负数的表示,可以把减法转换成加法来计算,要计算a-b,可以先把b变号然后和a相加,相当于计算a+(-b)。但如果两个加数的符号位不同就要用大数的绝对值减小数的绝对值,这一步减法计算仍然是免不了的。我们知道加法要进位,减法要借位,计算过程是不同的,所以除了要有第1节“为什么计算机用二进制计数”提到的加法器电路之外,还要另外有一套减法器电路。
如果采用Sign andMagnitude表示法,计算机做加减运算需要处理很多逻辑:比较符号位,比较绝对值,加法改减法,减法改加法,小数减大数改成大数减小数……这是非常低效率的。还有一个缺点是0的表示不唯一,既可以表示成10000000也可以表示成00000000,这进一步增加了逻辑的复杂性,所以我们迫切需要重新设计整数的表示方法使计算过程更简单。
本节介绍一种二进制补码表示法,为了便于理解,我们先看一个十进制的例子:
167-52=167+(-52)=167+(999-52)-1000+1=167+947-1000+1=1114-1000+1=114+1=115
167-52→减法转换成加法167+(-52)→负数取9的补码表示167+947→114进1→高位进的1加到低位上去,结果为115
在这个例子中我们用三位十进制数字表示正数和负数,具体规定如下:
表14.5.9'sComplement表示法
数值 | 补码表示 |
---|---|
-499 | 500 |
-498 | 501 |
... | ... |
-1 | 998 |
0 | 999 |
0 | 0 |
1 | 1 |
... | ... |
498 | 498 |
499 | 499 |
首先-52要用999-52表示,就是947,这称为取9的补码(9's Complement);然后把167和947相加,得到114进1;再把高位进的1加到低位上去,得115,本来应该加1000,结果加了1,少加了999,正好把先前取9的补码多加的999抵消掉了。我们本来要做167-52的减法运算,结果变成做999-52的减法运算,后者显然要容易一些,因为没有借位。这种补码表示法的计算规则用一句话概括就是:负数用9的补码表示,减法转换成加法,计算结果的最高位如果有进位则要加回到最低位上去。要验证这条规则得考虑四种情况:
两个正数,相加得正
一正一负,相加得正
一正一负,相加得负
两个负数,相加得负
我们举的例子验证了第二种情况,另外三种情况请读者自己验证,暂时不考虑溢出的问题,稍后会讲到如何判定溢出。
上述规则也适用于二进制:负数用1的补码(1'sComplement)表示,减法转换成加法,计算结果的最高位如果有进位则要加回到最低位上去。取1的补码更简单,连减法都不用做,因为1-1=0,1-0=1,取1的补码就是把每个bit取反,所以1的补码也称为反码。比如:
00001000-00000100→00001000+(-00000100)→00001000+11111011→00000011进1→高位进的1加到低位上去,结果为00000100
1's Complement表示法相对于Sign andMagnitude表示法的优势是非常明显的:不需要把符号和绝对值分开考虑,正数和负数的加法都一样算,计算逻辑更简单,甚至连减法器电路都省了,只要有一套加法器电路,再有一套把每个bit取反的电路,就可以做加法和减法运算。如果8个bit采用1'sComplement表示法,负数的取值范围是从10000000到11111111(-127~0),正数是从00000000到01111111(0~127),仍然可以根据最高位判断一个数是正是负。美中不足的是0的表示仍然不唯一,既可以表示成11111111也可以表示成00000000,为了解决这最后一个问题,我们引入2'sComplement表示法。
2's Complement表示法规定:正数不变,负数先取反码再加1。如果8个bit采用2'sComplement表示法,负数的取值范围是从10000000到11111111(-128~-1),正数是从00000000到01111111(0~127),也可以根据最高位判断一个数是正是负,并且0的表示是唯一的,目前绝大多数计算机都采用这种表示法。为什么称为“2的补码”呢?因为对一位二进制数b取补码就是1-b+1=10-b,相当于从2里面减去b。类似地,要表示-4需要对00000100取补码,11111111-00000100+1=100000000-00000100,相当于从28里面减去4。2'sComplement表示法的计算规则有些不同:减法转换成加法,忽略计算结果最高位的进位,不必加回到最低位上去。请读者自己验证上一节提到的四种情况下这条规则都能算出正确结果。
8个bit采用2'sComplement表示法的取值范围是-128~127,如果计算结果超出这个范围就会产生溢出,例如:
图14.3.有符号数加法溢出
如何判断产生了溢出呢?我们还是分四种情况讨论:如果两个正数相加溢出,结果一定是负数;如果两个负数相加溢出,结果一定是正数;一正一负相加,无论结果是正是负都不可能溢出。
图14.4.如何判定溢出
从上图可以得出结论:在相加过程中最高位产生的进位和次高位产生的进位如果相同则没有溢出,如果不同则表示有溢出。逻辑电路的实现可以把这两个进位连接到一个异或门,把异或门的输出连接到溢出标志位。
前面几节我们用8个bit表示正数和负数,讲了三种表示法,每种表示法对应一种计算规则,这称为有符号数(SignedNumber);如果8个bit全部表示正数则取值范围是0~255,这称为无符号数(UnsignedNumber)。其实计算机做加法时并不区分操作数是有符号数还是无符号数,计算过程都一样,比如上面的例子也可以看作无符号数的加法:
图14.5.无符号数加法进位
如果把这两个操作数看作有符号数-126和-8相加,计算结果是错的,因为产生了溢出;但如果看作无符号数130和248相加,计算结果是122进1,也就是122+256,这个结果是对的。计算机的加法器在做完计算之后,根据最高位产生的进位设置进位标志,同时根据最高位和次高位产生的进位的异或设置溢出标志。至于这个加法到底是有符号数加法还是无符号数加法则取决于程序怎么理解了,如果程序把它理解成有符号数加法,下一步就要检查溢出标志,如果程序把它理解成无符号数加法,下一步就要检查进位标志。通常计算机在做算术运算之后还可能设置另外两个标志,如果计算结果的所有bit都是零则设置零标志,如果计算结果的最高位是1则设置负数标志,如果程序把计算结果理解成有符号数,也可以检查负数标志判断结果是正是负。
[24]有时候会进一步细分,把正整数溢出称为上溢(Overflow),负整数溢出称为下溢(Underflow),详见strtol(3)
。
61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1