Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Polinomio.h"
- Polinomio::Polinomio()
- {
- for (int i = 0; i < 30; i++)
- {
- coeficientes[i] = 0;
- exponentes[i] = 0;
- }
- }
- Polinomio::~Polinomio()
- {
- }
- void Polinomio::ingresarTerminos()
- {
- int exponente, coeficiente;
- cout << "Ingrese cantidad de terminos Polinomio: ";
- cin >> this->cantidad;
- for (int i = 0; i < this->cantidad; i++)
- {
- cout << "Ingrese coeficiente: ";
- cin >> coeficiente;
- cout << "Ingrese exponente: ";
- cin >> exponente;
- coeficientes[i] = coeficiente;
- exponentes[i] = exponente;
- }
- ordenar_Polinomio();
- }
- void Polinomio::ordenar_Polinomio()
- {
- int copia, copia2;
- for (int i = 0; i < this->cantidad; i++)
- {
- for (int j = 0; j < this->cantidad-1; j++)
- {
- if (exponentes[i] > exponentes[j])
- {
- copia = exponentes[i];
- exponentes[i] = exponentes[j];
- exponentes[j] = copia;
- copia2 = coeficientes[i];
- coeficientes[i] = coeficientes[j];
- coeficientes[j] = copia2;
- }
- }
- }
- }
- Polinomio& operator+(const Polinomio& a, const Polinomio& b)
- {
- Polinomio suma;
- if (a.cantidad > b.cantidad)
- {
- for (int i = 0; i < a.cantidad; i++)
- {
- if (suma.coeficientes[i] == 0)
- {
- if (a.coeficientes[i] != 0 && b.coeficientes[i] != 0)
- {
- if (a.exponentes == b.exponentes)
- {
- suma.coeficientes[i] = a.coeficientes[i] + b.coeficientes[i];
- suma.exponentes[i] = a.exponentes[i];
- }
- else
- {
- suma.coeficientes[i] = a.coeficientes[i];
- suma.coeficientes[i + 1] = b.coeficientes[i];
- suma.exponentes[i] = a.exponentes[i];
- suma.exponentes[i + 1] = b.exponentes[i];
- }
- }
- else if (a.coeficientes[i] != 0 && b.coeficientes[i] == 0)
- {
- suma.coeficientes[i] = a.coeficientes[i];
- suma.exponentes[i] = a.exponentes[i];
- }
- }
- }
- }
- else
- {
- for (int i = 0; i < b.cantidad; i++)
- {
- if (suma.coeficientes[i] == 0)
- {
- if (a.coeficientes[i] != 0 && b.coeficientes[i] != 0)
- {
- if (a.exponentes[i] == b.exponentes[i])
- {
- suma.coeficientes[i] = a.coeficientes[i] + b.coeficientes[i];
- suma.exponentes[i] = a.exponentes[i];
- }
- else
- {
- suma.coeficientes[i] = a.coeficientes[i];
- suma.coeficientes[i + 1] = b.coeficientes[i];
- suma.exponentes[i] = a.exponentes[i];
- suma.exponentes[i + 1] = b.exponentes[i];
- }
- }
- else if (a.coeficientes[i] == 0 && b.coeficientes[i] != 0)
- {
- suma.coeficientes[i] = b.coeficientes[i];
- suma.exponentes[i] = b.exponentes[i];
- }
- }
- }
- }
- int cont = 0;
- for (int i = 0; i < 30; i++)
- {
- if (suma.coeficientes[i] != 0)
- {
- cont++;
- }
- }
- suma.cantidad = cont;
- suma.ordenar_Polinomio();
- return suma;
- }
- Polinomio& operator-(const Polinomio& a, const Polinomio& b)
- {
- Polinomio resta;
- if (a.cantidad > b.cantidad)
- {
- for (int i = 0; i < a.cantidad; i++)
- {
- if (resta.coeficientes[i] == 0)
- {
- if (a.coeficientes[i] != 0 && b.coeficientes[i] != 0)
- {
- if (a.exponentes[i] == b.exponentes[i])
- {
- resta.coeficientes[i] = a.coeficientes[i] - b.coeficientes[i];
- resta.exponentes[i] = a.exponentes[i];
- }
- else
- {
- resta.coeficientes[i] = a.coeficientes[i];
- resta.coeficientes[i + 1] = b.coeficientes[i];
- resta.exponentes[i] = a.exponentes[i];
- resta.exponentes[i + 1] = b.exponentes[i];
- }
- }
- else if (a.coeficientes[i] != 0 && b.coeficientes[i] == 0)
- {
- resta.coeficientes[i] = a.coeficientes[i];
- resta.exponentes[i] = a.exponentes[i];
- }
- }
- }
- }
- else if (a.cantidad < b.cantidad)
- {
- for (int i = 0; i < b.cantidad; i++)
- {
- if (resta.coeficientes[i] == 0)
- {
- if (a.coeficientes[i] != 0 && b.coeficientes[i] != 0)
- {
- if (a.exponentes == b.exponentes)
- {
- resta.coeficientes[i] = a.coeficientes[i] - b.coeficientes[i];
- resta.exponentes[i] = a.exponentes[i];
- }
- else
- {
- resta.coeficientes[i] = a.coeficientes[i];
- resta.coeficientes[i + 1] = b.coeficientes[i];
- resta.exponentes[i] = a.exponentes[i];
- resta.exponentes[i + 1] = b.exponentes[i];
- }
- }
- else if (a.coeficientes[i] == 0 && b.coeficientes[i] != 0)
- {
- resta.coeficientes[i] = b.coeficientes[i];
- resta.exponentes[i] = b.exponentes[i];
- }
- }
- }
- }
- int cont = 0;
- for (int i = 0; i < 30; i++)
- {
- if (resta.coeficientes[i] != 0)
- {
- cont++;
- }
- }
- resta.cantidad = cont;
- resta.ordenar_Polinomio();
- return resta;
- }
- ostream& operator<<(ostream& out,const Polinomio& a)
- {
- for (int i = 0; i < a.cantidad; i++)
- {
- for (int j = 0; j < a.cantidad; j++)
- {
- if (a.exponentes[j] != 0)
- {
- if (a.exponentes[j] == 1)
- {
- out << a.coeficientes[j] << "x" << " ";
- }
- else if (a.exponentes[j] > 1)
- {
- out << a.coeficientes[j] << "x^" << a.exponentes[j] << " ";
- }
- }
- }
- out << endl;
- }
- return out;
- }
- Polinomio& operator*(const Polinomio& a, const Polinomio& b)
- {
- Polinomio mult;
- if (a.cantidad > b.cantidad)
- {
- for (int i = 0; i < a.cantidad; i++)
- {
- for (int j = 0; j < b.cantidad; j++)
- {
- mult.coeficientes[j] = a.coeficientes[i] * b.coeficientes[j];
- if (a.exponentes[i] == b.exponentes[j])
- {
- mult.exponentes[j] = b.exponentes[j];
- }
- }
- }
- }
- if (a.cantidad < b.cantidad)
- {
- for (int i = 0; i < a.cantidad; i++)
- {
- for (int j = 0; j < b.cantidad; j++)
- {
- mult.coeficientes[j] = b.coeficientes[i] * a.coeficientes[j];
- if (b.exponentes[i] == a.exponentes[j])
- {
- mult.exponentes[j] = a.exponentes[j];
- }
- }
- }
- }
- int cantidad2 = 0;
- for (int i = 0; i < 30; i++)
- {
- if (mult.coeficientes[i] != 0)
- {
- cantidad2++;
- }
- }
- mult.cantidad = cantidad2;
- mult.ordenar_Polinomio();
- return mult;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement