Nem sequer entra no ciclo

Boas pessoal…
tenho o codigo abaixo, o objectivo é deste codigo é que dada uma parabola ele me calcula os n+1 pontos no intervalo de x1=limite inferior e x2=limite superior e me devolva um vector com os n+1 pontos calculados…

as contas estao feitas …mas ao testar…n sei k se passa o cara nem seker entra no while…

o metodo plot é onde esta o problema…

package poo;

public class Parabola {
	private double a;
	private double b;
	private double c;

	public Parabola(double a, double b, double c) {
		assert a != 0;
		this.a = a;
		this.b = b;
		this.c = c;
	}

	Parabola(double a) {
		assert a != 0;
		this.a = a;

	}

	public double getA() {
		return a;
	}

	public void setA(double a) {
		this.a = a;
	}

	public double getB() {
		return b;
	}

	public void setB(double b) {
		this.b = b;
	}

	public double getC() {
		return c;
	}

	public void setC(double c) {
		this.c = c;
	}

	public double coefficient(int aux) {
		double xptzebra = 0;

		assert (aux >= 0);
		if (aux > 2) {
			return 0;
		} else if (aux == 2) {
			xptzebra = a;
		}
		if (aux == 1) {
			xptzebra = b;
		} else if (aux == 0) {
			xptzebra = c;
		}
		return xptzebra;

	}

	public double value(double aux) {
		return (aux * (a * aux + b)) + c;

	}

	public int countZeros() {
	
		double delta = 0;
		assert (delta >= 0);

		delta = b * b - 4 * a * c;

		if (delta == 0) {
		return 1;	//System.out.println("A funcã0 tem apenas um Zero");

		} else if (delta > 0) {
			//System.out.println("A funcã0 tem dois um Zero");
			return 2;

		} else
			return 3;
	}

	public double[] zeros() {

		double[] xpto = new double[2];

		// assert (delta >= 0);
		double x1;
		double x2;

		double delta = b * b - 4 * a * c;
		if (delta == 0) {
			xpto[0] = x1 = -b / (2 * a);
			xpto[1] = x2 = -b / (2 * a);

		} 
		else if (delta > 0) {
			x1 = (-b + Math.sqrt(delta)) / (2 * a);
			x2 = (-b - Math.sqrt(delta)) / (2 * a);

			if (x1 > x2) {
				xpto[0] = x2;
				xpto[1] = x1;

			} else if (x1 < x2) {
				xpto[1] = x2;
				xpto[0] = x1;

			}

		}
		else if (delta < 0) {
			xpto = null;
		}
		return xpto;
	}

	public double devivate(double xpto) {
		return 2 * a * xpto + b;
	}

	public double Integral(double x1, double x2) {
		return (a * Math.pow(x2, 3.0)) / 3
				+ (b * Math.pow(x2, 2.0)) / 2 
				+ c* x2
				- 
				(a * Math.pow(x1, 3.0) / 3
				+ (b * Math.pow(x1, 2.0)) / 2 
				+ c * x1);

	}
	
	
	
	 public Point[] plot(double Limit_inferior, double Limit_superior, int n) {
		 Point [] xp=new Point [n];
		 Parabola X=new Parabola(this.a, this.b, this.c);
		
		double inter_iguais=(Limit_superior-Limit_inferior)/n; 
		 while(Limit_inferior<Limit_superior){
			 //int i=(int) inter_iguais;
			 xp[0]=new Point(0, X.value(0));
			 			for(int  j=1; j<xp.length; j++){
			xp[j]=new Point(inter_iguais, X.value(inter_iguais));
			inter_iguais++;
		
		}
      }
		return xp;
}



a main do codigo…

[code]

package poo;

import java.util.Scanner;

public class Main {

/**
 * @param args
 */
public static void main(String[] args) {
	
	task_D();
}



public static void task_D() {
	Scanner in = new Scanner(System.in);
	
	String aux;
	String aux_b;
	Point[] xpcabra;
	String[] xp;
	String []xpto;
	double a, b, c, l_inf, l_sup;
	int n_interv;
	
	aux = in.nextLine();
	xp = aux.split(" ");

while(in.hasNextLine()){

a = Double.parseDouble(xp[0]);
b = Double.parseDouble(xp[1]);
c = Double.parseDouble(xp[2]);

Parabola p = new Parabola(a, b, c);

		aux_b = in.nextLine();
		xpto = aux_b.split(" ");
	
				
		l_inf = Double.parseDouble(xpto[0]);
		l_sup = Double.parseDouble(xpto[1]);
		n_interv = Integer.parseInt(xpto[2]);
		

		xpcabra = p.plot(l_inf, l_sup, n_interv);
		
for (int i =0; i<xpcabra.length; i++){
		
			System.out.printf("%.2f ",xpcabra[i]);
			
		}
		System.out.println();
	}

}

}[/code]

aguardo ajuda…

valeu pessoal

qual o erro que acontece? uma das coisas que eu vi é que o contrutor de Point(int,int) no seu código está Point(int,double)

xp[0]=new Point(0, X.value(0));

O erro é k ele nao executa nada…ou seja nao devolve nada…fica inamimado…
:frowning: :frowning:

O ideal seria vc executar esse código num debugger.

Como isso não se aprende do dia pra noite, sugiro que vc enfie um monte de println(“passei por aqui - 1”) … 2,3,5… e imprima o valor de algumas variaveis. Veja por que o sistema não se comporta da forma como vc espera.

O ideal seria uma suite de testes unitários para cada parte do seu código mas… paciência :confused:

[code]public Point[] plot(double Limit_inferior, double Limit_superior, int n) {
Point [] xp=new Point [n];
Parabola X=new Parabola(this.a, this.b, this.c);

     double inter_iguais=(Limit_superior-Limit_inferior)/n;   
      while(Limit_inferior<Limit_superior){  
          //int i=(int) inter_iguais;  
          xp[0]=new Point(0, X.value(0));  
                     for(int  j=1; j><xp.length; j++){  
         xp[j]=new Point(inter_iguais, X.value(inter_iguais));  
         inter_iguais++;  
       
     }  
   }  
     return xp; [/code]

Você tá usando java.awt.Point?? ele só aceita os construtores Point(), Point(int x, int y) e Point(Point p)
Você tá usando alguma IDE tipo o Eclipse ou Netbeans? Se estiver ele já vai acusar erro de compilação…

[]´s>

[quote=peczenyj]O ideal seria vc executar esse código num debugger.

Como isso não se aprende do dia pra noite, sugiro que vc enfie um monte de println(“passei por aqui - 1”) … 2,3,5… e imprima o valor de algumas variaveis. Veja por que o sistema não se comporta da forma como vc espera.

O ideal seria uma suite de testes unitários para cada parte do seu código mas… paciência :/[/quote]

Nao me passou pela cabeça…manejar com o debugger…
Obrigado pela ideia…e na verdade aprendi a usar o debugger de dia para o dia…n foi preciso esperar a noite…

[quote=André Fonseca]

Você tá usando java.awt.Point?? ele só aceita os construtores Point(), Point(int x, int y) e Point(Point p)
Você tá usando alguma IDE tipo o Eclipse ou Netbeans? Se estiver ele já vai acusar erro de compilação…

[]´s>[/quote]

tou a usar uma classe Point criada por mim…
o construtor é do tipo Point(double x, double y)…
Tou usando o eclipse e na questao do construtor ele nao da erro…
Nao é ai k ele se comporta mal…

entendi, tente fazer como o peczenyj falou, se estiver usando o Eclipse coloque um break-point nos laços (while e for) e vai tentando debugar passo a passo para ver o que acontece…

http://www.guj.com.br/posts/list/17684.java

aqui tem outro link legal

http://hotwork.sourceforge.net/hotwork/manual/eclipse/eclipse-user-guide.html#Rodando_em_modo_Debug

[quote=André Fonseca]aqui tem outro link legal

http://hotwork.sourceforge.net/hotwork/manual/eclipse/eclipse-user-guide.html#Rodando_em_modo_Debug[/quote]

valeu…