· 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
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.