Ir para conteúdo

Posts Recomendados

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 :D

 

/*

* 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 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

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

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...