Saludos, Soy novato en la programación orientada a objetos en java y tengo ciertos problemas para resolver este ejercicio:
Resulta ser que tengo que hacer un programa el cual yo genere mi propio polinomio y en base a eso graficarlo, aunque tengo muchas trabas en lo que es el uso de las clases genéricas.
Para programarlo utilizo la aplicacion BlueJ y estoy empleando un total de 4 clases.
En la clase donde tengo error es
Clase PuntosEcuación:
Por cualquier cosa anexo las demás clases:
En caso de ser respondido se los agradecería de antemano.
Resulta ser que tengo que hacer un programa el cual yo genere mi propio polinomio y en base a eso graficarlo, aunque tengo muchas trabas en lo que es el uso de las clases genéricas.
Para programarlo utilizo la aplicacion BlueJ y estoy empleando un total de 4 clases.
En la clase donde tengo error es
Clase PuntosEcuación:
Código (java) [Seleccionar]
import java.util.Vector;
import java.awt.*;
public class PuntosEcuacion extends Frame {
private Vector<Punto> Puntos;
private Polinomio Poli;
PuntosEcuacion(Polinomio Poli, double linf,double lsup,double inc){
for ( double i = linf ; linf < lsup; i += inc){
Puntos.add(new Punto<Double>(new Double (i),new Double(Poli.evalua(i)))); //Error a Null Pointer Exception
}
}
public Vector getPuntosEcuacion(){
return new Vector<Punto>(Puntos);
}
public double getPunto(int num){
Punto<Double> p = Puntos.get(num);
double x = p.getX().doubleValue();
double y = p.getY().doubleValue();
return new Punto<Double>(x,y); // En esta linea me manda el error incompatyble types.
}
public static void main(String args[]){
Polinomio p = new Polinomio(2);
p.agregaTermino(new Termino(1,2));
p.agregaTermino(new Termino(3,0));
PuntosEcuacion pe = new PuntosEcuacion(p,-10,10,5); //Error a NULL pointer Exception
pe.resize(400,400);
pe.show();
}
public void paint(Graphics gc){
//Dibujar Plano Cartesiano
gc.setColor(Color.lightGray);
for (int i = 0; i<400;i = i +10){
gc.drawLine(0,i,400,i);
gc.drawLine(i,0,i,400);
}
gc.setColor(Color.blue);
gc.drawLine(200,0,200,400);
gc.drawLine(0,200,400,200);
}
}
Por cualquier cosa anexo las demás clases:
Código (java) [Seleccionar]
public class Punto<E>{
private E x;
private E y;
public Punto(E x, E y){
this.x = x;
this.y = y;
}
E getX(){
return x;
}
void setX(E x){
this.x = y;
}
E getY(){
return y;
}
void setY(E y){
this.y = y;
}
}
Código (java) [Seleccionar]
public class Polinomio{
private Termino[] Terminos;
int gradoP = 0;
public Polinomio(int grado){
gradoP = grado;
Terminos = new Termino[grado+1];
}
public void agregaTermino( Termino Term){
int index = Term.getExponente();
if(index >= 0 && index <= gradoP) Terminos[index] = new Termino(Term);
}
public double evalua( double x){
double sum = 0.0;
for ( Termino recorre:Terminos){
if ( recorre != null){
sum += recorre.evalua(x);
}else{
}
}
return sum;
}
public String toString(){
return null;
}
}
Código (java) [Seleccionar]
import java.lang.Math;
public class Termino{
private double Coeficiente;
private int Exponente;
public Termino (Termino Term){
Coeficiente = Term.getCoeficiente();
Exponente = Term.getExponente();
}
public Termino (double Coef, int Exp){
Coeficiente = Coef;
Exponente = Exp;
}
public int getExponente(){
return Exponente;
}
public double getCoeficiente(){
return Coeficiente;
}
double evalua(double x){
double potPol = Math.pow(x, Exponente);
return Coeficiente * potPol;
}
}
En caso de ser respondido se los agradecería de antemano.