Compare commits

...

15 Commits

Author SHA1 Message Date
Weranda 3b17708166 zadania b00,b01 2023-10-30 15:09:25 +01:00
Weranda cb669e1c86 Merge https://github.com/duszekjk/jezykiformalne 2023-10-30 13:45:10 +01:00
Jacek Kałużny 39345a1424
Update description.txt 2023-10-30 09:54:23 +01:00
Jacek Kałużny 713fa2349d
Update description.txt 2023-10-30 09:51:14 +01:00
Jacek Kałużny fa7060ad43
Update description.txt 2023-10-30 09:50:39 +01:00
Jacek Kałużny f11377a4b5
Update description.txt 2023-10-30 09:50:10 +01:00
Jacek Kałużny 3e4026d2db
Update README.md 2023-10-30 09:49:37 +01:00
Jacek Kałużny cfb4d0806d
Update README.md 2023-10-30 09:49:22 +01:00
Jacek Kałużny 4b34cb1d3a
Update description.txt 2023-10-30 09:48:26 +01:00
Jacek Kałużny 60e52dd992
Update description.txt 2023-10-30 09:47:59 +01:00
Jacek Kałużny fec8352787
Update description.txt 2023-10-30 09:47:03 +01:00
Jacek Kałużny b12c09ad32
Update description.txt 2023-10-30 09:46:20 +01:00
Jacek Kałużny 85c35b6bdf
Update description.txt 2023-10-30 09:45:07 +01:00
Jacek Kałużny b2809dd921
Update description.txt 2023-10-30 09:44:34 +01:00
Jacek Kałużny 7fde0b4513
Add files via upload 2023-10-30 09:43:54 +01:00
42 changed files with 947537 additions and 0 deletions

View File

@ -1,6 +1,11 @@
## Zajęcia 1
Copyright AMU Poznan
Made by multiple people
### Informacje na temat przedmiotu
Prowadzący: Jacek Kałużny

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

26
TaskB00/run.py Normal file
View File

@ -0,0 +1,26 @@
import sys
def is_accepted(fsa, input_string):
current_state = 0
for symbol in input_string:
if (current_state, symbol) in fsa:
current_state = fsa[(current_state, symbol)]
else:
return False
return current_state == 4
fsa_file = sys.argv[1]
fsa = {}
with open(fsa_file, 'r') as f:
for line in f:
parts = line.strip().split('\t')
if len(parts) == 3:
state, next_state, symbol = parts
fsa[(int(state), symbol)] = int(next_state)
for line in sys.stdin:
input_string = line.strip()
if is_accepted(fsa, input_string):
print("YES")
else:
print("NO")

BIN
TaskB00/test1.exp Normal file

Binary file not shown.

9
TaskB00/test1.in Normal file
View File

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

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

@ -0,0 +1,12 @@
0 1 0
0 3 1
3 3 0
3 3 1
1 3 0
1 2 1
2 4 1
4 4 1
4 5 0
5 5 0
2 5 0
5 2 1

27
TaskB01/run.py Normal file
View File

@ -0,0 +1,27 @@
import sys
def is_accepted(fsa, input_string):
current_state = 0
for symbol in input_string:
if (current_state, symbol) in fsa:
current_state = fsa[(current_state, symbol)]
else:
return False
return current_state == 2
fsa_file = sys.argv[1]
fsa = {}
with open(fsa_file, 'r') as f:
for line in f:
parts = line.strip().split(' ')
if len(parts) == 3:
state, next_state, symbol = parts
fsa[(int(state), symbol)] = int(next_state)
for line in sys.stdin:
input_string = line.strip()
if is_accepted(fsa, input_string):
print("YES")
else:
print("NO")

BIN
TaskB01/test.exp Normal file

Binary file not shown.

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