- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一元多项式的运算实验报告和代码
问题描述:
设Pn(x)和Qm(x)分别两个一元多项式。试编写程序实现一元多项式的加法运算。
需求分析:
1. 本程序需要基于线性表的基本操作来实现一元多项式的加法,也可以用数组实现。
2.两个多项式都有键盘输入相应的系数和指数。
3.
//第一个多项式为9x15+ 7x8+5x3+3x
输入
4 //表示第一个多项式的项数
9, 15(回车) //表示9x15
7, 8 (回车)
5, 3 (回车)
3, 1 (回车)
输出
9x^15+ 7x^8+5x^3+3x^1
//第二个多项式为 -7x8+6x3+2
输入
3 //表示第二个多项式的项数
6, 3(回车) //表示9x15
-7, 8(回车)
2, 0 (回车)
输出
-7x^8+ 6x^3+2x^0
求和结果
9x^15+11x^3+3x^1+ 2x^0
三.概要设计
抽象数据类型:
为实现上述程序的功能,应以整数存储用户的输入,以及计算的结果。
实现多项式的运算,利用数组的方式需开辟一个二维数组,利用链表的方式须创造两个链表。
算法的基本思想:
数组实现:
定义一个结构体数组,p存储系数,q存储指数。
分别输出两次输入的多项式。
将两次输入的多项式的指数按从大到小的顺序进行排列,同时相应的系数要进行交换。
输出时如果进行判断。如果当前该项与下一项的的系数相同,将两项系数相加后输出,并跳过下一项。
如果不相等,直接输出。
输出时需注意的问题:
当系数为0时,该项不输出
当系数为负数时,不要再在前面输出+。
链表实现:
定义一个结构体,分别用exp,coef来存储系数和指数,同时在结构体里面定义一个该结构类型指针。
对输入的第一个多形式和第二个多项式分别构建一个链表(
按指数的大小)
输出时,通过比较两个链表当前位置的指数大小,相同,系数相加后输出,两个链表同时向前推进。如果其中一个大,只输出较大项,同时将其推进。
程序的流程:
输入模块:完成两个多项式的输入。
处理模块:将多项式按其指数大小进行排列。
输出模块:输出合并后的多项式。
四.详细设计:
算法的具体步骤:
数组方法
struct code{
int p,q;
}a[1000],b[1000];//结构体数组,可以用二维数组代//替
for(i=0;in;i++){
for(j=i+1;jn;j++){
if(a[j].qa[i].q) {
temp=a[j].q;//指数排序
a[j].q=a[i].q;
a[i].q=temp;
temp=a[j].p;//系数跟着变化
a[j].p=a[i].p;
a[i].p=temp;
}
}
//对输入的指数进行排序,相应的系数跟着变化
couta[0].px^a[0].q; //先输出第一项
if(a[i].p0)
else if(a[i].p0)
couta[i].px^a[i].q;
cout+a[i].px^a[i].q;//完成运算符和其他项的输//出,然后类似于上面,对第二个多项式进行相应的操作。
for(i=0;im;i++)
{ a[n+i].q=b[i].q;
a[n+i].p=b[i].p;
}//将两个多项式的指数,系数存储到一个数组
for(i=0;im+n;i++)
for(j=i+1;jn+m;j++){
if(a[j].qa[i].q){
temp=a[j].q;
a[j].q=a[i].q;
a[i].q=temp;
temp=a[j].p;
a[j].p=a[i].p;
a[i].p=temp;
}
}
//按指数由大到小进行排列
if(a[0].q!=a[1].q){
couta[0].px^a[0].q;
j=1;
}
else{
couta[0].p+a[1].px^a[0].q;
j=2;
}
//进行合并同类项的操作,如果该项与下一项的指数相等,//则系数相加。否则,只输出该
您可能关注的文档
最近下载
- 糖255 北师大版小学英语五年级第十一单元作业设计-2022.5.28.docx VIP
- 3、弧形梁工法最新.pdf VIP
- DENON天龙AV接收机AVR-X1200W产品说明书.pdf VIP
- 智能网联汽车自动泊车系统试验方法.pdf VIP
- 镀锌板单位重量表.pdf VIP
- 广州数控GSK980TDc车床CNC数控系统使用手册.pdf
- 2023年湖北省武汉市公安局招聘警务辅助人员535人(共500题含答案解析)笔试必备资料历年高频考点试题摘选.docx VIP
- 高一化学测试题(新人教版必修1必修2综合).docx
- 古树迁移方案.pdf
- DBJ04T 226(3)-2020建筑工程施工质量验收规程.docx
文档评论(0)