This commit is contained in:
Asecave
2021-03-22 09:44:21 +01:00
parent 3a25f020e7
commit c2bfb2917f
2 changed files with 20 additions and 7 deletions

View File

@@ -1,25 +1,36 @@
# Übergangsfunktion
# Zustand, Buchstabe => Neuer Zustand
def transition( state, char ):
def transition(state, char):
new_state = -1
# Übergänge
# siehe dea_abaca.py für ein Beispiel
if state == 0:
if char in '123456789':
new_state = 1
elif char == '0':
new_state = 2
elif state == 1:
if char == '+':
new_state = 0
if char in '0123456789':
new_state = 1
elif state == 2:
if char == '+':
new_state = 0
return new_state
# Scanner-Funktion für ein Wort
# True, wenn das Wort in der Sprache liegt
def scan_word(word):
# Startzustand q0
state = 0
for char in word: # jeden Buchstaben durchlaufen
state = transition(state, char) # Übergangsfunktion ausführen
for char in word: # jeden Buchstaben durchlaufen
state = transition(state, char) # Übergangsfunktion ausführen
# Word wird akzeptiert, wenn einer der Endzustände erreicht wurde
return state == 1 # or state == 2
return state == 1 # or state == 2
# Programmstart
if __name__ == "__main__":