Para evaluar la siguiente unidad o corte se utilizará el framework de desarrollo web basado en PHP Laravel en más nueva versión.
https://laravel.com/
También se puede usar https://www.mamp.info/en/ para sustituir o manejar a la par con xampp. Esto debido a que Laravel requiere tener la versión 7 de PHP.
P.O.O, Estructura de Datos, Tópicos Selectos de Programación, Fundamentos de Programación, Teoría de la Computación, Matemáticas para Computadoras, Fundamentos de Desarrollo de Sistemas, Programación Web, Graficación.
martes, 2 de abril de 2019
martes, 26 de marzo de 2019
Autómata Finito Determinista con Python.
Les dejo un código de un Autómata Finito Determinista (ADF) programado de manera sencilla en Python. Espero que les sirva para realizar alguna tarea.
#Alfabeto aceptado
A = ['a','b']
#Bandera por si la entrada no pertenece
#al alfabeto de entrada
bandera = True
#Tabla de transición
TablaT = [[0,'a',1],[1,'a',1],[1,'b',2]]
#Tabla de estados de la comparación
TablaC = []
#Estados finales
EF = [1]
#Estado inicial
E = 0
#Estado Actual
EA = E
#Cadena de entrada
CE = "aaaaa"
#Recorremos la Cadena de entrada
for c in CE:
print(c)
#Verificamos que sea del alfabeto aceptado
if c in A:
print("Esta en el alfabeto")
#Buscamos en la tablaT
for f in TablaT:
#Recorrido de las producciones
#Buscamos el estado actual y el caracter de entrada
if c in f and EA in f:
#Agregamos a la tabla final
TablaC.append([EA,c,f[2]])
#print(f[2])
#Actualizamos el estado actual
EA = f[2]
print("Estado Actual: "+str(EA))
else:
print("Cadena no pertenece al alfabeto")
bandera = False
#Comparamos el estado final
#Para saber si es terminal y se acepta
#o no la cadena de entrada.
if EA in EF and bandera == True:
print("---------------------------------\n")
print("Se acepta la cadena de entrada!!!\n")
print("-----Tabla de transiciones-------\n")
for t in TablaC:
print(t)
else:
print("No se acepta la cadena de entrada!!!\n")
print("-----Tabla de transiciones-------\n")
for t in TablaC:
print(t)
#Alfabeto aceptado
A = ['a','b']
#Bandera por si la entrada no pertenece
#al alfabeto de entrada
bandera = True
#Tabla de transición
TablaT = [[0,'a',1],[1,'a',1],[1,'b',2]]
#Tabla de estados de la comparación
TablaC = []
#Estados finales
EF = [1]
#Estado inicial
E = 0
#Estado Actual
EA = E
#Cadena de entrada
CE = "aaaaa"
#Recorremos la Cadena de entrada
for c in CE:
print(c)
#Verificamos que sea del alfabeto aceptado
if c in A:
print("Esta en el alfabeto")
#Buscamos en la tablaT
for f in TablaT:
#Recorrido de las producciones
#Buscamos el estado actual y el caracter de entrada
if c in f and EA in f:
#Agregamos a la tabla final
TablaC.append([EA,c,f[2]])
#print(f[2])
#Actualizamos el estado actual
EA = f[2]
print("Estado Actual: "+str(EA))
else:
print("Cadena no pertenece al alfabeto")
bandera = False
#Comparamos el estado final
#Para saber si es terminal y se acepta
#o no la cadena de entrada.
if EA in EF and bandera == True:
print("---------------------------------\n")
print("Se acepta la cadena de entrada!!!\n")
print("-----Tabla de transiciones-------\n")
for t in TablaC:
print(t)
else:
print("No se acepta la cadena de entrada!!!\n")
print("-----Tabla de transiciones-------\n")
for t in TablaC:
print(t)
Etiquetas:
2019,
ADF,
Autómata,
Determinista,
Durango,
Finito,
Gómez Palacio,
Lenguajes y Autómatas,
Lerdo Dgo.,
Python,
Teoría de la Computación
jueves, 7 de febrero de 2019
Suscribirse a:
Entradas (Atom)