SHARE
TWEET

asd

a guest Feb 21st, 2020 79 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "Polinomio.h"
  2.  
  3. Polinomio::Polinomio()
  4. {
  5.     for (int i = 0; i < 30; i++)
  6.     {
  7.         coeficientes[i] = 0;
  8.         exponentes[i] = 0;
  9.     }
  10. }
  11.  
  12. Polinomio::~Polinomio()
  13. {
  14.  
  15. }
  16.  
  17. void Polinomio::ingresarTerminos()
  18. {
  19.     int exponente, coeficiente;
  20.     cout << "Ingrese cantidad de terminos Polinomio: ";
  21.     cin >> this->cantidad;
  22.     for (int i = 0; i < this->cantidad; i++)
  23.     {
  24.         cout << "Ingrese coeficiente: ";
  25.         cin >> coeficiente;
  26.         cout << "Ingrese exponente: ";
  27.         cin >> exponente;
  28.  
  29.         coeficientes[i] = coeficiente;
  30.         exponentes[i] = exponente;
  31.     }
  32.     ordenar_Polinomio();
  33. }
  34.  
  35. void Polinomio::ordenar_Polinomio()
  36. {
  37.     int copia, copia2;
  38.     for (int i = 0; i < this->cantidad; i++)
  39.     {
  40.         for (int j = 0; j < this->cantidad-1; j++)
  41.         {
  42.             if (exponentes[i] > exponentes[j])
  43.             {
  44.                 copia = exponentes[i];
  45.                 exponentes[i] = exponentes[j];
  46.                 exponentes[j] = copia;
  47.                 copia2 = coeficientes[i];
  48.                 coeficientes[i] = coeficientes[j];
  49.                 coeficientes[j] = copia2;
  50.             }
  51.         }
  52.  
  53.     }
  54. }
  55.  
  56. Polinomio& operator+(const Polinomio& a, const Polinomio& b)
  57. {
  58.     Polinomio suma;
  59.     if (a.cantidad > b.cantidad)
  60.     {
  61.         for (int i = 0; i < a.cantidad; i++)
  62.         {
  63.             if (suma.coeficientes[i] == 0)
  64.             {
  65.                 if (a.coeficientes[i] != 0 && b.coeficientes[i] != 0)
  66.                 {
  67.                     if (a.exponentes == b.exponentes)
  68.                     {
  69.                         suma.coeficientes[i] = a.coeficientes[i] + b.coeficientes[i];
  70.                         suma.exponentes[i] = a.exponentes[i];
  71.                     }
  72.                     else
  73.                     {
  74.                         suma.coeficientes[i] = a.coeficientes[i];
  75.                         suma.coeficientes[i + 1] = b.coeficientes[i];
  76.                         suma.exponentes[i] = a.exponentes[i];
  77.                         suma.exponentes[i + 1] = b.exponentes[i];
  78.                     }
  79.                 }
  80.                 else if (a.coeficientes[i] != 0 && b.coeficientes[i] == 0)
  81.                 {
  82.                     suma.coeficientes[i] = a.coeficientes[i];
  83.                     suma.exponentes[i] = a.exponentes[i];
  84.                 }
  85.             }
  86.         }
  87.     }
  88.     else
  89.     {
  90.         for (int i = 0; i < b.cantidad; i++)
  91.         {
  92.             if (suma.coeficientes[i] == 0)
  93.             {
  94.                 if (a.coeficientes[i] != 0 && b.coeficientes[i] != 0)
  95.                 {
  96.                     if (a.exponentes[i] == b.exponentes[i])
  97.                     {
  98.                         suma.coeficientes[i] = a.coeficientes[i] + b.coeficientes[i];
  99.                         suma.exponentes[i] = a.exponentes[i];
  100.                     }
  101.                     else
  102.                     {
  103.                         suma.coeficientes[i] = a.coeficientes[i];
  104.                         suma.coeficientes[i + 1] = b.coeficientes[i];
  105.                         suma.exponentes[i] = a.exponentes[i];
  106.                         suma.exponentes[i + 1] = b.exponentes[i];
  107.                     }
  108.                 }
  109.                 else if (a.coeficientes[i] == 0 && b.coeficientes[i] != 0)
  110.                 {
  111.                     suma.coeficientes[i] = b.coeficientes[i];
  112.                     suma.exponentes[i] = b.exponentes[i];
  113.                 }
  114.             }
  115.         }
  116.     }
  117.     int cont = 0;
  118.     for (int i = 0; i < 30; i++)
  119.     {
  120.         if (suma.coeficientes[i] != 0)
  121.         {
  122.             cont++;
  123.         }
  124.     }
  125.     suma.cantidad = cont;
  126.     suma.ordenar_Polinomio();
  127.     return suma;
  128. }
  129.  
  130. Polinomio& operator-(const Polinomio& a, const Polinomio& b)
  131. {
  132.     Polinomio resta;
  133.     if (a.cantidad > b.cantidad)
  134.     {
  135.         for (int i = 0; i < a.cantidad; i++)
  136.         {
  137.             if (resta.coeficientes[i] == 0)
  138.             {
  139.                 if (a.coeficientes[i] != 0 && b.coeficientes[i] != 0)
  140.                 {
  141.                     if (a.exponentes[i] == b.exponentes[i])
  142.                     {
  143.                         resta.coeficientes[i] = a.coeficientes[i] - b.coeficientes[i];
  144.                         resta.exponentes[i] = a.exponentes[i];
  145.                     }
  146.                     else
  147.                     {
  148.                         resta.coeficientes[i] = a.coeficientes[i];
  149.                         resta.coeficientes[i + 1] = b.coeficientes[i];
  150.                         resta.exponentes[i] = a.exponentes[i];
  151.                         resta.exponentes[i + 1] = b.exponentes[i];
  152.                     }
  153.                 }
  154.                 else if (a.coeficientes[i] != 0 && b.coeficientes[i] == 0)
  155.                 {
  156.                     resta.coeficientes[i] = a.coeficientes[i];
  157.                     resta.exponentes[i] = a.exponentes[i];
  158.                 }
  159.             }
  160.         }
  161.     }
  162.     else if (a.cantidad < b.cantidad)
  163.     {
  164.         for (int i = 0; i < b.cantidad; i++)
  165.         {
  166.             if (resta.coeficientes[i] == 0)
  167.             {
  168.                 if (a.coeficientes[i] != 0 && b.coeficientes[i] != 0)
  169.                 {
  170.                     if (a.exponentes == b.exponentes)
  171.                     {
  172.                         resta.coeficientes[i] = a.coeficientes[i] - b.coeficientes[i];
  173.                         resta.exponentes[i] = a.exponentes[i];
  174.                     }
  175.                     else
  176.                     {
  177.                         resta.coeficientes[i] = a.coeficientes[i];
  178.                         resta.coeficientes[i + 1] = b.coeficientes[i];
  179.                         resta.exponentes[i] = a.exponentes[i];
  180.                         resta.exponentes[i + 1] = b.exponentes[i];
  181.                     }
  182.                 }
  183.                 else if (a.coeficientes[i] == 0 && b.coeficientes[i] != 0)
  184.                 {
  185.                     resta.coeficientes[i] = b.coeficientes[i];
  186.                     resta.exponentes[i] = b.exponentes[i];
  187.                 }
  188.             }
  189.         }
  190.     }
  191.     int cont = 0;
  192.     for (int i = 0; i < 30; i++)
  193.     {
  194.         if (resta.coeficientes[i] != 0)
  195.         {
  196.             cont++;
  197.         }
  198.     }
  199.     resta.cantidad = cont;
  200.     resta.ordenar_Polinomio();
  201.     return resta;
  202. }
  203.  
  204. ostream& operator<<(ostream& out,const Polinomio& a)
  205. {
  206.     for (int i = 0; i < a.cantidad; i++)
  207.     {
  208.         for (int j = 0; j < a.cantidad; j++)
  209.         {
  210.             if (a.exponentes[j] != 0)
  211.             {
  212.                 if (a.exponentes[j] == 1)
  213.                 {
  214.                     out << a.coeficientes[j] << "x" << " ";
  215.                 }
  216.                 else if (a.exponentes[j] > 1)
  217.                 {
  218.                     out << a.coeficientes[j] << "x^" << a.exponentes[j] << " ";
  219.                 }
  220.             }
  221.         }
  222.         out << endl;
  223.     }
  224.     return out;
  225. }
  226.  
  227. Polinomio& operator*(const Polinomio& a, const Polinomio& b)
  228. {
  229.     Polinomio mult;
  230.  
  231.     if (a.cantidad > b.cantidad)
  232.     {
  233.         for (int i = 0; i < a.cantidad; i++)
  234.         {
  235.             for (int j = 0; j < b.cantidad; j++)
  236.             {
  237.                 mult.coeficientes[j] = a.coeficientes[i] * b.coeficientes[j];
  238.                 if (a.exponentes[i] == b.exponentes[j])
  239.                 {
  240.                     mult.exponentes[j] = b.exponentes[j];
  241.                 }
  242.  
  243.             }
  244.         }
  245.     }
  246.  
  247.     if (a.cantidad < b.cantidad)
  248.     {
  249.         for (int i = 0; i < a.cantidad; i++)
  250.         {
  251.             for (int j = 0; j < b.cantidad; j++)
  252.             {
  253.                 mult.coeficientes[j] = b.coeficientes[i] * a.coeficientes[j];
  254.                 if (b.exponentes[i] == a.exponentes[j])
  255.                 {
  256.                     mult.exponentes[j] = a.exponentes[j];
  257.                 }
  258.  
  259.             }
  260.         }
  261.     }
  262.  
  263.     int cantidad2 = 0;
  264.     for (int i = 0; i < 30; i++)
  265.     {
  266.         if (mult.coeficientes[i] != 0)
  267.         {
  268.             cantidad2++;
  269.         }
  270.     }
  271.  
  272.     mult.cantidad = cantidad2;
  273.     mult.ordenar_Polinomio();
  274.     return mult;
  275. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top