Reporte Programa Validacion de Una Cadena

Preview:

DESCRIPTION

automatas

Citation preview

INSTITUTO TECNOLÓGICO DE TAPACHULA

Asignatura: Lenguajes y Autómatas I

Área académica: Ingeniería en sistemas computacionales.

Catedrático: Anamin Villarreal Wong

Integrantes del equipo:

Morales Vera Ulices Elevi

Gálvez de los Santos Darío

Gordillo Maldonado Mayra Virginia

Balderas Avalos Maya Belén

Balanzar Hernández Aurora Lucia

Página | 1

Índice

Introducción..............................................................................................................3

Ejecución del autómata............................................................................................5

Código fuente...........................................................................................................8

Autómata................................................................................................................11

Conclusión..............................................................................................................12

Página | 2

Introducción

Los autómatas finitos son maquinas abstractas que procesan cadenas de entrada, las cuales son aceptadas o rechazadas. Utiliza la tabla de transacciones de cada estado. En este autómata si ningún estado de transición es especificado, la cadena entrante es rechazada.

En esta documentación se hace mención de un AFD el cual validará o rechazará la cadena de un tipo de caracteres que acepten números positivos, negativos, con o sin valor exponencial positivo/negativo.

Página | 3

AFD Autómata Finito Determinista

∑= {-, +, ., d, e, fdc }Q= {1, 2, 3, 4, 5, 6, 7, 8}Q0= {1}T= {2, 5, 8}TF= {(1, d, 2), (1,+,3), (1,-,3), (2,d,2), (2,.,4), (4,d,5), (5,d,5), (5,e,6), (6,+,7), (6,-,7), (6,d,8), (7,d,8), (8,d,8)}

Tabla de transición

Pseudocódigo:

Página | 4

A continuación se muestran la explicación de las partes que contienen nuestro programa del autómata.

Ejecución del autómata

Al ejecutar el programa lo primero que muestra en ventana es la tabla de transición del autómata como se muestra en la figura 1.

Fig. 1

El programa requiere que se escriba sobre la caja de texto la cadena de caracteres a evaluar, al presionar el botón de Validar Cadena comienza la ejecución del autómata como se muestra en la figura 2.

Fig. 2

Página | 5

Oprimir “Validar cadena”

Escribir

Tabla de transición del autómata

El autómata empieza a verificar la tabla de transacciones dentro del programa y se inicia el llenado de la tabla de validación:

Fig. 3

Fig. 4

Fig. 5

Página | 6

Si la cadena es rechazada o valida por la tabla de transacciones según nuestro autómata el programa directamente mandará el mensaje final como se muestra en la figura 6 y 7.

Fig. 6

Fig. 7

Página | 7

Código fuente

La tabla tiene un evento de ventana la cual permite la visualización de contenido en las posiciones, antes declarado en la matriz en el constructor:

String Matriz [ ][ ];public pro ( ) { Matriz= new String [10] [10];

}

Fig. 8

En esta sección se envía a la tabla la instrucción de remover lo que contiene para que durante la ejecución pueda validar diferentes cadenas y sea posible la visualización de una nueva validación.

Fig. 9

Página | 8

Como el hilo “primero”se inicalizó en la figura 9 llama directamente al metodo run().

Fig. 10

En la figura 10 la variable cad almacena la palabra ingresada. En el ciclo for se almacena la palabra por posiciones en el arreglo letra [obteniendo la longitud que tiene cad] .

La instrucción charAt(x) sirve para referenciar a que posicion de cad va a cortar. Ejemplo

Se ingresa: +12.12 entonces cad= +12.12

Dentro del for(x=0;x<6;x++){Se almacena lo siguiente con ayuda del corte en la posicion del charAt()letra[0]=+letra[1]=1letra[2]=2letra[3]=.letra[4]=1letra[5]=2}En la ultima posicion (6) del arreglo se le asigna “fdc”, ya que serequiere para evaluar toda la cadena al final.

Página | 9

Obtención de la cadena del Text Field Validar.

En este seccion de código se recorre el arreglo letra[ ] para comparar si la entrada de simbolo pertenece a un dígito, coma, signo de suma, resta, exponente y lo alamacena en el arreglo pseudo[ ].

Fig. 11

Página | 10

Autómata

Página | 11

Dentro del swich se evalúa la variable símbolo que es igual al arreglo pseudo[ ] en la posición cont. En esta restricción entrada tomará el valor dependiendo de la matriz Matriz[ ][ ] si es igual a digito, punto, más, menos, fdc .Si no es ninguno de esos es cadena invalida y se detiene el hilo.

Mientras estado sea diferente de A en las posiciones que se manden será cadena inválida y terminará el ciclo.

Si estado es diferente de E en las posiciones que se manden será cadena aceptada y termina el ciclo.

Estado= Matriz [estado][entrada]; Evalúa lo que contiene nuestra tabla de transiciones y estado toma el valor de lo que hay en esa matriz.

Conclusión

Página | 12