Voy a suponer que no han trabajado con funciones para no complicarte la vida. Ya que el código no es muy largo lo mandaré por acá:
(Yo uso Code::Blocks y no C++ Builder, así que tu tendrías que arreglar si te da error la sintaxis)
Código C++:
Ver original#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
using namespace std;
int main()
{
int grado1, grado2;
//Ingresamos los grados de los 2 polinomios
printf("Ingresa grados de los 2 polinomios. Ej: 4 3\n"); scanf("%d %d", &grado1
, &grado2
);
//Creamos los polinomios de grado + 1
int polinomio1[grado1 + 1], polinomio2[grado2 + 1];
//Iniciamos rand al azar
//Llenamos los 2 polinomios
for(int i = 0; i < grado1+1; i++){
//Valores entre -9 y 9
do{
//Elige al azar mientras polinomio1 es 0, deja de hacerlo si es distinto
polinomio1
[i
] = rand()%19-9;}while(polinomio1
[i
]==0); }
for(int i = 0; i < grado2+1; i++){
do{
polinomio2
[i
] = rand()%19-9;}while(polinomio2
[i
]==0); }
//Mostramos polinomio1:
for (int x = grado1; x >= 0; x--){
//Dibujamos los x^2 o mayor
if (x > 1)
printf(" %dx^%d ", polinomio1
[x
], x
); //Si es 1 dibujamos solamente "x"
else if (x
== 1) printf(" %dx ", polinomio1
[x
] ); //Y si es 0 no dibujamos la "x"
else if (x
== 0) printf(" %d ", polinomio1
[x
] ); //Para que no se dibuje un + luego del último termino
if (x != 0)
}
//Mostramos polinomio2
for (int x = grado2; x >= 0; x--){
if (x > 1)
printf(" %dx^%d ", polinomio2
[x
], x
); else if (x
== 1) printf(" %dx ", polinomio2
[x
] ); else if (x
== 0) printf(" %d ", polinomio2
[x
] ); if (x != 0)
}
//Termino mayor del polinomio Resultante es x^(grado1+grado2)
int polinomioResultante [grado1 + grado2 + 1];
//Iniciamos como 0 los valores del polinomio resultante
for (int c = 0; c < grado1 + grado2 + 1; c++)
polinomioResultante[c] = 0;
//Por cada termino del polinomio1
for (int pos = 0; pos < grado1 + 1; pos++)
//Vamos a multiplicar cada termino del polinomio2
for (int ter = 0; ter < grado2 + 1; ter++){
//pos + ter = x ^ (pos + ter)
polinomioResultante[pos + ter] += polinomio1[pos] * polinomio2[ter];
}
//Mostramos el Polinomio Resultante:
printf("\n\nPolinomio Resultante: \n\n"); for (int x = grado1+grado2; x >= 0; x--){
if (x > 1)
printf(" %dx^%d ", polinomioResultante
[x
], x
); else if (x
== 1) printf(" %dx ", polinomioResultante
[x
] ); else if (x
== 0) printf(" %d ", polinomioResultante
[x
] ); if (x != 0)
}
getche();
return 0;
}