SoloCodigo

Programación General => Java => Mensaje iniciado por: Tho0m87 en Lunes 21 de Diciembre de 2009, 00:35

Título: Problema con una condicion AFD
Publicado por: Tho0m87 en Lunes 21 de Diciembre de 2009, 00:35
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
  1. import java.io.*;
  2. public class Afd { //acepta cadenas con numero de a impar
  3.    
  4. public static void main (String[] arg) {
  5.       try{
  6.       BufferedReader lect=new BufferedReader(new FileReader("afd.txt"));  //Lee el archivo afd con las cadenas
  7.       String lin=lect.readLine();
  8.       char c=' ';
  9.       int mov=0;
  10.       int v[][]=
  11.       { //a b
  12.          {1,0},   //0
  13.          {0,1},   //1
  14.       };
  15.       while(lin!=null){
  16.         for(int x=0;x<lin.length();x++){
  17.          c=lin.charAt(x);
  18.          System.out.println("recibimos el caracter:"+" "+c);
  19.            if(c=='a'){
  20.              mov=v[mov][0];
  21.            }
  22.            if(c=='b'){
  23.              mov=v[mov][1];
  24.            }  
  25.         }if(mov==1){
  26.             System.out.println("la cadena fue aceptada");
  27.             mov=0;
  28.            }else{
  29.              System.out.println("la cadena no fue aceptada");
  30.             }  
  31.         lin=lect.readLine();
  32.        }
  33.      }catch(Exception e){
  34.        System.out.println("no se encontro el archivo");
  35.       }
  36.     }
  37.    
  38.    
  39. }
  40.  





Aqui esta el codigo
si alguen pudiera ayudarme con este problema Gracias =)
Título: Re: Problema con una condicion AFD
Publicado por: gophlb en Lunes 21 de Diciembre de 2009, 08:21
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
  1. import java.io.*;
  2. public class Afd { //acepta cadenas con numero de a impar
  3.    
  4. public static void main (String[] arg) {
  5.       try{
  6.       BufferedReader lect=new BufferedReader(new FileReader("afd.txt"));  //Lee el archivo afd con las cadenas
  7.       String lin=lect.readLine();
  8.       char c=' ';
  9.       int mov=0;
  10.       int v[][]=
  11.       { //a b
  12.          {1,0},   //0
  13.          {0,1},   //1
  14.       };
  15.       while(lin!=null){
  16.         for(int x=0;x<lin.length();x++){
  17.          c=lin.charAt(x);
  18.          System.out.println("recibimos el caracter:"+" "+c);
  19.            if(c=='a'){
  20.              mov=v[mov][0];
  21.            }
  22.            if(c=='b'){
  23.              mov=v[mov][1];
  24.            }  
  25.         }if(mov==1){
  26.             System.out.println("la cadena fue aceptada");
  27.             mov=0;
  28.            }else{
  29.              System.out.println("la cadena no fue aceptada");
  30.             }  
  31.         lin=lect.readLine();
  32.        }
  33.      }catch(Exception e){
  34.        System.out.println("no se encontro el archivo");
  35.       }
  36.     }
  37.    
  38.    
  39. }
  40.  





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

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/ (http://www.programacion.com/java/articulo/expresionesreg/" onclick="window.open(this.href);return false;)

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"