Zafor 1 Postado Setembro 3, 2009 Share Postado Setembro 3, 2009 (editado) Bom o Rotciv fez o tópico com a fórmula de Bhaskara, eu tenho ela aqui só que com a fórmula de delta também... E é em janela... deu um trabalhinho /* * Autor: Giovanni * Ano: 2009 */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.awt.Graphics; import javax.swing.JApplet; import javax.swing.JOptionPane; public class equa2 extends JFrame implements ActionListener { private final Container cont; private final JTextField txtValor1; private final JTextField txtValor2; private final JTextField txtValor3; private final JButton btResult; private final JButton btSair; private final JPanel panelCentro; private final JPanel panelEsq; private final JPanel panelSul; public static void main(final String args[]) { new equa2(); } public equa2() { super ("Equação de 2º Grau"); cont = getContentPane(); cont.setLayout(new BorderLayout()); panelCentro = new JPanel(new GridLayout(2,2,5,5)); panelEsq = new JPanel(new GridLayout(4,1)); panelSul = new JPanel(new GridLayout(1,2)); btResult = new JButton("Resultado"); btSair = new JButton("Sair"); txtValor1 = new JTextField(); txtValor2 = new JTextField(); txtValor3 = new JTextField(); panelEsq.add(new JLabel("Valor de A: ")); panelEsq.add(txtValor1); panelEsq.add(new JLabel("\nValor de B: ")); panelEsq.add(txtValor2); panelEsq.add(new JLabel("\nValor de C: ")); panelEsq.add(txtValor3); panelSul.add(btResult); panelSul.add(btSair); btResult.addActionListener(this); btSair.addActionListener(this); cont.add(new JLabel("Equação de 2º Grau \n"), BorderLayout.NORTH); cont.add(panelCentro, BorderLayout.CENTER); cont.add(panelSul, BorderLayout.SOUTH); cont.add(panelEsq, BorderLayout.WEST); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setSize(300,170); setVisible(true);} public void actionPerformed(final ActionEvent e) { if (e.getSource() == btResult) calcula(); else if (e.getSource() == btSair) System.exit(0); } public void calcula() { final Double vA = new Double(txtValor1.getText().trim()); final Double vB = new Double(txtValor2.getText().trim()); final Double vC = new Double(txtValor3.getText().trim()); double deltaa,deltab,deltac; double x1,x2; deltab = vB.doubleValue()* vB.doubleValue(); deltac = 4 * vA.doubleValue() * vC.doubleValue(); deltaa = deltab - deltac; if(deltaa > 0) { x1 = (double) ((-vB.doubleValue() + Math.sqrt(deltaa))) / 2*vA.doubleValue(); x2 = (double) ((-vB.doubleValue() - Math.sqrt(deltaa))) / 2*vA.doubleValue(); JOptionPane.showMessageDialog(null, "\nDelta: " + deltaa + "\nResultado UM: " + x1 + "\n Resultado Dois: " + x2); } else if(deltaa == 0) { x1 = (double)(-vB.doubleValue() / 2*vA.doubleValue()); x2 = x1; JOptionPane.showMessageDialog(null, "Delta: " + deltaa + "\nResultado : " + x1); } else if(deltaa < 0) { JOptionPane.showMessageDialog(null, "Desculpa mais se delta é menor que 0 não existe"); } } } Editado Setembro 3, 2009 por Zafor Link para o comentário https://xtibia.com/forum/topic/119684-equa%C3%A7%C3%A3o-de-2%C2%BA-grau/ Compartilhar em outros sites More sharing options...
Rotciv 2 Postado Setembro 3, 2009 Share Postado Setembro 3, 2009 Na minha tem delta sim =p if (z>=0){ System.out.println("o valor de delta é: "+z); // Valor de DELTA double x1=((-1)*b+d)/(2*a); double x2=((-1)*b-d)/(2*a); System.out.println("o valor de x1 é: "+x1); // Valor de x1 System.out.println("o valor de x2 é: "+x2); // Valor de x2 } Mas a sua ficou show! Orientada a objeto! O que eu acho que você poderia melhorar era: - Deixa os valores de delta com apenas 2 casas decimais (ninguém usa mais que isso). - Fazer algum jeito que dê para copiar o valor de delta (em caso que você não siga o que eu disse acima). Testei aqui ele e ficou direitinho =D Parabéns!! Abraços Link para o comentário https://xtibia.com/forum/topic/119684-equa%C3%A7%C3%A3o-de-2%C2%BA-grau/#findComment-787390 Compartilhar em outros sites More sharing options...
Posts Recomendados