From 4f60436fc0b46b51272aa5c18034d25853898cd2 Mon Sep 17 00:00:00 2001 From: Pawel Felcyn Date: Mon, 13 Nov 2023 14:39:16 +0100 Subject: [PATCH] b07 --- TaskB07/fsa_description.arg | 217 ++++++++++++++++++++++++++++++++++++ TaskB07/run.py | 29 +++++ 2 files changed, 246 insertions(+) create mode 100644 TaskB07/fsa_description.arg create mode 100644 TaskB07/run.py diff --git a/TaskB07/fsa_description.arg b/TaskB07/fsa_description.arg new file mode 100644 index 0000000..ca979fd --- /dev/null +++ b/TaskB07/fsa_description.arg @@ -0,0 +1,217 @@ +0 0 a +1 0 a +2 0 a +3 0 a +4 0 a +5 0 a +6 7 a +6 6 a +0 0 b +1 0 b +2 0 b +3 0 b +4 0 b +5 0 b +6 0 b +6 6 b +0 0 c +1 0 c +2 0 c +3 0 c +4 0 c +5 0 c +6 0 c +6 6 c +0 0 d +1 0 d +2 0 d +3 0 d +4 0 d +5 0 d +6 0 d +6 6 d +0 0 e +1 0 e +2 0 e +3 4 e +4 0 e +5 0 e +6 0 e +6 6 e +0 0 f +1 0 f +2 0 f +3 0 f +4 0 f +5 0 f +6 0 f +6 6 f +0 0 g +1 0 g +2 0 g +3 0 g +4 0 g +5 0 g +6 0 g +6 6 g +0 0 h +1 0 h +2 3 h +3 0 h +4 0 h +5 0 h +6 0 h +6 6 h +0 0 i +1 0 i +2 0 i +3 0 i +4 0 i +5 6 i +6 0 i +6 6 i +0 0 j +1 0 j +2 0 j +3 0 j +4 0 j +5 0 j +6 0 j +6 6 j +0 0 k +1 0 k +2 0 k +3 0 k +4 0 k +5 0 k +6 0 k +6 6 k +0 0 l +1 0 l +2 0 l +3 0 l +4 5 l +5 0 l +6 0 l +6 6 l +0 0 m +1 0 m +2 0 m +3 0 m +4 0 m +5 0 m +6 0 m +6 6 m +0 0 n +1 0 n +2 0 n +3 0 n +4 0 n +5 0 n +6 0 n +6 6 n +0 1 o +1 0 o +2 0 o +3 0 o +4 0 o +5 0 o +6 0 o +6 6 o +0 0 p +1 2 p +2 0 p +3 0 p +4 0 p +5 0 p +6 0 p +6 6 p +0 0 q +1 0 q +2 0 q +3 0 q +4 0 q +5 0 q +6 0 q +6 6 q +0 0 r +1 0 r +2 0 r +3 0 r +4 0 r +5 0 r +6 0 r +6 6 r +0 0 s +1 0 s +2 0 s +3 0 s +4 0 s +5 0 s +6 0 s +6 6 s +0 0 t +1 0 t +2 0 t +3 0 t +4 0 t +5 0 t +6 0 t +6 6 t +0 0 u +1 0 u +2 0 u +3 0 u +4 0 u +5 0 u +6 0 u +6 6 u +0 0 v +1 0 v +2 0 v +3 0 v +4 0 v +5 0 v +6 0 v +6 6 v +0 0 w +1 0 w +2 0 w +3 0 w +4 0 w +5 0 w +6 0 w +6 6 w +0 0 x +1 0 x +2 0 x +3 0 x +4 0 x +5 0 x +6 0 x +6 6 x +0 0 y +1 0 y +2 0 y +3 0 y +4 0 y +5 0 y +6 0 y +6 6 y +0 0 z +1 0 z +2 0 z +3 0 z +4 0 z +5 0 z +6 0 z +6 6 z +0 0 +1 0 +2 0 +3 0 +4 0 +5 0 +6 0 +6 6 +7 \ No newline at end of file diff --git a/TaskB07/run.py b/TaskB07/run.py new file mode 100644 index 0000000..973b819 --- /dev/null +++ b/TaskB07/run.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 + +import pandas as pd +import os + +def automat_fun(recursive_df: pd.DataFrame): + first_row = recursive_df.iloc[0] + recursive_df = recursive_df.iloc[1:,:] + return lambda char, state: first_row[1] if state == first_row[0] and char == first_row[2] else automat_fun(recursive_df)(char, state) + +def create_automat_from_file(file_path: str): + df = pd.read_csv(file_path, sep='\t', header=None) + accept_state = df.tail(1).iloc[0, 0] + df = df.iloc[:-1,:] + return accept_state, automat_fun(df) + +file_path = os.path.join(os.path.dirname(__file__), 'fsa_description.arg') +accept_state, automat_function = create_automat_from_file(file_path) + +txt = input('Write valid input: ') + +while txt != 'exit': + state = 0 + for c in txt: + if (c == '\n'): + break + state = automat_function(c, state) + print('YES' if state == accept_state else "NO") + txt = input('Write valid input: ') \ No newline at end of file