Programadores dedicados a C sharp .Net, eres nuevo, experto o quieres aprender a programar en C Sharp, aquí encontraras todo lo que necesitas.
 
ÍndiceCalendarioFAQBuscarMiembrosGrupos de UsuariosChatRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Síguenos:
Crear foro Crear foro Crear foro

Comparte | 
 

 Programa de un automata

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Luis Garcia
STAFF TEAM
STAFF TEAM


Mensajes : 61
Puntos : 109

MensajeTema: Programa de un automata   Lun Mar 21, 2011 7:12 pm

En este programa se muestra como implementar un automata, se utiliza un tipo de lógica abstracta con respecto a datos.

Veamos:

Se hará un programa que valide una cadena del lenguaje 10*1+0, (1,0).

autómata:
[Tienes que estar registrado y conectado para ver esa imagen]

En un proyecto de tipo consola:

Dentro de nuestra clase main crearemos una matriz:

Código:

                                          // 0  1
int [,]estados=new int[,] {     {-1, 1}, //0 --->filas representan los estados>
                      { 1, 2}, //1 ->estado 1
                      { 3, 2}, //2 ->estado 2
                      { -1,-1} //3 ->estado 3
                      };

En esta matriz se puede observar que colocamos los posibles estados que nuestro lenguaje puede tener es decir, cada fila representa un estado y las dos columnas representan mis caracteres del lenguaje, en la primera fila tenemos que en el estado "0" el carácter "0" no lleva a ningún estado y representamos el error con "-1", en cambio si insertamos el carácter "1" seguiremos al estado 1, y así con los demás hasta llegar a nuestro estado de aceptación (el estado 3).

Código:


int estado=0,estadofinal=3;//estado 3
         string cadena="";
         
         Console.WriteLine("Introduce Una Cadena Del Lenguaje 10*1+0");
         cadena=Console.ReadLine();
/*Lee la cadena introducida y valida caracter por caracter */

         foreach(char i in cadena.ToCharArray()) 
         {       if( i=='0' || i=='1'){               
               if(estado==-1){break;}else{
               estado=estados[estado,Convert.ToInt64(i)- '0' ]; }

/*Esta es la instrucción que le dará vida a la matriz y en si a todo el programa, la idea es simple asignar a que estado es el actual, tomando como valor el dato de la matriz*/

               }
         }
      
         if(estado==estadofinal){Console.WriteLine("correcto");}
         else {Console.WriteLine("incorrecto ");}
         
/* Se pregunta si se llego al estado de aceptacion*/
         Console.ReadKey(true); // Espera una pulsación

Descarga: [Tienes que estar registrado y conectado para ver este vínculo]

Mas ejemplos de autómatas utilizando el mismo procedimiento: [Tienes que estar registrado y conectado para ver este vínculo]


Volver arriba Ir abajo
Ver perfil de usuario
 
Programa de un automata
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» Celtx. Un programa para escribir guiones.
» Programa que mejore el rendimiento de nuestra RAM ?
» no se donde se ha ido un programa
» alguien me recomienda un programa, para crear letras animadas para poner en mi foro?
» Algun programa para instalar un RPG??? juegos...

Permisos de este foro:No puedes responder a temas en este foro.
CSPromex :: PROGRAMACIÓN EN C# :: Código abierto-
Cambiar a: