• Domingo 16 de Junio de 2024, 12:01

Autor Tema:  Ayuda Y Gran Duda  (Leído 2055 veces)

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Ayuda Y Gran Duda
« en: Viernes 7 de Abril de 2006, 01:17 »
0
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

bob esponja

  • Miembro MUY activo
  • ***
  • Mensajes: 411
    • Ver Perfil
    • http://marianoguerra.blogspot.com
Re: Ayuda Y Gran Duda
« Respuesta #1 en: Viernes 7 de Abril de 2006, 03:46 »
0
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

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: Ayuda Y Gran Duda
« Respuesta #2 en: Viernes 7 de Abril de 2006, 06:09 »
0
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.

Masiosare

  • Miembro MUY activo
  • ***
  • Mensajes: 118
    • Ver Perfil
Re: Ayuda Y Gran Duda
« Respuesta #3 en: Martes 11 de Abril de 2006, 05:56 »
0
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.:

Citar
no critiquen el algoritmo es solo un bosquejo para que lo resuelva  :D
    No lo critico, nomás le añado un poquito.
El experto es aquel que sabe cada vez más sobre cada vez menos, hasta que sabe competamente todo sobre absolutamente nada.
[size=109]Ley de Murphy[/size]

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: Ayuda Y Gran Duda
« Respuesta #4 en: Sábado 15 de Abril de 2006, 04:41 »
0
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.

bob esponja

  • Miembro MUY activo
  • ***
  • Mensajes: 411
    • Ver Perfil
    • http://marianoguerra.blogspot.com
Re: Ayuda Y Gran Duda
« Respuesta #5 en: Sábado 15 de Abril de 2006, 09:14 »
0
no sabia el significado de AFD  :P

si asi es de otra forma.