- 1
- 0
- 约4.38千字
- 约 7页
- 2026-03-10 发布于广西
- 举报
PAGE
PAGE1
高精度加减法
教学目标
1.知识与技能
学会高精度加法的基本使用
学会高精度减法的基本使用.
2.过程与方法:
学习流程:讲授——模仿——练习
通过课堂练习,巩固课堂内容。
教学重点、难点
【重点】
高精度数的存储
高精度加法算法过程
高精度数大小比较原理
高精度减法算法过程
【难点】
答案位数的精确计算控制
进位处理方法,单独用变量存储进位的处理方法
课时安排
课时安排:120分钟
四、上课准备
课程相关ppt、白板、白板笔、积分卡
课前检查电脑、投影仪、网络是否有故障,及时修复。
五、教学活动
活动时长
教学活动
注意事项
课前准备
老师准备学生电脑,保证电脑能正常使用;打开投影仪,打开上课课件,以最饱满的热情迎接学生!
提前10分钟准备
开场白
欢迎各位同学回到吉码信息学课堂。
引入
圆周率π的小数部分有多少位大家知道吗?
无限位!因为π是一个无理数,已经被人们证明过,这还是用微积分证明的。用普通的代数方法无法证明π是一个无限不循环的小数,因为它在本质上是一个超越数,不是一个代数数。
现在人们已经把π计算到了几十万亿位,当然这种计算必须借助超级计算机,而且必须有好的算法。
我们用C++语言来进行计算,目前为止接触到的精度最高的浮点数精度是双精度浮点数,大概也就只有15到16位有效数字。那么几十万亿位的精度怎么计算得来的呢?这就涉及到高精度计算了。高精度计算,在科学计算中常常遇到。我们今天所说的高精度运算,指的是整数高精度运算。当我们要表示一个超过20位的整数,并且用它来做计算的时候,正要采用高精度计算的算法。其主要原则是,把每一个数位上的数字存储在数组内,然后模拟竖式加减或运用别的算法来进行计算,最后得到的也是存储在数组内的数字。因为数组可以开的很大,我们能够表示的数位也会大大突破64位二进制小数的限制。
学习内容(1)
高精度数计算,本质上是一种模拟,我们把数字存储到数组内以后,就要模拟竖式运算的过程来计算,得到结果的各个数位上的数字。这个运算过程是模拟手算过程进行的,所以属于模拟算法的范畴。这里面并没有高深的数学道理,只需要模拟手算过程即可。
在此之前,我们需要介绍1个结论:
把数字拆分为一个一个的数位,然后存储在整数数组里,最好是“倒过来”存储,这样做高精度运算比顺序存储的数方便很多。
举个例子:
我们计算123456+123时,先把两个数字存储在数组里,如果顺序从高位到低位存储,那么在计算时是这样的:
123456
+123
我们可以看到,数组的第一个位置,存储的是最高位,但参与运算的两个数字的最高位却不是相同的数位,列竖式时应该低位对齐。
有同学说,我们把数组的最末位对齐就好了呀。但是最末位是哪一位,需要我们预先计算数位的位数才可以知道。而且,这样做加法和减法还算简单,但是做乘法时,就真的不方便了。因为乘法运算的进位很多,我们需要往前添加数位,但数组的第1个位置前却没有位置了,所以进位也是一个麻烦。所以,人们想了个办法,那就是倒过来存储数字,这样,往前做进位,就变为往后面添加数位,这就方便了。而且,这样还有个很方便的地方,那就是数组的第1个位置永远是最低位,把对应下标的数位对齐就可以直接运算了。那么,我们上面说的加法就是这样做的:
654321
+ 321
975321
结果是123579,把直接相加得到的结果逆序输出即可。
因此,我们做高精度数的运算,首先就要把数字“逆序转存”到整数数组中。
【提问】整型变量没有能存储这么多位数的,怎么进行输入?
【答案】用字符串输入呀!然后逆序转存也方便!
ppt6大整数加法
首先,大家实现输入
何输入一个大整数,并逆序转存在整数数组中?
1、用字符串进行输入。
stringA,B;
cinAB;
直接就输入了。
2、逆序转存。
举个例子:把大整数A,逆序转存到数组a中,并按照逆序的方式输出每一个数位,空格隔开每个数位。用数组a的第0位置表示数字的长度。
a[0]=A.size();
for(inti=a[0]-1;i=0;i--){a[l-i]=A[i]-48;}
for(inti=1;i=a[0];i++)couta[i];
教师把程序框架搭好,以上for循环的循环体留给学生来填写(即上面大括号内的部分)。
【提问】如果我们输入两个大整数,进行整数加法,保证没有进位,应该如何写程序?
留时间给同学们独立完成程序,教师从旁辅助。注意逆序转存,一定要区别数字字符和数字。存为整数时一定要存数字,注意处理的方法,就是直接减去数字0的编码。
如果存在进位,应该如何处理呢?
我们假设每一个数位都有进位(没有进位的按照进位=0处理即可),那么答案c的第i位其
您可能关注的文档
- C++编程《第001课 初识C++》教学设计.docx
- C++编程《第001课 初识C++》教学课件.pptx
- C++编程《第002课 变量和数据类型(1)》教学课件.pptx
- C++编程《第002课 变量和数据类型(1)》教学设计.docx
- C++编程《第003课 变量和数据类型(2)》教学设计.docx
- C++编程《第003课 变量和数据类型(2)》教学课件.pptx
- C++编程《第004课 选择与分支(1)》教学课件.pptx
- C++编程《第004课 选择与分支(1)》教学设计.docx
- C++编程《第005课 选择与分支(2)》教学课件.pptx
- C++编程《第005课 选择与分支(2)》教学设计.docx
- 非遗文化木雕知识技法分类木雕非遗介绍讲座PPT课件.pptx
- 川教版小学信息技术三年级上册第三单元 在线助我做家务3.2在线攻略全搜索PPT.pptx
- 北师大版(2024)物理八年级下册第八章 压强和浮力 第六节 浮力PPT.pptx
- 中小学生全面守护安全教育必修课主题班会PPT课件.pptx
- 川教版小学信息技术三年级上册第二单元 在线助我乐出游2.3在线购物备物品PPT.pptx
- 川教版小学信息技术三年级下册第二单元2.5评价在线学习成果PPT.pptx
- 川教版小学信息技术三年级上册第二单元 在线助我乐出游2.4在线交流聊计划PPT.pptx
- 川教版小学信息技术三年级下册第三单元3.1做好自我管理PPT.pptx
- 川教版小学信息技术三年级上册第一单元走进在线新生活1.2了解多样在线技能PPT.pptx
- 川教版小学信息技术三年级上册第一单元走进在线新生活1.3树立正确在线观念PPT.pptx
原创力文档

文档评论(0)