0% found this document useful (0 votes)
5 views12 pages

Polynomial Operations

The document discusses polynomial operations like addition, multiplication and displays. It describes the data structure used to represent polynomials and functions to initialize, add, multiply and display polynomials.

Uploaded by

Saleem Ashraf
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views12 pages

Polynomial Operations

The document discusses polynomial operations like addition, multiplication and displays. It describes the data structure used to represent polynomials and functions to initialize, add, multiply and display polynomials.

Uploaded by

Saleem Ashraf
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 12

Polynomial Operations

Polynomial Data Structure


const int MaxDegree=4;
struct polynomial
{
int coefArray[MaxDegree+1];
int HighPower;
};
Initialize Polynomial
void ZeroPolynomial(polynomial *Poly){

for(int i=0;i<=MaxDegree;i++)
Poly->coefArray[i]=0;

Poly->HighPower=0;
}
Display Polynomial
void PrintPolynomial(polynomial *Poly){
cout<<"\n";
for (int i = Poly->HighPower ; i >= 0 ; i--)
if (Poly->coefArray[i]!=0)
if ( i == 0 )
cout<<Poly->coefArray[i];
else
cout<<Poly->coefArray[i]<<"X^"<<i<<" + ";
}
Add Polynomials
polynomial* AddPolynomial(polynomial *Poly1, polynomial *Poly2)
{
polynomial *PolySum=new polynomial;
ZeroPolynomial(PolySum);
PolySum->HighPower=max(Poly1->HighPower,Poly2->HighPower);

for ( int i = PolySum->HighPower ; i >= 0 ; i--)


PolySum->coefArray[i]=Poly1->coefArray[i]+Poly2->coefArray[i];

return PolySum;
}
Multiply Polynomials
polynomial* MultPolynomial(polynomial *Poly1, polynomial *Poly2)
{
polynomial *PolyProd =new polynomial;
ZeroPolynomial(PolyProd);
PolyProd->HighPower= Poly1->HighPower + Poly2->HighPower;

for (int i =0; i <= Poly1->HighPower ; i++)


for (int j = 0; j <= Poly2->HighPower ; j++)
PolyProd->coefArray[i+j]+=Poly1->coefArray[i]*Poly2->coefArray[j];

return PolyProd;
}
Multiply Polynomials
for (int i =0; i <= Poly1->HighPower ; i++)
for (int j = 0; j <= Poly2->HighPower ; j++)
PolyProd->coefArray[ i + j ] = PolyProd->coefArray[ i +j ] +
Poly1->coefArray[ i ] * Poly2-
>coefArray[ j ];
Example:

Polynomial 1: 2X + 3
Polynomial 2: 2X2 + 5X + 7
Product : (2X + 3)(2X2 + 5X + 7)
= (4X3 + 10X2 + 14X + 6X2 + 15X + 21)
= 4X3 + 16X2 + 29X + 21
Multiply Polynomials
for (int i =0; i <= Poly1->HighPower ; i++)
for (int j = 0; j <= Poly2->HighPower ; j++)
PolyProd->coefArray[ i + j ] = PolyProd->coefArray[ i +j ] +
Poly1->coefArray[ i ] * Poly2->coefArray[ j ];
i = 0 , j = 0; Poly1: 2X + 3 Poly2: 2X2 + 5X + 7
PolyProd->coefArray[ 0 ] = PolyProd->coefArray[ 0 ] +
Poly1->coefArray[ 0 ] * Poly2->coefArray[ 0 ];
i = 0 , j = 1; PolyProd->coefArray[ 0 ] = 3* 7  21
PolyProd->coefArray[ 1 ] = PolyProd->coefArray[ 1 ] +
Poly1->coefArray[ 0 ] * Poly2->coefArray[ 1 ];
i = 0 , j = 2; PolyProd->coefArray[ 1 ] = 3* 5  15X
PolyProd->coefArray[ 2 ] = PolyProd->coefArray[ 2 ] +
Poly1->coefArray[ 0 ] * Poly2->coefArray[ 2 ];

PolyProd->coefArray[ 2 ] = 3* 2  6X2
Multiply Polynomials
for (int i =0; i <= Poly1->HighPower ; i++)
for (int j = 0; j <= Poly2->HighPower ; j++)
PolyProd->coefArray[ i + j ] = PolyProd->coefArray[ i +j ] +
Poly1->coefArray[ i ] * Poly2->coefArray[ j ];
i = 1 , j = 0; Poly1: 2X + 3 Poly2: 2X2 + 5X + 7
PolyProd->coefArray[ 1 ] = PolyProd->coefArray[ 1 ] +
Poly1->coefArray[ 1 ] * Poly2->coefArray[ 0 ];
i = 1 , j = 1; PolyProd->coefArray[ 1 ] = 15 +2* 7  29X
PolyProd->coefArray[ 2 ] = PolyProd->coefArray[ 2 ] +
Poly1->coefArray[ 1 ] * Poly2->coefArray[ 1 ];
i = 1 , j = 2; PolyProd->coefArray[ 2 ] = 6 + 2* 5  16X2
PolyProd->coefArray[ 3 ] = PolyProd->coefArray[ 3 ] +
Poly1->coefArray[ 1 ] * Poly2->coefArray[ 2 ];

PolyProd->coefArray[ 3 ] = 2* 2  4X3
Max function
#ifdef __cplusplus

int max (int value1, int value2);

int max(int value1, int value2)


{
return ( (value1 > value2) ? value1 : value2);
}

#endif
Main()
void main(){ cout<<"\nPoly1:";
polynomial PrintPolynomial(Poly1);
*Poly1,*Poly2;
cout<<"\nPoly2:";
polynomial PolySum;
PrintPolynomial(Poly2);
polynomial *PolyProd;
Poly1=new polynomial; PolySum=AddPolynomial(Poly1, Poly2);
Poly2=new polynomial; PolyProd=MultPolynomial( Poly1, Poly2);

Poly1->coefArray[0]=1; cout<<"\nSum:";
Poly1->coefArray[1]=0; PrintPolynomial(PolySum);
Poly1->coefArray[2]=2; cout<<"\nProduct:";
Poly1->HighPower=2; PrintPolynomial(PolyProd);
Poly2->coefArray[0]=1; getch();
Poly2->coefArray[1]=1; }
Poly2->coefArray[2]=2;
Poly2->HighPower=2;
Program Output

You might also like