SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: cybergatita en Viernes 7 de Abril de 2006, 01:17
-
Que tal chicos
Necesito hacer un programa que me acepte cadenas con numeros impar de ceros y numeros par de unos, simulando asi AFDs.
Aun estoy buscando que funciones utilizar para ir implementando el codigo.
Disculpen chicos si les hago perder el tiempo con esto pero aun soy muy novata:(
gracias
-
no se que son AFDs pero supongo que el procedimiento burdamente seria:
declara un array de chars muuuuuy largo :P
cin o scanf
recorre el array de uno en uno
si el char es '0' contadorCeros++
si es '1' contadorUnos++
no se supongo que te referis a eso.
no critiquen el algoritmo es solo un bosquejo para que lo resuelva :D
-
Gracias chico,,,,,,,,,
algo asi habia pensado pero no tan adentrado como tu idea.
ojala alguien pueda asesorarme, se que lo apropiado seria que postiera algun codigo, pero gracias por sus respuestas y al menos checar mi duda.
-
Lo que dice bob esponja funciona pero no sería un AFD.
Los automátas finitos deterministas estan formados por un conjunto de estados, un conjunto de entradas posibles. del conjunto de estados uno debe ser inicial, y al menos uno debe ser un estado final o de aceptación.
El automáta iniciaría en el estado 0 (estado inicial). Haces lo que dijo bob esponja hasta la parte en que recorre el array. Y ahí depende de si el char es '0' o '1' irá a determinado estado. Por ejemplo, si el estado es 0 y el autómata lee un '0' irá al estado 1 y si en el estado 1 el autómata lee otro 0 irá al estado 2. En ese momento el autómata ha leido un número par de 0's y por lo tanto ese estado será de aceptación. Si en el estado 2 el autómata encuentra que hay otro caracter (ó más) y es '0' regresará al estado 1. Si la cadena termina en un estado de aceptación el autómata enviará un mensaje diciendo que la cadena es correcta, si la cadena termina en un estado que no es de aceptación o recibe un caracter distinto al lenguaje (0's y 1's) enviará un mensaje de error.
El estado es una variable entera y las transiciones las implementas(pasar a código) con una estructura switch. esto es para que acepte los 0's, ya para que acepte los 1's tienes que agregarles más estados y transiciones. Es un poco laborioso por eso no lo tengos ahora.
( y además es política del sitio no pasar códigos completos :devil: )
P.D.:
no critiquen el algoritmo es solo un bosquejo para que lo resuelva :D
No lo critico, nomás le añado un poquito.
-
Masiosare
Gracias chico
disculpen la tardanza de mi contestacion a sus respuestas.
pero pondre en practica el codigo y cuando tenga algo te voy a molestar mandandotelo para ver si es posible y me haces el favor de checarmelo:)
gracias chicos por sus respuestas.
-
no sabia el significado de AFD :P
si asi es de otra forma.