Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - IGSD94

#1
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:
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.