polynomial.cpp

来自「C++编写的多项式的类定义」· C++ 代码 · 共 67 行

CPP
67
字号
#include "iostream.h"
#include "Polynomial.h"

#define maxTerms 1000

Polynomial::Polynomial()    //构造函数
{
	start=free;
	finish=start-1;
}

void Polynomial::NewTerm(float c,int e)   //把一个新的项加到多项式中
{
	if(free>=maxTerms)
	{
		cout<<"Too many terms in polynomials"<<endl;
		return;
	}
	termArray[free].coef=c;
	termArray[free].exp=e;
	free++;
}

Polynomial Polynomial::Add(Polynomial B)       //返回两个多项式A(x){在*this中}与B(x)的和
{
	Polynomial C; 
	int a=start;        //a,b分别为两多项式检测指针
	int b=B.start;
	C.start=free;     //c为结果多项式的存放指针
	float c;
	while(a<=finish&&b<=B.finish)
	{                                     //比较对应项的指数
		if(termArray[a].exp==termArray[b].exp)  //相等,系数相加
		{
			c=termArray[a].coef+termArray[b].coef;
			if(c)         //和不为0,建立新项
			{
				NewTerm(c,termArray[a].exp);
			}
			a++;
			b++;
			break;
		}
		else if(termArray[a].exp>termArray[b].exp)  //不等,建立新项
		{
			NewTerm(termArray[b].coef,termArray[b].exp);
			b++;
			break;
		}
		else                          //不等,建立新项
		{
			NewTerm(termArray[a].coef,termArray[a].exp);
			a++;
			break;
		}
	}
	for(;a<=finish;a++)       //加A(x)中剩余的项
	{
		NewTerm(termArray[a].coef,termArray[a].exp);
	}
	for(;b<=B.finish;b++)   //加B(x)中剩余的项
	{
		NewTerm(termArray[b].coef,termArray[b].exp);
	}
	C.finish=free-1;
	return C;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?