第一篇:整数四则运算练习
数四则混合运算题
40+160÷40
288-144÷18+35
(58+37)÷(64-9×5)95÷(64-45)
478-145÷5×6+46
122-36×4÷12+35
85+14×(14+208÷26)
21+(327-23)÷19
539-513÷(378÷14)
74-3094÷17÷13
19+(253-22)÷21
50+129×28-42
(23+23)×24-597
(110-10)÷10-10
54-24+14×14
304-275÷(275÷25)
(70+10)÷(18-10)
120÷12×18-54
44+15×16-32
(10-100÷10)×11
(53-588÷21)×36
(1)50+160÷40(2)120-144÷18+35(3)347+45×2-4160÷52(4)(58+37)÷(64-9×5)(5)95÷(64-45)(6)178-145÷5×6+42(7)85+14×(14+208÷26)(8)(284+16)×(512-8208÷18)(9)(58+37)÷(64-9×5)
(10)21+(327-23)÷19(11)539-513÷(378÷14)(12)34-3094÷17÷13(13)19+(253-22)÷21(14)50+20×28-42(15)(23+23)×24-597(16)(110-10)÷10-10(17)45-24+14×14(18)304-275÷(275÷25)(19)(70+10)÷(18-10)(20)120÷12×18-54(21)44+16×15-32(22)(10-100÷10)×11(23)(53-588÷21)×36(24)(60+10)÷(17-10)(25)17+(233-43)÷10(26)100÷10×10-60(27)424-475÷19×16(28)22+(374-10)÷26(29)(245-11)÷18-11(30)22-(10+100÷10)(31)(252-14)÷17-10(32)35-13+10×15(33)(346-10)÷16-12(34)215-198÷(121÷11)(35)(45-651÷21)×33(36)19+192÷12-10(37)572÷22×23-158(38)19+56-1224÷34(39)(714-12)÷27-19(40)14+(21-19)×14(41)18-(13+15)÷262(42)736÷(43-20)×23(43)(227+11)÷(31-14)(44)36+19×14-23(45)828÷23×12-48(46)18-15+10×18(47)(31-154÷11)×12(48)(1369-37)÷37-32(49)160÷(22-12)×22(50)357÷21×13-213(51)985-728÷26×35(52)(438-39)÷21-12(53)(20+18)×11-239(54)(639-71×9)÷167(55)12520÷8×(121÷11)(56)(2010-906)×(65+15)(57)(10800-800×4)÷4(58)100÷25×(100÷25)(59)54÷18+41×3(60)16×5-80÷16(61)640+360÷60+40(62)5×(825-115÷23)(63)21×(376-376÷8)(64)(143+429÷13)×24(65)396+126÷18-19(66)240-240÷15×4(67)(7225-104×15)÷55(68)78×50-1440÷12(69)3856÷16+85×16(70)4000÷(16+832÷13)(71)(326+95×25)÷37(72)(7236÷18-228)×28(73)(4275-24×75)÷25(1)50+160÷40(2)120-144÷18+35(3)347+45×2-4160÷52(4)(58+37)÷(64-9×5)(5)95÷(64-45)(6)178-145÷5×6+42(7)85+14×(14+208÷26)(8)(284+16)×(512-8208÷18)(9)(58+37)÷(64-9×5)
(10)21+(327-23)÷19(11)539-513÷(378÷14)(12)34-3094÷17÷13(13)19+(253-22)÷21(14)50+20×28-42(15)(23+23)×24-597(16)(110-10)÷10-10(17)45-24+14×14(18)304-275÷(275÷25)(19)(70+10)÷(18-10)(20)120÷12×18-54(21)44+16×15-32(22)(10-100÷10)×11(23)(53-588÷21)×36(24)(60+10)÷(17-10)
(25)17+(233-43)÷10(26)100÷10×10-60(27)424-475÷19×16(28)22+(374-10)÷26(29)(245-11)÷18-11(30)22-(10+100÷10)(31)(252-14)÷17-10(32)35-13+10×15(33)(346-10)÷16-12(34)215-198÷(121÷11)(35)(45-651÷21)×33(36)19+192÷12-10(37)572÷22×23-158(38)19+56-1224÷34(39)(714-12)÷27-19(40)14+(21-19)×14(41)18-(13+15)÷262(42)736÷(43-20)×23(43)(227+11)÷(31-14)(44)36+19×14-23(45)828÷23×12-48(46)18-15+10×18(47)(31-154÷11)×12(48)(1369-37)÷37-32(49)160÷(22-12)×22(50)357÷21×13-213(51)985-728÷26×35(52)(438-39)÷21-12(53)(20+18)×11-239(54)(639-71×9)÷167(55)12520÷8×(121÷11)(56)(2010-906)×(65+15)(57)(10800-800×4)÷4(58)100÷25×(100÷25)(59)54÷18+41×3(60)16×5-80÷16(61)640+360÷60+40(62)5×(825-115÷23)(63)21×(376-376÷8)(64)(143+429÷13)×24(65)396+126÷18-19(66)240-240÷15×4(67)(7225-104×15)÷55(68)78×50-1440÷12(69)3856÷16+85×16(70)4000÷(16+832÷13)(71)(326+95×25)÷37(72)(7236÷18-228)×28(73)(4275-24×75)÷25
二、填
空。
1.()法、()法、()法和()法统称四则运算。
2.在一个算式里只有加、减法或只有乘除法的运算,应()依次计算,既有加法又有乘除法的运算应先算(),再算(),有括号的要先算()里面的,再算()外面的。
3.40减去40除以40的商,所得的差再剩以40,结果是()。
三、其他题。
1.把下面几个分步式改写成综合算式. 960÷15=64 64-28=36 2.把下面几个分步式改写成综合算式.75×24=1800 9000-1800=7200 3.把下面几个分步式改写成综合算式.4535-500=4035 782-777=5 4035÷5=807 4.把下面几个分步式改写成综合算式.8×15=120 63+120=183 183÷61=3 5.给下面的式子加上括号,使等号左右两边相等.7×9+12÷3=91
7×9+12÷3=25 7×9+12÷3=49
48×6÷48×6=1
6、在下面的○中填上>、<或=。25×4÷25×4○25×4-25×4 600÷20÷5○600÷(20×5)450÷18-12○450÷(18-12)
3840-(103+17)×25○3840-103+17×25 412+750÷5×36○(412+750÷5)×36 750÷5+410×36○(750+410)÷5×36 35×(329-129)○35×329-129×35
四、文字叙述题 1、6000除以59与35的差, 商是多少? 2、52与28的差与25相乘, 积是多少? 3、347与34的和,除以75与72的差, 商是多少?
4、从480里减去35的6倍,差是多少? 得到的差再除以9,结果是多少? 5、600与560的和除以他们的差,商是多少?
50+160÷40
120-144÷18+35
(58+37)÷(64-9×5)
95÷(64-45)
178-145÷5×6+42
120-36×4÷18+35 85+14×(14+208÷26)
21+(327-23)÷19=
539-513÷(378÷14)=
34-3094÷17÷13=
19+(253-22)÷21=
50+20×28-42=
(23+23)×24-597=
(110-10)÷10-10=
45-24+14×14=
304-275÷(275÷25)=
(70+10)÷(18-10)=
120÷12×18-54=
44+16×15-32=
(10-100÷10)×11=
(53-588÷21)×36=
(60+10)÷(17-10)=
17+(233-43)÷10=
100÷10×10-60=
424-475÷19×16=
22+(374-10)÷26=
(245-11)÷18-11=
22-(10+100÷10)=
(252-14)÷17-10=
35-13+10×15=
(346-10)÷16-12=
215-198÷(121÷11)=
(45-651÷21)×33=
19+192÷12-10=
572÷22×23-158=
19+56-1224÷34=
(714-12)÷27-19=
14+(21-19)×14=
18-(13+15)÷262=
736÷(43-20)×23=
(227+11)÷(31-14)=
36+19×14-23=
828÷23×12-48=
18-15+10×18=
(31-154÷11)×12=
(1369-37)÷37-32=
160÷(22-12)×22=
357÷21×13-213=
985-728÷26×35=
(438-39)÷21-12=
(20+18)×11-239=
50+160÷40
(58+370)÷(64-45)
120-144÷18+35 347+45×2-4160÷52
(58+37)÷(64-9×5)
95÷(64-45)
178-145÷5×6+42
420+580-64×21÷28
812-700÷(9+31×11)9405-2940÷28×21
920-1680÷40÷7
690+47×52-398 148+3328÷64-75
360×24÷32+730
2100-94+48×54(247+18)×27÷25
36-720÷(360÷18)
1080÷(63-54)×80
(528+912)×5-6178
8528÷41×38-904
264+318-8280÷69
(174+209)×26-9000
814-(278+322)÷15
1406+735×9÷45
796-5040÷(630÷7)
285+(3000-372)÷36
546×(210-195)÷30 78×50-1440÷12
3856÷16+85×16
4000÷(16+832÷13)
(326+95×25)÷37
(7236÷18-228)×28
(4275-24×75)÷25 630÷(21-12)×16
(420-42×7)÷6
530+54×4÷8 186-900÷(100-95)
(630÷9-23)×250
168-48×16÷8
二、解决问题
1、果园里的苹果树和桃树共有840棵,其中苹果树有15行,每行24棵。如果桃树有8行,平均每行多少棵?
2、王师傅用3小时加工了105个零件。照这样计算,王师傅再工作5小时一共可以加工多少个零件?
3、一把椅子售价55元,一张桌子的售价比椅子的2倍还多30元。买一套这样的桌椅需要多少元?
4、一把椅子售价55元,一张沙发的售价比椅子的7倍还多5元。一把椅子的售价比一张沙发便宜多少元?
5、一条裤子108元,一件上衣比裤子贵67元,买3套这样的衣服需要多少元?
6、给一个房间的地面贴地砖。如果用长3分米,宽2分米的长方形地砖,160块正好贴满。如果改用边长是4分米的正方形地砖,需要多少块?(1)1120-(280-96÷8)
(2)(42+38)÷(473-468)(3)100×[(48-15)÷5]
(4)[(125-25×5)+35 ]×60(5)200÷10+120×11
(6)516-(320+320÷5)(7)2500-791÷7×8
(8)[150-3÷(30-28)]×10 1.为“希望小学”捐图书,三年级捐152本,四年级捐的是三年级的2倍少12本,五年级捐的是三、四年级总和的2倍少12本,五年级捐书多少本?
2.公园里有菊花100盆,比月季花少35盆,郁金香是菊花和月季花总数的3倍还多15盆。公园里有郁金香多少盆?
3.水果店运来香蕉180千克,梨120千克,苹果比梨多50千克,西瓜的质量与香蕉和苹果的总质量的和同样多。运来西瓜多少千克?(1)(180+160÷20)÷4
(2)78×10+4228÷7(3)1980-(810+380÷4)
(4)800÷[25×(26-22)](5)324÷9+305÷5
(6)75×(700-400÷8)
(7)480-(48+48÷6)
(8)[48÷(75-69)+24]×15 4.
水果店运来香蕉180千克,橘子是香蕉的2倍,苹果比香蕉、橘子的总数少65千克,运来苹果多少千克?
5. 植树节六(1)班种了47棵树,六(2)班比六(1)班少种12棵,六(3)班种的是六(1)、六(2)总数的2倍,六(4)班种的是六(3)班的2倍少34棵。六(4)班种树多少棵?
6.修一条长5400米的公路,甲队独修要6天,乙队独修要9天,甲队比乙队平均每天少修多少米?
(1)288+25×27×4
(2)(200-1239÷21)×50(3)(7020+4050÷18)÷45
(4)[(512-475)×200-37]÷37(5)600-(214+84×3)
(6)4654+450÷18×15(7)(215+18×2)×200
(8)100-(302+42×6)÷277 1.某玩具厂计划30天生产玩具840套,实际24天就完成了,实际比计划每天多生产多少套?
2.幼儿园买来苹果和橘子各10筐,苹果每筐32千克,橘子每筐20千克,买来的苹果比橘子多多少千克?
3.一辆客车,第一天行了54千米,第二天行90千米,第三天行78千米,这辆客车平均每天行多少千米?
(1)280+(3500-1920÷40)
(2)1200÷(23+612÷36)(3)450÷(53-38)+108
(4)800-(52-216÷24)×15(5)45×16-325÷13
(6)3200÷(200-56×3)(7)(28+772÷4)×25
(8)2990÷(19×34-623)
1. 5个同学,他们的体重分别是32千克、39千克、43千克、40千克和31千克,这5个同学的平均体重是多少千克?
2.某校一年级有学生96人,二、三年级有学生共280人,四年级有168人,平均每个年级有多少人?
3. 甲、乙、丙、丁四位同学为学校捐图书,甲、乙两人共捐38本,丙、丁两人共捐70本,平均每人捐书多少本?
(1)3445÷(467-18×23)
(2)7653-2842÷29+432(3)56×27÷(175-147)
(4)268-(88+80)÷14(5)278-141+59-78
(6)1050-(24+576÷32(7)(328+198÷9)÷70
(8)65+260÷4×9 1.甲、乙、丙、丁四位同学为学校捐图书,甲、乙、丙三人平均每人捐书29本,丁捐了21本。平均每人捐书多少本?
2. 四辆大车运货,第一小时运货132件,第二小时运货155件,第三小时运货145件,平均每辆大车运货多少件?
3.小红练习跳绳,前4分钟平均每分钟跳88下,第5分钟要跳几下,才能使平均每分钟跳绳的次数达到90下?(1)(73+22)÷(72-67)
(2)36×5÷(27-17)(3)3200÷(1280-72×15)
(4)(457+28×14)×5(5)280÷(240-8×25)
(6)30+(96-12×5)
(7)1385-383+248÷62
(8)150+75÷3×4
1. 一只鸵鸟3小时跑162千米,自行车4小时行112千米,鸵鸟每小时比自行车快多少千米? 2.食堂上半年烧煤78吨,下半年的用煤量是上半年的2倍少52吨,食堂全年烧煤多少吨? 3.王师傅在一周的前2天平均每天加工零件730个,后5天平均每天加工681个。这一周平均每天加工两件多少个?
(1)3500-(124+76)×16
(2)(480+20×4)÷20(3)180+60÷5×6
(4)1721-3.6×(432-408)
(5)365-(142+1155÷105)
(6)8×(28+18÷15)(7)(230-215÷5)×16
(8)(160+880÷20)×4 1. 玩具厂第一季度生产玩具3838套,第二季度生产玩具4024套,上半年平均每月生产玩具多少套
2.水果店有哈密瓜42千克,梨比哈密瓜多105千克,苹果比哈密瓜、梨的总数少28千克,有苹果多少千克?
3.某洗衣机厂要生产1400台洗衣机,前5天平均每天生产80台,其余的要求在10天内完成,后十天平均每天生产多少台?
(1)(90-21×2)÷12
(2)70+(750-65×11)(3)(4800÷75+36)×12
(4)360÷9÷8+16(5)1080-3500÷250+346
(6)2010÷15-11×12(7)(487+2884÷28)×50
(8)200×73÷(543-178)(9)350-5×3÷5
(10)480-(80+20)÷4(11)(60-12×4)×15
(12)720+320÷16×7(13)315+43+30×6
(14)420-(25+15)×4(15)(638+8182)÷(184-100)(16)480-(32+320÷4)(1)
(2)50-[(45+35)÷5](3)(90-90)×199÷90
(4)235+49+65+11(5)50-[(45+35)÷100 ]
(6)32÷(20-96÷24)(7)(123+137)÷20+13
(8)4×[7×25-(25+13)](9)125×51×8
(10)108×125(11)35×181-35×81
(12)125×7+3000÷25(13)619-[58-(18+3)]
(14)169-(85+35)÷12
第二篇:整数简便运算教案
整数简便运算工程车人体的人特大号
教学目的
1、使学生进一步理解减法性质,加法运算定律,乘法运算定律,除法性质.2、通过复习整理,提高学生的计算能力,发展思维能力和思维灵活性,沟通知识间的联系。
.教学重点:理解运算的性质和定律.教学难点:沟通知识间的联系和发展思淮能力.7教学过程:
一、导入揭示课题。
二、复习整理:
(一)、整理加减法的简便运算。
1、出示:
734+98
56+78+44
(63+71)+29(1)、学生练习
(2)、说说简算的依据.(2)、随生回答板书。
2、出示:
385-199
836-265-35
412-73-312(1)、学生独立练习。
(2)、较对方法同上.(二)、整理乘除法的简便运算。
1、出示:
25×26×4
139×125×8
(200+2)×36
148×25(1)、学生讨论
(2)、学生汇报计算方法
(3)、说说你是根据什么道理?
2、随生回答板书。
3、出示:2700÷25÷4
225÷25(1)、学生讨论
(2)、汇报计算方法
(3)、为什么?
随生回答板书。
三、巩固提高。
1、出示:想一想:下列各题怎样计算较简便。374-(74+83)
27-59+58
102×236-236×2
8÷7+6÷7
28÷9-10÷9
2300÷4÷23
4500×25÷45(1)、学生讨论
(2)、同组同学互说简算的根据.(3)、问:这些方法与什么运算定律或运算性质有联系.2、随生回答板。
四、作业(略).板书设计(略)
三、整数简便运算的整理课的设计思路及教后摘记:
(一)、设计思路:、本课是在学生学习了应用积、商不变性质简便运算之后系统复习、整理整数的加减乘除法的简便计算方法。以归纳、概括、疏理运算性质和运算定律,沟通知识间的联系,发展学生思维能力为指导思想。、学过程的设计努力体现学生的主体地位。师生协作、同学间的合作的教学方法。努力开发学生的智力,为发展思维能力、提高计算能力、拓展学生的知识。
(二)、教后摘记:
1、从整堂课的完成情况来看,教学目标达成,教学思想得以体现,教师在教学中只充当“朋友”的角色,创设了融洽和谐的师生关系和活跃的课堂气氛。
2、教学中实施了小组讨论教法,针对学生所提出的向题充分展开讨论,激发引导学习小组积极讨论,培养了学生良好的思维能力,以及积极的个性心理品质,以发展性、主休性、民主性的原则也得以体现。使学生在与其他人的交往过程中学到了巧妙的计算方法,也使自己的见解得到别人的认可,体验到成功的乐趣,同时也培养了团结的精神。课题:整数加减法的简便算法
教学内容:加减法的运算规律及其应用
教学目标:
1、使学生初步认识加数和加数交换位置和不变,与从一个数里连续减去两个数,等于从这个数里减去两个数的和的运算规律。
2、学会应用这种规律进行简便计算。
3、培养学生分析、综合和抽象的思维能力,以及合理、灵活地进行计算的能力。教学过程:
一、复习引新
1、口算
48+52= 237+63= 74+26= 85+15= 128+175+25= 64+78+36= 439+302=
2、引入新课。刚才我们用简便方法,很快算出这些题的得数,这节课我们继续学习加减法的一些简便算法。(板书课题)通过学习,要能步认识减法运算中的一些规律,并能应用这些规律进行简便计算,进一步提高计算的能力。
二、教学新课
1.教学减法的运算规律。(1)、出示题目,读题。
指名学生口答解题算式,老师板书一种方法的算式和结果。
提问:第一种算法是怎样想的?求还剩多少米,还可以怎样算?(学生口答,老师板书算式和结果)第二种算法又是怎样想的? 这两种算法都是求的什么问题?从一个数里连续减去两个数,实际上就是从这个数里减去什么?所以两种算法的结果怎样?说明哪两个式子相等?[板书:360—87一113=360一(87十113)] 提问:从360里减去87和113这两个数,等于从360里减去什么?(2)题组的计算、比较。用小黑板出示第68页下面的题组。
请大家在课本上把这几道算式计算一下,看看每组里的两个算式的结果有什么关系,在o里填上适当的符号。
让学生口答练习结果,老师在o里板书等号。
提问:从第一组两个算式里可以看出从30里减去4和6两个数,等于从30里减去什么?第二组呢?第三组呢?(3)归纳运算规律。
在这三组算式里,每组算式之间都有什么共同特点?你发现了什么规律? 总结出运算规律,并让学生看课本上的结语读一读。(4)根据规律填空。
563—174—26=563—(174o26)342—69—31=342—(o)1284一(600+7)=1284—600 o 7 324—(24+198)=324— o 456—102=456—100 o 2 提问:前两题为什么o里都填加号?第三、四题为什么o里都填减号?为什么456一102等于456—100—27 说明:应用这一规律,可以使一些计算简便。2.教学简便算法。
出示例题。提问:这道题里两个减数可以凑成怎样的数?根据刚才学习的减法运算规律,怎样算比较简便?为什么? 谁再来说一说,这道题用简便算法可以怎样想? 按照这样想的过程,黑板上的题怎样算?(板书简便算法的计算过程)小结:例1里两个减数可以凑成整百数,就先求出两个减数的和200,再从724里减去这两个减数的和。这样算比较简便。
(2)计算724——(224+30)。出示题目。
提问:这道题是724减去两个数的和,大家看一看这三个数,先算加法会简便吗?你发现从724里先减去哪个数比较简便?为
什么?接下来再怎样算?为什么还要用减法减去307 谁来说一说这道题怎样计算?(老师板书计算过程)板书时结合提问:为什么等于724—224—307并说明这是把刚才的规律反过来应用。
小结:这道题是一个数减去两个数的和,由于724减去224可以口算,所以就反过来应用刚才的规律,从724里先减去224,再减去30。这样算比较简便。
(评析:这里补充了这一类型的练习题进行讲解,不仅使学生认识这一运算规律还可以反过来应用,加深了对这一规律的理解,还可以为下面例2的教学作好铺垫,使学生进一步领会和掌握应用这一规律使计算简便的关键。)(3)出示例2。提问:减数301接近几百?可以看做哪两个数的和?这样,400—301就可以写成400减去哪两个数的和?[板书:=400一(300+1)]现在你能看出怎样算比较简便吗?(板书计算过程)谁能说一说,这道题用简便算法是怎样想的? 追问:这里是怎样用刚才学到的规律的?(反过来用)小结:当减数接近整百数又比整百数稍大一点时,可以把它看成是几百加几的和,反过来应用刚才的规律,先减去几百,再减去几,这样算比较简便。
三、巩固练习1.“练一练”
(1)指名两人板演左边两题的连减题,其余学生做在课本上。集体订正。提问学生是怎样想的。
(2)指名两人板演右边两题,其余学生做在课本上。集体订正。提问学生是怎样想的。
(3)提问:这里四道题的简便算法,第一步得到的都是怎样的数? 指出:这里应用减法的运算规律简便计算,关键是看能不能先得到整百数再减。如果能先得到整百数,就可以应用规律使计算简便。
四、课堂小结
今天学习的减法运算的规律是什么?应用这个规律进行简便计算时,关键要看什么? 简便计算小练习
1、三年级3个班为学校修补图书。一班修补了47本,二班修补了42本,三班修补了58本。三个班共修补图书多少本?(用两种方法解答)
2、2、学校买来新书254本。其中故事书86本,文艺书114本,其余的是科技书,科技书多少本?(用两种方法解答)
3、一辆客车上有乘客54人,到达某站时,先下去28人,又上来36人。这时客车上有乘客多少人?
4、用简便方法计算
(1)15+36+35
(2)18+19+12
(3)48+25+75
(4)18+46+54
5、用简便方法计算
(1)145+67-45
(2)132+29-32
(3)116-48+84
(4)156+28-156
6、在□里填上适当的数
(1)47+98=47+□-□
(2)177-97=177-□+□(3)78+201=78+□+□
(4)211-101=211-□-□
7、在○里填上适当的符号
(1)739-(239+278)=739○239○278(2)968-257-143=968○(257○143)(3)645-(145+273)=645○145○273(4)898-543-257=898○(543○257)
8、用简便方法计算(1)、100-54-46
(2)234-(134+45)
(3)127+99
(4)232+208
9、用简便方法计算
(1)2+4+6+8+10+11+12
(2)1+3+5+7+9+11+13+15
第三篇:整数乘法运算定律推广到小数乘法练习9
课题:小数连乘和整数乘法运算定律推广到小数乘法的练习授课时间:2012、9、教案序号: 教学目标
1、掌握小数的连乘、乘加、乘减的运算顺序,并能按运算顺序正确计算结果。
2、理解整数乘法的交换律、结合律、分配律对于小数同样适用。
3、提高学生的类推能力,培养学生知识间存在着内在联系的思想。教学重点
掌握小数乘法的运算顺序和运算定律的应用。
教学难点
掌握小数乘法运算定律的应用。教具准备 电脑、实物投影。教学过程
一、复习旧知,导入新课
1、不计算,直接把上、下两排得数相等的算式用线连起来,并且说一说这样连的理由.
7×1
28×(5×4)
(24+36)×5(8×5)×24×5+36×
512×7
2、在整数乘法中你学过哪些运算定律?请分别说一说什么是乘法交换律、乘法结合律和乘法分配律,并用字母表示。根据学生回答,教师板书:
a×b=b×a
(a×b)×c=a×(b×c)
(a+b)×c=a×c+b×c
3、用简便方法计算.
25×98×125×5×8×4
15×201
学生集体练习,指名板演,订正时重点让学生说明是根据什么进行简算的。
教师谈话:前面我们复习了整数乘法的有关运算定律,灵活运用这些定律,可以使一些整数乘法的计算简便.整数乘法里的这些运算定律,在小数乘法中适用吗?如果适用,该怎样用?用这些运算定律后能使一些小数乘法运算简便吗?这就是这节课我们要探讨的问题——整数乘法运算定律推广到小数。(板书课题)
[设计意图]在复习导入部分,设计了三种形式的练习,目的是帮助学生回顾乘法的运算定律及其应用,为学生掌握本节课的知识奠定扎实的知识基础。
二、合作探究,解决问题
1、教学整数乘法的运算定律对于小数乘法同样适用。
找朋友的小游戏:
每个小组准备写有0.7×1.2、1.2×0.7、(0.8×0.5)×0.4、0.8×(0.5×0.4)、(2.4+3.6)×0.5、2.4×0.5+3.6×0.5六道算式的卡片,每人一张,按算式结果相等来找好朋友,找到了好朋友就握握手。指名一组学生将卡片贴在黑板上,并将每对好朋友的两道算式用等号连接起来。
提问:这三组算式说明了什么?
[设计意图]采用游戏方式巧妙地复习了乘法运算定律,揭示新旧知识的联系,调动学生的学习积极性,使学生主动投入到对新知识的探究过程中来,实现师生互动,活跃课堂气氛。
2、解决上节课提出的问题2:
将63吨大豆和137吨玉米从重庆运到涪陵,共需运费多少元?
问题怎样解决?如何列式?学生尝试自己列式解决。
思考:计算时的运算顺序是什么?每一步分别求的是什么?
教师巡视指导,指名学生用不同的方法板演。
第一种方法:分别求出63吨大豆和137吨玉米的运费,然后相加求出总的运费。
4.2×63+4.2×137 = 264.6+575.4 = 840(元)
第二种方法:先求出大豆和玉米的总重量,然后求出总的运费。4.2×(63+137)=4.2 × 200 =840(元)
比较:这种方法有什么相同之处?有什么不同?你认为哪种方法简便?为什么?
3、出示补充例题:
0.25×4.78×4 0.65×201
学生自主练习,指名板演,说说每道题都是运用什么运算定律进行简算的?
提问:在运用运算定律进行简算的时候,步骤是什么?
引导学生总结、归纳:一看、二想、三算的基本方法。
[设计意图] 在这一环节,教师把时间和空间都留给了学生,学生通过自己的思考、探讨,掌握了简算的技巧以及简算的基本思路,培养了学生的观察能力、思维能力和概括能力,充分体现了自主、探究、合作交流的学习方法。
三、应用知识,自主练习
1.填空,并说一说应用了哪个运算定律。
4.2×1.69 = □×□
2.5×(0.77×0.4)=(□×□)×□
6.1×3.6+3.9×3.6 =(□+□)×□
2、用简便方法计算:(教材14页第八题 第一竖行)
自主练习后指名学生说一说是怎样简算的,重点提问:怎样观察算式的特征?用什么样的运算定律?这样算为什么简便?
四、总结全课,反思体验
同学们,我们今天学习了什么内容?你有什么收获? 课后反思
学的知识点就记得快,记得牢,同时又培养了良好的学习习惯,没有占用过多的时间去讲解,而是巧妙地点拨、引导,留给学生自由发展的空间,学生参与的是获得知识的全过程。这样他们对所掘了创造潜能。
第四篇:长整数加减运算实验报告
长整数加减的运算
一、需求分析
问题描述:
设计一个实现任意长的整数进行加法运算的演示程序
基本要求:
利用双向循环链表实现长整数的存储,每个结点含一个整型变量。任何整型变量的范围是 -(2 15 -1)~(2 15 -1)。输入输出形式:按照中国对于长整数的表示习惯,每四位是一组,组间用逗号隔开
更高要求:
(1)长整数的减法
(2)多个长整数的连续加减法,并带括号等。具体方式可以参见表达式的求值部分,利用栈
测试数据:
(1)0;0;应输出“0”
(2)-2345,6789;-7654,3211;应输出“-1,0000,0000”
(3)-9999,9999;1,0000,0000,0000;应输出“9999,0000,0001”(4)1,0001,0001;-1,0001,0001;应输出“0”(5)1,0001,0001;-1,0001,0000;应输出“1”
(6)-9999,9999,9999;-9999,9999,9999;应输出“-1,9999,9999,9998”(7)1,0000,9999,9999;1;应输出“1,0001,0000,0000”
一、概要设计
1.数据结构
此实验采用的数据结构是双向循环链表。这样可以很容易的找到他的前驱以及它的后继。节点采用结构体类型,代码如下:typedef struct Node // 双向链表的结构体定义
{
int data;
struct Node *prior;struct Node *next;}DLNode;
2.使用函数
1)void ListInitiate(DLNode **head)
操作结果:初始化一个头结点为head的双向循环链表; 2)int ListLength(DLNode *head)
操作结果:计算以head为头结点的链表的长度 3)int ListInsert(DLNode *head,int i,int x)
操作结果:将节点数据为x的节点插到第i个位置上去。4)int abs(int x)
操作结果:绝对值函数,返回x的绝对值。5)int InputNumber(DLNode *head)
操作结果:将从键盘中接收数据并把得到的数据存入以head为头结点的链表中。四位一存,中间以逗号区分,结束符为分号。6)void OutputNumber(DLNode *head,int sign)
操作结果:将以head为头结点的链表中的所有数据输出到显示屏上,7)void add(DLNode *head1,DLNode *head2,DLNode *head3)操作结果:实现正数加正数的加法操作。8)int change(DLNode *head1,DLNode *head2)
操作结果:判断存在俩个链表中的数的大小,如何head1中的数大于head2中的数那么返回值为0,反之返回值为1,相等时返回值为2; 9)void method(DLNode *head1,DLNode *head2,int x)
操作结果:计算正数乘以正数的乘法运算。
10)void minus(DLNode *head1,DLNode *head2,DLNode *head3)操作结果:计算正数减正数的减法运算。
11)void yunsuan(DLNode *head1,DLNode *head2,DLNode *head3,char ch)
操作结果:正数,负数,加法,减法。计算式共分为八种运算,在这之前我已经实现了二种运算,那么这个函数就是把这八种运算按照一定的规则转化成已经实现的二种运算来实现完整的加减法运算。
12)void chengfa(DLNode *head1,DLNode *head2)
操作结果:在乘法中我只是实现了正数乘以正数的运算,那么这个函数就是通过调用method函数按照一定的规则来实现完整的乘法运算。13)void main()
操作结果:主函数。调用以上的各个函数来引导用户进行长整数的加法运算,加法运算,乘法运算。
二、详细设计
1.数据结构详细设计
typedef struct Node // 双向链表的结构体定义 {
int data;struct Node *prior;struct Node *next;}DLNode;双向循环链表的节点由三个部分组成,第一是数据部分data存储此节点的数据,第二是此节点的前驱指针部分*prior指向此节点的前驱,第三是此节点的后继指针部分*next指向此节点的后继。数据部分我们约定它为整形变量,前驱后继指针均为结构体Node类型。2.链表初始化函数:
void ListInitiate(DLNode **head)//双向链表的初始化 {
} if((*head=(DLNode *)malloc(sizeof(DLNode)))==NULL)exit(0);(*head)->prior=*head;(*head)->next=*head;
初始化之前需要定义一个类型为Node型的头结点变量,经过函数后完成链表的初始化即:头节点的前驱指针指向自己,同时他的后继指针也指向自己。3.计算已知的链表长度:
int ListLength(DLNode *head)//双向链表的表长 {
DLNode *p=head;int size=0;while(p->next!=head){
} p=p->next;size++;return size;} 此函数计算的是已知链表的长度。主要思想:从头结点开始寻找下一个节点,找到计数器加一。直到再次寻找到头结点时停止,计算完毕。
4.插入函数:
int ListInsert(DLNode *head,int i,int x)//双向链表的数据插入,i表示是插入的第几个元素 {
DLNode *p,*s;int j;p=head->next;j=0;while(p!=head&&j
} if(j!=i){
} if((s=(DLNode *)malloc(sizeof(DLNode)))==NULL)exit(0);s->data=x;s->prior=p->prior;//插入 p->prior->next=s;s->next=p;p->prior=s;return 1;printf(“n插入位置不合法!”);return 0;p=p->next;j++;
} 此函数是已知一双向链表实现在第i个位置插入data为x的节点。函数需要注意的是在什么位置插入才是合法的,在就是在该节点指针时的顺序不要搞错。5.绝对值函数:
int abs(int x){
} if(x<0)return-x;else return x;此函数是实现求一个整数的绝对值。设计这么一个函数主要是考虑到在存储负数的时候头结点应该变为正整数,然后通过其他手段变相实现那种运算。6.读入数据并插入对应的链表函数:
int InputNumber(DLNode *head)//读入输入的数据 {
int input,i=0;//第i个节点 char c;scanf(“%d%c”,&input,&c);while(1){
if(input<0&&i==0)//输入数为负且是第一个节点 {
} else if(input>=0&&i==0)//输入数为正且是第一个节点 {
} else {
} if(head->next->data>=0){
} //input=-1*input;ListInsert(head,i,input);ListInsert(head,i,input);//非第一个节点 else head->data=1;//将长整数的符号保存在头结点中 ListInsert(head,i,input);//插入数据 head->data=0;//将长整数的符号保存在头结点中 //input=abs(input);//取输入数字的绝对值 ListInsert(head,i,input);//插入数据
}
} return 1;i++;if(c==';')break;//遇到数据输入完成标志,跳出循环 scanf(“%d%c”,&input,&c);此函数实现的是从键盘上得到数据根据三种情况进行不同的处理,判断是否是头结点,判断是否是整数,判断输入的字符是否是“;”分号。并且如果是正整数它的头结点data等于1否则为0。
7.输出函数
void OutputNumber(DLNode *head,int sign){ DLNode *r=head->next;while(r->data==0&&r!=head->prior){
r=r->next;} if(sign==1){
printf(“结果是:”);} else {
printf(“结果是:-”);}
printf(“%d”,r->data);
r=r->next;
while(r!=head)
{
if(r->data<10)
{
printf(“,000”);
printf(“%d”,r->data);
}
else if(r->data<100)
{
printf(“,00”);
printf(“%d”,r->data);
}
else if(r->data<1000){
//从表尾输出数据元素
}
} printf(“n”);
} else { } r=r->next;
printf(“,%d”,r->data);printf(“,0”);printf(“%d”,r->data);此函数实现的是将最后的结果输出到显示屏上,经过判断数据的正负和数据的范围来进行不同的处理,以保证在显示屏上显示的是正确的格式。
8.不完整加法函数(只可实现正数加上正数)
void add(DLNode *head1,DLNode *head2,DLNode *head3){ int z=0;
if(p1==head1&&p2!=head2){
while(p2!=head2){
e=p2->data+z;if(e>=10000){ z=1;int e;DLNode *p1,*p2;p1=head1->prior;p2=head2->prior;while(p1!=head1&&p2!=head2){ e=p1->data+p2->data+z;
}
if(e>=10000){
} else z=0;ListInsert(head3,0,e);p1=p1->prior;p2=p2->prior;z=1;e=e%10000;
} else z=0;ListInsert(head3,0,e);p2=p2->prior;e=e%10000;} if(z==1)ListInsert(head3,0,z);} else if(p1!=head1&&p2==head2){
while(p1!=head1){ e=p1->data+z;
if(e>=10000){
} z=1;e=e%10000;else z=0;p1=p1->prior;ListInsert(head3,0,e);} if(z==1)ListInsert(head3,0,z);} else{ if(z==1)ListInsert(head3,0,z);} } 此函数实现的是两个正数之间的相加运算,主要的算法和我们手算加法是一样的,首先设置一个进位计数的变量,根据存储的特点从低位开始相加带上进位即可得出相应的位和,最后更新进位变量。处理边界状况:如果两个链表一样长同时他们最高位在计算完成时仍然会有进位,那么应该考虑到在数据的更高位插入一个1表示最后的计算结果,这样才可以保证数据的完整性。9.判断俩正数大小函数:
int change(DLNode *head1,DLNode *head2){
int length1,length2,r=2;length1=ListLength(head1);DLNode *p1,*p2;p1=head1->next;p2=head2->next;length2=ListLength(head2);
if(length1>length2){
} else if(length1 } else { } return r;} int i=0;for(i=0;i } if(p1->data>p2->data){ } else if(p2->data>p1->data){ } else { } p1=p1->next;p2=p2->next;r=2;r=1;return r;break;r=0;return r;break;r=1;return r;r=0;return r;此函数实现的是判断俩个正数的大小。考虑俩正数的在链表中所占存储单元的多少,多的一定大,当他们一样长时,一位一位的比较直到找到一个节点中的data比另一个链表的对应节点的data大为止。如果最后仍是一样大那么这两个数就是一样大的。返回值为自己约定的参数r等于2表示俩数一样大,等于1表示第二个数大,等于 0表示第一个数大。 10.乘法函数: void method(DLNode *head1,DLNode *head2,int x){ void minus(DLNode *head1,DLNode *head2,DLNode *head3);DLNode *temp1;DLNode *temp2;DLNode *temp3;DLNode *temp4;DLNode *temp5;int e,z=0,i,j;ListInitiate(&temp1);ListInitiate(&temp2);ListInitiate(&temp3);ListInsert(temp2,0,0);DLNode *p1,*p2;p1=head1->prior;p2=head2->prior;for(i=0;i while(p1!=head1){ } if(z!=0)ListInsert(temp1,0,z);for(j=0;j } else z=0;ListInsert(temp1,0,e);p1=p1->prior;z=e/10000;e=e-z*10000;ListInitiate(&temp4);ListInsert(temp4,0,0);ListInitiate(&temp5); } p1=head1->prior;p2=p2->prior;}OutputNumber(temp2,x);此函数实现的是俩个整数的乘法运算。模仿手算乘法,乘数的每一位分别和被乘数相乘得到的结果相加,注意的是在每次乘完相加时注意把低位的空缺补上0,以保证数据可以按位相加。在每一位乘法时需要注意一定要加上低位的进位以及改变进位的值,这样才能保证每一位诚出来的结果是正确的。11.减法函数: void minus(DLNode *head1,DLNode *head2,DLNode *head3){ int z=0,x=-1;int e;DLNode *p1,*p2;p1=head1->prior;p2=head2->prior;x=change(head1,head2);if(x==0){ while(p1!=head1&&p2!=head2){ } p1->data=p1->data+z;p1->data=p1->data+z;if(p1->data>=p2->data){ } else { } e=10000+p1->data-p2->data;ListInsert(head3,0,e);z=-1;e=p1->data-p2->data;ListInsert(head3,0,e);p1=p1->prior;p2=p2->prior;z=0;p1=p1->prior;p2=p2->prior;while(p1!=head1){ e=p1->data; ListInsert(head3,0,e); p1=p1->prior;} else if(x==1){ p2=head1->prior;while(p1!=head2&&p2!=head1){ } p1->data=p1->data+z;p1->data=p1->data+z;if(p1->data>=p2->data){ } else { } e=10000+p1->data-p2->data;ListInsert(head3,0,e);z=-1;e=p1->data-p2->data;ListInsert(head3,0,e);p1=p1->prior;p2=p2->prior;z=0;p1=head2->prior;} p1=p1->prior;p2=p2->prior;while(p1!=head2){ e=p1->data;p1=p1->prior;ListInsert(head3,0,e);} head3->next->data=-1*head3->next->data;} else { } } head3->next->data=0;此函数实现的是两个正数的减法运算。整个函数分为俩大部分,第一部分处理第一个数大于第二个数,第而部分是处理第二个数大于第一个数。在这个为题上我自己想了好长 时间,感觉俩部分可以 结合成一部分,但是由于本人的知识所限没有想出更好的办法,这使得代码量增加了足足一倍之多。仍然模仿手算减法,先找到俩数字中最大的那个,用大的减去小的。最后判断符号位。12.整合八种情况函数: void yunsuan(DLNode *head1,DLNode *head2,DLNode *head3,char ch){ DLNode *p1,*p2;p1=head1->next;p2=head2->next;if(head1->data==1&&head2->data==1){ } else if(head1->data==1&&head2->data==0){ } else if(head1->data==0&&head2->data==1){ } if(ch=='+'){ } else { } head1->next->data*=-1;head2->next->data*=-1;add(head1,head2,head3);head3->next->data*=-1;head1->next->data*=-1;minus(head2,head1,head3);if(ch=='+'){ } else { } head2->next->data*=-1;add(head1,head2,head3);head2->next->data*=-1;minus(head1,head2,head3);if(ch=='+')add(head1,head2,head3);else minus(head1,head2,head3); else { } } 此函数实现的是八种情况的整合。八种情况分别是正数加正数、正数加负数、正数减正数、正数减负数、负数加负数、负数加正数、负数减正数、负数减负数。此函数调用已经做好的正数加正数和正数减正数函数判断符号位,根据一定的规则实现八种运算。if(ch=='+'){ } { } head1->next->data*=-1;head2->next->data*=-1;minus(head2,head1,head3);head1->next->data*=-1;head2->next->data*=-1;add(head1,head2,head3);head3->next->data*=-1;else 13.整合乘法运算函数: void chengfa(DLNode *head1,DLNode *head2){ int i;if((head1->next->data*head2->next->data)<0){ } else { } } 此函数实现的是乘法运算的完整运算。调用已经实现的正数乘以正数的函数来计算函数值,在判断最head1->next->data=abs(head1->next->data);head2->next->data=abs(head2->next->data);i=1;method(head1,head2,i);head1->next->data=abs(head1->next->data);head2->next->data=abs(head2->next->data);i=0;method(head1,head2,i); 终的函数符号,得到最和的结果。 14.主函数: void main(){ } 此函数是主函数。主要的作用是为用户做一个提示,如何完成自己想要的运算。同时调用各个函数实现运算。char ch,ch1;while(1){ } //int w=-1;DLNode *a,*b,*c;ListInitiate(&a);ListInitiate(&b);ListInitiate(&c);printf(“请输入数A(以分号结束):”);InputNumber(a);//printf(“n”);printf(“请输入数B(以分号结束):”);InputNumber(b);//w=change(a,b);printf(“请选择操作符:<+,-,*>:n”);scanf(“%s”,&ch1);if(ch1=='+'||ch1=='-'){ } else if(ch1=='*')chengfa(a,b);else printf(“此版本不支持%c运算”,ch1);printf(“要继续吗?(y/n):”);scanf(“%s”,&ch);if(ch=='Y'||ch=='y'){ } else exit(0);printf(“n”);continue;yunsuan(a,b,c,ch1);OutputNumber(c,1); 三、调试分析 1.调试过程中遇到的问题 在函数编写之前我首先写出了所有函数的框架以及各个函数之间的关系,根据逐步求精的思想来完善整个程序。即使是这样我仍然遇到了不少错误。 例如:在实现正数减正数时,我一开始没有分为以上所说的俩个部分,而是把俩个部分整合到一起实现一个大函数,但是在我运行调试时结果大不如人意,出现的都是匪夷所思的数字,我根本就推算不出这些数字是怎么来的。没有办法我只好在另辟途径来完成函数的实现。于是我就分作两个部分来实现,这样逐步追踪可以使思绪更加清晰,所付出的代价是代码量增加。 四、使用说明和测试结果 1.使用说明 用户在使用该程序时,只需按照程序中的规定进行即可实现长整数的加减运算,具体使用步骤如下: 1)点击运行按钮,在DOS窗口下按照规定输入的数字需要从低位开始数四位一组用逗号隔开。输入第一个数字。2)同上输入第二个数; 3)选择要对这两个长整数进行的运算。 4)两个操作数与运算符选择完毕后,按回车键即可得到运算结果。2.测试结果 1)考虑边界数字,输入0和0做加法运算,输出“0”,结果如下图: 2)考虑加法进位(包括低位向高位的进位以及高位仍有进位情况),结果如下图: 3)考虑减法进位并且数A小于数B以及数A大于数B,结果如下图: 4)乘法结果为正数以及负数两种情况,结果如下图: 5)本试验要求的数据 0、0; 输出“0”(已证明) 2345,6789、-7654,3211; 输出“1,0000,0000” 1,0000,0000,0000、9999,9999; 输出“9999,0000,0001” 1,0001,0001、;1,0001,0001; 输出“0” 五、心得体会 本次试验是我感觉到了理论应用与实践的意义,以前我们也做过类似的题目,所以在试验中我感觉还是比较顺利的但是还是花了我十七个小时左右才完成。根据模块化思想来把握整体结构会使自己的思路更加清晰,更加明了。得到的东西往往是说不出来的只有自己心理面最清楚。 六、附录 程序的完整代码清单: #include int data;struct Node *prior;struct Node *next;}DLNode;void ListInitiate(DLNode **head)//双向链表的初始化 { if((*head=(DLNode *)malloc(sizeof(DLNode)))==NULL)exit(0);(*head)->prior=*head; } int ListLength(DLNode *head)//双向链表的表长 { } int ListInsert(DLNode *head,int i,int x)//双向链表的数据插入,i表示是插入的第几个元素 { } int abs(int x){ if(x<0)return-x;DLNode *p,*s;int j;p=head->next;j=0;while(p!=head&&j } if(j!=i){ } if((s=(DLNode *)malloc(sizeof(DLNode)))==NULL)exit(0);s->data=x;s->prior=p->prior;//插入 p->prior->next=s;s->next=p;p->prior=s;return 1;printf(“n插入位置不合法!”);return 0;p=p->next;j++;DLNode *p=head;int size=0;while(p->next!=head){ } p=p->next;size++;(*head)->next=*head;return size; } int InputNumber(DLNode *head)//读入输入的数据 { } void OutputNumber(DLNode *head,int sign)//从表尾输出数据元素 { DLNode *r=head->next;while(r->data==0&&r!=head->prior){ r=r->next;int input,i=0;//第i个节点 char c;scanf(“%d%c”,&input,&c);while(1){ } return 1;if(input<0&&i==0)//输入数为负且是第一个节点 { } else if(input>=0&&i==0)//输入数为正且是第一个节点 { } else { } i++;if(c==';')break;//遇到数据输入完成标志,跳出循环 scanf(“%d%c”,&input,&c);if(head->next->data>=0){ } //input=-1*input;ListInsert(head,i,input);ListInsert(head,i,input);//非第一个节点 else head->data=1;//将长整数的符号保存在头结点中 ListInsert(head,i,input);//插入数据 head->data=0;//将长整数的符号保存在头结点中 //input=abs(input);//取输入数字的绝对值 ListInsert(head,i,input);//插入数据 else return x; } void add(DLNode *head1,DLNode *head2,DLNode *head3){ int z=0;int e;DLNode *p1,*p2;} if(sign==1){ } else { } printf(“%d”,r->data);r=r->next;while(r!=head){ } printf(“n”); if(r->data<10){ } else if(r->data<100){ } else if(r->data<1000){ } else { } r=r->next; printf(“,%d”,r->data);printf(“,0”);printf(“%d”,r->data); printf(“,00”);printf(“%d”,r->data);printf(“,000”);printf(“%d”,r->data);printf(“结果是:-”);printf(“结果是:”); p1=head1->prior;p2=head2->prior;while(p1!=head1&&p2!=head2) if(p1==head1&&p2!=head2){ while(p2!=head2){ e=p2->data+z;if(e>=10000){ } else z=0;ListInsert(head3,0,e);p2=p2->prior;z=1;e=e%10000;{ e=p1->data+p2->data+z; } if(e>=10000){ } else z=0;ListInsert(head3,0,e);p1=p1->prior;p2=p2->prior;z=1;e=e%10000;} if(z==1)ListInsert(head3,0,z);} else if(p1!=head1&&p2==head2){ while(p1!=head1){ e=p1->data+z; if(e>=10000){ } z=1;e=e%10000;else z=0;p1=p1->prior;ListInsert(head3,0,e);} if(z==1)ListInsert(head3,0,z);} else{ } int change(DLNode *head1,DLNode *head2){ int length1,length2,r=2;length1=ListLength(head1);DLNode *p1,*p2;p1=head1->next;p2=head2->next;if(length1>length2){ } else if(length1 } else { int i=0;for(i=0;i if(p1->data>p2->data){ } else if(p2->data>p1->data){ } else { p1=p1->next;p2=p2->next;r=1;return r;break;r=0;return r;break;r=1;return r;r=0;return r;if(z==1)ListInsert(head3,0,z);} length2=ListLength(head2); } void method(DLNode *head1,DLNode *head2,int x){ void minus(DLNode *head1,DLNode *head2,DLNode *head3);DLNode *temp1;DLNode *temp2;DLNode *temp3;DLNode *temp4;DLNode *temp5;int e,z=0,i,j;ListInitiate(&temp1);ListInitiate(&temp2);ListInitiate(&temp3);ListInsert(temp2,0,0);DLNode *p1,*p2;p1=head1->prior;p2=head2->prior;for(i=0;i while(p1!=head1){ } if(z!=0)ListInsert(temp1,0,z);for(j=0;j } else z=0;ListInsert(temp1,0,e);p1=p1->prior;z=e/10000;e=e-z*10000;ListInitiate(&temp4);ListInsert(temp4,0,0);ListInitiate(&temp5); } return r; } } r=2; } void minus(DLNode *head1,DLNode *head2,DLNode *head3){ int z=0,x=-1;int e;DLNode *p1,*p2;p1=head1->prior;p2=head2->prior;x=change(head1,head2);if(x==0){ while(p1!=head1&&p2!=head2){ } p1->data=p1->data+z;p1->data=p1->data+z;if(p1->data>=p2->data){ } else { } e=10000+p1->data-p2->data;ListInsert(head3,0,e);z=-1;e=p1->data-p2->data;ListInsert(head3,0,e);p1=p1->prior;p2=p2->prior;z=0; add(temp1,temp2,temp3);temp1=temp4;temp2=temp3;temp3=temp5;z=0;p1=head1->prior;p2=p2->prior;}OutputNumber(temp2,x);p1=p1->prior;p2=p2->prior;while(p1!=head1){ e=p1->data;p1=p1->prior;ListInsert(head3,0,e);} } } void yunsuan(DLNode *head1,DLNode *head2,DLNode *head3,char ch){ DLNode *p1,*p2;p1=head1->next;p2=head2->next;if(head1->data==1&&head2->data==1)else if(x==1){ p2=head1->prior;while(p1!=head2&&p2!=head1){ } p1->data=p1->data+z;p1->data=p1->data+z;if(p1->data>=p2->data){ } else { } e=10000+p1->data-p2->data;ListInsert(head3,0,e);z=-1;e=p1->data-p2->data;ListInsert(head3,0,e);p1=p1->prior;p2=p2->prior;z=0;p1=head2->prior;p1=p1->prior;p2=p2->prior;while(p1!=head2){ e=p1->data;p1=p1->prior;ListInsert(head3,0,e);} head3->next->data=-1*head3->next->data;} else { } head3->next->data=0; { } else if(head1->data==1&&head2->data==0){ } else if(head1->data==0&&head2->data==1){ } else { if(ch=='+'){ } { head1->next->data*=-1;head1->next->data*=-1;head2->next->data*=-1;add(head1,head2,head3);head3->next->data*=-1;if(ch=='+'){ } else { } head1->next->data*=-1;head2->next->data*=-1;add(head1,head2,head3);head3->next->data*=-1;head1->next->data*=-1;minus(head2,head1,head3);if(ch=='+'){ } else { } head2->next->data*=-1;add(head1,head2,head3);head2->next->data*=-1;minus(head1,head2,head3);if(ch=='+')add(head1,head2,head3);else minus(head1,head2,head3);else } void chengfa(DLNode *head1,DLNode *head2){ } void main(){ char ch,ch1;while(1){ //int w=-1;DLNode *a,*b,*c;ListInitiate(&a);ListInitiate(&b);ListInitiate(&c);printf(“请输入数A(以分号结束):”);InputNumber(a);//printf(“n”);printf(“请输入数B(以分号结束):”);InputNumber(b);//w=change(a,b);printf(“请选择操作符:<+,-,*>:n”);scanf(“%s”,&ch1);if(ch1=='+'||ch1=='-'){ yunsuan(a,b,c,ch1);int i;if((head1->next->data*head2->next->data)<0){ } else { } head1->next->data=abs(head1->next->data);head2->next->data=abs(head2->next->data);i=1;method(head1,head2,i);head1->next->data=abs(head1->next->data);head2->next->data=abs(head2->next->data);i=0;method(head1,head2,i); } } head2->next->data*=-1;minus(head2,head1,head3); } } } else if(ch1=='*')chengfa(a,b);else printf(“此版本不支持%c运算”,ch1);printf(“要继续吗?(y/n):”);scanf(“%s”,&ch);if(ch=='Y'||ch=='y'){ } else exit(0);printf(“n”);continue;OutputNumber(c,1); 《整数四则混合运算》教案 教学内容 苏教版数学四上第70-71页 教学目标 1.使学生联系具体问题情境,理解和掌握不含括号的混合运算的运算顺序,能正确的进行三步混合运算的计算; 2.使学生能联系实际问题说明解决问题的计算过程,联系计算过程归纳运算顺序,发展归纳思维,提高运算能力; 3.使学生进一步发展认真严谨、细致计算的学习习惯,树立数学规则意识,培养按规则办事的良好品质 教学重难点 重点:理解不含括号的三步计算混合运算的运算顺序; 难点:两个乘法(或除法)与加法(或减法)混合运算同时进行脱式计算的运算方法。 教学准备 多媒体课件 教学过程 一、激活经验 1.说说每题先算什么。52—36÷3 20×3÷4 20×2+72 82—9+18 提问:第一组:加减乘除法在一起,先算什么? 第二组:只有加减或者乘除,怎么计算? 明确:(1)先乘除,再加减;(2)同级:从左往右,依次计算。2.引入新课 揭题:我们已经学过不含括号的两步混合运算,掌握了运算顺序。今天,就以原来的知识为基础,学习新的混合运算。 二、教学新课 1.理解题意 很多同学喜欢下棋,我们一起去看看这位同学在买棋时遇到什么数学问题。演示例题,指名说说:知道哪些条件,要求什么问题? 提问:你想怎样解决这个问题? 2.列式计算(1)要求:你能列分布算式解决问题吗? 指名说,前两步算的是什么? 明确:要求一共要多少钱,可以用3副中国象棋的价钱加上4副围棋的价钱,也可以用4副围棋的价钱加上3副中国象棋的价钱。先算象棋或者先算围棋都可以。 (2)要求:列出综合算式你会吗?试一试。指名说算式,试着算一算。3.运算顺序 12×3+15×4 12×3+15×4 =36+60 =36+15×4 =96(元)=36+60 =96(元) 比较两种运算顺序,它们都对吗?哪个更好?为什么? 指出:这是一个三步混合运算,有乘有加先算乘,即分别先算象棋和围棋的价钱。4.问题:4副围棋比3副象棋贵多少元? 学生讨论、交流。 5.比较12×3+15×4和15×4—12×3的计算过程,有什么相同点? 指出:二级的乘法位于一级的加减法的两头,两头的乘法可以同时先算,再算中间的加减法。 除法位于加减法的两头,也是这样。6.试一试 同桌讨论交流:先算什么?明确计算顺序。独立完成计算。 7.回顾今天所学,提问:在没有括号的算式里,有乘、除法和加、减法,要先算什么? 三、练习巩固 1.练一练第1题 在书上画出运算顺序,同桌说一说,完成计算。2.练一练第2题 找出错误,并订正。 四、课堂总结 今天你学到了什么知识?第五篇:《整数四则混合运算》教案