diff --git a/TaskB02/test.out b/TaskB02/test.out new file mode 100644 index 0000000..939a1ca --- /dev/null +++ b/TaskB02/test.out @@ -0,0 +1,14 @@ +NO +YES +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO diff --git a/TaskB03/fsa_description.arg b/TaskB03/fsa_description.arg new file mode 100644 index 0000000..4cbf2dd --- /dev/null +++ b/TaskB03/fsa_description.arg @@ -0,0 +1,10 @@ +0 1 0 +0 3 1 +1 0 0 +1 2 1 +2 3 0 +2 1 1 +3 2 0 +3 0 1 +0 +3 \ No newline at end of file diff --git a/TaskB03/run.py b/TaskB03/run.py new file mode 100644 index 0000000..cf3df3b --- /dev/null +++ b/TaskB03/run.py @@ -0,0 +1,43 @@ +import sys + +# fsa_description = sys.argv[1] +# inputWords = sys.argv[2] +# outputResult = sys.argv[3] + +fsa_description = "fsa_description.arg" +inputWords = "test.in" +outputResult = "test.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) == 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 == '3' or pos == '0' 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/TaskB03/test.out b/TaskB03/test.out new file mode 100644 index 0000000..9a5f7bb --- /dev/null +++ b/TaskB03/test.out @@ -0,0 +1,14 @@ +NO +NO +YES +YES +YES +NO +YES +NO +YES +NO +YES +YES +NO +YES