From dde7f74789c3617cc671c9249b2719a486ce9e7f Mon Sep 17 00:00:00 2001 From: "artem.didytschuk" Date: Sun, 11 Apr 2021 18:15:37 +0200 Subject: [PATCH] nea fertig --- nea_abacc.py | 2 +- nea_vorlage.py | 33 +++++++++++++++++++++++++-------- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/nea_abacc.py b/nea_abacc.py index 0c5cd28..8380c99 100644 --- a/nea_abacc.py +++ b/nea_abacc.py @@ -39,4 +39,4 @@ if __name__ == "__main__": if accepted: print(f"Das Wort '{word}' gehört zur Sprache") else: - print(f"Das Wort '{word}' gehört nicht zur Sprache") \ No newline at end of file + print(f"Das Wort '{word}' gehört nicht zur Sprache") diff --git a/nea_vorlage.py b/nea_vorlage.py index 7a4767d..621504c 100644 --- a/nea_vorlage.py +++ b/nea_vorlage.py @@ -4,20 +4,37 @@ def scan_word(state, word): # Rekursionsabbruch wenn Wort leer (Länge = 0) if len(word) == 0: # Akzeptiert, wenn Automat in Endzustand, z.B.: - return state == 1 or state == 3 + return state == 3 char = word[0] # Ersten Buchstaben ist die Eingabe word = word[1:] # Ersten Buchstaben vom Restwort abtrennen # Übergangsfunktion 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) - elif char == 0: - return scan_word(1,word) - if state == 1: - if char == 0: - return scan_word(2,word) + elif state == 1: + print("state1") + if char == "0": + return scan_word(0,word) or 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 # siehe nea_abacc.py für ein Beispiel @@ -32,4 +49,4 @@ if __name__ == "__main__": if accepted: print(f"Das Wort '{word}' gehört zur Sprache") else: - print(f"Das Wort '{word}' gehört nicht zur Sprache") \ No newline at end of file + print(f"Das Wort '{word}' gehört nicht zur Sprache")