Compare commits

..

No commits in common. "master" and "7534251f7b621385598ab75bfd7369f4a252594f" have entirely different histories.

269 changed files with 44 additions and 1616842 deletions

View File

@ -2,7 +2,7 @@
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Python 3.10" jdkType="Python SDK" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -1,6 +0,0 @@
<?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>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9" project-jdk-type="Python SDK" />
</project>

View File

@ -2,7 +2,7 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/djfz-2023.iml" filepath="$PROJECT_DIR$/.idea/djfz-2023.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/djfz-2023-s464933n.iml" filepath="$PROJECT_DIR$/.idea/djfz-2023-s464933n.iml" />
</modules>
</component>
</project>

167
README.md
View File

@ -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.
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
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ż 29 punktów - 2
- 29-33- 3
- 34-38- 3.5
- 39-43- 4
- 44-48- 4.5
- więcej niż 48- 5
nie będzie wpływał na ocenę, ale bez zdanego kolowkium nie da się zaliczyć przedmiotu. Punktacja za zadania jest następująca:
- mniej niż 30 punktów - 2
- 30-34- 3
- 35-39- 3.5
- 40-44- 4
- 45-49- 4.5
- więcej niż 49- 5
#### Wysyłanie zadań
@ -239,156 +239,3 @@ re.search('\\', r'a\bc')
re.search(r'\\', 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.

View File

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

View File

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

View File

@ -0,0 +1 @@
q

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -1,201 +0,0 @@
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

View File

@ -1,96 +0,0 @@
# 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')

File diff suppressed because it is too large Load Diff

View File

View File

@ -1,5 +1,5 @@
import sys
import copy
class FSA:
@ -20,27 +20,11 @@ class FSA:
else:
self.transitions[state_from] = dict()
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):
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()
table = open(sys.argv[1])

View File

@ -1,7 +1,9 @@
import sys
class NFA:
def __init__(self):
class FSA:
def __init__(self,):
self.initial_state = '0'
self.final_states = set()
@ -22,32 +24,25 @@ class NFA:
def add_final_state(self, 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
def accepts(self, string):
return any(final_state in self.final_states for final_state in self.get_final_states(string))
nfa = NFA()
fsa = FSA()
table = open(sys.argv[1])
for line in table:
line = line.rstrip('\n')
if len(line.split(' ')) == 3:
a, b, c = line.split(' ')
c = c.replace("'","")
c = list(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)
line = line.rstrip()
if len(line.split('\t')) == 3:
a, b, c = line.split('\t')
fsa.add_transition(a, b, c)
fsa.alphabet.add(c)
else:
assert False
fsa.add_final_state(line)
for line in sys.stdin:
print("YES" if nfa.accepts(line.strip()) else "NO")
line = line.rstrip()
if fsa.accepts(line):
print('YES')
else:
print('NO')

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -1,40 +0,0 @@
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)

View File

@ -1,4 +0,0 @@
biały
dom
piła
stali

View File

@ -1,3 +0,0 @@
biały
piła
stali

View File

@ -1,11 +0,0 @@
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)

View File

@ -1,2 +0,0 @@
Here comes Hamlet
Hamlet Hamlet again

View File

@ -1,11 +0,0 @@
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)

View File

@ -1,3 +0,0 @@
Pies ma Alę
Kot i pies to zwierzęta
pies

View File

@ -1,11 +0,0 @@
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)

View File

@ -1,3 +0,0 @@
Kiedyś był 1934 r.
Kiedyś był 1934 r.fsdfsdfsdf
1934 r. to jakaś data

View File

@ -1,12 +0,0 @@
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='')

View File

@ -1,4 +0,0 @@
34234 34 5
34535
34
1992 1999

View File

@ -1,36 +0,0 @@
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

View File

@ -1,10 +0,0 @@
yes
yes
no
yes
no
no
yes
no
yes
no

View File

@ -1,10 +0,0 @@
-1005
-50
-76
0
00
01000
1000
353
465
@!q

View File

@ -1,35 +0,0 @@
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

View File

@ -1,8 +0,0 @@
no
yes
yes
yes
no
no
no
no

View File

@ -1,8 +0,0 @@
0
1000
111111125
25
353
465
@!q
x50

View File

@ -1,36 +0,0 @@
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

View File

@ -1,6 +0,0 @@
<NONE>
<NONE>
23
<NONE>
61
<NONE>

View File

@ -1,6 +0,0 @@
!@#$%^&
0-333
23-000
61-23
61-680
BigFoot

View File

@ -1,37 +0,0 @@
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

View File

@ -1,9 +0,0 @@
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")

View File

@ -1,5 +0,0 @@
yes
yes
yes
no
no

View File

@ -1,5 +0,0 @@
000-00-00-000
345-45-12-334
345-455-12-34
345-455-12-349
3454551234

View File

@ -1,5 +0,0 @@
yes
yes
yes
no
no

View File

@ -1,37 +0,0 @@
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

View File

@ -1,12 +0,0 @@
no
no
no
yes
no
yes
no
yes
yes
no
no
no

View File

@ -1,12 +0,0 @@
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

View File

@ -1,38 +0,0 @@
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

View File

@ -1,11 +0,0 @@
no
yes
yes
no
yes
yes
no
no
no
yes
yes

View File

@ -1,11 +0,0 @@
AAAAAA
ABCDE
ATX
P
PC
PCMCIA
PCMCIB
Pc
WYSIWYA
WYSIWYG
ZZZZ

View File

@ -1,35 +0,0 @@
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

View File

@ -1,10 +0,0 @@
no
no
yes
yes
yes
yes
no
no
yes
yes

View File

@ -1,10 +0,0 @@
012345
0123456
10000
100001
12345
123456
333333333333
9999
99999
999999

View File

@ -1,35 +0,0 @@
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

View File

@ -1,7 +0,0 @@
yes
yes
yes
yes
no
no
no

View File

@ -1,7 +0,0 @@
*
**
***
***********
*a
+
a*

View File

@ -1,38 +0,0 @@
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

View File

@ -1,10 +0,0 @@
no
no
no
no
yes
yes
yes
yes
yes
no

View File

@ -1,10 +0,0 @@
!!!!!
!hi
hi
hi!!!
hihi
hihi!!!!!!!!!
hihihi
hihihi!
hihihihihihihihi
ih!

View File

@ -1,36 +0,0 @@
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

View File

@ -1,9 +0,0 @@
yes
no
no
yes
no
no
no
yes
yes

View File

@ -1,9 +0,0 @@
G3923d
G9
Ha3a5
Z00
Z0x0
az33a
dsdg34
hahaA39dsdsd
sssssssssssU23

View File

@ -1,37 +0,0 @@
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

View File

@ -1,12 +0,0 @@
no
no
no
yes
yes
yes
no
no
yes
yes
no
no

View File

@ -1,12 +0,0 @@
0
0008000
08000
1
2
400
400 400
4020
8000
800000
8888
A0

View File

@ -1,40 +0,0 @@
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

View File

@ -1,17 +0,0 @@
yes
no
yes
no
no
no
yes
no
yes
no
yes
yes
no
yes
yes
no
yes

View File

@ -1,17 +0,0 @@
0
088
0x0
0x00B
0x00C
0x2
0x34
0xB
0xC
1
100000
16
34
34536
4
4 4
88

View File

@ -1,38 +0,0 @@
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

View File

@ -1,6 +0,0 @@
no
yes
yes
no
yes
yes

View File

@ -1,6 +0,0 @@
09-333-56773-4324
1-500-00000-0000
1-500-55773-4323
1-500-56773-4323
1-500-56773-4324
9-333-56773-4324

View File

@ -1,42 +0,0 @@
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

View File

@ -1,9 +0,0 @@
no
yes
no
no
no
yes
no
yes
no

View File

@ -1,9 +0,0 @@
0MORSE HEAD
AAAAA BBBB
AAAAAA BBBB
GOSRE IDAD
HORSE HEAD
MORSE HEAD
MORSEHEAD
ZOSRE IDAD
morse head

View File

@ -1,38 +0,0 @@
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

View File

@ -1,7 +0,0 @@
yes
yes
yes
no
yes
no
no

View File

@ -1,7 +0,0 @@
055-555-555
505-324-555
551-233-455
555-123-456
556 345 667
556 345 6675
556 345-667

View File

@ -1,40 +0,0 @@
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

View File

@ -1,12 +0,0 @@
no
yes
yes
no
no
yes
no
yes
yes
no
no
yes

View File

@ -1,12 +0,0 @@
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

View File

@ -1,41 +0,0 @@
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

View File

@ -1,8 +0,0 @@
yes
no
no
yes
yes
yes
no
yes

View File

@ -1,8 +0,0 @@
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

View File

@ -1,39 +0,0 @@
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

View File

@ -1,10 +0,0 @@
no
yes
no
yes
yes
yes
no
yes
yes
yes

View File

@ -1,10 +0,0 @@
Abonować
abonować
abonowaćxxx
anonsuje
anonsuję
modemowałyście
prowokowany
prowokuj
sprowokuje
óęererłujemy

View File

@ -1,41 +0,0 @@
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

View File

@ -1,8 +0,0 @@
yes
no
yes
no
yes
yes
yes
no

View File

@ -1,8 +0,0 @@
J 22, 99
J 23, 1
Mk 16, 9
Mk 17, 9
Mk 7, 9
Mt 1, 1
Łk 24, 3
Łk 30, 1

View File

@ -1,35 +0,0 @@
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

View File

@ -1,9 +0,0 @@
no
yes
no
yes
yes
yes
no
no
no

View File

@ -1,9 +0,0 @@
-100
1
10
100
10000
1000000
1001
2000
500

View File

@ -1,35 +0,0 @@
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

View File

@ -1,9 +0,0 @@
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")

View File

@ -1,6 +0,0 @@
yes
yes
no
yes
yes
no

View File

@ -1,6 +0,0 @@
00 0-000-000
000 0-000-000
0000 0-000-000
061 5-555-553
61 5-555-553
61 5-555-5534

View File

@ -1,6 +0,0 @@
yes
yes
no
yes
yes
no

View File

@ -1,40 +0,0 @@
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

View File

@ -1,9 +0,0 @@
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