• Sábado 21 de Septiembre de 2024, 13:29

Autor Tema:  Java Eclipse interfaz  (Leído 2837 veces)

leli

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Java Eclipse interfaz
« en: Miércoles 4 de Noviembre de 2009, 08:31 »
0
hola amigos....soy nueva en java y cada dia voy aprendiendo más, porfavor ayudenme con los codigos para que mi programa calcule si un numero es primo o no, tambien calcular el factorial de dicho numero y mostrar el resultado....aqui les dejo mi avance de la interfaz


package prueba;
import javax.swing.*;

public class numeros extends JFrame{
   public numeros(){
      super();
   }
   JPanel panel= new JPanel();
   JLabel label1 = new JLabel("Ingresar número ");
   JTextField texto = new JTextField(10);
   JButton boton = new JButton("Calcular Primos");
   JButton boton2 = new JButton("Calcular Factorial");
   
   public void panel(){
      panel.add(label1);
      panel.add(texto);
      panel.add(texto);
      panel.add(boton);
      panel.add(boton2);
      add(panel);
      super.setTitle("NUMEROS");
      super.setVisible(true);
      super.setSize(300, 140);
      panel.setBounds(0, 0, -1, 1);
   }
   public static void main(String[] args) {
      numeros obj = new numeros ();
      obj.panel();
      
   }

}

gophlb

  • Visitante
Re: Java Eclipse interfaz
« Respuesta #1 en: Miércoles 4 de Noviembre de 2009, 15:18 »
0
Cita de: "leli"
hola amigos....soy nueva en java y cada dia voy aprendiendo más, porfavor ayudenme con los codigos para que mi programa calcule si un numero es primo o no, tambien calcular el factorial de dicho numero y mostrar el resultado....aqui les dejo mi avance de la interfaz
lo primero es saber como se calcula un factorial y como se sabe si un numero es primo.

Antes de empezar, deberas saber como se usan los bucles (FOR o WHILE, el que prefieras) y las condiciones (IF/ELSE).
Si no lo sabes, revisalo lo primero o al acabar de leer seguiras exactamente igual que ahora mismo.


1- Cómo calcular un factorial:
El numero pasado como parametro se multiplica por todos los numeros inferiores a el, empezando desde el 1.
La solucion es hacer un bucle que comience a contar en 1 y vaya acumulando el resultado de la multiplicacion de una variable (de valor inicial 1) por el indice del bucle, hasta que ese indice del bucle sea igual al numero pasado como parametro

es decir:
definir variable "resultado"
desde i=1 hasta i==resultado -> resultado = resultado * i
devolver resultado


2- Como calcular si un numero es primo:
Un numero es primo cuando solo puede dividirse entre 1 y si mismo.
La forma "bruta" de hacerlo es programar un bucle parecido al anterior, en el que el codigo que se hace en cada iteracion es:
comprobar que restoDeDivision(numeroParametro / indice) == 0
si esto ocurre e indice no es 1 ni numeroParametro, entonces salimos del bucle devolviendo FALSE
si no ocurre, continuamos.
al final del bucle devolvemos TRUE (aqui solo llega si no ha salido antes del bucle)


supongo que no tendras demasiadas dificultades en programar esto, pero si las tienes vuelve a poner el codigo y se te ayuda un poco mas ;)

leli

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Java Eclipse interfaz
« Respuesta #2 en: Jueves 5 de Noviembre de 2009, 01:57 »
0
holass.... mira mi avance ya esta pero no me sale porfavor ayudame :ouch: .

package prueba;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemListener;

import javax.swing.*;

public class numeros extends JFrame implements  ActionListener {
   public numeros(){
      super();
   }
   String a;
    int numero ;
   JPanel panel= new JPanel();
   JLabel label1 = new JLabel("Ingresar número ");
   JTextField texto = new JTextField(10);
   JButton boton = new JButton("Calcular Primos");
   JButton boton2 = new JButton("Calcular Factorial");
   
   public void panel(){
      panel.add(label1);
      panel.add(texto);
      panel.add(boton);
      panel.add(boton2);
      add(panel);
      super.setTitle("NUMEROS");
      super.setVisible(true);
      super.setSize(300, 140);
      //panel.setBounds(0, 0, -1, 1);
      boton.addActionListener(this);
      boton2.addActionListener(this);
      
      a=texto.getText();
      numero=Integer.parseInt(a);
      }

   public static void main(String[] args) {
      numeros obj = new numeros ();
      obj.panel();
      
   }

   public static boolean esPrimo(int numero){
         int contador = 2;
         boolean primo=true;
         while ((primo) && (contador!=numero)){
           if (numero % contador == 0)
             primo = false;
           contador++;
         }
         return primo;
    }

   public static int factorialrec(int x)
   {

       int aux;
       aux=1;
       if (x==0)aux=1;
       else aux=aux*factorialrec(x-1);
       return aux;

   }
   @Override
   public void actionPerformed(ActionEvent e) {
      if( e.getSource().equals(boton) ){
         
         JOptionPane.showMessageDialog(null, esPrimo(0));}
      
       
   if( e.getSource().equals(boton2) ){
      
      JOptionPane.showMessageDialog(null, factorialrec(0));}
   }
      
   }

gophlb

  • Visitante
Re: Java Eclipse interfaz
« Respuesta #3 en: Jueves 5 de Noviembre de 2009, 14:08 »
0
pero cual es la parte que no te sale exactamente?

y por cierto, es obligatorio que hagas el factorial como recursivo? creo que seria bastante mas facil haciendolo con un bucle :S

leli

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Java Eclipse interfaz
« Respuesta #4 en: Jueves 5 de Noviembre de 2009, 22:39 »
0
ps si ...pero me pidieron en recursivo y el problema que tenia fue que tenia que evaluar el resultado de la expresion

if(esPrimo(.....))
 mensaje("El numero " +miVariable+" es Primo");
else
......... :good: