SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: alroux en Domingo 7 de Marzo de 2010, 19:30

Título: problema con un AFD
Publicado por: alroux en Domingo 7 de Marzo de 2010, 19:30
hola, tengo un problema con un AFD el lengueje es el siguiente en el alfabeto a,b  "acepte cadenas con 0 o numeros pares de a's", con lógica lineal ya lo tengo, solo convierto la cadena a un array y cuento las a's pero necesito hacerlo con funciones (para k realicen la labor de un estado), porfa si me pueden ayudar cn un ejemplo o un tutorial se los agradeceria:-)
Título: Re: problema con un AFD
Publicado por: eltruhanero en Lunes 8 de Marzo de 2010, 23:42
a  ver ... el AFD tendria 2 estados:

-> empezando en el estado e_0
-> del estado e_0 con una 'a' paso al estado e_1
-> del estado e_1 con una 'a' paso al estado e_0
-> el estado e_0 es el estado final.

Suponete una clase MaquinaDeEstados, que tiene una variable "int estado" inicializada en el estado inicial e_0 ( o sea valor '0' ).

Ademas podrias tener 2 funciones, una q implementa la transacion de e_0 -> e_1 y orta q implementa e_1 -> e_0.

MaquinaDeEstados  maquina = new MaquinaDeEstados ();
mientras hayan a's q leer
haces
    si maquina.estado_actual == e_0
     hago
           maquina.transicionE_0aE_1();
     sino
            maquina.transicionE_1aE_0();
    fin si
fin mientras.

si maquina.estado_actual == e_0
     Consola.Imprimir("CADENA ACEPTADA");
sino
    Consola.Imprimir("CADENA NO ACEPTADA");


Bueno espero q sirva y q no sea demasiado trivial. cualquier cosa re postea y vemos.
Título: Re: problema con un AFD
Publicado por: alroux en Martes 9 de Marzo de 2010, 23:51
mil gracias era lo que estaba buscando.