大数处理.docx

上传人:b****5 文档编号:5649292 上传时间:2022-12-30 格式:DOCX 页数:11 大小:287.23KB
下载 相关 举报
大数处理.docx_第1页
第1页 / 共11页
大数处理.docx_第2页
第2页 / 共11页
大数处理.docx_第3页
第3页 / 共11页
大数处理.docx_第4页
第4页 / 共11页
大数处理.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

大数处理.docx

《大数处理.docx》由会员分享,可在线阅读,更多相关《大数处理.docx(11页珍藏版)》请在冰豆网上搜索。

大数处理.docx

大数处理

沈阳航空工业学院

课程设计

 

大数处理

 

班级/学号200604021090

学生姓名刘玮航

指导教师赵晨光

沈阳航空工业学院

课程设计任务书

课程名称软件技术基础课程设计

院(系)电子信息工程学院专业电子工程

班级6402103学号200604021090姓名刘玮航

课程设计题目大数处理

课程设计时间:

2008年7月14日至2008年7月27日

课程设计的内容及要求:

由于计算机所能表示和处理的数的有效数字位数有限,因此在进行大数运算时会产生溢出要求用C语言编写程序实现大整数的四则运算(加、减、乘、除)。

提示:

大数计算的因数和结果精度一般是少则数十位,多则几万位。

在C语言中定义的类型中精度最多只有二十多位,因而我们采取用链表存贮的方式来存放大数。

在计算中会用到从高位开始计算,和从低位开始计算数值的两种情况。

所以我们将链表定义为双向链表,其中为一个单元来存贮数据,一个指针指向前方的数据,另一个指向后的数据。

从而完成大数运算

 

指导教师2008年7月11日

负责教师年月日

学生签字年月日

 

一、题目分析

1、在本设计题目中要求是大数的四则运算,但由于计算机所能表示和处理的数的有效数字位数有限,因此在进行大数运算时会产生溢出要求用C语言编写程序实现大整数的四则运算(加、减、乘、除)。

我们知道整型数只能存储16位的数,浮点型也就只能32位的数,对于题目要求的几百位根本不能实现,所以只有用链表或数组两种方法来实现大数的四则运算。

由于链表的方法对我来说实在是比较复杂,所以我选择了用数组的方法来实现设计题目的要求。

只要将从1到9的数均放在一个字符串中,只要减去48即可得到数字结果(依据ASCII的值)。

2、程序主要模块:

(1)大数加法模块;

(2)大数减法模块;(3)大数乘法模块;(4)除法模块。

3、子程序:

(1)读入函数;

(2)比较函数;(3)大数减法子函数(4)大数乘法子函数。

二、设计过程(设计流程图)

1、本设计程序主要是由大数加、减、乘、除运算模块及各个子程序组成,经过对变量及数组的定义,分别调用加法函数add、减法函数sub、乘法函数mul,除法函数divid,进行大数的四则运算。

2、设计流程图

(1)输入函数

输入字符并统计字符串长度,将字符串的每个字符减去48即得到了哈有1—9的数,随后按顺序存放到数组a中,若输入的字符串不是1—9,则输出“输入出错”,程序退出。

图1输入函数的流程图

 

(2)大数加法运算

加法函数是先比较数组a与数组b的长短,将长的数组字长存放到max_len中。

然后从低位算起,把对应的位相加,之后加上前一位的进位。

判断最后一位是否还要向前进位,经过循环实现加法运算。

 

图2加法函数流程图

(3)比较函数

判断数组a、b的长度,当a数组长返回1,当b数组长返回0;当数组a、b相等时,利用for循环依次比较存放在数组中的值,则根据不同的情况返回不同的值。

图3比较函数流程图

(4)大数减法子函数

此函数默认数组a>b,过for循环语句,从低位到高位依次相减,并将得到的结果存放到数组c中,同时在相减过程中要充分考虑错位相减操作。

图4大数减法子程序流程图

(5)大数减法

先通过调用大数减法子程序比较两个数组a[MAX]和b[MAX]的长短,记下返回的数值k。

当k等于2时两数组相等,直接输出减法结果0;当k等于1时,调用函数subABigerB(a,b,c),得到加法结果;当k等于0时,数组a小于数组b,调用函数subABigerB(b,a,c),得到减法结果。

图6大数减法流程图

(6)数组乘法子函数

此函数通过for循环语句,依次将m与数组a中的每一位相乘。

如果所得的结果大于10进行进位操作,并把所得的结果存放到数组c中。

图6数组乘法子函数流程图

(7)大数乘法

此函数先调用数组乘法子函数,利用for循环把一个数组的第一位乘以另一个数组中的每一位,把第二位乘得的结果向前移一位,把第三位乘出的结果向前移两位,依次类推。

最后将得到的所有结果通过调用的加法函数累加起来,最终得到运算结果。

图7大数乘法流程图

(8)大数除法

此函数先调用大数减法子函数比较数组a与数组b的大小,并将比较的结果放入k中。

当k等于2时,直接输出商1,余数0;当k等于1时,将被除数减去除数,若余数大于0时一直循环,利用大数加法函数累加循环次数,最后输出数组c,即为商的结果。

当k等于0时,直接输出商0,余数数组a。

图8大数除法函数流程图

(9)主函数

通过定义清零后,分别输入数组a与数组b的值,之后分别进行大数的加、减、乘、除四则运算。

图9数函数流程图

 

+

 

三、调试过程及实验结果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1