Buenas,
Lo quería programar pero no tengo tiempo, te comento lo que haría:
Un monomio se compone, como bien sabes de una variable y un número. En esencia, multiplicar estas dos cosas hace:
1) La variable: Aumenta el grado del monomio
2) El número: Aumenta el coeficiente del monomio
Entonces, para programar algo así, yo empezaría con un array donde colocaría el primer monomio (si quieres al inicio del array, al inicio, sino, al final. Lo único que cambia de hacerlo de una manera u otra es el orden de lectura).
Por ejemplo, si quieres multiplicar (x-2)·(x+3)·(x-4), empieza con un array así:
Código:
+---+---+---+---+
|-2 | 1 | 0 | 0 |
+---+---+---+---+
I 1 2 3
Como ves, eso corresponde al primer monomio (donde I coresponde al término independiente y 1, 2 y 3 al grado de la x).
Ahora, para multiplicarlo por el siguiente monomio, tan solo tienes que añadirle las multiplicaciones oportunas (puedes hacer una copia del array para tener los coeficiente a mano). Mira, te pongo las operaciones:
Código:
+---+---+---+---+
|-2 | 1 | 0 | 0 | ( x - 2 )
+---+---+---+---+
· ( x + 3 )
-------------------
+---+---+---+---+
|-6 | 3 | 0 | 0 | ( x - 2 ) · 3
+---+---+---+---+
+---+---+---+---+
+ | 0 |-2 | 1 | 0 | ( x - 2 ) · x
+---+---+---+---+
-------------------
+---+---+---+---+
|-6 | 1 | 1 | 0 | ( x - 2 ) · ( x + 3 )
+---+---+---+---+
· ( x - 4 )
-------------------
+---+---+---+---+
|24 |-4 |-4 | 0 | ( x - 2 ) · ( x + 3 ) · -4
+---+---+---+---+
+---+---+---+---+
| 0 |-6 | 1 | 1 | ( x - 2 ) · ( x + 3 ) · x
+---+---+---+---+
-------------------
+---+---+---+---+
|24 |-10|-3 | 1 | ( x - 2 ) · ( x + 3 ) · ( x - 4 ) = x³-3x²-10x+24
+---+---+---+---+
Se entiende? Es muy sencillo.
P.D.: No hace falta que cree dos arrays para cada operación, si te lo montas un poco bien, puedes ir añadiendo los valores dinámicamente.
Un saludo, suerte y ya me dirás que tal te fué