From c2bfb2917f7663c8e9c63a8ff111f6b8e6c50ec6 Mon Sep 17 00:00:00 2001 From: Asecave Date: Mon, 22 Mar 2021 09:44:21 +0100 Subject: [PATCH] dea --- .gitignore | 2 ++ dea_vorlage.py | 25 ++++++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f377c56 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +venv +.idea diff --git a/dea_vorlage.py b/dea_vorlage.py index b7b21b5..a7255a1 100644 --- a/dea_vorlage.py +++ b/dea_vorlage.py @@ -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__":