⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 polynomial.cpp

📁 C++编写的多项式的类定义
💻 CPP
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -