Título: Combinacion Sin repeticion ,en java , Ayuda!!! Publicado por: k3ni9 en 7 Marzo 2016, 01:57 am Hola alguien me ayudaria con mi codigo de combinacion sin repeticion
solo me funciona el caso 2 :V :laugh: :xD :-\ :P :( Solo me crea el primero y el segundo caso. como aria el tercer caso? package permutacioncombinacion; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; public class Csinrepeticion extends JFrame{ public JButton regresar,info,calcular,reinicio; public JLabel n,r,resultado,calculado; public JTextField n1,r1; public JTextArea area; public int mayor=-1; public Csinrepeticion (){ super (); configuraVentana(); incializarComponentes(); } public void configuraVentana(){ setTitle(".:Combinacion :."); setSize(300,480); setLocationRelativeTo(null); setResizable(false); setLayout(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void incializarComponentes(){ reinicio = new JButton("Reiniciar"); reinicio.setBounds(100,175,100,20); this.add(reinicio); reinicio.addActionListener(new ActionListener(){ public void actionPerformed (ActionEvent e){ area.setText(""); n1.setText(""); r1.setText(""); calculado.setText(""); } }); //************************** area = new JTextArea(); area.setBounds(30,180,260,200); area.setBackground( Color.black ); area.setEditable(false); this.add(area); JScrollPane scroll = new JScrollPane(area); scroll.setBounds(10, 200, 260, 180); this.add(scroll); //************************ n = new JLabel ("Numeros a elegir(n)"); n.setBounds(30,50,120,20); this.add(n); n1 = new JTextField (); n1.setBounds(160,50,120,20); this.add(n1); n1.addActionListener(new ActionListener(){ @Override public void actionPerformed (ActionEvent e){ r1.requestFocus(); } }); //************************** r = new JLabel ("Cuantas Formas(r)"); r.setBounds(30,100,120,20); this.add(r); r1 = new JTextField (); r1.setBounds(160,100,120,20); this.add(r1); r1.addActionListener(new ActionListener(){ @Override public void actionPerformed (ActionEvent e){ calcular.requestFocus(); } }); //************** resultado = new JLabel ("Combinaciones = "); resultado.setBounds(30,150,150,20); this.add(resultado); calculado = new JLabel (""); calculado.setBounds(180 , 150 , 120 , 20); this.add(calculado); calculado.setVisible(false); //************************ info = new JButton ("?"); info.setBounds(230,5,50,20); this.add(info); info.addActionListener(new ActionListener(){ public void actionPerformed (ActionEvent e){ JOptionPane.showMessageDialog(null,"Permutaciones sin repetición de n elementos (de orden n)\n son los distintos grupos de n elementos distintos que se pueden hacer\n de forma que dos grupos se diferencian únicamente\n en el orden de colocación de los elementos"); } }); regresar = new JButton ("Cerrar"); regresar.setBounds(40,240,100,20); this.add(regresar); regresar.addActionListener(new ActionListener(){ public void actionPerformed (ActionEvent e){ PermutacionCombinacion k =new PermutacionCombinacion(); k.setVisible(true); setVisible(false); } }); regresar = new JButton ("Cerrar"); regresar.setBounds(40,400,100,20); this.add(regresar); regresar.addActionListener(new ActionListener(){ public void actionPerformed (ActionEvent e){ PermutacionCombinacion k =new PermutacionCombinacion(); k.setVisible(true); setVisible(false); } }); calcular = new JButton ("Calcular"); calcular.setBounds(160,400,100,20); this.add(calcular); calcular.addActionListener(new ActionListener(){ public void actionPerformed (ActionEvent e){ area.setText(""); double total=1 ,npr, nfactorial = 1,rfactorial = 1; int r2; Double n2; if ("".equals(n1.getText())){ JOptionPane.showMessageDialog(null,"casiilla 1 \nEscribe un numero "); return; } if ("".equals(r1.getText())){ JOptionPane.showMessageDialog(null,"casee 2 \nEscribe un numero "); return; } try{ n2 = Double.parseDouble(n1.getText()); r2 = Integer.parseInt(r1.getText()); }catch(NumberFormatException x){ JOptionPane.showMessageDialog(null, "Solo se aceptan numeros :C"); return; } if(n2>0 && n2 <31){ Double Csinrepeticion = factorial(n2)/(factorial(n2-r2)*factorial(r2)); calculado.setText(""+Csinrepeticion); calculado.setVisible(true); int h =0; int[] arr = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}; int mayor = 0,suma=0; switch (r2){ case 1: for(int i = 0 ; i< n2 ;i++){ area.setEditable(true); area.setForeground( Color.red ); area.append((h)+".- "+arr+"\n"); mayor =arr; area.setEditable(false); } break; case 2: int s=1; for(int i = 0; i < n2;i++) for(int j =s; j < n2;j++){ if(arr!=arr[j]){ h++; area.setEditable(true); area.setForeground( Color.blue); area.append((h)+".- "+arr +","+ arr[j]+"\n"); mayor=suma; area.setEditable(false); if(j==(n2-1)) { s=s+1; } } } break; case 3: int a =1 ,b =2; for(int i = 0; i < n2;i++){ for(int j = a; j < n2;j++){ b=0; for(int k = b; k < n2;k++){ h++; area.setEditable(true); area.setForeground( Color.pink ); area.append((h)+".- "+arr +","+ arr[j] +","+ arr[k] + "\n"); area.setEditable(false); if(k == (n2-1)) a =a+1; } /*if(j == (n2-1)) a++;*/ } } break; case 4: for(int i = 0; i < n2;i++){ for(int j = 0; j < n2; j++){ for(int k = 0; k < n2; k++){ for(int l = 0; l < n2 ; l++){ if(arr!= arr[j] && arr[j]!=arr[k] && arr[k]!= arr[l] ){ if(arr !=arr[l]){ if(arr !=arr[k]){ if(arr[j]!=arr[l]){ h++; area.setEditable(true); area.setForeground( Color.green ); area.append((h)+".- "+arr +","+ arr[j] +","+ arr[k] +","+arr[l]+"\n"); area.setEditable(false);}} }}} } } } break; default: JOptionPane.showMessageDialog(null,"Casilla 2\nIngresa Numeros en el rango[1,4]"); } }else JOptionPane.showMessageDialog(null,"casilla 1 \nIngresa numeros en el rango[1,30]"); } }); } public static double factorial(double x){ double nfactorial = 1; for( int i = 0 ; i < x; i++){ nfactorial = nfactorial * (x-i); } return (nfactorial); } public static void main(String[] args) { Csinrepeticion p = new Csinrepeticion(); p.setVisible(true); } } |