CSPromex
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.


Programadores dedicados a C sharp .Net, eres nuevo, experto o quieres aprender a programar en C Sharp, aquí encontraras todo lo que necesitas.
 
ÍndiceBuscarÚltimas imágenesChatRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
» Sockets Conexion,Envio y recepcion de datos (mini-chat Cliente-Servidor)
Programa de un automata I_icon_minitimeSáb Sep 30, 2023 6:24 pm por EurekaMartin

» Graficos: Grafica circular
Programa de un automata I_icon_minitimeMar Mar 05, 2019 4:58 pm por Luis Garcia

» Calendario hecho Manualmente
Programa de un automata I_icon_minitimeMar Mar 05, 2019 3:52 pm por Luis Garcia

» Activar el protector de pantalla.
Programa de un automata I_icon_minitimeMar Mar 05, 2019 3:12 pm por Luis Garcia

» Hacer backup de MySql desde C#
Programa de un automata I_icon_minitimeMar Abr 18, 2017 10:04 pm por maurifl

» Sockets programa para Ciber Cafe (Cliente-Servidor)
Programa de un automata I_icon_minitimeLun Ago 10, 2015 5:45 pm por artes

» Ayuda crear emoticones en un chat
Programa de un automata I_icon_minitimeDom Jul 12, 2015 9:00 pm por yeco96

» Necesito ayuda para pasar datos a un Datagridview
Programa de un automata I_icon_minitimeDom Jun 07, 2015 4:33 pm por rafaelfa

» Reproductor de música->Lista de reproducción (Guardar-Cargar)
Programa de un automata I_icon_minitimeLun Jun 01, 2015 3:00 pm por kevin22

Buscar
 
 

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

 

 Programa de un automata

Ir abajo 
AutorMensaje
Luis Garcia
STAFF TEAM
STAFF TEAM
Luis Garcia


Mensajes : 64
Puntos : 112

Programa de un automata Empty
MensajeTema: Programa de un automata   Programa de un automata I_icon_minitimeLun 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
 
Programa de un automata
Volver arriba 
Página 1 de 1.

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