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__":