📄 多项式计算.cpp
字号:
//包含多项式计算函数和主函数的文件“多项式计算.cpp”
#include<iostream.h>
#include"顺序表.cpp"
//计算多项式p的值
template<class ElemType>
double PolySum1(LinearList<ElemType>& p, double x)
{
//用sum计算累加和,首先把常数项a0的值赋给它作为其初值
double sum=p.GetElemList(0);
//用w计算x的次幂,初值勤为1
double w=1;
//累加计算多项式的值
for(int i=0; i<p.ListSize(); i++){
w*=x; //计算出x的i次幂
sum+=p.GetElemList(i)*w; //把一个新的累加项aixi的值累加到sum中
}
return sum; //返回求出的多项式的值
}
//实现多项式p1和p2的加法,结果存入p3中
template<class ElemType>
void PolyAdd1(LinearList<ElemType>& p1,
LinearList<ElemType>& p2, LinearList<ElemType>& p3)
{
//分别定义c1和c2用来保存p1和p2多项式的长度
int c1=p1.ListSize(), c2=p2.ListSize();
//当两个多项式中的数据项均没有处理完的处理过程
int i=0, j=0;
while(i<c1 && j<c2){
//将p1和p2中的两个当前同幂数据项合并后插入到p3的尾部
ElemType a=p1.GetElemList(i)+p2.GetElemList(j);
p3.InsertList(a,2);
i++;
j++;
}
//将p1多项式中余下的数据项插入到p3的尾部
while(i<c1){
p3.InsertList(p1.GetElemList(i), 2);
i++;
}
//将p2多项式中余下的数据项插入到p3的尾部
while(j<c2){
p3.InsertList(p2.GetElemList(j), 2);
j++;
}
}
void main()
{
LinearList<double> a(5), b(5), c(5);
double r1[6]={5,0,3,-6,0,2};
double r2[7]={2,0,-1,6,-3,0,1};
int i;
for(i=0; i<6; i++) a.InsertList(r1[i],2);
for(i=0; i<7; i++) b.InsertList(r2[i],2);
cout<<"线性表a:";
a.TraverList();
cout<<"当x=2时的值:"<<PolySum1<double>(a,2)<<endl;
cout<<"线性表b:";
cout<<"当x=2时的值:"<<PolySum1<double>(b,2)<<endl;
PolyAdd1<double>(a,b,c);
cout<<"线性表c:";
c.TraverList();
cout<<"当x=2时的值:"<<PolySum1<double>(c,2)<<endl;
LinearList<double>d(b);
double x; d.DeleteList(x,1); d.DeleteList(x,2);
d.TraverList();
cout<<"多项式a,b,c的长度分别为:"<<a.ListSize();
cout<<' '<<b.ListSize()<<' '<<c.ListSize()<<' ';
cout<<d.ListSize()<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -