This commit is contained in:
Wojtek 2023-11-10 09:12:47 +01:00
parent 55f63e629d
commit 5305efe82e
41 changed files with 947542 additions and 0 deletions

8
TaskB00/description.txt Normal file
View File

@ -0,0 +1,8 @@
Read a description of a deterministic finite-state automaton in the AT&T format
(without weights) from the file in the first argument.
Read strings from the standard input.
If a string is accepted by the
automaton, write YES, otherwise- write NO.
The program is invoked like this: ./run.py fsa_description.arg < test1.in > test1.out

View File

@ -0,0 +1,16 @@
0 1 x
1 2 y
2 3 z
0 4 y
0 4 z
1 4 x
1 4 z
2 4 x
2 4 y
3 4 x
3 4 y
3 4 z
4 4 x
4 4 y
4 4 z
3

43
TaskB00/run.py Normal file
View File

@ -0,0 +1,43 @@
import sys
def read_aut(fsa_path):
with open(fsa_path, "r", encoding="utf8") as file:
transisions = {}
accepting_states = set()
for line in file:
parts = line.strip().split()
#print(parts)
if len(parts) == 1:
accepting_states.add(int(parts[0]))
#print(accepting_states)
if len(parts) == 3:
state_from = int(parts[0])
state_to = int(parts[1])
symbol = parts[2]
transisions[(state_from, symbol)] = state_to
return transisions, accepting_states
#print(transisions)
def is_accepting(transitions, accepting_states, line):
current_state = 0 #zakładam, że zawsze stan początkowy to 0 dla uproszczenia
for symbol in line.strip():
if (current_state, symbol) in transitions:
current_state = transitions[(current_state, symbol)]
else:
return "NO"
if current_state in accepting_states:
return "YES"
else:
return "NO"
fsa_path = sys.argv[1]
transitions, accepting_states = read_aut(fsa_path)
for line in sys.stdin:
result = is_accepting(transitions, accepting_states, line)
#sys.stdout.write(result + '\n')
print(result)
#python run.py fsa_description.arg < test1.in > test1.out

9
TaskB00/test1.exp Normal file
View File

@ -0,0 +1,9 @@
NO
YES
NO
NO
NO
NO
NO
NO
NO

9
TaskB00/test1.in Normal file
View File

@ -0,0 +1,9 @@
xxyz
xyz
xy
zz
xxy
yzx
x
xyzz

9
TaskB00/test1.out Normal file
View File

@ -0,0 +1,9 @@
NO
YES
NO
NO
NO
NO
NO
NO
NO

10
TaskB01/description.txt Normal file
View File

@ -0,0 +1,10 @@
Use a deterministic finite-state automaton (FSA) engine from the TaskE00.
Create your own FSA description to check whether the string starts with "01" and ends with "01.
Save it to fsa_description.arg file.
The alphabet is "0", "1".
Read strings from the standard input.
If a string is accepted by the
automaton, write YES, otherwise- write NO.

View File

14
TaskB01/test.exp Normal file
View File

@ -0,0 +1,14 @@
YES
NO
YES
NO
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO

14
TaskB01/test.in Normal file
View File

@ -0,0 +1,14 @@
01
10
0101
1010
011101
101010
100010
0100001
00110
0000
10101
0
1

9
TaskB02/description.txt Normal file
View File

@ -0,0 +1,9 @@
Use a deterministic finite-state automaton (FSA) engine from the TaskE00.
Create your own FSA description to check whether the string starts with "10" and ends with "10.
Save it to fsa_description.arg file.
The alphabet is "0", "1".
Read strings from the standard input.
If a string is accepted by the
automaton, write YES, otherwise- write NO.

14
TaskB02/test.exp Normal file
View File

@ -0,0 +1,14 @@
NO
YES
NO
YES
NO
YES
YES
NO
NO
NO
NO
NO
NO
NO

14
TaskB02/test.in Normal file
View File

@ -0,0 +1,14 @@
01
10
0101
1010
011101
101010
100010
0100001
00110
0000
10101
0
1

11
TaskB03/description.txt Normal file
View File

@ -0,0 +1,11 @@
Use a deterministic finite-state automaton (FSA) engine from the TaskE00.
Create your own FSA description to check whether the string contains "0"
even number of times.
Save it to fsa_description.arg file.
The alphabet is "0", "1".
Read strings from the standard input.
If a string is accepted by the
automaton, write YES, otherwise- write NO.

14
TaskB03/test.exp Normal file
View File

@ -0,0 +1,14 @@
NO
NO
YES
YES
YES
NO
YES
NO
YES
NO
YES
YES
NO
YES

14
TaskB03/test.in Normal file
View File

@ -0,0 +1,14 @@
01
10
0101
1010
011101
101010
100010
0100001
00110
0000
10101
0
1

11
TaskB04/description.txt Normal file
View File

@ -0,0 +1,11 @@
Use a deterministic finite-state automaton (FSA) engine from the TaskE00.
Create your own FSA description to check whether the string contains "0"
odd number of times.
Save it to fsa_description.arg file.
The alphabet is "0", "1".
Read strings from the standard input.
If a string is accepted by the
automaton, write YES, otherwise- write NO.

14
TaskB04/test.exp Normal file
View File

@ -0,0 +1,14 @@
YES
YES
NO
NO
NO
YES
NO
YES
NO
YES
NO
NO
YES
NO

14
TaskB04/test.in Normal file
View File

@ -0,0 +1,14 @@
01
10
0101
1010
011101
101010
100010
0100001
00110
0000
10101
0
1

10
TaskB05/description.txt Normal file
View File

@ -0,0 +1,10 @@
Use a deterministic finite-state automaton (FSA) engine from the TaskB00.
Create your own FSA description to check whether the line contains string '19DD', where D is a digit.
Save it to fsa_description.arg file.
FSA alphabet is '0123456789x'.
Read strings from the standard input.
If a string is accepted by the
automaton, write YES, otherwise- write NO.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

6
TaskB05/simple.exp Normal file
View File

@ -0,0 +1,6 @@
NO
YES
NO
NO
YES
YES

6
TaskB05/simple.in Normal file
View File

@ -0,0 +1,6 @@
3214545443
1910
19
xxx2190x
xxx21905x
1905x54545

9
TaskB06/description.txt Normal file
View File

@ -0,0 +1,9 @@
Use a deterministic finite-state automaton (FSA) engine from the previous task.
Create your own FSA description to check whether the word "hamlet" is in the given line.
Save it to fsa_description.arg file.
FSA alphabet is 'abcdefghijklmnopqrstuvwxyz '.
Read strings from the standard input.
If a string is accepted by the
automaton, write YES, otherwise- write NO.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3
TaskB06/simple.exp Normal file
View File

@ -0,0 +1,3 @@
NO
YES
YES

3
TaskB06/simple.in Normal file
View File

@ -0,0 +1,3 @@
haml
hamlet
aaahamletbbb

10
TaskB07/description.txt Normal file
View File

@ -0,0 +1,10 @@
Use a deterministic finite-state automaton (FSA) engine from the previous task.
Create your own FSA description to check whether the word "ophelia" is in the given line.
Save it to fsa_description.arg file.
FSA alphabet is 'abcdefghijklmnopqrstuvwxyz '.
Read strings from the standard input.
If a string is accepted by the
automaton, write YES, otherwise- write NO.

File diff suppressed because it is too large Load Diff

3
TaskB07/simple.exp Normal file
View File

@ -0,0 +1,3 @@
NO
YES
YES

3
TaskB07/simple.in Normal file
View File

@ -0,0 +1,3 @@
oph
ophelia
xfdfdopheliafff

10
TaskB08/description.txt Normal file
View File

@ -0,0 +1,10 @@
Use a deterministic finite-state automaton (FSA) engine from the previous task.
Create your own FSA description to check whether the word "juliet" is in the given line.
Save it to fsa_description.arg file.
FSA alphabet is 'abcdefghijklmnopqrstuvwxyz '.
Read strings from the standard input.
If a string is accepted by the
automaton, write YES, otherwise- write NO.

File diff suppressed because it is too large Load Diff

3
TaskB08/simple.exp Normal file
View File

@ -0,0 +1,3 @@
NO
YES
YES

3
TaskB08/simple.in Normal file
View File

@ -0,0 +1,3 @@
juli
juliet
dgfdgjulietaaa

10
TaskB09/description.txt Normal file
View File

@ -0,0 +1,10 @@
Use a deterministic finite-state automaton (FSA) engine from the previous task.
Create your own FSA description to check whether the word "macbeth" is in the given line.
Save it to fsa_description.arg file.
FSA alphabet is 'abcdefghijklmnopqrstuvwxyz '.
Read strings from the standard input.
If a string is accepted by the
automaton, write YES, otherwise- write NO.

File diff suppressed because it is too large Load Diff

3
TaskB09/simple.exp Normal file
View File

@ -0,0 +1,3 @@
NO
YES
YES

3
TaskB09/simple.in Normal file
View File

@ -0,0 +1,3 @@
macb
macbeth
xadadamacbethrff