nea fertig

This commit is contained in:
2021-04-11 18:15:37 +02:00
parent 6831fb32bf
commit dde7f74789
2 changed files with 26 additions and 9 deletions

View File

@@ -39,4 +39,4 @@ if __name__ == "__main__":
if accepted: if accepted:
print(f"Das Wort '{word}' gehört zur Sprache") print(f"Das Wort '{word}' gehört zur Sprache")
else: else:
print(f"Das Wort '{word}' gehört nicht zur Sprache") print(f"Das Wort '{word}' gehört nicht zur Sprache")

View File

@@ -4,20 +4,37 @@ def scan_word(state, word):
# Rekursionsabbruch wenn Wort leer (Länge = 0) # Rekursionsabbruch wenn Wort leer (Länge = 0)
if len(word) == 0: if len(word) == 0:
# Akzeptiert, wenn Automat in Endzustand, z.B.: # Akzeptiert, wenn Automat in Endzustand, z.B.:
return state == 1 or state == 3 return state == 3
char = word[0] # Ersten Buchstaben ist die Eingabe char = word[0] # Ersten Buchstaben ist die Eingabe
word = word[1:] # Ersten Buchstaben vom Restwort abtrennen word = word[1:] # Ersten Buchstaben vom Restwort abtrennen
# Übergangsfunktion # Übergangsfunktion
if state == 0: if state == 0:
if char in "0123456789": print("state0")
if char == "0":
return scan_word(0,word) or scan_word(1,word)
elif char in "123456789":
return scan_word(0,word) return scan_word(0,word)
elif char == 0: elif state == 1:
return scan_word(1,word) print("state1")
if state == 1: if char == "0":
if char == 0: return scan_word(0,word) or scan_word(2,word)
return scan_word(2,word) elif char == "123456789":
return scan_word(0,word)
elif state == 2:
print("state2")
if char in "67":
return scan_word(0,word) or scan_word(3,word)
elif char in "1234589":
return scan_word(0,word)
elif state == 3:
print("state3")
if char in "0123456789":
return scan_word(3,word)
# Übergänge # Übergänge
# siehe nea_abacc.py für ein Beispiel # siehe nea_abacc.py für ein Beispiel
@@ -32,4 +49,4 @@ if __name__ == "__main__":
if accepted: if accepted:
print(f"Das Wort '{word}' gehört zur Sprache") print(f"Das Wort '{word}' gehört zur Sprache")
else: else:
print(f"Das Wort '{word}' gehört nicht zur Sprache") print(f"Das Wort '{word}' gehört nicht zur Sprache")