实验一一元多项式运算

实验一一元多项式运算

ID:47080797

大小:276.89 KB

页数:21页

时间:2019-07-18

实验一一元多项式运算_第1页
实验一一元多项式运算_第2页
实验一一元多项式运算_第3页
实验一一元多项式运算_第4页
实验一一元多项式运算_第5页
资源描述:

《实验一一元多项式运算》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用文档实验一一元多项式的运算1.问题定义及需求分析1.1课题目的和任务问题描述:设计一个一元多项式简单计算器。实验要求:1)采用顺序表或链表等数据结构。2)输入并建立多项式。3)输出运算结果的多项式。1.2数据形式输入数据形式:通过键盘输入。输入值的范围:多项式的项数和指数的输入数据为int型,输入值范围为-32768至32767;多项式系数的输入值范围为float型,范围为1.2e-38至3.4e+38。输出数据形式:输出到显示器。1.3程序功能实现两个一元多项式之间的加法、减法和乘法运算。1.4测试数据4//第一个多项式的项数14//第

2、一项的系数和指数33//第二项的系数和指数-22//第三项的系数和指数60//第四项的系数和指数5//第二个多项式的项数-35//第一项的系数和指数22//第二项的系数和指数-60//第三项的系数和指数文案大全实用文档-1-1//第四项的系数和指数1.2-2//第五项的系数和指数1.概要设计2.1抽象数据类型需要定义一个多项式类型的数据类型,里面包含一个int型的指数和一个float型的系数,再定义一个多项式节点,里面包含一个多项式类型的数据,和一个指向下一个节点的指针。通过对多项式节点的操作,实现对输入数据的运算。文案大全实用文档2.2主程

3、序流程及各模块之间的调用关系文案大全实用文档1.详细设计3.1存储结构实现多项式结构体:typedefstruct{floatcoef;intexpn;}Poly;typedefstructLNode{Polydata;structLNode*next;}LNode,*LinkList;多项式类型的定义:typedefLinkListpolynomial;3.2负责模块的伪码算法(1)intMultiplyPolyn(polynomial&a,polynomial&b){//多项式相乘if(a,b中均没有项){return0;}c=(poly

4、nomial)malloc(sizeof(LNode));//开辟一个c储存相乘结果c->next=NULL;ha=a->next;//ha为a中的项hb=b->next;//hb为b中的项for(;hb不空;下一项){//将a中第一项与b中所有项相乘ha的系数*hb的系数;ha的指数*hb的指数;开辟一个新节点E,将数据存入,并把E连到c后}Sort(c);//对c中多项式排序文案大全实用文档ha=ha->next;//ha指向下一个项while(ha!=NULL){//将a中第二项与b中所有项相乘,存入d,然后将c和d相加得到新的c,再以

5、此对a中其余各项做相同操作,最终得到乘法运算后的chb=b->next;//hb为b的第一项d=(polynomial)malloc(sizeof(LNode));//开辟一个d储存相乘结果d->next=NULL;for(;hb不空;下一项){//将a中第一项与b中所有项相乘ha的系数*hb的系数;ha的指数*hb的指数;开辟一个新节点E,将数据存入,并把E连到d后;}Sort(d);//对d中多项式排序ha=ha->next;//ha指向下一项AddPolyn(c,d);//将c,d相加得到新的c}t=a;a=c;//a指向运算结果Des

6、troyPolyn(b);//销毁初始的两个多项式DestroyPolyn(t);}(2)voidDestroyPolyn(polynomial&L){//销毁多项式while(L!=NULL){p=L;L=L->next;//指向后一项free(p);}文案大全实用文档}(3)voidSort(polynomial&L){//对多项式的指数进行冒泡排序for(多项式长度){for(j=L;j->next->next!=NULL;j=j->next){if(j->next指数next->next指数){//将大的冒到前面p=j->ne

7、xt;q=j->next->next;p->next=q->next;q->next=p;j->next=q;}}}}1.调试分析4.1问题分析与解决方法(1)多项式相乘对于多项式相乘,考虑到两个一元多项式的相乘,可以利用两个一元多项式相加的算法来实现,因为乘法运算可以分解为一系列的加法运算,所以只需循环执行加法运算,就可以完成多项式的相乘。例如A(x)和B(x)为一元多项式,则有:其中,每一项都是一个一元多项式。(2)销毁多项式销毁多项式只需要判断多项式中的项是否为空,不为空就将指针后移,然后释放刚才的储存空间,当为空时结束循环。文案大全实

8、用文档(3)对多项式各项进行排序通过冒泡排序实现多现实各项的指数的排序,冒泡排序的实现过程为:多项式中有多少项就进行多少次的排序,第一次排序遍历一遍所有项,进行比较

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。