diff --git a/TaskB00/run.py b/TaskB00/run.py index adf2555..3f8adcf 100644 --- a/TaskB00/run.py +++ b/TaskB00/run.py @@ -4,9 +4,14 @@ import sys # global inputWords # global outputResult -fsa_description = sys.argv[1] -inputWords = sys.argv[2] -outputResult = sys.argv[3] + +# fsa_description = sys.argv[1] +# inputWords = sys.argv[2] +# outputResult = sys.argv[3] + +fsa_description = "fsa_description.arg" +inputWords = "test1.in" +outputResult = "test1.out" def readDescription(currentPos, charInput): with open(fsa_description, 'r', encoding="utf-8") as descript: @@ -29,11 +34,12 @@ with open(inputWords, 'r', encoding="utf-8") as inputString: 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': - output.write("YES\n") - elif answersYN[i] == '0': - output.write("NO\n") +print(answersYN) +# with open(outputResult, 'w', encoding="utf-8") as output: +# for i in range(0, len(answersYN)): +# if answersYN[i] == '1': +# output.write("YES\n") +# elif answersYN[i] == '0': +# output.write("NO\n") diff --git a/TaskB00/test1.in b/TaskB00/test1.in new file mode 100644 index 0000000..d82237e --- /dev/null +++ b/TaskB00/test1.in @@ -0,0 +1,9 @@ +xxyz +xyz +xy +zz +xxy +yzx + +x +xyzz diff --git a/TaskB01/fsa_description.arg b/TaskB01/fsa_description.arg new file mode 100644 index 0000000..d3f12ad --- /dev/null +++ b/TaskB01/fsa_description.arg @@ -0,0 +1,13 @@ +0 1 0 +0 3 1 +1 2 1 +1 3 0 +2 4 1 +2 5 0 +3 3 0 +3 3 1 +4 4 1 +4 5 0 +5 5 0 +5 2 1 +2 diff --git a/TaskB01/run.py b/TaskB01/run.py new file mode 100644 index 0000000..4e8be21 --- /dev/null +++ b/TaskB01/run.py @@ -0,0 +1,39 @@ +import sys + +fsa_description = sys.argv[1] +inputWords = sys.argv[2] +outputResult = sys.argv[3] + + +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 == '2' 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\n") + output.write("YES\n") + elif answersYN[i] == '0': + # print("NO\n") + output.write("NO\n") + +print(answersYN) \ No newline at end of file diff --git a/TaskB01/test.out b/TaskB01/test.out new file mode 100644 index 0000000..484228a --- /dev/null +++ b/TaskB01/test.out @@ -0,0 +1,14 @@ +YES +NO +YES +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO