From a12cfe75f2b061aee3e44e949eed951d29e42d46 Mon Sep 17 00:00:00 2001 From: doasdsk Date: Fri, 10 Nov 2023 23:12:56 +0100 Subject: [PATCH] B07 --- TaskB07/fsa_description.arg | 218 ++++++++++++++++++++++++++++++++++++ TaskB07/run.py | 45 ++++++++ TaskB07/simple.out | 3 + 3 files changed, 266 insertions(+) create mode 100644 TaskB07/fsa_description.arg create mode 100644 TaskB07/run.py create mode 100644 TaskB07/simple.out diff --git a/TaskB07/fsa_description.arg b/TaskB07/fsa_description.arg new file mode 100644 index 0000000..852b649 --- /dev/null +++ b/TaskB07/fsa_description.arg @@ -0,0 +1,218 @@ +0 1 o +1 2 p +2 3 h +3 4 e +4 5 l +5 6 i +6 7 a +0 0 a +0 0 b +0 0 c +0 0 d +0 0 e +0 0 f +0 0 g +0 0 h +0 0 i +0 0 j +0 0 k +0 0 l +0 0 m +0 0 n +0 0 p +0 0 q +0 0 r +0 0 s +0 0 t +0 0 u +0 0 v +0 0 w +0 0 x +0 0 y +0 0 z +0 0 +1 0 a +1 0 b +1 0 c +1 0 d +1 0 e +1 0 f +1 0 g +1 0 h +1 0 i +1 0 j +1 0 k +1 0 l +1 0 m +1 0 n +1 0 o +1 0 q +1 0 r +1 0 s +1 0 t +1 0 u +1 0 v +1 0 w +1 0 x +1 0 y +1 0 z +1 0 +2 0 a +2 0 b +2 0 c +2 0 d +2 0 e +2 0 f +2 0 g +2 0 i +2 0 j +2 0 k +2 0 l +2 0 m +2 0 n +2 0 o +2 0 p +2 0 q +2 0 r +2 0 s +2 0 t +2 0 u +2 0 v +2 0 w +2 0 x +2 0 y +2 0 z +2 0 +3 0 a +3 0 b +3 0 c +3 0 d +3 0 f +3 0 g +3 0 h +3 0 i +3 0 j +3 0 k +3 0 l +3 0 m +3 0 n +3 0 o +3 0 p +3 0 q +3 0 r +3 0 s +3 0 t +3 0 u +3 0 v +3 0 w +3 0 x +3 0 y +3 0 z +3 0 +4 0 a +4 0 b +4 0 c +4 0 d +4 0 e +4 0 f +4 0 g +4 0 h +4 0 i +4 0 j +4 0 k +4 0 m +4 0 n +4 0 o +4 0 p +4 0 q +4 0 r +4 0 s +4 0 t +4 0 u +4 0 v +4 0 w +4 0 x +4 0 y +4 0 z +4 0 +5 0 a +5 0 b +5 0 c +5 0 d +5 0 e +5 0 f +5 0 g +5 0 h +5 0 j +5 0 k +5 0 l +5 0 m +5 0 n +5 0 o +5 0 p +5 0 q +5 0 r +5 0 s +5 0 t +5 0 u +5 0 v +5 0 w +5 0 x +5 0 y +5 0 z +5 0 +6 0 a +6 0 b +6 0 c +6 0 d +6 0 e +6 0 f +6 0 g +6 0 h +6 0 i +6 0 j +6 0 k +6 0 l +6 0 m +6 0 n +6 0 o +6 0 p +6 0 q +6 0 r +6 0 s +6 0 t +6 0 u +6 0 v +6 0 w +6 0 x +6 0 y +6 0 z +6 0 +7 7 a +7 7 b +7 7 c +7 7 d +7 7 e +7 7 f +7 7 g +7 7 h +7 7 i +7 7 j +7 7 k +7 7 l +7 7 m +7 7 n +7 7 o +7 7 p +7 7 q +7 7 r +7 7 s +7 7 t +7 7 u +7 7 v +7 7 w +7 7 x +7 7 y +7 7 z +7 7 +7 diff --git a/TaskB07/run.py b/TaskB07/run.py new file mode 100644 index 0000000..03cd76e --- /dev/null +++ b/TaskB07/run.py @@ -0,0 +1,45 @@ +import sys + +fsa_description = sys.argv[1] +inputWords = sys.argv[2] +outputResult = sys.argv[3] + +# fsa_description = "fsa_description.arg" +# inputWords = "simple.in" +# outputResult = "simple.out" + + +def readDescription(currentPos, charInput): + with open(fsa_description, 'r', encoding="utf-8") as descript: + for line in descript: + if len(line.strip().split(' ')) == 1: + return line[0], 0 + transition = line.strip().split(' ') + if len(transition)==2: + transition.append(' ') + if len(transition) == 3 and currentPos == transition[0] and charInput == transition[2]: + return transition[1], 1 + return None, None + +answersYN = '' +with open(inputWords, 'r', encoding="utf-8") as inputString: + for line in inputString: + pos = '0' + for char in line: + if char == '\n': + answersYN += ('1' if pos == '7' else '0') + break + newPos, flag = readDescription(pos, char) + if flag == 1: + pos = newPos + +with open(outputResult, 'w', encoding="utf-8") as output: + for i in range(0, len(answersYN)): + if answersYN[i] == '1': + # print("YES") + output.write("YES\n") + elif answersYN[i] == '0': + # print("NO") + output.write("NO\n") + +print(answersYN) \ No newline at end of file diff --git a/TaskB07/simple.out b/TaskB07/simple.out new file mode 100644 index 0000000..5158019 --- /dev/null +++ b/TaskB07/simple.out @@ -0,0 +1,3 @@ +NO +YES +YES