py-automaten/dea_vorlage.py

46 lines
1.1 KiB
Python

#Übergangsfunktion
# Zustand, Buchstabe => Neuer Zustand
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
if state == 1 :
if char in "123456789":
new_state = 1
elif char == "+":
new_state = 0
if 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
# Word wird akzeptiert, wenn einer der Endzustände erreicht wurde
return state == 1 or state == 2
# Programmstart
if __name__ == "__main__":
word = input("Bitte ein Wort eingeben: ")
accepted = scan_word(word)
if accepted:
print(f"Das Wort '{word}' gehört zur Sprache")
else:
print(f"Das Wort '{word}' gehört nicht zur Sprache")