Encontrar as Raízes de uma Equação de 2° no Java SE

E ai Galera beleza?

Provavelmente neste forúm ,e no Google , tem esse exercício resolvido só que meu código está dano erros “estranhos”,tentei resolvê-los de vários modos,no entanto não consegui,se alguém pudesse me dar uma força ?

Veja meu código —>

import java.util.Scanner;

public class Equacao{
public static void main(String[] args){

	Scanner s=new Scanner(System.in);
	
	double a;
	double b;
	double c;
	double delta;
	double x1;
	double x2;
	
	
	System.out.println("Digite o valor de a");
	double a=s.next.Line();
	System.out.println("Digite o valor de b");
	double b=s.next.Line();
	System.out.println("Digite o valor de c");
	double c=s.next.Line();
	
	delta=b*b-4*a*c;
	
	if(delta>0){
	x1=(-b+sqrt(delta))/2*a;
	
	x2=(-b-sqrt(delta))/2*a;
	
	System.out.println("Essa equação possue soluções reais");
	System.out.println(" x1=",+x1);
	System.out.println("x2=",+x2);
	
	
	}
	else if(delta==0){
	x1=x2=-b/2*a;
	
	System.out.println("Essa equação possue soluções reais");
	System.out.println("x1",+x1);
	System.out.println("x2",+x2);
	}
	else(delta<0);{
	x1=x2=-b/2*a;
	
	System.out.println("x1=x2",+x1 +x2);
	System.out.println("Essa equaçao só possue uma raiz real");
	
	
	}
	}
	}

Compilei ,ele disse o seguinte ; ele dá dos erros na linha 43 " error:not a statement"

Começei a estudar Java SE recentemente !!

gRATo

vou te postar um código que fiz
falta só o gráfico

segue o código…


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package equacao2grau;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import descobriroxis.ClasseBase;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.geom.Ellipse2D;
import java.awt.geom.QuadCurve2D;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
//import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
 *
 * @author raghy
 */
public class equacao2Grau extends ClasseBase implements ActionListener, ItemListener {

    JCheckBox cb1, cb2, cb3;
    JButton b2;
    JTextField jT1 = new JTextField();
    JTextField jT2 = new JTextField();
    JTextField jTresultado = new JTextField();
    JLabel jTvalor = new JLabel();
    JLabel jTvalor1 = new JLabel();
    JLabel jTvalor2 = new JLabel();
    JLabel jTvalor3 = new JLabel();
    JLabel jTvalor4 = new JLabel();
    JLabel jTvalor5 = new JLabel();
    JLabel jTvalor6 = new JLabel();
    JLabel jTvalor7 = new JLabel();
    JLabel jTvalor8 = new JLabel();
    JLabel jTvalor9 = new JLabel();
    JLabel jTvalor10 = new JLabel();
    int j1 = 0;
    int j2 = 0;
    int jresultado = 0;
    double delta = 0;
    double x, y;
    int posicaoX;
    int posicaoY;
    int coordenadaYdeX = 0;
    int coordenadaYdeX2 = 0;
    String Valor_jLabel = &quot;&quot;;
    boolean negativo1, negativo2, negativo3;
    double xLinha = 0;
    double xDuasLinhas=0;

    int xLinha2 = 0;
    int xDuasLinhas2 = 0;


    double yVertice;
    double xVertice;

    public equacao2Grau() {
        //painel e titulo doframe
        setTitle(&quot;equacao de 2 grau&quot;);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setResizable(true);
        setLocationRelativeTo(null);
        Font F = new Font(&quot;Sans Serif&quot;, Font.BOLD, 16);
        Font F1 = new Font(&quot;Sans Serif&quot;, Font.ITALIC, 14);
        Font F2 = new Font(&quot;Sans Serif&quot;, Font.ITALIC, 20);
        //botao 1 ou calcula...

        b2 = new JButton();
        b2.setText(&quot;Novo Calculo&quot;);
        b2.setSize(100, 25);
        b2.setLocation(50, 360);
        b2.setBackground(Color.orange);
        b2.setForeground(Color.blue);
        b2.setFont(new Font(&quot;Sans Serif&quot;, Font.BOLD, 14));
        b2.setBorder(BorderFactory.createBevelBorder(1, Color.white, Color.black));
        b2.setEnabled(true);
        b2.addActionListener(this);
        //label1
        JLabel L1 = new JLabel();
        L1.setText(&quot;equacao de 2 grau&quot;);
        L1.setSize(200, 35);
        L1.setFont(F);
        L1.setLocation(45, 5);
        L1.setForeground(Color.blue);
        //label2
        JLabel L2 = new JLabel();
        L2.setText(&quot;formula geral: ax(2)+bx+c=0&quot;);
        L2.setSize(200, 35);
        L2.setLocation(45, 25);
        L2.setForeground(Color.blue);
        //label2
        JLabel L3 = new JLabel();
        L3.setText(&quot;insira os numeros desejados: &quot;);
        L3.setSize(200, 35);
        //L3.setFont(F);
        L3.setLocation(45, 45);
        L3.setForeground(Color.blue);
        //jT1
        jT1.setFont(F2);
        jT1.setText(&quot;&quot;);
        jT1.setLocation(40, 85);
        jT1.setSize(35, 35);
        //+
        JLabel mais = new JLabel();
        mais.setText(&quot;x(2)+&quot;);
        mais.setSize(200, 35);
        mais.setFont(F);
        mais.setLocation(78, 85);
        mais.setForeground(Color.blue);
        //+
        JLabel igual = new JLabel();
        igual.setText(&quot;x +&quot;);
        igual.setSize(200, 35);
        igual.setFont(F);
        igual.setLocation(155, 85);
        igual.setForeground(Color.blue);

        JLabel igualAzero = new JLabel();
        igualAzero.setText(&quot;= 0&quot;);
        igualAzero.setSize(200, 35);
        igualAzero.setFont(F);
        igualAzero.setLocation(225, 85);
        igualAzero.setForeground(Color.blue);



        //valores negativos

        cb1 = new JCheckBox(&quot;negativo&quot;, false);
        cb1.setLocation(36, 120);
        cb1.setSize(74, 20);
        cb1.setBackground(new Color(255, 255, 100));

        cb2 = new JCheckBox(&quot;negativo&quot;, false);
        cb2.setLocation(116, 120);
        cb2.setSize(73, 20);
        cb2.setBackground(new Color(255, 255, 100));

        cb3 = new JCheckBox(&quot;negativo&quot;, false);
        cb3.setLocation(185, 120);
        cb3.setSize(74, 20);
        cb3.setBackground(new Color(255, 255, 100));

        cb1.addItemListener(this);
        cb2.addItemListener(this);
        cb3.addItemListener(this);

        //jT2
        jT2.setFont(F2);
        jT2.setText(&quot;&quot;);
        jT2.setLocation(120, 85);
        jT2.setSize(35, 35);
        //jTresultado
        jTresultado.setFont(F2);
        jTresultado.setText(&quot;&quot;);
        jTresultado.setLocation(190, 85);
        jTresultado.setSize(35, 35);
        jTvalor.setSize(250, 35);
        jTvalor.setLocation(45, 135);
        jTvalor.setForeground(Color.blue);
        jTvalor1.setSize(250, 35);
        jTvalor1.setLocation(45, 150);
        jTvalor1.setForeground(Color.blue);
        jTvalor2.setSize(330, 35);
        jTvalor2.setLocation(45, 165);
        jTvalor2.setForeground(Color.blue);
        jTvalor3.setSize(250, 35);
        jTvalor3.setLocation(45, 180);
        jTvalor3.setForeground(Color.blue);
        jTvalor4.setSize(250, 35);
        jTvalor4.setLocation(45, 195);
        jTvalor4.setForeground(Color.blue);
        jTvalor5.setSize(250, 35);
        jTvalor5.setLocation(45, 210);
        jTvalor5.setForeground(Color.blue);
        jTvalor6.setSize(350, 35);
        jTvalor6.setLocation(45, 225);
        jTvalor6.setForeground(Color.blue);
        jTvalor7.setSize(350, 35);
        jTvalor7.setLocation(45, 240);
        jTvalor7.setForeground(Color.blue);
        jTvalor8.setSize(250, 35);
        jTvalor8.setLocation(45, 255);
        jTvalor8.setForeground(Color.blue);
        jTvalor9.setSize(350, 35);
        jTvalor9.setLocation(45, 270);
        jTvalor9.setForeground(Color.blue);
        jTvalor10.setSize(350, 35);
        jTvalor10.setLocation(45, 285);
        jTvalor10.setForeground(Color.blue);
        Painel p = new Painel();
        p.setBounds(490, 50, 270, 270);
        p.setBorder(BorderFactory.createLineBorder(Color.black, 2));
        getContentPane().setLayout(null);
        getContentPane().add(p);
        getContentPane().add(L1);
        getContentPane().add(L2);
        getContentPane().add(L3);
        getContentPane().add(mais);
        getContentPane().add(igual);
        getContentPane().add(igualAzero);
        getContentPane().add(jT1);
        getContentPane().add(jT2);
        getContentPane().add(jTresultado);
        getContentPane().add(jTvalor);
        getContentPane().add(jTvalor1);
        getContentPane().add(jTvalor2);
        getContentPane().add(jTvalor3);
        getContentPane().add(jTvalor4);
        getContentPane().add(jTvalor5);
        getContentPane().add(jTvalor6);
        getContentPane().add(jTvalor7);
        getContentPane().add(jTvalor8);
        getContentPane().add(jTvalor9);
        getContentPane().add(jTvalor10);
        getContentPane().add(b2);

        getContentPane().add(cb1);
        getContentPane().add(cb2);
        getContentPane().add(cb3);

    }

    class Painel extends JPanel {

        @Override
        public void paintComponent(Graphics g) {
            Graphics2D g2 = (Graphics2D) g;
            Font F1 = new Font(&quot;Sans Serif&quot;, Font.BOLD, 60);
            g2.setColor(Color.white);
            g2.fillRect(10, 10, 250, 250);
            //reta y...
            g2.setColor(Color.red);
            g2.drawLine(135, 240, 135, 25);
            //reta x...
            g2.setColor(Color.blue);
            g2.drawLine(25, 135, 240, 135);
            //riscos 0 a 10 de x...
            g2.setColor(Color.black);
            g2.drawLine(135, 135, 135, 145);
            g2.drawLine(145, 135, 145, 145);
            g2.drawLine(155, 135, 155, 145);
            g2.drawLine(165, 135, 165, 145);
            g2.drawLine(175, 135, 175, 145);
            g2.drawLine(185, 135, 185, 145);
            g2.drawLine(195, 135, 195, 145);
            g2.drawLine(205, 135, 205, 145);
            g2.drawLine(215, 135, 215, 145);
            g2.drawLine(225, 135, 225, 145);
            g2.drawLine(235, 135, 235, 145);
            // 1 a 10 -x
            g2.drawLine(125, 135, 125, 145);
            g2.drawLine(115, 135, 115, 145);
            g2.drawLine(105, 135, 105, 145);
            g2.drawLine(95, 135, 95, 145);
            g2.drawLine(85, 135, 85, 145);
            g2.drawLine(75, 135, 75, 145);
            g2.drawLine(65, 135, 65, 145);
            g2.drawLine(55, 135, 55, 145);
            g2.drawLine(45, 135, 45, 145);
            g2.drawLine(35, 135, 35, 145);
            // eixo y... marcacoes...
            g2.drawLine(135, 135, 145, 135);
            g2.drawLine(135, 125, 145, 125);
            g2.drawLine(135, 115, 145, 115);
            g2.drawLine(135, 105, 145, 105);
            g2.drawLine(135, 95, 145, 95);
            g2.drawLine(135, 85, 145, 85);
            g2.drawLine(135, 75, 145, 75);
            g2.drawLine(135, 65, 145, 65);
            g2.drawLine(135, 55, 145, 55);
            g2.drawLine(135, 45, 145, 45);
            g2.drawLine(135, 35, 145, 35);
            //eixo y para baixo...  no caso aumenta a contagem...
            g2.drawLine(135, 145, 145, 145);
            g2.drawLine(135, 155, 145, 155);
            g2.drawLine(135, 165, 145, 165);
            g2.drawLine(135, 175, 145, 175);
            g2.drawLine(135, 185, 145, 185);
            g2.drawLine(135, 195, 145, 195);
            g2.drawLine(135, 205, 145, 205);
            g2.drawLine(135, 215, 145, 215);
            g2.drawLine(135, 225, 145, 225);
            g2.drawLine(135, 235, 145, 235);
          //  g2.drawLine(135, 245, 145, 245);
         //traçar a reta da equacao...  e alguns pontos ... ou grafico geral
        calcula();
        Ellipse2D vertice=new Ellipse2D.Double(133+(xVertice*10),133-(yVertice*10), 5, 5)  ;
        g2.fill(vertice);
        //xises

        g2.setColor(Color.red);
        Ellipse2D vertice1=new Ellipse2D.Double(135+(xLinha*10),135, 5, 5)  ;
        Ellipse2D vertice2=new Ellipse2D.Double(135+(xDuasLinhas*10),135, 5, 5)  ;
        g2.fill(vertice1);
        g2.fill(vertice2);
        //traçar a linha..
        // Cria uma nova curva
QuadCurve2D q = new QuadCurve2D.Double(); // Define suas coordenadas e a desenha
q.setCurve(135+(xLinha*10),    135      , 135+(xVertice*10)  , 135-(yVertice*10),       135+(xDuasLinhas*10),135    );
g2.draw(q);




double tamanho=xDuasLinhas-xLinha;
System.out.println(&quot;tamanho :&quot;+tamanho);
//tentando traçar o gráfico de forma melhor... fazer estudo sobre isto...
/*for(double calculo=1; calculo&lt;50; calculo=calculo+10){
Ellipse2D vertice3=new Ellipse2D.Double(135+((xLinha*10)-calculo),135, 5, 5);
g2.fill(vertice3);
}
        g2.setColor(Color.blue);
        double xv= 135+(xVertice*10);
         /*  for( double laco=0;  laco&lt;40; laco=laco+5 ){
        Ellipse2D vertice3=new Ellipse2D.Double(135+(xDuasLinhas*10)+laco,laco+  135-(yVertice*10), 4, 4)  ;
        g2.fill(vertice3);
        System.out.println(&quot;valor de laco&quot;+laco);
            }
*/
g2.dispose();
        }//paint...
    }//fecha a classe painel...




    //acao dos botoes
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == b2) {
            jT1.setEnabled(true);
            jT2.setEnabled(true);
            jTresultado.setEnabled(true);
            jT1.setText(&quot;&quot;);
            jT2.setText(&quot;&quot;);
            jTresultado.setText(&quot;&quot;);
            repaint();
        }
    }

    //checkboxes
    public void itemStateChanged(ItemEvent e) {
    if (e.getSource() == cb1) {
            if (e.getStateChange() == ItemEvent.SELECTED) {
                if (jT1.getText().equals(&quot;0&quot;)) {
                    jT1.setText(&quot;&quot;);
                }
                if (jT1.getText().equals(&quot;1&quot;) || jT1.getText().equals(&quot;&quot;)) {
                    j1 = 1;
                } else {
                    j1 = Integer.parseInt(jT1.getText());
                }
                j1 = j1 * (-1);
                jTvalor3.setText(&quot;a tem valor negativo. a= &quot; + j1);
                negativo1 = true;
            }
            if (e.getStateChange() == ItemEvent.DESELECTED) {
                negativo1 = false;
            }





        }
        if (e.getSource() == cb2) {
            if (e.getStateChange() == ItemEvent.SELECTED) {
                if (jT2.getText().equals(&quot;0&quot;)) {
                    jT2.setText(&quot;&quot;);
                }
                if (jT2.getText().equals(&quot;1&quot;) || jT2.getText().equals(&quot;&quot;)) {
                    j2 = 1;
                } else {
                    j2 = Integer.parseInt(jT2.getText());
                }
                j2 = j2 * (-1);
                jTvalor4.setText(&quot;b tem valor negativo. b= &quot; + j2);
                negativo2 = true;
            }
            if (e.getStateChange() == ItemEvent.DESELECTED) {
                negativo2 = false;
            }

        }

        if (e.getSource() == cb3) {
            if (e.getStateChange() == ItemEvent.SELECTED) {
                if (jTresultado.getText().equals(&quot;0&quot;)) {
                    jTresultado.setText(&quot;&quot;);
                }
                if (jTresultado.getText().equals(&quot;1&quot;) || jTresultado.getText().equals(&quot;&quot;)) {
                    jresultado = 1;
                } else {
                    jresultado = Integer.parseInt(jTresultado.getText());
                }
                jresultado = jresultado * (-1);
                jTvalor5.setText(&quot;c tem valor negativo. c= &quot; + jresultado);
                negativo3 = true;
            }
            if (e.getStateChange() == ItemEvent.DESELECTED) {
                negativo3 = false;
            }
        }



    }

    public void calcula() {        //se vazio ou 1, a vale 1...
        try {
            //nao aceita zero em jt1 e jt2...
            if (jT1.getText().equals(&quot;0&quot;)) {
                jT1.setText(&quot;&quot;);
            }
            if (jT2.getText().equals(&quot;0&quot;)) {
                jT2.setText(&quot;&quot;);
            }
            if (jTresultado.getText().equals(&quot;0&quot;)) {
                jTresultado.setText(&quot;&quot;);
            }
            //se um ou vazio é um, senao é o numero digitado, se passar na exceção.
            if (jT1.getText().equals(&quot;1&quot;) || jT1.getText().equals(&quot;&quot;)) {
                j1 = 1;
            } else {
                j1 = Integer.parseInt(jT1.getText());
            }
            //se vazio ou 1, b vale 1...
            if (jT2.getText().equals(&quot;1&quot;) || jT2.getText().equals(&quot;&quot;)) {
                j2 = 1;
            } else {
                j2 = Integer.parseInt(jT2.getText());
            }
            if (jTresultado.getText().equals(&quot;1&quot;) || jTresultado.getText().equals(&quot;&quot;)) {
                jresultado = 1;
            } else {
                jresultado = Integer.parseInt(jTresultado.getText());
            }





            if (negativo1 == false) {
                jTvalor3.setText(&quot;a tem valor positivo = &quot; + j1);
            } else {
                j1 = j1 * (-1);
                jTvalor3.setText(&quot;a tem valor negativo = &quot; + j1);
            }

            if (negativo2 == false) {
                jTvalor4.setText(&quot;b tem valor positivo = &quot; + j2);
            } else {
                j2 = j2 * (-1);
                jTvalor4.setText(&quot;b tem valor negativo = &quot; + j2);
            }
            if (negativo3 == false) {
                jTvalor5.setText(&quot;c tem valor positivo = &quot; + jresultado);
            } else {
                jresultado = jresultado * (-1);
                jTvalor5.setText(&quot;c tem valor negativo = &quot; + jresultado);
           }
            //acima é sobre captação dos dados, aqui é o calculo...
            jTvalor.setText(&quot;a= &quot; + j1 + &quot;   b= &quot; + j2 + &quot;   c= &quot; + jresultado);

            delta = ((j2 * j2) - (4 * j1 * jresultado));
            jTvalor1.setText(&quot;o delta e b(2)-4ac, e vale: &quot; + delta);


            if (delta &lt; 0) {
                jTvalor2.setText(&quot;delta(&quot; + delta + &quot;) menor que zero,nao existem solucoes reais&quot;);
            }
            if (delta == 0) {
                jTvalor2.setText(&quot;delta(&quot; + delta + &quot;) igual a zero, existe  uma solucao real&quot;);
            }
            if (delta &gt; 0) {
                jTvalor2.setText(&quot;delta(&quot; + delta + &quot;) maior que zero, existem duas solucoes reais&quot;);
            }




//calcula o xis linha e xis duas linhas...

            if (delta == 0) {  // ou seja so tem uma solução...  //-b/2a
                xLinha = ((j2 * (-1)) / (2 * j1));
                jTvalor6.setText(&quot;A solucao 1 da equacao e -b:2a :&quot; + xLinha);
            }
            jTvalor7.setText(&quot;A solucao 2 da equacao nao existe:&quot;);





            if (delta &gt; 0) {  // ou seja ha 2 soluções...
                //um é mais outro é menos...

                xLinha = (((j2 * (-1)) + Math.sqrt(delta)) / (2 * j1));
                xDuasLinhas = (((j2 * (-1)) - Math.sqrt(delta)) / (2 * j1));



                xLinha2= (int)xLinha;
                xDuasLinhas2= (int)xDuasLinhas;
                jTvalor6.setText(&quot;A solucao 1 da equacao e -b+(raiz de delta):2a :&quot; + xLinha);
                jTvalor7.setText(&quot;A solucao 2 da equacao e  -b-(raiz de delta):2a :&quot; + xDuasLinhas);
            }

            if (delta &lt; 0) {
                jTvalor6.setText(&quot;A solucao 1 da equacao nao existe:&quot;);
                jTvalor7.setText(&quot;A solucao 2 da equacao nao existe:&quot;);
            }



            if (j1 &lt; 0) {
                jTvalor8.setText(&quot;a&lt;0 (a menor que zero, ponto maximo, curva voltada para baixo&quot;);
            }
            if (j1 &gt; 0) {
                jTvalor8.setText(&quot;a&gt;0 (a maior que zero, ponto minimo,curva voltada para cima&quot;);
            }


            //calcula os vertices


          yVertice = -(delta / (4 * j1));
            xVertice = -(j2 / (2 * j1));
            if (yVertice == 0) {
                yVertice = -yVertice;
            }
            if (xVertice != 0) {
                xVertice = -xVertice;
            }
            jTvalor9.setText(&quot;vertice Y, delta/4a =&quot; + yVertice + &quot;  vertice X, b/2a =&quot; + xVertice);



        } catch (NumberFormatException e) {
            jT1.setText(&quot;&quot;);
            jT2.setText(&quot;&quot;);
            jTresultado.setText(&quot;&quot;);
        } finally {
            repaint();
        }
    }//encerra o calcula...

    public static void main(String[] raghy) {
        JFrame frame = new equacao2Grau();
        frame.setVisible(true);
    }
}

e precisa desta
:



package descobriroxis;

import java.awt.Color;
import javax.swing.JFrame;

/**
 *
 * @author raghy
 */
public class ClasseBase extends JFrame{

    public ClasseBase () {

        setTitle(&quot;teste grafico&quot;);
        setBounds(100,75,800,450);
        setResizable(false);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setLocationRelativeTo(null);
       getContentPane().setBackground(new Color(255,245,180));

    }



      public static void main(String[]raghy) {

          new ClasseBase().setVisible(true);


      }
}

segue aí da um retorno…

e eu quero ajuda para a curva do gráfico… ela não chega ao vértice corretamente…

valeu.

segue o arquivo em uma classe só. fica mais fácil de fazer funcionar.

manda resposta aí.

mexi no seu código olha só…



import java.util.Scanner;



public class Equacao{ 
public static void main(String[] args){ 

Scanner s=new Scanner(System.in); 

double a; 
double b; 
double c; 
double delta; 
double x1; 
double x2; 


System.out.println(&quot;Digite o valor de a&quot;); 
 a=s.nextDouble(); 
System.out.println(&quot;Digite o valor de b&quot;); 
 b=s.nextDouble(); 
System.out.println(&quot;Digite o valor de c&quot;); 
 c=s.nextDouble(); 

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


if(delta&gt;0){ 
x1=(-b+Math.sqrt(delta))/2*a; 

x2=(-b-Math.sqrt(delta))/2*a; 

System.out.println(&quot;Essa equação possue soluções reais&quot;); 
System.out.println(&quot; x1=&quot;+x1); 
System.out.println(&quot;x2=&quot;+x2); 


} 
else if(delta==0){ 
x1=x2=-b/2*a; 

System.out.println(&quot;Essa equação possue soluções reais&quot;); 
System.out.println(&quot;x1&quot;+x1); 
System.out.println(&quot;x2&quot;+x2); 
} 
else if(delta&lt;0);{ 
x1=x2=-b/2*a; 

System.out.println(&quot;x1=x2&quot;+x1 +x2); 
System.out.println(&quot;Essa equaçao só possue uma raiz real&quot;); 


} 
} 
} 

mas ele está com erros pois testei no meu… (aliás esta versão é antiga, perdi a atual, e tem um pequeno erro quando o c é zero… )
mas em outro link também e conferi…

o seu programa está com erro de cálculo além de muitos de programação. veja as mudanças que fiz…

podes testar o resultado certo por aqui:
http://somatematica.com.br/raizes.php

Brigadão aee pela ajuda

compilei aqui,e veja só o que apareceu

“cannot find symbol
Scanner s=new Scanner(System.in);”

O que que houve?

deve estar faltando isto…

import java.util.Scanner;

mas veja seus cálculos da equação estão com erros, apesar que o programa ficou pronto para funcionar, os resultados estão saindo errado.

o meu tenho que arrumar, pois se o c é zero ou nulo, conta como 1.
mas os resultados estão certos, e só este erro na entrada dos dados.

aqui talvez seje um detalhe a arrumar:

x1=x2=-b/2*a;

por parenteses

x2=-b/  (2*a) ;   

pois divide o b por 2a, não divide o b por 2 e multiplica por a. tem que dar uma corrigida nestas coisas. mas está funcionando.

Esse programa que você fez possui erros em praticamente todas as áreas do conhecimento necessárias para desenvolve-lo:

  1. Matemática: O teste do delta está errado. Um deta <0 não possui raízes reais;
  2. Português: A palavra possui se escreve com "i";
  3. Programação: Há vários comandos que não existem na linguagem.
import java.util.Scanner;

public class Equacao {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);

		System.out.println(&quot;Digite o valor de a: &quot;);
		double a = Double.parseDouble(s.nextLine());
		System.out.println(&quot;Digite o valor de b&quot;);
		double b = Double.parseDouble(s.nextLine());
		System.out.println(&quot;Digite o valor de c&quot;);
		double c = Double.parseDouble(s.nextLine());

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

		if (delta &lt; 0) {
			System.out.println(&quot;Essa equação não possui soluções reais.&quot;);
			return;
		}

		double x1 = (-b + Math.sqrt(delta)) / 2 * a;

		if (delta == 0) {
			System.out.printf(&quot;Essa equação possui uma raiz real: %.2f&quot;, x1);
		} else {
			System.out.println(&quot;Essa equação possui duas raízes reais:&quot;);
			double x2 = (-b - Math.sqrt(delta)) / 2 * a;
			System.out.printf(&quot;x1: %.2f&quot;, x1);
			System.out.printf(&quot;x2: %.2f&quot;, x2);
		}
	}
}

Outras dica: Leia os links abaixo para aprender a deixar seu código formatado e colorido no GUJ:

[code]import java.util.Scanner;
public class Raizes {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double a, b, c, delta, raiz, raiz1, raiz2;

  System.out.print(&quot;Digite a:&quot;);
  a = input.nextDouble();
  System.out.print(&quot;Digite b:&quot;);
  b = input.nextDouble();
  System.out.print(&quot;Digite c:&quot;);
  c = input.nextDouble();
  delta = b*b - 4*a*c;
  if (delta==0) {
     raiz = -b/(2*a);
     System.out.println(&quot;Tem aí uma raiz. A raiz é &quot; + raiz);
  }
  else if (delta&lt;0)
     System.out.println(&quot;delta=&quot; + delta + &quot;. Sem raízes.&quot;);
  else {
     raiz1 = (-b + Math.sqrt(delta) )/(2*a);
     raiz2 = (-b - Math.sqrt(delta) )/(2*a);
     System.out.println(&quot;Duas raízes. As raízes são &quot;+raiz1+&quot; e &quot;+raiz2);
  }

}
}[/code]

Obrigadão Galera!!!

Foi mal pelos erros, eu realmente não prestei muita atenção no meu código,tentarei melhorá-lo,ou seja,eu vou revisar a parte teórica!!!

abraço

Cidado com os detalhes:

  1. É má prática declarar todas as variáveis no início do método. Declare-as no ponto mais próximo onde for usa-las e no menor escopo possível;
  2. Nunca se usa outro método que não o nextLine() com Scanner, para pedir informações para o usuário em modo texto. As outras operações (nextDouble(), nextInt(), next()) foram feitas para a leitura de arquivos, e podem deixar lixo que tornam o comportamento do programa esquisito.

alguém viu meu programa, postei ele todo ali e para download também. falei do erro que o c vira um se estiver vazio, mas isso é fácil de arrumar.
o ponto é que quero melhorar aquela curva, do gráfico, e a curva nunca vai até o vértice, já discuti isso com o vini, pensei em fazer ponto a ponto, seria a melhor opção, mas até agora nao saiu. o problema ficou sem solução.

caso alguém tenha mais experiencia, ou também se interesse em ver a curva do gráfico da equação funcionando bonitinha, pode dar uma força e postar algo, seja a solução ou mais dicas, ou entrar em contato.

grato.

tinha feito um belo avanço em um programa de fatoração, estava perfeito, mas acabei por formatar o micro, sem que os arquivos estivessem bem a salvos, e não houve windows.old, como eu imaginava que pudesse haver.
uma pena, mas tenho partes do programa. isto aí foi um pouco do que sobrou de já feito. do matematica java, acho que já postei por aqui, algo sobre esta idéia.

aguardo.

[quote=ViniGodoy]Cidado com os detalhes:

  1. É má prática declarar todas as variáveis no início do método. Declare-as no ponto mais próximo onde for usa-las e no menor escopo possível;
  2. Nunca se usa outro método que não o nextLine() com Scanner, para pedir informações para o usuário em modo texto. As outras operações (nextDouble(), nextInt(), next()) foram feitas para a leitura de arquivos, e podem deixar lixo que tornam o comportamento do programa esquisito.
    [/quote]
    Gostei dessas informações. Vou aplicá-las a partir de agora.

Abraço!

ali quando corrigi o programa do rapaz, usei o nextDouble. sendo que o dado é double, porque isso seria uma má prática?

[quote=raghy]segue o arquivo em uma classe só. fica mais fácil de fazer funcionar.

manda resposta aí.[/quote]

alguém consegue dar uma força para o gráfico ir até o vértice. ou idéias mais especificas. tentei com algumas formas conhecidas, mas acho que terei ou teria que fazer ponto a ponto. alguma dica?

Infelizmente, os comandos nextDouble(), nextInteger() e next() procuram um valor numérico na sequencia, o leem, mas deixam para trás o caracter de quebra de linha “\n”.
Assim, numa segunda leitura, pode ocorrer da função retornar imediatamente, com um valor vazio, pois o Scanner só leu esse caracter.

Para evitar o problema, use sempre o nextLine(), que faz a leitura da quebra de linha completa.