Guest User

Untitled

a guest
Nov 17th, 2018
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. #funcao: encontrar delta adequado
  2.  
  3. def userDelta ( estadoAtual, conteudoAtual, delta, qtd_delta):
  4.  
  5. i = 0
  6. while (i < qtd_delta):
  7.  
  8. if estadoAtual == int (delta[i][0]) and conteudoAtual == str (delta[i][2]):
  9. return i
  10. else:
  11. i = i + 1
  12.  
  13. #funcao: preparar a palavra para imprimir
  14.  
  15. def endPalavra (palavra, palavras, i):
  16.  
  17. tamanho = len(palavra)
  18. word = palavra[3:tamanho-3]
  19. palavras.insert(i, word)
  20. return word
  21.  
  22. #listas
  23.  
  24. delta = list ()
  25. palavras = list ()
  26. palavra = list ()
  27.  
  28. #dicionario
  29.  
  30. dicionario = eval (input())
  31.  
  32. inicial = dicionario['inicial']
  33. aceita = dicionario['aceita']
  34. rejeita = dicionario['rejeita']
  35. qtd_delta = len(dicionario['delta'])
  36.  
  37.  
  38. for i in range (0, qtd_delta, 1):
  39. delta.append(dicionario['delta'][i])
  40.  
  41. #inteiro
  42. inteiro = int (input ())
  43.  
  44. #palavras
  45.  
  46. for i in range ( 0, inteiro, 1):
  47. palavras.append(input())
  48.  
  49.  
  50. #MAQUINA DE TURING - computando...
  51.  
  52. for i in range (0, inteiro, 1):
  53.  
  54. for j in range (3):
  55. palavra.append('b')
  56.  
  57. for j in range (0, len(palavras[i]), 1):
  58. palavra.append(palavras[i][j])
  59.  
  60. for j in range (3):
  61. palavra.append('b')
  62.  
  63. indice = 3
  64. estadoAtual = int (inicial)
  65. conteudoAtual = str (palavra [indice])
  66. estadoFinal = False
  67.  
  68. while (estadoFinal != True):
  69.  
  70. d = userDelta(estadoAtual, conteudoAtual, delta, qtd_delta)
  71.  
  72. novoEstado = delta[d][1]
  73. novoConteudo = str (delta[d][3])
  74. movimento = delta[d][4]
  75.  
  76. palavra.insert(indice, novoConteudo)
  77.  
  78. estadoAtual = novoEstado
  79. conteudoAtual = novoConteudo
  80.  
  81. if estadoAtual == aceita:
  82.  
  83. word = endPalavra (palavra, palavras, i)
  84. print(word, 'ACEITA')
  85. estadoFinal == True
  86.  
  87. if estadoAtual == rejeita:
  88.  
  89. word = endPalavra (palavra, palavras, i)
  90. print(word, 'REJEITA' )
  91. estadoFinal == True
  92.  
  93. else:
  94. estadoFinal = False
  95.  
  96. if movimento == 'D':
  97. indice = indice + 1
  98.  
  99. if movimento == 'E':
  100. indice = indice - 1
  101.  
  102. if movimento == 'P':
  103. indice = indice
Add Comment
Please, Sign In to add comment