#Transicoes q2 maq._adicionaTransicao('*','*',2,0,'D') maq._adicionaTransicao('a','a',2,2,'E') maq._adicionaTransicao('b','b',2,2,'E') maq._adicionaTransicao('A','A',2,2,'E') maq._adicionaTransicao('B','B',2,2,'E') #Transicoes q1 maq._adicionaTransicao('a','a',1,1,'D') maq._adicionaTransicao('b','B',1,2,'E') maq._adicionaTransicao('A','A',1,1,'D') maq._adicionaTransicao('B','B',1,1,'D') #Transicoes q0 maq._adicionaTransicao('a','A',0,1,'D') maq._adicionaTransicao('b','B',0,3,'D') maq._adicionaTransicao('A','A',0,0,'D') maq._adicionaTransicao('B','B',0,0,'D') maq._adicionaTransicao('_','_',0,4,'D') maq._adicionaTransicao('*','*',0,0,'D') valida = 0 for x in range(0, 15): maq._definePalavra("*abba_") if maq.executaLeitura(): valida+= 1 print(valida)
from maquina import Maquina import sys import json maq = Maquina() file_name = sys.argv[1] text = open(file_name) content = text.read() jsonmaquina = json.loads(content) estadoFinal = None estadoIndex = 0 for estado in jsonmaquina: if(jsonmaquina[estadoIndex][0][0] == 'false'): estadoFinal = estadoIndex maq._adicionaEstado(estadoIndex, False) else: maq._adicionaEstado(estadoIndex, True) estadoIndex+=1 estadoIndex = 0 for estado in jsonmaquina: if estadoIndex != estadoFinal: for transicao in jsonmaquina[estadoIndex]: maq._adicionaTransicao(transicao[0],transicao[2],estadoIndex,int(transicao[1]),transicao[3]) estadoIndex+=1 maq._definePalavra(sys.argv[2]) print("palavra valida") if maq._executaLeitura() else print("palavra invalida")