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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda en mi codigo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda en mi codigo  (Leído 2,015 veces)
RockAqp

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Ayuda en mi codigo
« en: 3 Abril 2012, 18:46 pm »

hola a todos quiero que me ayuden en este codigo
la verdad es que no se mucho de java pero me han dejado y tengo muchas dudas
me han pedido hacer un codigo como el algoritmo de clausula de kleene
osea si el lenguaje:a,b deve imprimir a,b,aa,ab,ba,bb,aaa.... etc hasta el infinito

lo que hace es una combinatoria al ingresar una palabra
como hago para realizar ese algoritmo
o alguien tiene un metodo mas corto

import java.util.Vector;
import java.util.Scanner;

 public class kleene {
   
   private void generateR(String source, String partial,Vector out)
   {
     String newPartial=new String(partial);
     String newSource;
     if (source.length()==0)
     {
       out.addElement(newPartial);
       return;
     }
     for(int i=0;i<source.length();i++)
     {
       newPartial=partial.concat(source.substring(i,i+1));
       newSource=source.substring(0,i);
       if (i<(source.length()+1))
         newSource=newSource.concat(source.substring(i+1,source.length()));
       generateR(newSource, newPartial, out);
     }
   }
   
   public Vector generate(String source)
   {
    
      
     Vector out=new Vector();
     String partial=new String();
     generateR(source, partial, out);
     return out;
   }

   public static void main(String[] args)
   {
   
      Scanner read = new Scanner(System.in);
      String pal = read.next(); 
      
     kleene a= new kleene();
     Vector v=a.generate(pal.toString());
       
     for(int i=0;i<v.size();i++)
     {
       System.out.print((String)v.elementAt(i));
       System.out.print(", ");
     }     
   }
 }


En línea

RockAqp

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: Ayuda en mi codigo
« Respuesta #1 en: 4 Abril 2012, 21:10 pm »

Bueno ya lo resolvi despues de tanto ver el codigo
aunque aun se puede perfeccionar 

import java.util.Scanner;
import java.util.Vector;


public class klene {

     public Vector iterar(String[] tem,Vector v,int y)
      {
       
       tem = (String[])v.toArray(new String[v.size()]);
        //tem[tem.length+1]=null;
        String[] tem1=tem;
        int x=tem.length;
        int i=y;
       
        if(v.size()<20)
        {
       for( i=y;i<x;i++)
      {
           //int y=0;
          int c=0;
          do
          {
            
            String cad = tem1[c];
            //tem[x+c]= tem1+cad;
            v.addElement(tem1+cad);
            c++;
            
          }while(c<x);
          y=i;
          }
       iterar(tem,v,y);
        }
       
    
      return v;
         
      }
     public static void main(String[] args)
      {
        System.out.println("Escriba el Lenguaje(Separado x comas)");
      
       
         Scanner read = new Scanner(System.in);
         String pal = read.next(); 
          String[] arrayLen = pal.split(",");
         
          Vector v=new Vector();
          for(int i=0;i<arrayLen.length;i++)
             v.addElement(arrayLen);
        klene a= new klene();
        v=a.iterar(arrayLen,v,0);
        /*for (int i = 0; i < salida.length; i++) {
             System.out.println(salida);
          }
       // Vector v=a.generate(pal.toString());
         ¨*/
       for(int i=0;i<v.size();i++)
        {
          System.out.print((String)v.elementAt(i));
          System.out.print(", ");
        }   
     //  System.out.print(arrayLen.length);
      }
}


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con Codigo
Programación Visual Basic
Mitsu_POWA 1 2,005 Último mensaje 26 Julio 2005, 00:25 am
por byebye
Ayuda con codigo en C (no me ejecuta un for y necesito ayuda) « 1 2 3 »
Programación C/C++
Søra 22 11,585 Último mensaje 22 Mayo 2010, 00:22 am
por Littlehorse
¿Cuál es la diferencia entre código objeto, código máquina y código binario?
Programación General
Aikanáro Anário 9 29,021 Último mensaje 23 Diciembre 2010, 15:19 pm
por pucheto
ayuda codigo
Programación C/C++
kunai 3 2,507 Último mensaje 1 Junio 2011, 12:56 pm
por Akai
ayuda con un codigo en c
Programación C/C++
@TGGG 1 2,366 Último mensaje 26 Marzo 2021, 12:15 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines