Metodo sumar polinomios en java
Publicado por ubbito (1 intervención) el 26/06/2005 02:40:50
Hola amigos
resulta que me dieron una tarea en la U
que es ingresar polinomios, sumarlos restarlos multiplicarlos derivarlos e integrarlos.
resulta que por ejemplo tenemos dos polinomios:
p(x)= 2x^3+ 3x^2+8x + 6 y
q(x)= 4x^5 + 2x^3+3x + 4.
La idea es ingresar por teclado la cantidad de terminos, el coeficiente de cada termino y su respectivo exponente.tambien falta decir que deben ser como vectores no como arreglo(es una exigencia!!)
por ejemplo el caso de : p(x)= 2x^3 + 3x^2+8x + 6
el polinomio se ingresa de esta forma: 2x(3)+3x(2)+8x+6.
1)ingresar cantidad de terminos: 4
.
.
.
coef1: 2
exp1: 3.
coef2: 3
exp2: 2
coef3: 3
exp3: 1
coef4: 6
exp4: 0
... y tengo muchas dudas con el metodo sumar.
para el metodo suma seria bueno que crear tres metodos uno que una, otro que reduzca y el suma.
explicacion: primero creas el metodo que una, es decir que concatenes los polinomios en uno, asi de simple si tienes un polinomio de 5 terminos y otro de 3 te quedara un polinomio de 7 terminos.
Otro que reduzca, que tome el vector de 7 terminos y revise los exponentes iguales y los deje en uno, es decir 2x(5) 5x(5) te quedara uno de 7x(5) y el suma que te llama a estos dos metodos, ya que los otros metodos serviran para otras cosas tambien.
Aqui esta lo que llevo hasta ahora:
import java.util.*;
//import java.lang.*;
public class Polinomio
{
private char Variable;
private Vector Coeficiente;
private Vector Exponente;
private int CantTerminos;
public Polinomio(char var,Vector coef, Vector exp)
{
Variable = var;
Coeficiente = coef;
Exponente = exp;
CantTerminos = exp.size();
}
public Polinomio()
{
}
public static Polinomio PideDatos()
{
Polinomio Nuevo;
char variable;
Vector coef,exp;
coef = new Vector();
exp = new Vector();
boolean sigue = true;
Double Coef,Exp;
Coef = new Double(0);
int i=0,larg=0,j=0;
Pantalla.Imprime("Ingrese la variable con la que trabajara el Polinomio = ");
variable = Teclado.LeerChar();
while(sigue)
{
Pantalla.Imprime("Ingrese El Coeficiente del termino "+(i+1)+" = ");
Coef = new Double(Teclado.LeerDouble());
larg = Coef.toString().length();
coef.addElement(Coef);
Pantalla.Imprime("Ingrese el Exponente del termino "+(i+1)+" = ");
Exp = new Double(Teclado.LeerDouble());
exp.addElement(Exp);
i++;
for(j=0;j<larg;j++)
Pantalla.Imprime(" ");
Pantalla.Imprimeln(" "+Exp);
Pantalla.Imprimeln(""+Coef+" "+"("+variable+")");
if(i!=0)
{
Pantalla.Imprime("Desea Ingresar Otro Termino al Polinomio (s/n) = ");
if(Teclado.LeerChar()=='n')
sigue=false;
}
}
Nuevo = new Polinomio(variable,coef,exp);
return (Nuevo);
}
public static Polinomio Resta(Polinomio uno,Polinomio dos)
{
Vector Vtemporal;
Double Dtemporal;
Polinomio Ptemporal;
Vtemporal = new Vector();
int i;
for(i=0;i<dos.Coeficiente.size();i++)
{
Dtemporal = (Double)dos.Coeficiente.elementAt(i);
Dtemporal = new Double(Dtemporal.doubleValue()*-1);
Vtemporal.addElement(Dtemporal);
}
Ptemporal = new Polinomio(dos.Variable,Vtemporal,dos.Exponente);
return (Sumar(uno,Ptemporal));
}
public static Polinomio Sumar(Polinomio uno,Polinomio dos)
{
// AQUI ES DONDE NECESITO AYUDA
//PUSE RETORNO UNO SOLO PARA COMPILAR
return uno;
}
public static void main(String[] args)
{
Resta(PideDatos(),PideDatos());
}
}
ojala puedan ayudarme lo mas pronto posible
chao
mi correo es [email protected]
resulta que me dieron una tarea en la U
que es ingresar polinomios, sumarlos restarlos multiplicarlos derivarlos e integrarlos.
resulta que por ejemplo tenemos dos polinomios:
p(x)= 2x^3+ 3x^2+8x + 6 y
q(x)= 4x^5 + 2x^3+3x + 4.
La idea es ingresar por teclado la cantidad de terminos, el coeficiente de cada termino y su respectivo exponente.tambien falta decir que deben ser como vectores no como arreglo(es una exigencia!!)
por ejemplo el caso de : p(x)= 2x^3 + 3x^2+8x + 6
el polinomio se ingresa de esta forma: 2x(3)+3x(2)+8x+6.
1)ingresar cantidad de terminos: 4
.
.
.
coef1: 2
exp1: 3.
coef2: 3
exp2: 2
coef3: 3
exp3: 1
coef4: 6
exp4: 0
... y tengo muchas dudas con el metodo sumar.
para el metodo suma seria bueno que crear tres metodos uno que una, otro que reduzca y el suma.
explicacion: primero creas el metodo que una, es decir que concatenes los polinomios en uno, asi de simple si tienes un polinomio de 5 terminos y otro de 3 te quedara un polinomio de 7 terminos.
Otro que reduzca, que tome el vector de 7 terminos y revise los exponentes iguales y los deje en uno, es decir 2x(5) 5x(5) te quedara uno de 7x(5) y el suma que te llama a estos dos metodos, ya que los otros metodos serviran para otras cosas tambien.
Aqui esta lo que llevo hasta ahora:
import java.util.*;
//import java.lang.*;
public class Polinomio
{
private char Variable;
private Vector Coeficiente;
private Vector Exponente;
private int CantTerminos;
public Polinomio(char var,Vector coef, Vector exp)
{
Variable = var;
Coeficiente = coef;
Exponente = exp;
CantTerminos = exp.size();
}
public Polinomio()
{
}
public static Polinomio PideDatos()
{
Polinomio Nuevo;
char variable;
Vector coef,exp;
coef = new Vector();
exp = new Vector();
boolean sigue = true;
Double Coef,Exp;
Coef = new Double(0);
int i=0,larg=0,j=0;
Pantalla.Imprime("Ingrese la variable con la que trabajara el Polinomio = ");
variable = Teclado.LeerChar();
while(sigue)
{
Pantalla.Imprime("Ingrese El Coeficiente del termino "+(i+1)+" = ");
Coef = new Double(Teclado.LeerDouble());
larg = Coef.toString().length();
coef.addElement(Coef);
Pantalla.Imprime("Ingrese el Exponente del termino "+(i+1)+" = ");
Exp = new Double(Teclado.LeerDouble());
exp.addElement(Exp);
i++;
for(j=0;j<larg;j++)
Pantalla.Imprime(" ");
Pantalla.Imprimeln(" "+Exp);
Pantalla.Imprimeln(""+Coef+" "+"("+variable+")");
if(i!=0)
{
Pantalla.Imprime("Desea Ingresar Otro Termino al Polinomio (s/n) = ");
if(Teclado.LeerChar()=='n')
sigue=false;
}
}
Nuevo = new Polinomio(variable,coef,exp);
return (Nuevo);
}
public static Polinomio Resta(Polinomio uno,Polinomio dos)
{
Vector Vtemporal;
Double Dtemporal;
Polinomio Ptemporal;
Vtemporal = new Vector();
int i;
for(i=0;i<dos.Coeficiente.size();i++)
{
Dtemporal = (Double)dos.Coeficiente.elementAt(i);
Dtemporal = new Double(Dtemporal.doubleValue()*-1);
Vtemporal.addElement(Dtemporal);
}
Ptemporal = new Polinomio(dos.Variable,Vtemporal,dos.Exponente);
return (Sumar(uno,Ptemporal));
}
public static Polinomio Sumar(Polinomio uno,Polinomio dos)
{
// AQUI ES DONDE NECESITO AYUDA
//PUSE RETORNO UNO SOLO PARA COMPILAR
return uno;
}
public static void main(String[] args)
{
Resta(PideDatos(),PideDatos());
}
}
ojala puedan ayudarme lo mas pronto posible
chao
mi correo es [email protected]
Valora esta pregunta


0