Compare commits
16 Commits
7534251f7b
...
master
Author | SHA1 | Date | |
---|---|---|---|
41b58e6808 | |||
d84cd90855 | |||
|
9033821f8e | ||
ee7d0e9e08 | |||
|
f4afb37947 | ||
ef25cc15f7 | |||
|
566bb7c07c | ||
|
bc7afb24c1 | ||
|
3b5056ca2d | ||
|
27bcde8f09 | ||
|
841655da18 | ||
|
77de00fd23 | ||
|
2e63e7e82c | ||
|
d80adf4e0f | ||
5e9c631528 | |||
|
484523b145 |
@ -2,7 +2,7 @@
|
|||||||
<module type="PYTHON_MODULE" version="4">
|
<module type="PYTHON_MODULE" version="4">
|
||||||
<component name="NewModuleRootManager">
|
<component name="NewModuleRootManager">
|
||||||
<content url="file://$MODULE_DIR$" />
|
<content url="file://$MODULE_DIR$" />
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="jdk" jdkName="Python 3.10" jdkType="Python SDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
6
.idea/encodings.xml
Normal file
6
.idea/encodings.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="Encoding">
|
||||||
|
<file url="file://$PROJECT_DIR$/TaskF05/simple.out" charset="windows-1252" />
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9" project-jdk-type="Python SDK" />
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
|
||||||
</project>
|
</project>
|
@ -2,7 +2,7 @@
|
|||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectModuleManager">
|
<component name="ProjectModuleManager">
|
||||||
<modules>
|
<modules>
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/djfz-2023-s464933n.iml" filepath="$PROJECT_DIR$/.idea/djfz-2023-s464933n.iml" />
|
<module fileurl="file://$PROJECT_DIR$/.idea/djfz-2023.iml" filepath="$PROJECT_DIR$/.idea/djfz-2023.iml" />
|
||||||
</modules>
|
</modules>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
167
README.md
167
README.md
@ -10,13 +10,13 @@ Gdyby była potrzeba przedyskutowania czegoś to możemy zostać po zajęciach.
|
|||||||
W celu zaliczenia przedmiotu należy zdobyć punkty za zadania na laboratoriach oraz zaliczyć kolokwium.
|
W celu zaliczenia przedmiotu należy zdobyć punkty za zadania na laboratoriach oraz zaliczyć kolokwium.
|
||||||
Punktowane zadania będziemy wykonywać na laboratoriach oraz po nich (przed następnymi zajęciami), ich ilość determinuje ocenę.
|
Punktowane zadania będziemy wykonywać na laboratoriach oraz po nich (przed następnymi zajęciami), ich ilość determinuje ocenę.
|
||||||
Oprócz tego należy zaliczyć kolokwium z wyrażeń regularnych na ostatnich zajęciach. Sam wynik kolokwium
|
Oprócz tego należy zaliczyć kolokwium z wyrażeń regularnych na ostatnich zajęciach. Sam wynik kolokwium
|
||||||
nie będzie wpływał na ocenę, ale bez zdanego kolowkium nie da się zaliczyć przedmiotu. Punktacja za zadania jest następująca:
|
nie będzie wpływał na ocenę, ale bez zdanego kolokwium nie da się zaliczyć przedmiotu. Punktacja za zadania jest następująca:
|
||||||
- mniej niż 30 punktów - 2
|
- mniej niż 29 punktów - 2
|
||||||
- 30-34- 3
|
- 29-33- 3
|
||||||
- 35-39- 3.5
|
- 34-38- 3.5
|
||||||
- 40-44- 4
|
- 39-43- 4
|
||||||
- 45-49- 4.5
|
- 44-48- 4.5
|
||||||
- więcej niż 49- 5
|
- więcej niż 48- 5
|
||||||
|
|
||||||
#### Wysyłanie zadań
|
#### Wysyłanie zadań
|
||||||
|
|
||||||
@ -239,3 +239,156 @@ re.search('\\', r'a\bc')
|
|||||||
re.search(r'\\', r'a\bc')
|
re.search(r'\\', r'a\bc')
|
||||||
re.search('\\\\', r'a\bc')
|
re.search('\\\\', r'a\bc')
|
||||||
```
|
```
|
||||||
|
## Zajęcia 4 27.11.2023 Wyrażenia regularne 2
|
||||||
|
|
||||||
|
E00 - E09 - po jedno dla każdego
|
||||||
|
|
||||||
|
E10 - E36 - po jedno dla każdego
|
||||||
|
|
||||||
|
E37 - E43 - po jedno dla każdego
|
||||||
|
|
||||||
|
E44 - E48 - po jedno dla każdego
|
||||||
|
|
||||||
|
## Zajęcia 5 11.12.2023 Wyrażenia regularne 3
|
||||||
|
|
||||||
|
F00 - F05 - do wykonania przez każdego
|
||||||
|
|
||||||
|
Proszę o przekopiowanie sobie pliku polish_wiki_excerpt.in z zadania F00 do katalogów z pozostałymi zadaniami
|
||||||
|
|
||||||
|
#### RE SUB
|
||||||
|
```
|
||||||
|
re.sub(pattern, replacement, string)
|
||||||
|
|
||||||
|
re.sub('a','b', 'ala ma kota')
|
||||||
|
```
|
||||||
|
|
||||||
|
#### backreferencje:
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
re.search(r' \d+ \d+', 'ala ma 41 41 kota')
|
||||||
|
re.search(r' \d+ \d+', 'ala ma 41 123 kota')
|
||||||
|
re.search(r' (\d+) \1', 'ala ma 41 41 kota')
|
||||||
|
re.search(r' (\d+) \1', 'ala ma 41 123 kota')
|
||||||
|
```
|
||||||
|
|
||||||
|
#### lookahead ( to sa takie assercje):
|
||||||
|
```
|
||||||
|
re.search(r'ma kot', 'ala ma kot')
|
||||||
|
re.search(r'ma kot(?=[ay])', 'ala ma kot')
|
||||||
|
re.search(r'ma kot(?=[ay])', 'ala ma kotka')
|
||||||
|
re.search(r'ma kot(?=[ay])', 'ala ma koty')
|
||||||
|
re.search(r'ma kot(?=[ay])', 'ala ma kota')
|
||||||
|
|
||||||
|
re.search(r'ma kot(?![ay])', 'ala ma kot')
|
||||||
|
re.search(r'ma kot(?![ay])', 'ala ma kotka')
|
||||||
|
re.search(r'ma kot(?![ay])', 'ala ma koty')
|
||||||
|
re.search(r'ma kot(?![ay])', 'ala ma kota')
|
||||||
|
```
|
||||||
|
|
||||||
|
#### named groups
|
||||||
|
```
|
||||||
|
r = re.search(r'ma (?P<ilepsow>\d+) kotow i (?P<ilekotow>\d+) psow', 'ala ma 100 kotow i 200 psow')
|
||||||
|
r.groups()
|
||||||
|
r.groups('ilepsow')
|
||||||
|
r.groups('ilekotow')
|
||||||
|
```
|
||||||
|
|
||||||
|
#### re.split
|
||||||
|
```
|
||||||
|
('a,b.c,d').split(',')
|
||||||
|
('a,b.c,d').split(',')
|
||||||
|
('a,b.c,d').split(',.')
|
||||||
|
re.split(r',', 'a,b.c,d')
|
||||||
|
re.split(r'[.,]', 'a,b.c,d')
|
||||||
|
```
|
||||||
|
#### \w word character
|
||||||
|
```
|
||||||
|
\w - matchuje Unicod word character , jeżeli flaga ASCII to [a-zA-Z0-9_]
|
||||||
|
\w - odwrotne do \W, jezeli flaga ASCI to [^a-zA-Z0-9_]
|
||||||
|
|
||||||
|
re.findall(r'\w+', 'ala ma 3 koty.')
|
||||||
|
re.findall(r'\W+', 'ala ma 3 koty.')
|
||||||
|
```
|
||||||
|
#### początek albo koniec słowa | word boundary
|
||||||
|
```
|
||||||
|
re.search(r'\bkot\b', 'Ala ma kota')
|
||||||
|
re.search(r'\bkot\b', 'Ala ma kot')
|
||||||
|
re.search(r'\bkot\b', 'Ala ma kot.')
|
||||||
|
re.search(r'\bkot\b', 'Ala ma kot ')
|
||||||
|
|
||||||
|
re.search(r'\Bot\B', 'Ala ma kot ')
|
||||||
|
re.search(r'\Bot\B', 'Ala ma kota ')
|
||||||
|
```
|
||||||
|
#### MULTILINE
|
||||||
|
```
|
||||||
|
re.findall(r'^Ma', 'Ma kota Ala\nMa psa Jacek')
|
||||||
|
re.findall(r'^Ma', 'Ma kota Ala\nMa psa Jacek', re.MULTILINE)
|
||||||
|
```
|
||||||
|
F00 - F05 - do wykonania przez każdego
|
||||||
|
|
||||||
|
|
||||||
|
## Zajęcia 6 8.01.2024 Kodowanie i re2
|
||||||
|
|
||||||
|
Proszę o przekopiowanie sobie pliku polish_wiki_excerpt.in z zadania F00 do katalogów G00, G03.
|
||||||
|
|
||||||
|
Instalacja biblioteki re2: https://pypi.org/project/google-re2/
|
||||||
|
|
||||||
|
### DFA i NDFA
|
||||||
|
|
||||||
|
```
|
||||||
|
import re2 as re
|
||||||
|
n = 50
|
||||||
|
regexp = "a?"*n+"a"*n
|
||||||
|
s = "a"*n
|
||||||
|
re.match(regexp, s)
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
re.match(r"(\d)abc\1", "3abc3") # re2 nie obsługuje backreferencji
|
||||||
|
```
|
||||||
|
|
||||||
|
re2 max memory - podniesienie limitu
|
||||||
|
```
|
||||||
|
setting = re2.Options()
|
||||||
|
setting.max_mem = 1 << 30 # to jest rozmiar podany w bajtach, czyli tutaj 1GB - to jest maksimum o ile możemy podnieść limit
|
||||||
|
pattern = re2.compile(regexp, setting)
|
||||||
|
```
|
||||||
|
|
||||||
|
time # mierzenie czasu działania
|
||||||
|
```
|
||||||
|
start = time.time()
|
||||||
|
withre2()
|
||||||
|
d1 = t1ime.time() - start
|
||||||
|
print(f'That took {d1:.2f} seconds.\n')
|
||||||
|
```
|
||||||
|
Gdyby ktoś chciał poczytać więcej:
|
||||||
|
https://swtch.com/~rsc/regexp/regexp1.html
|
||||||
|
|
||||||
|
### UTF-8
|
||||||
|
```
|
||||||
|
c = "ℋ"
|
||||||
|
ord(c)
|
||||||
|
chr(8459)
|
||||||
|
8* 16**2 + 0 * 16**(1) + 0*16**(0)
|
||||||
|
15*16**3 + 15* 16**2 + 15 * 16**(1) + 15*16**(0)
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
xxd -b file
|
||||||
|
xxd file
|
||||||
|
```
|
||||||
|
|
||||||
|
## KOLOKWIUM 2024-01-22
|
||||||
|
Operatory, obowiązujące na kolokwium
|
||||||
|
====================================
|
||||||
|
|
||||||
|
* kwantyfikatory `-` `*` `+` `?` `{n}` `{n,}` `{n, m}`
|
||||||
|
* alternatywa — `|`
|
||||||
|
* klasy znaków — `[...]`
|
||||||
|
* zanegowane klasy znaków — `[^...]`
|
||||||
|
* dowolny znak — `.`
|
||||||
|
* unieważnianie znaków specjalnych — \
|
||||||
|
* operatory zakotwiczające — `^` `$`
|
||||||
|
|
||||||
|
W repozytorium znajdują się przykładowe pliki z zadaniami.
|
9
TaskB00/test1.out
Normal file
9
TaskB00/test1.out
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
14
TaskB01/test.out
Normal file
14
TaskB01/test.out
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
YES
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
@ -1 +0,0 @@
|
|||||||
q
|
|
50000
TaskB05/polish_wiki_excerpt_only_digits.out
Normal file
50000
TaskB05/polish_wiki_excerpt_only_digits.out
Normal file
File diff suppressed because it is too large
Load Diff
6
TaskB05/simple.out
Normal file
6
TaskB05/simple.out
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
YES
|
201
TaskB07/fsa_description.arg
Normal file
201
TaskB07/fsa_description.arg
Normal file
@ -0,0 +1,201 @@
|
|||||||
|
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 1 o
|
||||||
|
0 0 p
|
||||||
|
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
|
||||||
|
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 2 p
|
||||||
|
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
|
||||||
|
2 0 a
|
||||||
|
2 0 b
|
||||||
|
2 0 c
|
||||||
|
2 0 d
|
||||||
|
2 0 e
|
||||||
|
2 0 f
|
||||||
|
2 0 g
|
||||||
|
2 3 h
|
||||||
|
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 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
|
||||||
|
3 0 a
|
||||||
|
3 0 b
|
||||||
|
3 0 c
|
||||||
|
3 0 d
|
||||||
|
3 4 e
|
||||||
|
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 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
|
||||||
|
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 5 l
|
||||||
|
4 0 m
|
||||||
|
4 0 n
|
||||||
|
4 0 o
|
||||||
|
4 0 p
|
||||||
|
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
|
||||||
|
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 6 i
|
||||||
|
5 0 j
|
||||||
|
5 0 k
|
||||||
|
5 0 l
|
||||||
|
5 0 m
|
||||||
|
5 0 n
|
||||||
|
5 0 o
|
||||||
|
5 0 p
|
||||||
|
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
|
||||||
|
6 7 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 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
|
||||||
|
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 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
|
96
TaskB07/run.py
Normal file
96
TaskB07/run.py
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
# B00 (2021)
|
||||||
|
#
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class FSA:
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.initial_state = '0' # zakładamy dla uproszczenia, że initial state = 0
|
||||||
|
self.final_states = set()
|
||||||
|
|
||||||
|
self.transitions = dict()
|
||||||
|
self.alphabet = set()
|
||||||
|
|
||||||
|
def add_transition(self, state_from, state_to, symbol):
|
||||||
|
|
||||||
|
if state_from in self.transitions.keys():
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
else:
|
||||||
|
self.transitions[state_from] = dict()
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
|
||||||
|
def add_final_state(self, state):
|
||||||
|
self.final_states.add(state)
|
||||||
|
|
||||||
|
def get_final_state(self, string):
|
||||||
|
|
||||||
|
current_state = self.initial_state
|
||||||
|
for symbol in string:
|
||||||
|
current_state = self.transitions[current_state][symbol]
|
||||||
|
return current_state
|
||||||
|
|
||||||
|
def accepts(self, string):
|
||||||
|
|
||||||
|
if self.get_final_state(string) in self.final_states:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
fsa = FSA()
|
||||||
|
|
||||||
|
# def build_fsa(self): #, dfa_desciption
|
||||||
|
table = open(sys.argv[1]) # dfa_desciption
|
||||||
|
for line in table:
|
||||||
|
line = line.rstrip('\n')
|
||||||
|
if len(line.split('\t')) == 3:
|
||||||
|
a, b, c = line.split('\t')
|
||||||
|
fsa.add_transition(a, b, c) #self
|
||||||
|
fsa.alphabet.add(c) #self
|
||||||
|
elif len(line.split('\t')) == 1:
|
||||||
|
fsa.add_final_state(line) #self
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
|
||||||
|
# def run_dfa(self): # , input
|
||||||
|
for line in sys.stdin: # open(input)
|
||||||
|
line = line.rstrip()
|
||||||
|
|
||||||
|
line_n = list(line)
|
||||||
|
|
||||||
|
for i in range(len(line_n)):
|
||||||
|
if line_n[i] not in fsa.alphabet: #self
|
||||||
|
line_n[i] = 'x'
|
||||||
|
|
||||||
|
if fsa.accepts(line_n): #self
|
||||||
|
print('YES')
|
||||||
|
else:
|
||||||
|
print('NO')
|
||||||
|
|
||||||
|
# def run_dfa_and_compare(self, input, expected):
|
||||||
|
#
|
||||||
|
# accepts = []
|
||||||
|
#
|
||||||
|
# for line in open(input): # sys.stdin
|
||||||
|
# line = line.rstrip()
|
||||||
|
#
|
||||||
|
# line_n = list(line)
|
||||||
|
#
|
||||||
|
# for i in range(len(line_n)):
|
||||||
|
# if line_n[i] not in self.alphabet:
|
||||||
|
# line_n[i] = 'x'
|
||||||
|
#
|
||||||
|
# if self.accepts(line_n):
|
||||||
|
# accepts.append('YES')
|
||||||
|
# else:
|
||||||
|
# accepts.append('NO')
|
||||||
|
#
|
||||||
|
# i = 0
|
||||||
|
# for line in open(expected):
|
||||||
|
# if line.rstrip() != accepts[i]:
|
||||||
|
# print('Incorrect in line ' + str(i))
|
||||||
|
# return
|
||||||
|
# i = i + 1
|
||||||
|
# print('Correct')
|
169442
TaskB07/shakespeare_ascii_lower.in
Normal file
169442
TaskB07/shakespeare_ascii_lower.in
Normal file
File diff suppressed because it is too large
Load Diff
0
TaskB07/shakespeare_ascii_lower.out
Normal file
0
TaskB07/shakespeare_ascii_lower.out
Normal file
0
TaskB07/simple.out
Normal file
0
TaskB07/simple.out
Normal file
@ -1,5 +1,5 @@
|
|||||||
import sys
|
import sys
|
||||||
|
import copy
|
||||||
|
|
||||||
class FSA:
|
class FSA:
|
||||||
|
|
||||||
@ -20,11 +20,27 @@ class FSA:
|
|||||||
else:
|
else:
|
||||||
self.transitions[state_from] = dict()
|
self.transitions[state_from] = dict()
|
||||||
self.transitions[state_from][symbol] = {state_to}
|
self.transitions[state_from][symbol] = {state_to}
|
||||||
|
def get_final_state(self, string):
|
||||||
|
|
||||||
|
current_states = {self.initial_state}
|
||||||
|
for symbol in string:
|
||||||
|
new_current_states = set()
|
||||||
|
for current_state in current_states:
|
||||||
|
try:
|
||||||
|
new_current_states |= self.transitions[current_state][symbol]
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
current_states = copy.deepcopy(new_current_states)
|
||||||
|
return current_states
|
||||||
|
|
||||||
def add_final_state(self, state):
|
def add_final_state(self, state):
|
||||||
self.final_states.add(state)
|
self.final_states.add(state)
|
||||||
|
def accepts(self, string):
|
||||||
|
final_states = self.get_final_states(string)
|
||||||
|
for final_state in final_states:
|
||||||
|
if final_state in self.final_states:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
fsa = FSA()
|
fsa = FSA()
|
||||||
|
|
||||||
table = open(sys.argv[1])
|
table = open(sys.argv[1])
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
class NFA:
|
||||||
class FSA:
|
def __init__(self):
|
||||||
|
|
||||||
def __init__(self,):
|
|
||||||
self.initial_state = '0'
|
self.initial_state = '0'
|
||||||
self.final_states = set()
|
self.final_states = set()
|
||||||
|
|
||||||
@ -24,25 +22,32 @@ class FSA:
|
|||||||
def add_final_state(self, state):
|
def add_final_state(self, state):
|
||||||
self.final_states.add(state)
|
self.final_states.add(state)
|
||||||
|
|
||||||
|
def get_final_states(self, string):
|
||||||
|
current_states = {self.initial_state}
|
||||||
|
for symbol in string:
|
||||||
|
current_states = {state for current_state in current_states for state in self.transitions.get(current_state, {}).get(symbol, set())}
|
||||||
|
return current_states
|
||||||
|
|
||||||
fsa = FSA()
|
def accepts(self, string):
|
||||||
|
return any(final_state in self.final_states for final_state in self.get_final_states(string))
|
||||||
|
|
||||||
|
|
||||||
|
nfa = NFA()
|
||||||
|
|
||||||
table = open(sys.argv[1])
|
table = open(sys.argv[1])
|
||||||
for line in table:
|
for line in table:
|
||||||
line = line.rstrip()
|
line = line.rstrip('\n')
|
||||||
|
if len(line.split(' ')) == 3:
|
||||||
if len(line.split('\t')) == 3:
|
a, b, c = line.split(' ')
|
||||||
a, b, c = line.split('\t')
|
c = c.replace("'","")
|
||||||
fsa.add_transition(a, b, c)
|
c = list(c)
|
||||||
fsa.alphabet.add(c)
|
for x in c:
|
||||||
|
nfa.add_transition(a, b, x)
|
||||||
|
nfa.alphabet.add(x)
|
||||||
|
elif len(line.split(' ')) == 1:
|
||||||
|
nfa.add_final_state(line)
|
||||||
else:
|
else:
|
||||||
fsa.add_final_state(line)
|
assert False
|
||||||
|
|
||||||
|
|
||||||
for line in sys.stdin:
|
for line in sys.stdin:
|
||||||
line = line.rstrip()
|
print("YES" if nfa.accepts(line.strip()) else "NO")
|
||||||
|
|
||||||
if fsa.accepts(line):
|
|
||||||
print('YES')
|
|
||||||
else:
|
|
||||||
print('NO')
|
|
@ -0,0 +1,7 @@
|
|||||||
|
YES
|
||||||
|
YES
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
3512
TaskC06/medium.out
3512
TaskC06/medium.out
File diff suppressed because it is too large
Load Diff
40
TaskC06/run.py
Normal file
40
TaskC06/run.py
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
import sys
|
||||||
|
|
||||||
|
class FSA:
|
||||||
|
def __init__(self):
|
||||||
|
self.initial_state = '0'
|
||||||
|
self.final_states = set()
|
||||||
|
self.transitions = dict()
|
||||||
|
self.alphabet = set()
|
||||||
|
|
||||||
|
def add_transition(self, state_from, state_to, symbol):
|
||||||
|
if state_from in self.transitions.keys():
|
||||||
|
if symbol not in self.transitions[state_from].keys():
|
||||||
|
self.transitions[state_from][symbol] = {state_to}
|
||||||
|
else:
|
||||||
|
self.transitions[state_from][symbol] |= {state_to}
|
||||||
|
else:
|
||||||
|
self.transitions[state_from] = dict()
|
||||||
|
self.transitions[state_from][symbol] = {state_to}
|
||||||
|
def add_final_state(self, state):
|
||||||
|
self.final_states.add(state)
|
||||||
|
def get_all_paths(self):
|
||||||
|
paths = []
|
||||||
|
stack = [('', '0')]
|
||||||
|
while stack:
|
||||||
|
current_path, current_state = stack.pop()
|
||||||
|
if current_state in self.final_states:
|
||||||
|
paths.append(current_path)
|
||||||
|
if current_state in self.transitions:
|
||||||
|
for symbol, states in self.transitions[current_state].items():
|
||||||
|
stack.extend((current_path + symbol, state) for state in states)
|
||||||
|
return sorted(paths)
|
||||||
|
|
||||||
|
fsa = FSA()
|
||||||
|
|
||||||
|
for line in sys.stdin:
|
||||||
|
parts = line.strip().split('\t')
|
||||||
|
if parts == ['']: break
|
||||||
|
[fsa.add_transition(parts[0], parts[1], parts[2]) for parts in [parts]] if len(parts) == 3 else fsa.add_final_state(parts[0])
|
||||||
|
for path in fsa.get_all_paths():
|
||||||
|
print(path)
|
@ -0,0 +1,4 @@
|
|||||||
|
biały
|
||||||
|
dom
|
||||||
|
piła
|
||||||
|
stali
|
@ -0,0 +1,3 @@
|
|||||||
|
biały
|
||||||
|
piła
|
||||||
|
stali
|
11
TaskD01/run.py
Normal file
11
TaskD01/run.py
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def re_find_hamlet(input):
|
||||||
|
for _, l in enumerate(input, start=1):
|
||||||
|
if re.search(r'\bHamlet\b', l):
|
||||||
|
print(l.strip())
|
||||||
|
|
||||||
|
|
||||||
|
re_find_hamlet(sys.stdin)
|
2
TaskD01/simple.out
Normal file
2
TaskD01/simple.out
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Here comes Hamlet
|
||||||
|
Hamlet Hamlet again
|
11
TaskD02/run.py
Normal file
11
TaskD02/run.py
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def pies(input):
|
||||||
|
for _, l in enumerate(input, start=1):
|
||||||
|
if re.search(r'\bpies\b', l, flags=re.IGNORECASE):
|
||||||
|
print(l.strip())
|
||||||
|
|
||||||
|
|
||||||
|
pies(sys.stdin)
|
3
TaskD02/simple.out
Normal file
3
TaskD02/simple.out
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Pies ma Alę
|
||||||
|
Kot i pies to zwierzęta
|
||||||
|
pies
|
11
TaskD03/run.py
Normal file
11
TaskD03/run.py
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def pog_champ(input):
|
||||||
|
for _, l in enumerate(input, start=1):
|
||||||
|
if re.search(r'19\d{2} r\.', l):
|
||||||
|
print(l.strip())
|
||||||
|
|
||||||
|
|
||||||
|
pog_champ(sys.stdin)
|
3
TaskD03/simple.out
Normal file
3
TaskD03/simple.out
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Kiedyś był 1934 r.
|
||||||
|
Kiedyś był 1934 r.fsdfsdfsdf
|
||||||
|
1934 r. to jakaś data
|
12
TaskD04/run.py
Normal file
12
TaskD04/run.py
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def find_numbers(s):
|
||||||
|
return re.compile(r'\d+').findall(s)
|
||||||
|
|
||||||
|
input = sys.stdin.read().splitlines()
|
||||||
|
|
||||||
|
for l in input:
|
||||||
|
r = find_numbers(l)
|
||||||
|
print(f"{' '.join(r)}\n" if r else '', end='')
|
4
TaskD04/simple.out
Normal file
4
TaskD04/simple.out
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
34234 34 5
|
||||||
|
34535
|
||||||
|
34
|
||||||
|
1992 1999
|
36
TaskE00/description.txt
Normal file
36
TaskE00/description.txt
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
Liczby podzielne przez 5
|
||||||
|
========================
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy zadany napis jest liczbą całkowitą
|
||||||
|
podzielną przez 5. Napis nie powinien zawierać zer nieznaczących.
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string check, if the given string is an integer divisible by 5.
|
||||||
|
The string should not contain leading zeros.
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 10 z resztą 0.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 10 is 0.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 0/10
|
10
TaskE00/test.exp
Normal file
10
TaskE00/test.exp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
10
TaskE00/test.in
Normal file
10
TaskE00/test.in
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
-1005
|
||||||
|
-50
|
||||||
|
-76
|
||||||
|
0
|
||||||
|
00
|
||||||
|
01000
|
||||||
|
1000
|
||||||
|
353
|
||||||
|
465
|
||||||
|
@!q
|
35
TaskE01/description.txt
Normal file
35
TaskE01/description.txt
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
Liczby podzielne przez 25
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy zadany napis jest dodatnią liczbą
|
||||||
|
podzielną przez 25.
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string check, if the given string is a positive integer divisible by 25.
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 10 z resztą 1.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 10 is 1.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 1/10
|
8
TaskE01/test.exp
Normal file
8
TaskE01/test.exp
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
8
TaskE01/test.in
Normal file
8
TaskE01/test.in
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
0
|
||||||
|
1000
|
||||||
|
111111125
|
||||||
|
25
|
||||||
|
353
|
||||||
|
465
|
||||||
|
@!q
|
||||||
|
x50
|
36
TaskE02/description.txt
Normal file
36
TaskE02/description.txt
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
Kody pocztowe
|
||||||
|
=============
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy wydobyć z kodu pocztowego kod miasta (2 pierwsze
|
||||||
|
cyfry). Jeśli napis nie jest kodem pocztowym, należy wypisać "<NONE>".
|
||||||
|
Zakładamy, że kod pocztowy składa się z 2 cyfr, minusa i 3 cyfr. Jeśli
|
||||||
|
napis nie spełnia podanych warunków, należy wypisać "<NONE>".
|
||||||
|
|
||||||
|
For each string, extract the postal code of a city (2 first digits).
|
||||||
|
If the string is not a postal code, you should print "<NONE>".
|
||||||
|
We assume that the postal code consists of 2 digits, minus character, and 3 digits.
|
||||||
|
If the string doesn't fulfill the condition, you should print "<NONE>".
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 10 z resztą 2.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 10 is 2.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 2/10
|
6
TaskE02/test.exp
Normal file
6
TaskE02/test.exp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<NONE>
|
||||||
|
<NONE>
|
||||||
|
23
|
||||||
|
<NONE>
|
||||||
|
61
|
||||||
|
<NONE>
|
6
TaskE02/test.in
Normal file
6
TaskE02/test.in
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
!@#$%^&
|
||||||
|
0-333
|
||||||
|
23-000
|
||||||
|
61-23
|
||||||
|
61-680
|
||||||
|
BigFoot
|
37
TaskE03/description.txt
Normal file
37
TaskE03/description.txt
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
Numer NIP
|
||||||
|
=========
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy napis jest numerem NIP zapisanym w
|
||||||
|
formacie xxx-xxx-xx-xx bądź xxx-xx-xx-xxx. Nie trzeba brać pod uwagę sumy
|
||||||
|
kontrolnej.
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string check, if the string is NIP number written in
|
||||||
|
xxx-xxx-xx-xx bądź xxx-xx-xx-xxx format. You don't need to consider a checksum.
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 10 z resztą 3.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 10 is 3.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 3/10
|
9
TaskE03/run.py
Normal file
9
TaskE03/run.py
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import sys
|
||||||
|
import re
|
||||||
|
|
||||||
|
for line in sys.stdin:
|
||||||
|
numbers = re.fullmatch(r"(\d{3}-\d{3}-\d{2}-\d{2})|(\d{3}-\d{2}-\d{2}-\d{3})", line.replace("\n", ""), flags=re.IGNORECASE)
|
||||||
|
if numbers:
|
||||||
|
print("yes")
|
||||||
|
else:
|
||||||
|
print("no")
|
5
TaskE03/test.exp
Normal file
5
TaskE03/test.exp
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
5
TaskE03/test.in
Normal file
5
TaskE03/test.in
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
000-00-00-000
|
||||||
|
345-45-12-334
|
||||||
|
345-455-12-34
|
||||||
|
345-455-12-349
|
||||||
|
3454551234
|
5
TaskE03/test.out
Normal file
5
TaskE03/test.out
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
37
TaskE04/description.txt
Normal file
37
TaskE04/description.txt
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
Telefon filmowy
|
||||||
|
===============
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy napis jest 9-cyfrowym numerem
|
||||||
|
telefonu zapisanym w formacie "NNN-NNN-NNN" badź "NNN NNN NNN" zaczynającym
|
||||||
|
sie od kombinacji "555".
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string, you should check, if the string is a 9-digit phone number
|
||||||
|
written in "NNN-NNN-NNN" or "NNN NNN NNN" format, which starts with "555".
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 10 z resztą 4.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 10 is 4.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 4/10
|
12
TaskE04/test.exp
Normal file
12
TaskE04/test.exp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
12
TaskE04/test.in
Normal file
12
TaskE04/test.in
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
055-555-555
|
||||||
|
505-324-555
|
||||||
|
551-233-455
|
||||||
|
555 000 000
|
||||||
|
555 000-000
|
||||||
|
555 123 456
|
||||||
|
555-000 000
|
||||||
|
555-000-000
|
||||||
|
555-123-456
|
||||||
|
556 345 667
|
||||||
|
556 345 6675
|
||||||
|
556 345-667
|
38
TaskE05/description.txt
Normal file
38
TaskE05/description.txt
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
Akronim
|
||||||
|
=======
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy napis jest akronimem (ciągiem co
|
||||||
|
najmniej dwóch i co najwyżej pięciu wielkich liter. Dodatkowo należy
|
||||||
|
uwzględnić akronimy "PCMCIA" i "WYSIWYG".
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string, check if the string is an acronym (sequence
|
||||||
|
of at least 2 and at most 5 capital letters.
|
||||||
|
Additionally, you should include acronyms "PCMCIA" i "WYSIWYG".
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 10 z resztą 5.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 10 is 5.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 5/10
|
11
TaskE05/test.exp
Normal file
11
TaskE05/test.exp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
11
TaskE05/test.in
Normal file
11
TaskE05/test.in
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
AAAAAA
|
||||||
|
ABCDE
|
||||||
|
ATX
|
||||||
|
P
|
||||||
|
PC
|
||||||
|
PCMCIA
|
||||||
|
PCMCIB
|
||||||
|
Pc
|
||||||
|
WYSIWYA
|
||||||
|
WYSIWYG
|
||||||
|
ZZZZ
|
35
TaskE06/description.txt
Normal file
35
TaskE06/description.txt
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
Liczba pięcio bądź sześciocyfrowa
|
||||||
|
=================================
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy napis reprezentuje liczbę pięcio-
|
||||||
|
bądź sześciocyfrową. Liczba nie powinna zawierać zer nieznaczących.
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string, check if the given string represents
|
||||||
|
5 or 6 digits number. The number should not contain leading zeros.
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 10 z resztą 6.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 10 is 6.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 6/10
|
10
TaskE06/test.exp
Normal file
10
TaskE06/test.exp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
10
TaskE06/test.in
Normal file
10
TaskE06/test.in
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
012345
|
||||||
|
0123456
|
||||||
|
10000
|
||||||
|
100001
|
||||||
|
12345
|
||||||
|
123456
|
||||||
|
333333333333
|
||||||
|
9999
|
||||||
|
99999
|
||||||
|
999999
|
35
TaskE07/description.txt
Normal file
35
TaskE07/description.txt
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
Gwiazdek
|
||||||
|
========
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy napis składa się z samych gwiazdek
|
||||||
|
(co najmniej jednej).
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string, check if the given string consists of only asterisks (at least one).
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 10 z resztą 7.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 10 is 7.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 7/10
|
7
TaskE07/test.exp
Normal file
7
TaskE07/test.exp
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
7
TaskE07/test.in
Normal file
7
TaskE07/test.in
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
*
|
||||||
|
**
|
||||||
|
***
|
||||||
|
***********
|
||||||
|
*a
|
||||||
|
+
|
||||||
|
a*
|
38
TaskE08/description.txt
Normal file
38
TaskE08/description.txt
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
Chichot
|
||||||
|
=======
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy napis jest chichotem tzn. "hi"
|
||||||
|
powtórzonym przynajmniej 2 razy, po czym następuje opcjonalny ciąg
|
||||||
|
wykrzykników.
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string, check if the given string consists of a sequence
|
||||||
|
"hi" repeated at least 2 times followed by optional sequences of
|
||||||
|
exclamation marks.
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 10 z resztą 8.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 10 is 8.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 8/10
|
10
TaskE08/test.exp
Normal file
10
TaskE08/test.exp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
10
TaskE08/test.in
Normal file
10
TaskE08/test.in
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
!!!!!
|
||||||
|
!hi
|
||||||
|
hi
|
||||||
|
hi!!!
|
||||||
|
hihi
|
||||||
|
hihi!!!!!!!!!
|
||||||
|
hihihi
|
||||||
|
hihihi!
|
||||||
|
hihihihihihihihi
|
||||||
|
ih!
|
36
TaskE09/description.txt
Normal file
36
TaskE09/description.txt
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
Wielka litera i dwie cyfry w środku
|
||||||
|
===================================
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy napis zawiera podciąg składający
|
||||||
|
się z wielkiej litery i dwóch cyfr.
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string, check if the given string contains a substring
|
||||||
|
consisting of the capital letter and two digits.
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 10 z resztą 9.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 10 is 9.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 9/10
|
9
TaskE09/test.exp
Normal file
9
TaskE09/test.exp
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
9
TaskE09/test.in
Normal file
9
TaskE09/test.in
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
G3923d
|
||||||
|
G9
|
||||||
|
Ha3a5
|
||||||
|
Z00
|
||||||
|
Z0x0
|
||||||
|
az33a
|
||||||
|
dsdg34
|
||||||
|
hahaA39dsdsd
|
||||||
|
sssssssssssU23
|
37
TaskE10/description.txt
Normal file
37
TaskE10/description.txt
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
Podzielność liczby wystąpień
|
||||||
|
============================
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy zadany napis jest potęgą liczby 2
|
||||||
|
zapisaną w systemie szesnastkowym. Liczba nie powinna zawierać zer
|
||||||
|
nieznaczących.
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string, check if the given string is a power of 2 written in the hexadecimal system.
|
||||||
|
The number should not contain leading zeros.
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 27 z resztą 10.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 27 is 10.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 10/27
|
12
TaskE10/test.exp
Normal file
12
TaskE10/test.exp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
12
TaskE10/test.in
Normal file
12
TaskE10/test.in
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
0
|
||||||
|
0008000
|
||||||
|
08000
|
||||||
|
1
|
||||||
|
2
|
||||||
|
400
|
||||||
|
400 400
|
||||||
|
4020
|
||||||
|
8000
|
||||||
|
800000
|
||||||
|
8888
|
||||||
|
A0
|
40
TaskE11/description.txt
Normal file
40
TaskE11/description.txt
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
Podzielność przez cztery
|
||||||
|
========================
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy zadany napis - zapisany
|
||||||
|
dziesiętnie bądź szesnastkowo jest podzielny przez 4. Zapis szesnastkowy
|
||||||
|
jest sygnalizowany przez prefiks "0x", cyfry szesnastkowe zapisywane jako
|
||||||
|
wielkie litery. Liczba nie powinna zawierać zer nieznaczących.
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string, check if the given string (written in hexadecimal
|
||||||
|
or decimal system) is divisible by 4. A hexadecimal number
|
||||||
|
is prefixed by "0x" and hexadecimal letters are capital letters.
|
||||||
|
The number should not contain leading zeros.
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 27 z resztą 11.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 27 is 11.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 11/27
|
17
TaskE11/test.exp
Normal file
17
TaskE11/test.exp
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
17
TaskE11/test.in
Normal file
17
TaskE11/test.in
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
0
|
||||||
|
088
|
||||||
|
0x0
|
||||||
|
0x00B
|
||||||
|
0x00C
|
||||||
|
0x2
|
||||||
|
0x34
|
||||||
|
0xB
|
||||||
|
0xC
|
||||||
|
1
|
||||||
|
100000
|
||||||
|
16
|
||||||
|
34
|
||||||
|
34536
|
||||||
|
4
|
||||||
|
4 4
|
||||||
|
88
|
38
TaskE12/description.txt
Normal file
38
TaskE12/description.txt
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
Nie koński łeb
|
||||||
|
==============
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy napis jest numerem telefonu
|
||||||
|
zapisanym w formacie N-NNN-NNNNN-NNNN (N to dowolna cyfra), innym niż numer
|
||||||
|
telefonu 1-500-56773-4323.
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string check, if the given string is a phone number
|
||||||
|
wirtten in N-NNN-NNNNN-NNNN format (N is any digit), other than
|
||||||
|
1-500-56773-4323 phone number.
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 27 z resztą 12.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 27 is 12.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 12/27
|
6
TaskE12/test.exp
Normal file
6
TaskE12/test.exp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
6
TaskE12/test.in
Normal file
6
TaskE12/test.in
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
09-333-56773-4324
|
||||||
|
1-500-00000-0000
|
||||||
|
1-500-55773-4323
|
||||||
|
1-500-56773-4323
|
||||||
|
1-500-56773-4324
|
||||||
|
9-333-56773-4324
|
42
TaskE13/description.txt
Normal file
42
TaskE13/description.txt
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
Nie koński łeb 2
|
||||||
|
================
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy napis jest napisem złożonym z
|
||||||
|
ciągu 5 wielkich liter i 4 wielkich liter oddzielonych spacją, które
|
||||||
|
wstukane na standardowym telefonie dadzą inny numer niż uzyskane przez
|
||||||
|
wstukanie napisu "HORSE HEAD". Zakładamy standardowe mapowanie liter na
|
||||||
|
cyfry w telefonie ("ABC" - 2, "DEF" - 3 itd.)
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string check, if the given string consists of
|
||||||
|
5 capital letters and 4 capital letter separated by space,
|
||||||
|
which written in old cellphone keyboard shows another number than typing
|
||||||
|
"HORSE HEAD". We assume standard old cellphone keyboard mapping
|
||||||
|
("ABC" - 2, "DEF" - 3 etc.)
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 27 z resztą 13.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 27 is 13.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 13/27
|
9
TaskE13/test.exp
Normal file
9
TaskE13/test.exp
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
9
TaskE13/test.in
Normal file
9
TaskE13/test.in
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
0MORSE HEAD
|
||||||
|
AAAAA BBBB
|
||||||
|
AAAAAA BBBB
|
||||||
|
GOSRE IDAD
|
||||||
|
HORSE HEAD
|
||||||
|
MORSE HEAD
|
||||||
|
MORSEHEAD
|
||||||
|
ZOSRE IDAD
|
||||||
|
morse head
|
38
TaskE14/description.txt
Normal file
38
TaskE14/description.txt
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
Nie 555
|
||||||
|
=======
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy napis jest 9-cyfrowym numerem
|
||||||
|
telefonu zapisanym w formacie "NNN-NNN-NNN" badź "NNN NNN NNN"
|
||||||
|
niezaczynającym sie od kombinacji "555".
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string check, if the given number is 9 digit phone
|
||||||
|
number written in "NNN-NNN-NNN" or "NNN NNN NNN" format,
|
||||||
|
which does not start with "555"
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 27 z resztą 14.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 27 is 14.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 14/27
|
7
TaskE14/test.exp
Normal file
7
TaskE14/test.exp
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
7
TaskE14/test.in
Normal file
7
TaskE14/test.in
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
055-555-555
|
||||||
|
505-324-555
|
||||||
|
551-233-455
|
||||||
|
555-123-456
|
||||||
|
556 345 667
|
||||||
|
556 345 6675
|
||||||
|
556 345-667
|
40
TaskE15/description.txt
Normal file
40
TaskE15/description.txt
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
Wynik-zwycięstwo
|
||||||
|
================
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy napis reprezentuje wynik meczu
|
||||||
|
piłkarskiego (dwie liczby oddzielone dwukropkiem bądź minusem), przy czym
|
||||||
|
pierwsza liczba jest większa od drugiej. Maksymalna liczba bramek
|
||||||
|
zwycięskiej drużyny wynosi 11.
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string, check if the given string stands for
|
||||||
|
a soccer match result (two numbers separated by colon or minus character).
|
||||||
|
The first number should be greater than the second.
|
||||||
|
The maximum number of leading team is 11.
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 27 z resztą 15.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 27 is 15.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 15/27
|
12
TaskE15/test.exp
Normal file
12
TaskE15/test.exp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
12
TaskE15/test.in
Normal file
12
TaskE15/test.in
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
10-10
|
||||||
|
10-9
|
||||||
|
11-10
|
||||||
|
11-11
|
||||||
|
12:0
|
||||||
|
2:1
|
||||||
|
2:5
|
||||||
|
3-1
|
||||||
|
5:2
|
||||||
|
5:2 3:1
|
||||||
|
5:21
|
||||||
|
7-0
|
41
TaskE16/description.txt
Normal file
41
TaskE16/description.txt
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
Równanie
|
||||||
|
========
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy napis reprezentuje proste równanie
|
||||||
|
typu "A @ B = C", gdzie w miejscu A, B, C mogą pojawić się liczby dodatnie
|
||||||
|
(bez nieznaczących zer) bądź zmienna "x" (zmienna "x" - dokładnie jeden raz
|
||||||
|
w całym równaniu. '@' którąś z operacji - '+', '-', '*', '/'. Operatory
|
||||||
|
arytmetyczne i równości mogą być otoczone przez spacje.
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string, check if the given string stands for "A @ B = C" equation,
|
||||||
|
where A, B, C are positive integers (no leading zeros) or "x" variable (only
|
||||||
|
one "x" in the queation). "@" is of on '+', '-', '*', '/' operators.
|
||||||
|
Arithmetic operators may be separated by spaces.
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 27 z resztą 16.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 27 is 16.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 16/27
|
8
TaskE16/test.exp
Normal file
8
TaskE16/test.exp
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
8
TaskE16/test.in
Normal file
8
TaskE16/test.in
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
14 / x = 2
|
||||||
|
2 + 2 + x = 8
|
||||||
|
2 + 2 = 4
|
||||||
|
2 + x = 4
|
||||||
|
23 - x=13
|
||||||
|
5+2=x
|
||||||
|
x + x = 16
|
||||||
|
x* 343=90900
|
39
TaskE17/description.txt
Normal file
39
TaskE17/description.txt
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
Formy czasownika
|
||||||
|
================
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy napis jest formą czasownika
|
||||||
|
zakończonego na "ować". Należy uwzględnić wszystkie formy z wyjątkiem
|
||||||
|
imiesłowów. Napis musi być ciągiem małych liter (włącznie z polskimi
|
||||||
|
literami).
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string, check if the string is a verb ending with "ować".
|
||||||
|
You should include all forms, but a participle. The string should
|
||||||
|
be a sequence of lower case letters (including polish letters)
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 27 z resztą 17.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 27 is 17.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 17/27
|
10
TaskE17/test.exp
Normal file
10
TaskE17/test.exp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
10
TaskE17/test.in
Normal file
10
TaskE17/test.in
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
Abonować
|
||||||
|
abonować
|
||||||
|
abonowaćxxx
|
||||||
|
anonsuje
|
||||||
|
anonsuję
|
||||||
|
modemowałyście
|
||||||
|
prowokowany
|
||||||
|
prowokuj
|
||||||
|
sprowokuje
|
||||||
|
óęererłujemy
|
41
TaskE18/description.txt
Normal file
41
TaskE18/description.txt
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
Numer wiersza z Ewangelii
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy napis jest oznaczeniem wiersza z
|
||||||
|
Ewangelii (w rodzaju "Mt 17, 3"). Skróty Ewangelii - "Mt", "Mk", "Łk", "J",
|
||||||
|
liczba rozdziałów odpowiednio - 28, 16, 24, 22. Wiersz liczba z zakresu
|
||||||
|
1-99 (nie trzeba sprawdzać czy faktycznie tyle jest w poszczególnych
|
||||||
|
rozdziałach).
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string, check if the string is Evangel line number
|
||||||
|
(like "Mt 17, 3"). Evangel abbreviations - "Mt", "Mk", "Łk", "J",
|
||||||
|
paragraphs numbers correspondingly 28, 16, 24, 22. Verset name is 1-99.
|
||||||
|
You don't need to check if there are such versets in the real Evangel.
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 27 z resztą 18.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 27 is 18.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 18/27
|
8
TaskE18/test.exp
Normal file
8
TaskE18/test.exp
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
8
TaskE18/test.in
Normal file
8
TaskE18/test.in
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
J 22, 99
|
||||||
|
J 23, 1
|
||||||
|
Mk 16, 9
|
||||||
|
Mk 17, 9
|
||||||
|
Mk 7, 9
|
||||||
|
Mt 1, 1
|
||||||
|
Łk 24, 3
|
||||||
|
Łk 30, 1
|
35
TaskE19/description.txt
Normal file
35
TaskE19/description.txt
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
Potęga setki
|
||||||
|
============
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy zadany napis jest potęgą liczby
|
||||||
|
100.
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string, check if the given string is the power of 100.
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 27 z resztą 19.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 27 is 19.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 19/27
|
9
TaskE19/test.exp
Normal file
9
TaskE19/test.exp
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
no
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
9
TaskE19/test.in
Normal file
9
TaskE19/test.in
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
-100
|
||||||
|
1
|
||||||
|
10
|
||||||
|
100
|
||||||
|
10000
|
||||||
|
1000000
|
||||||
|
1001
|
||||||
|
2000
|
||||||
|
500
|
35
TaskE20/description.txt
Normal file
35
TaskE20/description.txt
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
Numer telefonu
|
||||||
|
==============
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy wskazać czy zadany napis jest numerem telefonu.
|
||||||
|
Zakładamy, że numer telefonu składa się z dwóch cyfr opcjonalnie
|
||||||
|
poprzedzonych zerem, po których następuje spacja i 7 cyfr w formacie
|
||||||
|
N-NNN-NNN. Jeśli napis spełnia podane warunki, należy wypisać
|
||||||
|
"yes", w przeciwnym wypadku "no".
|
||||||
|
|
||||||
|
For each string, indicate whether it is a phone number. We assume, that the phone
|
||||||
|
number consists of two digits (optionally prefixed by zero), followed
|
||||||
|
by space and 7 digits in N-NNN-NNN format. If the string fulfills the condition, print "yes", otherwise "no".
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 27 z resztą 20.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 27 is 20.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 20/27
|
9
TaskE20/run.py
Normal file
9
TaskE20/run.py
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import sys
|
||||||
|
import re
|
||||||
|
|
||||||
|
for line in sys.stdin:
|
||||||
|
numbers = re.match(r'^(0?[0-9]{2}) (\d{1}-\d{3}-\d{3})$', line.replace("\n", ""), flags=re.IGNORECASE)
|
||||||
|
if numbers:
|
||||||
|
print('yes')
|
||||||
|
else:
|
||||||
|
print("no")
|
6
TaskE20/test.exp
Normal file
6
TaskE20/test.exp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
6
TaskE20/test.in
Normal file
6
TaskE20/test.in
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
00 0-000-000
|
||||||
|
000 0-000-000
|
||||||
|
0000 0-000-000
|
||||||
|
061 5-555-553
|
||||||
|
61 5-555-553
|
||||||
|
61 5-555-5534
|
6
TaskE20/test.out
Normal file
6
TaskE20/test.out
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
40
TaskE21/description.txt
Normal file
40
TaskE21/description.txt
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
Koński łeb
|
||||||
|
==========
|
||||||
|
|
||||||
|
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||||
|
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||||
|
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||||
|
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||||
|
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||||
|
użyć pojedynczego wyrażenia regularnego.
|
||||||
|
|
||||||
|
Write a program, which loads consecutive lines from standard input
|
||||||
|
and analyze every line (with no newline character). You should
|
||||||
|
use regular expressions to the greatest extent possible (e.g. you
|
||||||
|
can not use negation in the programming language if it is
|
||||||
|
possible to express the same in regular expression). Wherever possible,
|
||||||
|
use one regular expression.
|
||||||
|
|
||||||
|
Dla każdego napisu należy sprawdzić, czy napis jest napisem złożonym z
|
||||||
|
ciągu 5 wielkich liter i 4 wielkich liter oddzielonych spacją, które
|
||||||
|
wstukane na standardowym telefonie dadzą taki sam numer jak przy wstukaniu
|
||||||
|
napisu "HORSE HEAD". Zakładamy standardowe mapowanie liter na cyfry w
|
||||||
|
telefonie ("ABC" - 2, "DEF" - 3 itd.)
|
||||||
|
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||||
|
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||||
|
|
||||||
|
For each string, check if the string consists of 5 capital letters
|
||||||
|
and 4 lower case letter separated by space, which written on
|
||||||
|
an old cell phone keyboard gives the same number as typing "HORSE HEAD".
|
||||||
|
We assume standard old phone keyboard mapping ("ABC" - 2, "DEF" - 3, etc.)
|
||||||
|
If the string fulfills the condition, you should print 'yes' on the
|
||||||
|
standard output and 'no' otherwise.
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 27 z resztą 21.
|
||||||
|
|
||||||
|
Attention. The task is for students whose students id remainder of the division by 27 is 21.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2023-12-10 23:59:59
|
||||||
|
REMAINDER: 21/27
|
9
TaskE21/test.exp
Normal file
9
TaskE21/test.exp
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
yes
|
||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
||||||
|
no
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user