Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1. def q0(symbol):
  2. if symbol == '0':
  3. return '0', 1, 'q0'
  4. if symbol == '1':
  5. return '1', 1, 'q0'
  6. if symbol == '2':
  7. return '2', 1, 'q0'
  8. if symbol == '+':
  9. return '+', 1, 'q1'
  10. if symbol == '-':
  11. return '-', 1, 'q2'
  12. if symbol == ' ':
  13. return ' ', 1, 'q0'
  14.  
  15. def q1(symbol):
  16. if symbol == '0':
  17. return '0', 0, 'qn'
  18. if symbol == '1':
  19. return '1', -1, 'q3'
  20. if symbol == '2':
  21. return '2', -1, 'q4'
  22.  
  23. def q2(symbol):
  24. if symbol == '0':
  25. return '0', 0, 'qn'
  26. if symbol == '1':
  27. return '1', -1, 'q5'
  28. if symbol == '2':
  29. return '2', -1, 'q6'
  30.  
  31. def q3(symbol):
  32. if symbol == ' ':
  33. return '1', 0, 'qn'
  34. if symbol == '0':
  35. return '1', 0, 'qn'
  36. if symbol == '1':
  37. return '2', 0, 'qn'
  38. if symbol == '2':
  39. return '0', -1, 'q3'
  40. if symbol == '+':
  41. return '+', -1, 'q3'
  42.  
  43.  
  44. def q4(symbol):
  45. if symbol == '0':
  46. return '2', 0, 'qn'
  47. if symbol == '1':
  48. return '0', -1, 'q3'
  49. if symbol == '2':
  50. return '1', -1, 'q3'
  51. if symbol == '+':
  52. return '+', -1, 'q4'
  53.  
  54. def q5(symbol):
  55. if symbol == '0':
  56. return '2', -1, 'q5'
  57. if symbol == '1':
  58. return '0', 0, 'q7'
  59. if symbol == '2':
  60. return '1', 0, 'qn'
  61. if symbol == '-':
  62. return '-', -1, 'q5'
  63.  
  64. def q6(symbol):
  65. if symbol == '0':
  66. return '1', -1, 'q5'
  67. if symbol == '1':
  68. return '2', -1, 'q5'
  69. if symbol == '2':
  70. return '0', 0, 'qn'
  71. if symbol == '-':
  72. return '-', -1, 'q6'
  73.  
  74. def q7(symbol):
  75. if symbol == '0':
  76. return '0', -1, 'q7'
  77. if symbol == '1':
  78. return '1', -1, 'q7'
  79. if symbol == '2':
  80. return '2', -1, 'q7'
  81. if symbol == ' ':
  82. return ' ', 1, 'q8'
  83.  
  84. def q8(symbol):
  85. if symbol == '0':
  86. return ' ', 1, 'q8'
  87. if symbol == '1':
  88. return '1', 0, 'qn'
  89. if symbol == '2':
  90. return '2', 0, 'qn'
  91. if symbol == '+':
  92. return '+', -1, 'q8'
  93. if symbol == '-':
  94. return '-', -1, 'q8'
  95. if symbol == ' ':
  96. return '0', 0, 'qn'
  97.  
  98.  
  99. tape = list(input())
  100. state_f = {'q0': q0, 'q1': q1, 'q2': q2, 'q3': q3, 'q4': q4, 'q5': q5, 'q6': q6, 'q7': q7, 'q8': q8}
  101. state = 'q0'
  102. index = 0
  103. states = []
  104. while state != 'qn':
  105. new_symbol, diff_index, state = state_f[state](tape[index])
  106. tape[index] = new_symbol
  107. index += diff_index
  108. print(''.join(tape))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement