Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

This is the error I\'m getting: /Volumes/LarodHD2/Documents/School/Polytechnic U

ID: 3622766 • Letter: T

Question

This is the error I'm getting:

/Volumes/LarodHD2/Documents/School/Polytechnic University/CECS2222/Polinomial/main.cpp:21:0 /Volumes/LarodHD2/Documents/School/Polytechnic University/CECS2222/Polinomial/main.cpp:21: error: no match for 'operator=' in 'P3 = Polinomial::operator*(Polinomial&)(((Polinomial&)(& P1)))'

//Here is my code.

#include <iostream>

#include <cmath>

using namespace std;

class Term

{

private:

int coef, exp;

public:

Term() {coef = exp = 0;}

Term(int _coef, int _exp) {

coef = _coef;

exp = _exp;

}

~Term(){}

void setCoef(int _coef){coef = _coef;}

void setExp(int _exp){exp = _exp;}

int getCoef(){return coef;}

int getExp(){return exp;}

Term operator+(Term &T){

coef += T.getCoef();

return *this;

}

Term operator-(Term &T){

coef -= T.getCoef();

return *this;

}

Term operator*(Term &T){

coef *= T.getCoef();

exp += T.getExp();

return *this;

}

};

class Polinomial

{

private:

Term *termArray;

int coef, exp, numTerms;

public:

Polinomial(int _numTerms){

numTerms = _numTerms;

termArray = new Term[_numTerms];

}

Polinomial(){

termArray = NULL;

numTerms = 0;

}

~Polinomial(){}

int getNumTerms(){return numTerms;}

void setNumTerms(int _numTerms) { numTerms = _numTerms;}

void printPolinomial(){

cout << endl;

for (int i = 0; i < numTerms; i++) {

cout << termArray[i].getCoef() << "X^" << termArray[i].getExp();

if (i < numTerms-1) {

cout << " + ";

}

} cout << endl;

}

void setPolinomial(){

for (int i = 0; i < numTerms; i++) {

cout << "Enter the coefficient for term " << i+1 << ": ";

cin >> coef;

termArray[i].setCoef(coef);

cout << "Enter the exponent for term " << i+1 << ": ";

cin >> exp;

termArray[i].setExp(exp);

coef = exp = 0;

}

}

void addTerm(Term &T){

Term *tempArray;

tempArray = new Term[numTerms+1];

for (int i = 0; i < numTerms; i++) {

tempArray[i] = termArray[i];

}

tempArray[numTerms] = T;

termArray = tempArray;

numTerms += 1;

}

Polinomial operator+(Polinomial &P){

int counter = 0;

for (int i = 0; i < P.getNumTerms(); i++)

{

for (int j = 0; j < numTerms; j++)

{

if (termArray[j].getExp() != P.termArray[i].getExp()) {

counter++;

}

else if (termArray[j].getExp() == P.termArray[i].getExp()) {

termArray[j].setCoef(termArray[j].getCoef() + P.termArray[i].getCoef());

}

}

if (counter == numTerms) {

addTerm(P.termArray[i]);

}

counter = 0;

}

return *this;

}

Polinomial operator+=(Polinomial &P){

int counter = 0;

for (int i = 0; i < P.getNumTerms(); i++)

{

for (int j = 0; j < numTerms; j++)

{

if (termArray[j].getExp() != P.termArray[i].getExp()) {

counter++;

}

else if (termArray[j].getExp() == P.termArray[i].getExp()) {

termArray[j].setCoef(termArray[j].getCoef() + P.termArray[i].getCoef());

}

}

if (counter == numTerms) {

addTerm(P.termArray[i]);

}

counter = 0;

}

return *this;

}

Polinomial operator-(Polinomial &P){

int counter = 0;

for (int i = 0; i < P.getNumTerms(); i++)

{

for (int j = 0; j < numTerms; j++)

{

if (termArray[j].getExp() != P.termArray[i].getExp()) {

counter++;

}

else if (termArray[j].getExp() == P.termArray[i].getExp()) {

termArray[j].setCoef(termArray[j].getCoef() - P.termArray[i].getCoef());

}

}

if (counter == numTerms) {

addTerm(P.termArray[i]);

}

counter = 0;

}

return *this;

}

Polinomial operator-=(Polinomial &P){

int counter = 0;

for (int i = 0; i < P.getNumTerms(); i++)

{

for (int j = 0; j < numTerms; j++)

{

if (termArray[j].getExp() != P.termArray[i].getExp()) {

counter++;

}

else if (termArray[j].getExp() == P.termArray[i].getExp()) {

termArray[j].setCoef(termArray[j].getCoef() - P.termArray[i].getCoef());

}

}

if (counter == numTerms) {

addTerm(P.termArray[i]);

}

counter = 0;

}

return *this;

}

Polinomial operator=(Polinomial &P){

delete [] termArray;

termArray = new Term[P.getNumTerms()];

for (int i = 0; i < P.getNumTerms(); i++) {

termArray[i] = P.termArray[i];

}

numTerms = P.getNumTerms();

return *this;

}

Polinomial operator*(Polinomial &P){

Polinomial temp;

if (numTerms >= P.getNumTerms()) {

temp.setNumTerms(numTerms);

temp.termArray = new Term[numTerms];

for (int i = 0; i < numTerms; i++) {

temp.termArray[i] = termArray[i]*P.termArray[i];

}

return *this;

}

else {

temp.setNumTerms(P.getNumTerms());

temp.termArray = new Term[P.getNumTerms()];

for (int j = 0; j < numTerms; j++) {

temp.termArray[j].setCoef(termArray[j].getCoef() * P.termArray[j].getCoef());

temp.termArray[j].setExp(termArray[j].getExp() + P.termArray[j].getExp());

}

for (int k = numTerms; k < P.getNumTerms(); k++) {

temp.addTerm(P.termArray[k]);

}

return *this;

}

}

Polinomial operator*=(Polinomial &P){

if (numTerms >= P.getNumTerms()) {

for (int i = 0; i < P.getNumTerms(); i++) {

termArray[i].setCoef(termArray[i].getCoef() * P.termArray[i].getCoef());

termArray[i].setExp(termArray[i].getExp() + P.termArray[i].getExp());

}

return *this;

}

else {

for (int j = 0; j < numTerms; j++) {

termArray[j].setCoef(termArray[j].getCoef() * P.termArray[j].getCoef());

termArray[j].setExp(termArray[j].getExp() + P.termArray[j].getExp());

}

for (int k = numTerms; k < P.getNumTerms(); k++) {

addTerm(P.termArray[k]);

}

return *this;

}

}

};

//Here is my main

#include <iostream>

#include "Polinomial.h"

using namespace std;

int main () {

int terms;

cout << "Enter the number of terms for first Polinomial: ";

cin >> terms;

Polinomial P1(terms);

P1.setPolinomial();

P1.printPolinomial();

terms = 0;

cout << "Enter the number of terms for second Polinomial: ";

cin >> terms;

Polinomial P2(terms);

P2.setPolinomial();

P2.printPolinomial();

Polinomial P3;

P3 = P2 * P1;

P3.printPolinomial();

   return 0;

}

Explanation / Answer

please rate - thanks

= must be constant

#include <iostream>

#include <cmath>

using namespace std;



class Term

{

private:

int coef, exp;

public:

Term() {coef = exp = 0;}

Term(int _coef, int _exp) {

coef = _coef;

exp = _exp;

}

~Term(){}

void setCoef(int _coef){coef = _coef;}

void setExp(int _exp){exp = _exp;}

int getCoef(){return coef;}

int getExp(){return exp;}

Term operator+(Term &T){

coef += T.getCoef();

return *this;

}

Term operator-(Term &T){

coef -= T.getCoef();

return *this;

}

Term operator*(Term &T){

coef *= T.getCoef();

exp += T.getExp();

return *this;

}

};



class Polinomial

{

private:

Term *termArray;

int coef, exp, numTerms;

public:

Polinomial(int _numTerms){

numTerms = _numTerms;

termArray = new Term[_numTerms];

}

Polinomial(){

termArray = NULL;

numTerms = 0;

}



~Polinomial(){}

int getNumTerms(){return numTerms;}

void setNumTerms(int _numTerms) { numTerms = _numTerms;}

void printPolinomial(){

cout << endl;

for (int i = 0; i < numTerms; i++) {

cout << termArray[i].getCoef() << "X^" << termArray[i].getExp();

if (i < numTerms-1) {

cout << " + ";

}

} cout << endl;

}

void setPolinomial(){

for (int i = 0; i < numTerms; i++) {

cout << "Enter the coefficient for term " << i+1 << ": ";

cin >> coef;

termArray[i].setCoef(coef);

cout << "Enter the exponent for term " << i+1 << ": ";

cin >> exp;

termArray[i].setExp(exp);

coef = exp = 0;

}

}

void addTerm(Term &T){

Term *tempArray;

tempArray = new Term[numTerms+1];

for (int i = 0; i < numTerms; i++) {

tempArray[i] = termArray[i];

}

tempArray[numTerms] = T;

termArray = tempArray;

numTerms += 1;

}



Polinomial operator+(Polinomial &P){

int counter = 0;

for (int i = 0; i < P.getNumTerms(); i++)

{

for (int j = 0; j < numTerms; j++)

{

if (termArray[j].getExp() != P.termArray[i].getExp()) {

counter++;

}

else if (termArray[j].getExp() == P.termArray[i].getExp()) {

termArray[j].setCoef(termArray[j].getCoef() + P.termArray[i].getCoef());

}

}

if (counter == numTerms) {

addTerm(P.termArray[i]);

}

counter = 0;

}

return *this;

}

Polinomial operator+=(Polinomial &P){

int counter = 0;

for (int i = 0; i < P.getNumTerms(); i++)

{

for (int j = 0; j < numTerms; j++)

{

if (termArray[j].getExp() != P.termArray[i].getExp()) {

counter++;

}

else if (termArray[j].getExp() == P.termArray[i].getExp()) {

termArray[j].setCoef(termArray[j].getCoef() + P.termArray[i].getCoef());

}

}

if (counter == numTerms) {

addTerm(P.termArray[i]);

}

counter = 0;

}

return *this;

}

Polinomial operator-(Polinomial &P){

int counter = 0;

for (int i = 0; i < P.getNumTerms(); i++)

{

for (int j = 0; j < numTerms; j++)

{

if (termArray[j].getExp() != P.termArray[i].getExp()) {

counter++;

}

else if (termArray[j].getExp() == P.termArray[i].getExp()) {

termArray[j].setCoef(termArray[j].getCoef() - P.termArray[i].getCoef());

}

}

if (counter == numTerms) {

addTerm(P.termArray[i]);

}

counter = 0;

}

return *this;

}

Polinomial operator-=(Polinomial &P){

int counter = 0;

for (int i = 0; i < P.getNumTerms(); i++)

{

for (int j = 0; j < numTerms; j++)

{

if (termArray[j].getExp() != P.termArray[i].getExp()) {

counter++;

}

else if (termArray[j].getExp() == P.termArray[i].getExp()) {

termArray[j].setCoef(termArray[j].getCoef() - P.termArray[i].getCoef());

}

}

if (counter == numTerms) {

addTerm(P.termArray[i]);

}

counter = 0;

}

return *this;

}

Polinomial operator=(const Polinomial &P){
delete [] termArray;
termArray = new Term[numTerms];
for (int i = 0; i < numTerms; i++) {
termArray[i] = P.termArray[i];
}

return *this;

}

Polinomial operator*(Polinomial &P){

Polinomial temp;

if (numTerms >= P.getNumTerms()) {

temp.setNumTerms(numTerms);

temp.termArray = new Term[numTerms];

for (int i = 0; i < numTerms; i++) {

temp.termArray[i] = termArray[i]*P.termArray[i];

}

return *this;

}

else {

temp.setNumTerms(P.getNumTerms());

temp.termArray = new Term[P.getNumTerms()];

for (int j = 0; j < numTerms; j++) {

temp.termArray[j].setCoef(termArray[j].getCoef() * P.termArray[j].getCoef());

temp.termArray[j].setExp(termArray[j].getExp() + P.termArray[j].getExp());

}

for (int k = numTerms; k < P.getNumTerms(); k++) {

temp.addTerm(P.termArray[k]);

}

return *this;

}

}

Polinomial operator*=(Polinomial &P){

if (numTerms >= P.getNumTerms()) {

for (int i = 0; i < P.getNumTerms(); i++) {

termArray[i].setCoef(termArray[i].getCoef() * P.termArray[i].getCoef());

termArray[i].setExp(termArray[i].getExp() + P.termArray[i].getExp());

}

return *this;

}

else {

for (int j = 0; j < numTerms; j++) {

termArray[j].setCoef(termArray[j].getCoef() * P.termArray[j].getCoef());

termArray[j].setExp(termArray[j].getExp() + P.termArray[j].getExp());

}

for (int k = numTerms; k < P.getNumTerms(); k++) {

addTerm(P.termArray[k]);

}

return *this;

}

}

};



//Here is my main

#include <iostream>

#include "Polinomial.h"

using namespace std;



int main () {

int terms;

cout << "Enter the number of terms for first Polinomial: ";

cin >> terms;

Polinomial P1(terms);

P1.setPolinomial();

P1.printPolinomial();

terms = 0;

cout << "Enter the number of terms for second Polinomial: ";

cin >> terms;

Polinomial P2(terms);

P2.setPolinomial();

P2.printPolinomial();

Polinomial P3;

P3 = P2 * P1;

P3.printPolinomial();

    return 0;

}


Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote