Programación General > Java

 Problema con una condicion AFD

(1/1)

Tho0m87:
Buenas aqui tengo un pequeño problema en el que me perdi quisiera poner modificar mi codigo para que me de esta condicion
1. Adaptado con el AFD que no me acepte palabras que comiencen con la subcadena 001 (Dije que no comiencen pero una vez que no comenzaron pueden contener la cadena)

Aqui esta el codigo que hice:

--- Código: Text ---import java.io.*;public class Afd { //acepta cadenas con numero de a impar    public static void main (String[] arg) {      try{      BufferedReader lect=new BufferedReader(new FileReader("afd.txt"));  //Lee el archivo afd con las cadenas      String lin=lect.readLine();      char c=' ';      int mov=0;      int v[][]=      { //a b         {1,0},   //0         {0,1},   //1      };      while(lin!=null){        for(int x=0;x<lin.length();x++){         c=lin.charAt(x);         System.out.println("recibimos el caracter:"+" "+c);           if(c=='a'){             mov=v[mov][0];           }           if(c=='b'){             mov=v[mov][1];           }          }if(mov==1){            System.out.println("la cadena fue aceptada");            mov=0;           }else{             System.out.println("la cadena no fue aceptada");            }           lin=lect.readLine();       }     }catch(Exception e){       System.out.println("no se encontro el archivo");      }    }      } 




Aqui esta el codigo
si alguen pudiera ayudarme con este problema Gracias =)

gophlb:

--- Cita de: "Tho0m87" ---Buenas aqui tengo un pequeño problema en el que me perdi quisiera poner modificar mi codigo para que me de esta condicion
1. Adaptado con el AFD que no me acepte palabras que comiencen con la subcadena 001 (Dije que no comiencen pero una vez que no comenzaron pueden contener la cadena)

Aqui esta el codigo que hice:

--- Código: Text ---import java.io.*;public class Afd { //acepta cadenas con numero de a impar    public static void main (String[] arg) {      try{      BufferedReader lect=new BufferedReader(new FileReader("afd.txt"));  //Lee el archivo afd con las cadenas      String lin=lect.readLine();      char c=' ';      int mov=0;      int v[][]=      { //a b         {1,0},   //0         {0,1},   //1      };      while(lin!=null){        for(int x=0;x<lin.length();x++){         c=lin.charAt(x);         System.out.println("recibimos el caracter:"+" "+c);           if(c=='a'){             mov=v[mov][0];           }           if(c=='b'){             mov=v[mov][1];           }          }if(mov==1){            System.out.println("la cadena fue aceptada");            mov=0;           }else{             System.out.println("la cadena no fue aceptada");            }           lin=lect.readLine();       }     }catch(Exception e){       System.out.println("no se encontro el archivo");      }    }      } 




Aqui esta el codigo
si alguen pudiera ayudarme con este problema Gracias =)
--- Fin de la cita ---

no me he enterado muy bien del tema, pero si lo que quieres es que no te acepte algo del tipo 001* ... usa expresiones regulares :D
asi te evitas tener que usar bucles y busquedas y solo tienes que usar un pattern y un matcher.

http://www.programacion.com/java/articu ... sionesreg/

si es eso, suerte !!!
y si no es eso...intenta especificar un poco mas, porque yo no he oido nunca nada sobre algo que se llame "condicion AFD"

Navegación

[0] Índice de Mensajes

Ir a la versión completa