[APORTE] Solucionador de ecuaciones de 2o Grado

Iniciado por Debci, 20 Noviembre 2009, 16:50 PM

0 Miembros y 3 Visitantes están viendo este tema.

Debci

Hola a todos, aqui os dejo, la plantilla, que he creado para solucionar ecuaciones de segundo grado con las dos raizes, como resultado:

Código (java) [Seleccionar]

/*
* Programa que resuelve ecuaciones de segundo grado
* con capacidad ilimitada.
*/

/*
* Main.java
*
* Created on 20-nov-2009, 15:53:49
*/

package ecuaciones;

/**
*
* @author debci
*/
public class Main extends javax.swing.JFrame {

    /** Creates new form Main */
    public Main() {
        initComponents();

    }

    /** Definicion de los mtodo y datos para la interfaz
    */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        Muestra = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        a = new javax.swing.JTextField();
        XCuadrado = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        b = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        c = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        Consola = new javax.swing.JTextArea();
        btnResolver = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Resolucion de ecuaciones de 2o Grado");

        Muestra.setToolTipText("Muestra de la ecuacion de segundo grado");

        jLabel1.setText("Resolucion de una ecuacion de segundo grado");

        jTextField1.setText("0");

        jLabel2.setText("=");

        jLabel3.setText("+");

        b.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bActionPerformed(evt);
            }
        });

        jLabel4.setText("X");

        jLabel5.setText("+");

        Consola.setColumns(20);
        Consola.setEditable(false);
        Consola.setRows(5);
        Consola.setText("--Solventador de ecuaciones sencillo--\n--Version beta--\n--Andoni Diaz <andoni94@gmail.com>--\n----------------------------------------------------\n_____________________________________\n----------------------------------------------------\n");
        Consola.setToolTipText("Consola de resolucion de ecuaciones");
        Consola.setAutoscrolls(true);
        jScrollPane1.setViewportView(Consola);

        btnResolver.setText("Resolver Ecuacion");
        btnResolver.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnResolverActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(68, 68, 68)
                .addComponent(jLabel1)
                .addContainerGap(84, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(167, Short.MAX_VALUE)
                .addComponent(Muestra, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(164, 164, 164))
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(a, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(3, 3, 3)
                .addComponent(XCuadrado, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(b, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(4, 4, 4)
                .addComponent(jLabel4)
                .addGap(18, 18, 18)
                .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(c, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(174, Short.MAX_VALUE))
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 382, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(55, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(306, Short.MAX_VALUE)
                .addComponent(btnResolver)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(15, 15, 15)
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(Muestra, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel2)
                        .addComponent(a, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel3)
                        .addComponent(b, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel4)
                        .addComponent(c, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(4, 4, 4)
                        .addComponent(XCuadrado, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 128, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE)
                .addComponent(btnResolver)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>

    private void bActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
    }                                           

    private void btnResolverActionPerformed(java.awt.event.ActionEvent evt) {
        int a_i;
        int b_i;
        int c_i;
        int x;
        int y;
        //Transformacion de valores a entero
        a_i = Integer.parseInt(a.getText());
        b_i = Integer.parseInt(b.getText());
        c_i = Integer.parseInt(c.getText());

        //Calculo del primer coeficiente, este es positivo
        x=(int) ((-b_i + Math.sqrt(b_i ^ 2 - 4 * a_i * c_i)) / (2 * a_i));
        //Calculo del segundo coeficiente, este es negativo
        y=(int) ((-b_i - Math.sqrt(b_i ^ 2 - 4 * a_i * c_i)) / (2 * a_i));

       String ResultadoX = Integer.toString(x);
       String ResultadoY = Integer.toString(y);
       Consola.append("Resultados de la ecuacion obtenidos:\n");
       Consola.append("X = "+ ResultadoX + "\n");
       Consola.append("Y = "+ ResultadoY + "\n");
       Consola.append("La dos raizes de la ecuacion son X y Y\n\n");
       Consola.append("--------------------------------------\n\n");

    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Main().setVisible(true);
                Muestra.setText("a*x^2+b*x+c");
                XCuadrado.setText("X²");
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JTextArea Consola;
    private static javax.swing.JLabel Muestra;
    private static javax.swing.JLabel XCuadrado;
    private javax.swing.JTextField a;
    private javax.swing.JTextField b;
    private javax.swing.JButton btnResolver;
    private javax.swing.JTextField c;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration

}

Si, esta hecho con netbeans, al que no le guste que no mire xDDD  :¬¬
Sinceramente, diseñar interfaces con netbeans es mas rapido y ahorra tiempo de programacion, y mas os aseguro que antes programaba interfaces con la clase Swing y era un toston.

Bueno disfrutadlo ^^

Saludos

;)

Blitzkrieg'

Buen aporte, lastima ese codigo molesto de Netbeans



Debci

Cita de: Sir Crapsalot en 20 Noviembre 2009, 17:17 PM
Buen aporte, lastima ese codigo molesto de Netbeans
¬¬'

Pobre netbeans, porque no lo quereis? Simplifica las cosas...
Quien dijo que "aligerar" el trabajo duro era algo malo? Que se aprende menos? (Yo se programar guis y diseñarlas con paleta) Pero no es mejor que se obvien ese tipo de elementos en el aprendizaje de hoy en dia?

Saludos

Blitzkrieg'

En el aprendizaje no se deben obviar pues esto de la construcción de GUIs sin ayuda de un GUI Builder es importante. Si ya eres un programador con experiencia y necesitas diseñar la GUI rapidamente, pues vale, ahi si usamos el GUI Builder.



Leyer

 :D jej esta bueno aunke te dire si no usas netbeans le quitarias como  150 lines innecesarias  de code yo hago  todo en eclipse pero no critico a nadie por dond programa en fin y al cabo cada quien programa dond quiere. y eso nadie creo que podra cambiarlo ;) :rolleyes:

Saludos. 

Blitzkrieg'

#5
Eso es verdad, yo tambien programo en Eclipse y hago las interfaces sin mucho codigo, pero bueno no soy quien para criticar a los demas. Cada uno programa donde quiere y lo repito, buen aporte  ;D

Una de las cosas que mas me gusta de Netbeans es la facilidad con que se crean los ejecutables :D



sapito169

deja de meter horrible codigo autogenerado a nadie le interesa como meter unos pocos conponentes en mas de 100 lineas que no tienen nada que ver con la logica

Blitzkrieg'

Dejenlo xD

A el le gusta hacer sus GUI asi, cada loco con su tema...

Igual es un gran trabajo  :)



Leyer

Cita de: sapito169 en 21 Noviembre 2009, 01:37 AM
deja de meter horrible codigo autogenerado a nadie le interesa como meter unos pocos conponentes en mas de 100 lineas que no tienen nada que ver con la logica

:xD :xD por que dices eso? acaso no manejas java esa es la impresion que das .que programas has echo que aportes has echo? te crees mas importante que los demas pues demuestralo .


Debci

Mirad, con todo el respeto que me cabe en el pecho, al que no le guste que no lo use xD
En serio, si no os gusta, no lo useis y ya esta, no hay mas complicacion ^^

Saludos