elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Personaliza-Escoge el diseño del foro que más te guste.


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  [APORTE] Solucionador de ecuaciones de 2o Grado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [APORTE] Solucionador de ecuaciones de 2o Grado  (Leído 5,829 veces)
Debci
Moderador
***
Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
[APORTE] Solucionador de ecuaciones de 2o Grado
« en: 20 Noviembre 2009, 16:50 »

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
  1. /*
  2.  * Programa que resuelve ecuaciones de segundo grado
  3.  * con capacidad ilimitada.
  4.  */
  5.  
  6. /*
  7.  * Main.java
  8.  *
  9.  * Created on 20-nov-2009, 15:53:49
  10.  */
  11.  
  12. package ecuaciones;
  13.  
  14. /**
  15.  *
  16.  * @author debci
  17.  */
  18. public class Main extends javax.swing.JFrame {
  19.  
  20.    /** Creates new form Main */
  21.    public Main() {
  22.        initComponents();
  23.  
  24.    }
  25.  
  26.    /** Definicion de los mtodo y datos para la interfaz
  27.     */
  28.    @SuppressWarnings("unchecked")
  29.    // <editor-fold defaultstate="collapsed" desc="Generated Code">
  30.    private void initComponents() {
  31.  
  32.        Muestra = new javax.swing.JLabel();
  33.        jLabel1 = new javax.swing.JLabel();
  34.        jTextField1 = new javax.swing.JTextField();
  35.        jLabel2 = new javax.swing.JLabel();
  36.        a = new javax.swing.JTextField();
  37.        XCuadrado = new javax.swing.JLabel();
  38.        jLabel3 = new javax.swing.JLabel();
  39.        b = new javax.swing.JTextField();
  40.        jLabel4 = new javax.swing.JLabel();
  41.        jLabel5 = new javax.swing.JLabel();
  42.        c = new javax.swing.JTextField();
  43.        jScrollPane1 = new javax.swing.JScrollPane();
  44.        Consola = new javax.swing.JTextArea();
  45.        btnResolver = new javax.swing.JButton();
  46.  
  47.        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  48.        setTitle("Resolucion de ecuaciones de 2o Grado");
  49.  
  50.        Muestra.setToolTipText("Muestra de la ecuacion de segundo grado");
  51.  
  52.        jLabel1.setText("Resolucion de una ecuacion de segundo grado");
  53.  
  54.        jTextField1.setText("0");
  55.  
  56.        jLabel2.setText("=");
  57.  
  58.        jLabel3.setText("+");
  59.  
  60.        b.addActionListener(new java.awt.event.ActionListener() {
  61.            public void actionPerformed(java.awt.event.ActionEvent evt) {
  62.                bActionPerformed(evt);
  63.            }
  64.        });
  65.  
  66.        jLabel4.setText("X");
  67.  
  68.        jLabel5.setText("+");
  69.  
  70.        Consola.setColumns(20);
  71.        Consola.setEditable(false);
  72.        Consola.setRows(5);
  73.        Consola.setText("--Solventador de ecuaciones sencillo--\n--Version beta--\n--Andoni Diaz <andoni94@gmail.com>--\n----------------------------------------------------\n_____________________________________\n----------------------------------------------------\n");
  74.        Consola.setToolTipText("Consola de resolucion de ecuaciones");
  75.        Consola.setAutoscrolls(true);
  76.        jScrollPane1.setViewportView(Consola);
  77.  
  78.        btnResolver.setText("Resolver Ecuacion");
  79.        btnResolver.addActionListener(new java.awt.event.ActionListener() {
  80.            public void actionPerformed(java.awt.event.ActionEvent evt) {
  81.                btnResolverActionPerformed(evt);
  82.            }
  83.        });
  84.  
  85.        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  86.        getContentPane().setLayout(layout);
  87.        layout.setHorizontalGroup(
  88.            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  89.            .addGroup(layout.createSequentialGroup()
  90.                .addGap(68, 68, 68)
  91.                .addComponent(jLabel1)
  92.                .addContainerGap(84, Short.MAX_VALUE))
  93.            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  94.                .addContainerGap(167, Short.MAX_VALUE)
  95.                .addComponent(Muestra, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)
  96.                .addGap(164, 164, 164))
  97.            .addGroup(layout.createSequentialGroup()
  98.                .addContainerGap()
  99.                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
  100.                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  101.                .addComponent(jLabel2)
  102.                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  103.                .addComponent(a, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
  104.                .addGap(3, 3, 3)
  105.                .addComponent(XCuadrado, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
  106.                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  107.                .addComponent(jLabel3)
  108.                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  109.                .addComponent(b, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
  110.                .addGap(4, 4, 4)
  111.                .addComponent(jLabel4)
  112.                .addGap(18, 18, 18)
  113.                .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
  114.                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  115.                .addComponent(c, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
  116.                .addContainerGap(174, Short.MAX_VALUE))
  117.            .addGroup(layout.createSequentialGroup()
  118.                .addContainerGap()
  119.                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 382, javax.swing.GroupLayout.PREFERRED_SIZE)
  120.                .addContainerGap(55, Short.MAX_VALUE))
  121.            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  122.                .addContainerGap(306, Short.MAX_VALUE)
  123.                .addComponent(btnResolver)
  124.                .addContainerGap())
  125.        );
  126.        layout.setVerticalGroup(
  127.            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  128.            .addGroup(layout.createSequentialGroup()
  129.                .addGap(15, 15, 15)
  130.                .addComponent(jLabel1)
  131.                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  132.                .addComponent(Muestra, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
  133.                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  134.                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  135.                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  136.                        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  137.                        .addComponent(jLabel2)
  138.                        .addComponent(a, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  139.                        .addComponent(jLabel3)
  140.                        .addComponent(b, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  141.                        .addComponent(jLabel4)
  142.                        .addComponent(c, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  143.                        .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE))
  144.                    .addGroup(layout.createSequentialGroup()
  145.                        .addGap(4, 4, 4)
  146.                        .addComponent(XCuadrado, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)))
  147.                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  148.                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 128, javax.swing.GroupLayout.PREFERRED_SIZE)
  149.                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE)
  150.                .addComponent(btnResolver)
  151.                .addContainerGap())
  152.        );
  153.  
  154.        pack();
  155.    }// </editor-fold>
  156.  
  157.    private void bActionPerformed(java.awt.event.ActionEvent evt) {                                            
  158.        // TODO add your handling code here:
  159.    }                                          
  160.  
  161.    private void btnResolverActionPerformed(java.awt.event.ActionEvent evt) {
  162.        int a_i;
  163.        int b_i;
  164.        int c_i;
  165.        int x;
  166.        int y;
  167.        //Transformacion de valores a entero
  168.        a_i = Integer.parseInt(a.getText());
  169.        b_i = Integer.parseInt(b.getText());
  170.        c_i = Integer.parseInt(c.getText());
  171.  
  172.        //Calculo del primer coeficiente, este es positivo
  173.        x=(int) ((-b_i + Math.sqrt(b_i ^ 2 - 4 * a_i * c_i)) / (2 * a_i));
  174.        //Calculo del segundo coeficiente, este es negativo
  175.        y=(int) ((-b_i - Math.sqrt(b_i ^ 2 - 4 * a_i * c_i)) / (2 * a_i));
  176.  
  177.       String ResultadoX = Integer.toString(x);
  178.       String ResultadoY = Integer.toString(y);
  179.       Consola.append("Resultados de la ecuacion obtenidos:\n");
  180.       Consola.append("X = "+ ResultadoX + "\n");
  181.       Consola.append("Y = "+ ResultadoY + "\n");
  182.       Consola.append("La dos raizes de la ecuacion son X y Y\n\n");
  183.       Consola.append("--------------------------------------\n\n");
  184.  
  185.    }
  186.  
  187.    /**
  188.     * @param args the command line arguments
  189.     */
  190.    public static void main(String args[]) {
  191.        java.awt.EventQueue.invokeLater(new Runnable() {
  192.            public void run() {
  193.                new Main().setVisible(true);
  194.                Muestra.setText("a*x^2+b*x+c");
  195.                XCuadrado.setText("X²");
  196.            }
  197.        });
  198.    }
  199.  
  200.    // Variables declaration - do not modify
  201.    private javax.swing.JTextArea Consola;
  202.    private static javax.swing.JLabel Muestra;
  203.    private static javax.swing.JLabel XCuadrado;
  204.    private javax.swing.JTextField a;
  205.    private javax.swing.JTextField b;
  206.    private javax.swing.JButton btnResolver;
  207.    private javax.swing.JTextField c;
  208.    private javax.swing.JLabel jLabel1;
  209.    private javax.swing.JLabel jLabel2;
  210.    private javax.swing.JLabel jLabel3;
  211.    private javax.swing.JLabel jLabel4;
  212.    private javax.swing.JLabel jLabel5;
  213.    private javax.swing.JScrollPane jScrollPane1;
  214.    private javax.swing.JTextField jTextField1;
  215.    // End of variables declaration
  216.  
  217. }
  218.  
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

 ;)


En línea

Blitzkrieg'


Desconectado Desconectado

Mensajes: 546


print('Hi there')


Ver Perfil WWW
Re: [APORTE] Solucionador de ecuaciones de 2o Grado
« Respuesta #1 en: 20 Noviembre 2009, 17:17 »

Buen aporte, lastima ese codigo molesto de Netbeans


En línea



Debci
Moderador
***
Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: [APORTE] Solucionador de ecuaciones de 2o Grado
« Respuesta #2 en: 20 Noviembre 2009, 18:09 »

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
En línea

Blitzkrieg'


Desconectado Desconectado

Mensajes: 546


print('Hi there')


Ver Perfil WWW
Re: [APORTE] Solucionador de ecuaciones de 2o Grado
« Respuesta #3 en: 20 Noviembre 2009, 19:45 »

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.
En línea



Leyer
Moderador
***
Desconectado Desconectado

Mensajes: 782


leyer@elhacker.net


Ver Perfil WWW
Re: [APORTE] Solucionador de ecuaciones de 2o Grado
« Respuesta #4 en: 20 Noviembre 2009, 20:31 »

 :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. 
En línea

Blitzkrieg'


Desconectado Desconectado

Mensajes: 546


print('Hi there')


Ver Perfil WWW
Re: [APORTE] Solucionador de ecuaciones de 2o Grado
« Respuesta #5 en: 20 Noviembre 2009, 20:46 »

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
« Última modificación: 20 Noviembre 2009, 23:15 por Sir Crapsalot » En línea



sapito169


Desconectado Desconectado

Mensajes: 561



Ver Perfil
Re: [APORTE] Solucionador de ecuaciones de 2o Grado
« Respuesta #6 en: 21 Noviembre 2009, 01:37 »

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
En línea

Blitzkrieg'


Desconectado Desconectado

Mensajes: 546


print('Hi there')


Ver Perfil WWW
Re: [APORTE] Solucionador de ecuaciones de 2o Grado
« Respuesta #7 en: 21 Noviembre 2009, 02:23 »

Dejenlo xD

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

Igual es un gran trabajo  :)
En línea



Leyer
Moderador
***
Desconectado Desconectado

Mensajes: 782


leyer@elhacker.net


Ver Perfil WWW
Re: [APORTE] Solucionador de ecuaciones de 2o Grado
« Respuesta #8 en: 21 Noviembre 2009, 03:35 »

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 .

En línea

Debci
Moderador
***
Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: [APORTE] Solucionador de ecuaciones de 2o Grado
« Respuesta #9 en: 21 Noviembre 2009, 10:49 »

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
En línea

Blitzkrieg'


Desconectado Desconectado

Mensajes: 546


print('Hi there')


Ver Perfil WWW
Re: [APORTE] Solucionador de ecuaciones de 2o Grado
« Respuesta #10 en: 21 Noviembre 2009, 15:29 »

Ya no desviemos mas el tema xDD

En todo caso es un gran aporte independiente de como haya hecho la GUI  ;D
En línea



Leyer
Moderador
***
Desconectado Desconectado

Mensajes: 782


leyer@elhacker.net


Ver Perfil WWW
Re: [APORTE] Solucionador de ecuaciones de 2o Grado
« Respuesta #11 en: 21 Noviembre 2009, 20:05 »

 :¬¬  bueno que mas da...el fue el que se metio
Saludos
Programmer
« Última modificación: 21 Noviembre 2009, 20:16 por L-EYER » En línea

egyware


Desconectado Desconectado

Mensajes: 519



Ver Perfil WWW
Re: [APORTE] Solucionador de ecuaciones de 2o Grado
« Respuesta #12 en: 28 Noviembre 2009, 18:32 »

Offtopic:
Yo uso tanto el Netbeans como el ecplise ademas usando el Netbeans metiendo en la configuracion a fondo me puedo ahorrar bastante codigo, pero sinceramente prefiero usar el Eclipse (por el derroche de memoria que tiene el Netbeans)
Ontopic:
Excelente aporte!!!
Aunque encuentro que se puede optimizar un poquitin(sacar un calculo inecesario)  y no consideraste si el resultado era complejo, asi que tenerlo para la proxima tiene que hacerlo  ;)
Excelente
En línea

Debci
Moderador
***
Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: [APORTE] Solucionador de ecuaciones de 2o Grado
« Respuesta #13 en: 28 Noviembre 2009, 19:29 »

Offtopic:
Yo uso tanto el Netbeans como el ecplise ademas usando el Netbeans metiendo en la configuracion a fondo me puedo ahorrar bastante codigo, pero sinceramente prefiero usar el Eclipse (por el derroche de memoria que tiene el Netbeans)
Ontopic:
Excelente aporte!!!
Aunque encuentro que se puede optimizar un poquitin(sacar un calculo inecesario)  y no consideraste si el resultado era complejo, asi que tenerlo para la proxima tiene que hacerlo  ;)
Excelente
Tomo nota
;)

Saludos
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines