reporte programa validacion de una cadena

14
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 Página | 1

Upload: ulisses-morales

Post on 15-Jan-2016

217 views

Category:

Documents


0 download

DESCRIPTION

automatas

TRANSCRIPT

Page 1: Reporte Programa Validacion de Una Cadena

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

Page 2: Reporte Programa Validacion de Una Cadena

Índice

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

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

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

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

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

Página | 2

Page 3: Reporte Programa Validacion de Una Cadena

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

Page 4: Reporte Programa Validacion de Una Cadena

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

Page 5: Reporte Programa Validacion de Una Cadena

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

Page 6: Reporte Programa Validacion de Una Cadena

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

Page 7: Reporte Programa Validacion de Una Cadena

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

Page 8: Reporte Programa Validacion de Una Cadena

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

Page 9: Reporte Programa Validacion de Una Cadena

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.

Page 10: Reporte Programa Validacion de Una Cadena

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

Page 11: Reporte Programa Validacion de Una Cadena

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.

Page 12: Reporte Programa Validacion de Una Cadena

Conclusión

Página | 12