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

· main.cpp #include \"monomio.h\" int main() { //Declare objects class Monomio m

ID: 3821537 • Letter: #

Question

·        main.cpp
#include "monomio.h"


int main() {

   //Declare objects
   class Monomio m_01, m_02, m_03;

   cout << "Welcome to the monomial C++ Program! ";
   cout << "I will sum two monomials in the following format [ax^(n)] ";
   cout << " Enter the first monomial: ";
   cin >> m_01;

   cout << " Enter the second monomial: ";
   cin >> m_02;
  
   cout << " Monomial #01 entered: " << m_01<< endl;
   cout << "Monomial #02 entered: " << m_02<< endl;

   //Sum of monomials
   m_03 = m_01 + m_02;
   cout << " The sum of: " << m_01 << " + " << m_02 << " = " << m_03 << endl;

   return 0;
}

·        Monomio.cpp

#include "monomio.h"
using namespace::std;

Monomio::Monomio() {

   setCoeficient(1);
   setExponent(2);

}

Monomio::Monomio(int tempCoeficient, int tempExponent) {

   setCoeficient(tempCoeficient);
   setExponent(tempExponent);

}

Monomio::Monomio(const Monomio & tempMonomio) {
   this->coeficiente = tempMonomio.coeficiente;
   this->exponente = tempMonomio.exponente;
}

Monomio::~Monomio() {
   //cout << "Destroying objects created... ";
}

void Monomio::setCoeficient(int a) {
   this->coeficiente = a;
}

void Monomio::setExponent(int n) {

   this->exponente = n;
}


int Monomio::getCoeficient() const
{
   return this->coeficiente;
}

int Monomio::getExponent() const
{
   return this->exponente;
}

Monomio Monomio::operator+(const Monomio & tempMonomio) {
   if (this->exponente == tempMonomio.getExponent()) {
       Monomio monomio;
       monomio.setCoeficient(this->coeficiente + tempMonomio.getCoeficient());
       monomio.setExponent(this->exponente);
       return monomio;
   }
   else
   {
       cerr << "Error, exponent must be the same!!!" << endl;
   exit(1);
   }
}

Monomio Monomio::operator-(const Monomio & tempMonomio) {
   if (this->exponente == tempMonomio.getExponent()) {
       Monomio monomio;
       monomio.setCoeficient(this->coeficiente - tempMonomio.getCoeficient());
       monomio.setExponent(this->exponente);

       return monomio;
   }
   else
       cerr << "Error, exponent must be the same!!!" << endl;
   exit(1);
}

Monomio Monomio::operator*(const Monomio & tempMonomio) {
   Monomio monomio;
   monomio.setCoeficient(this->coeficiente * tempMonomio.getCoeficient());
   monomio.setExponent(this->exponente + tempMonomio.getExponent());

   return monomio;
}

Monomio & Monomio::operator=(const Monomio & tempMonomio) {

   this->coeficiente = tempMonomio.getCoeficient();
   this->exponente = tempMonomio.getExponent();

   return (*this);
}

//istream & ostream...
ostream & operator <<(ostream & out, const Monomio& tempMonomio) {
   out << tempMonomio.getCoeficient() << "x^"<< tempMonomio.getExponent();
   return out;
}
istream & operator >> (istream & in, Monomio & tempMonomio) {
   cout << "Enter the value for the coeficient (a): ";
   in >> tempMonomio.coeficiente;
   cout << "Enter the value for the exponent (b): ";
   in >> tempMonomio.exponente;
   return in;

·        Monomio.h

#pragma once
#ifndef MONOMIO_H
#define MONOMIO_H
#include <iostream>
using namespace::std;

class Monomio
{
   friend istream & operator >> (istream & in, Monomio &);
   friend ostream & operator << (ostream &, const Monomio &);


private:
   int coeficiente, exponente, monomio, variable;
public:
   Monomio(); //default constructor
   Monomio(int, int); //constructor with parameters
   Monomio(const Monomio &); //copy constructor
   ~Monomio();


   //setters
   void setCoeficient(int);
   void setExponent(int);

   //void setVariable(int);


   //getters
   int getCoeficient() const;
   int getExponent() const;

   //operators
   Monomio operator+ (const Monomio & tempMonomio);
   Monomio operator- (const Monomio & tempMonomio);
   Monomio operator* (const Monomio & tempMonomio);
   Monomio & operator= (const Monomio & tempMonomio);

};

#endif // !MONOMIO_H

Using the class Monomio as class part. Make a class all called Polinomio where you will have an array of private objects Monomial an integer type and handle the totoal of monomials in the form:

  ax^n + bx + c

The program must be able to evaluate for F (x). Do operator overloading of cin / cout.

Output:

Monomial # 1:

Enter coefcient "a": 1

Enter exponent "n": 2

Monomial #2:

Enter coefcient "a": 5

Enter exponent "n": 1

Monomial #3:

Enter coefcient "a": 6

Enter exponent "n": 0

Equation F(x) = x^2 + 5x + 6

Enter x: 2

F(2) = 20

Explanation / Answer

//Polinomio.h

#pragma once
#ifndef POLINOMIO_H
#define POLINOMIO_H
#include"monomio.h"
#include <iostream>
#include<string>
//define maximimum degree of polynomial;
#define MAX 10
using namespace::std;
class Polinomio
{
   friend istream & operator >> (istream & in, Polinomio &);
   friend ostream & operator << (ostream &, const Polinomio &);

private:
   Monomio *objects;
   int no_terms;
  
public:
   Polinomio(); //default constructor
   Polinomio(int [], int [],int n); //constructor with parameters
   Polinomio(const Polinomio &); //copy constructor
   ~Polinomio();
   Monomio &operator[](int i);
   string &to_string();
   void setCoeficient(int []);
   void setExponent(int []);
   void set_terms(int n);
   int function(int n);
  
};
#endif //

------------------------

//Polinomio.cpp

#include"Polinomio.h"
#include<math.h>

Polinomio::Polinomio()
{
   //set to monomial
   objects = new Monomio;
   no_terms = 0;
}

Polinomio::~Polinomio()
{
   delete []objects;
  
}
void Polinomio::set_terms(int n)
{
   no_terms = n;
}
void Polinomio::setCoeficient(int coe[])
{
   for (int i = 0; i < no_terms; i++)
   {
       objects[i].setCoeficient(coe[i]);
   }
  
}
void Polinomio::setExponent(int exp[])
{
   for (int i = 0; i < no_terms; i++)
   {
       objects[i].setExponent(exp[i]);
   }

}
Polinomio::Polinomio(int coe[], int exp[],int n)
{
   no_terms = n;
   //create array of objects monomial equal to number of terms n passed
   objects = new Monomio[n];
   //now set each monmial object
   for (int i = 0; i < n; i++)
   {
       objects[i].setCoeficient(coe[i]);
       objects[i].setExponent(exp[i]);
   }
}

//copy constructor
Polinomio::Polinomio(const Polinomio &obj)
{
   objects = obj.objects;
}

istream &operator >> (istream & in, Polinomio &obj)
{
   int coe,exp;
   for (int i = 0; i < obj.no_terms; i++)
   {
       cout << "Enter coeficient: ";
       in >> coe;
       obj.objects[i].setCoeficient(coe);
       cout << "Enter exponent: ";
       in >> exp;
       obj.objects[i].setCoeficient(exp);
   }
   return in;
}
Monomio &Polinomio::operator[](int i)
{
   return objects[i];
}
ostream & operator << (ostream &out, const Polinomio &obj)
{
   string s;
   int coe, exp;
   for (int i = 0; i <obj.no_terms; i++)
   {
       coe = obj.objects[i].getCoeficient();
       if (coe > 1)
           s +=coe+48;
       s += 'X';
      
       exp = obj.objects[i].getExponent();
       if (exp > 1)
       {
           s += '^';
           s += exp + 48;
          
       }
       if (i != obj.no_terms-1)
           s += '+';
   }
   out << s << endl;
   return out;
}


int Polinomio::function(int n)
{
   int sum = 0;
   for (int i = 0; i < no_terms; i++)
   {
       sum += objects[i].getCoeficient()*pow(n, objects[i].getExponent());
   }
   return sum;
}

-------------------------

//driver program main

#include "Polinomio.h"

int main() {
   //Declare object
Polinomio poly;

   int coe[] = {1,5,6};
   int exp[] = {2,1,0};
   poly.set_terms(3);
   poly.setCoeficient(coe);
   poly.setExponent(exp);
   cout << "Poynomial equation = " << poly << endl;
   cout << "Function(2) = " << poly.function(2) << endl;
   return 0;
}

--------------------------------------------------------------

//output

Poynomial equation = X^2+5X+6X

Function(2) = 20