This commit is contained in:
doasdsk 2023-12-09 17:11:00 +01:00
parent a01e160be8
commit e22e8a731a
80 changed files with 1402 additions and 0 deletions

35
TaskE01/description.txt Normal file
View 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: 2021-12-04 23:59:59
REMAINDER: 1/10

18
TaskE01/run.py Normal file
View File

@ -0,0 +1,18 @@
import re
import sys
def is_divisible_by_25(s):
pattern = re.compile(r'(^[1-9][0-9]*(00$|25$|50$|75$))|(^25$|^50$|^75$)')
return bool(re.match(pattern, s))
inFile = sys.argv[1]
outFile = sys.argv[2]
# inFile = 'test.in'
# outFile = 'test.out'
with open(inFile, 'r', encoding='utf-8') as inputFile, open(outFile, 'w', encoding='utf-8') as outputFile:
for line in inputFile:
line = line.strip()
result = "yes" if is_divisible_by_25(line) else "no"
outputFile.write(result+'\n')

8
TaskE01/test.exp Normal file
View File

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

8
TaskE01/test.in Normal file
View File

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

8
TaskE01/test.out Normal file
View File

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

36
TaskE02/description.txt Normal file
View 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: 2021-12-04 23:59:59
REMAINDER: 2/10

24
TaskE02/run.py Normal file
View File

@ -0,0 +1,24 @@
import re
import sys
def isPostalCode(s):
pattern = re.compile(r'^([0-9]{2})-([0-9]{3})$')
match = re.match(pattern, s)
if match:
return match.group(1)
else:
return '<NONE>'
inFile = sys.argv[1]
outFile = sys.argv[2]
# inFile = 'test.in'
# outFile = 'test.out'
with open(inFile, 'r', encoding='utf-8') as inputFile, open(outFile, 'w', encoding='utf-8') as outputFile:
for line in inputFile:
line = line.strip()
# result = "yes" if is_divisible_by_25(line) else "<NONE>"
outputFile.write(isPostalCode(line)+'\n')

6
TaskE02/test.exp Normal file
View File

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

6
TaskE02/test.in Normal file
View File

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

6
TaskE02/test.out Normal file
View File

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

37
TaskE03/description.txt Normal file
View 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: 2021-12-04 23:59:59
REMAINDER: 3/10

19
TaskE03/run.py Normal file
View File

@ -0,0 +1,19 @@
import re
import sys
def isNip(s):
pattern = re.compile(r'^\d{3}-\d{3}-\d{2}-\d{2}$|^\d{3}-\d{2}-\d{2}-\d{3}$')
return bool(re.match(pattern, s))
inFile = sys.argv[1]
outFile = sys.argv[2]
# inFile = 'test.in'
# outFile = 'test.out'
with open(inFile, 'r', encoding='utf-8') as inputFile, open(outFile, 'w', encoding='utf-8') as outputFile:
for line in inputFile:
line = line.strip()
result = "yes" if isNip(line) else "no"
outputFile.write(result+'\n')

5
TaskE03/test.exp Normal file
View File

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

5
TaskE03/test.in Normal file
View 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
View File

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

37
TaskE04/description.txt Normal file
View 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: 2021-12-04 23:59:59
REMAINDER: 4/10

19
TaskE04/run.py Normal file
View File

@ -0,0 +1,19 @@
import re
import sys
def isPhoneNumber(s):
pattern = re.compile(r'(^555-\d{3}-\d{3})|(^555 \d{3} \d{3})')
return bool(re.match(pattern, s))
inFile = sys.argv[1]
outFile = sys.argv[2]
# inFile = 'test.in'
# outFile = 'test.out'
with open(inFile, 'r', encoding='utf-8') as inputFile, open(outFile, 'w', encoding='utf-8') as outputFile:
for line in inputFile:
line = line.strip()
result = "yes" if isPhoneNumber(line) else "no"
outputFile.write(result+'\n')

12
TaskE04/test.exp Normal file
View File

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

12
TaskE04/test.in Normal file
View 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

12
TaskE04/test.out Normal file
View File

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

38
TaskE05/description.txt Normal file
View 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: 2021-12-04 23:59:59
REMAINDER: 5/10

19
TaskE05/run.py Normal file
View File

@ -0,0 +1,19 @@
import re
import sys
def isAcronym(s):
pattern = re.compile(r'^(PCMCIA|WYSIWYG|[A-Z]{2,5})$')
return bool(re.match(pattern, s))
inFile = sys.argv[1]
outFile = sys.argv[2]
# inFile = 'test.in'
# outFile = 'test.out'
with open(inFile, 'r', encoding='utf-8') as inputFile, open(outFile, 'w', encoding='utf-8') as outputFile:
for line in inputFile:
line = line.strip()
result = "yes" if isAcronym(line) else "no"
outputFile.write(result+'\n')

11
TaskE05/test.exp Normal file
View File

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

11
TaskE05/test.in Normal file
View File

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

11
TaskE05/test.out Normal file
View File

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

35
TaskE06/description.txt Normal file
View 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: 2021-12-04 23:59:59
REMAINDER: 6/10

19
TaskE06/run.py Normal file
View File

@ -0,0 +1,19 @@
import re
import sys
def is5or6Digits(s):
pattern = re.compile(r'^[1-9]\d{4,5}$')
return bool(re.match(pattern, s))
inFile = sys.argv[1]
outFile = sys.argv[2]
# inFile = 'test.in'
# outFile = 'test.out'
with open(inFile, 'r', encoding='utf-8') as inputFile, open(outFile, 'w', encoding='utf-8') as outputFile:
for line in inputFile:
line = line.strip()
result = "yes" if is5or6Digits(line) else "no"
outputFile.write(result+'\n')

10
TaskE06/test.exp Normal file
View File

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

10
TaskE06/test.in Normal file
View File

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

10
TaskE06/test.out Normal file
View File

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

35
TaskE07/description.txt Normal file
View 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: 2021-12-04 23:59:59
REMAINDER: 7/10

19
TaskE07/run.py Normal file
View File

@ -0,0 +1,19 @@
import re
import sys
def isStars(s):
pattern = re.compile(r'^\*+$')
return bool(re.match(pattern, s))
inFile = sys.argv[1]
outFile = sys.argv[2]
# inFile = 'test.in'
# outFile = 'test.out'
with open(inFile, 'r', encoding='utf-8') as inputFile, open(outFile, 'w', encoding='utf-8') as outputFile:
for line in inputFile:
line = line.strip()
result = "yes" if isStars(line) else "no"
outputFile.write(result+'\n')

7
TaskE07/test.exp Normal file
View File

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

7
TaskE07/test.in Normal file
View File

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

7
TaskE07/test.out Normal file
View File

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

38
TaskE08/description.txt Normal file
View 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: 2021-12-04 23:59:59
REMAINDER: 8/10

19
TaskE08/run.py Normal file
View File

@ -0,0 +1,19 @@
import re
import sys
def isLaughter(s):
pattern = re.compile(r'hihi+')
return bool(re.match(pattern, s))
inFile = sys.argv[1]
outFile = sys.argv[2]
# inFile = 'test.in'
# outFile = 'test.out'
with open(inFile, 'r', encoding='utf-8') as inputFile, open(outFile, 'w', encoding='utf-8') as outputFile:
for line in inputFile:
line = line.strip()
result = "yes" if isLaughter(line) else "no"
outputFile.write(result+'\n')

10
TaskE08/test.exp Normal file
View File

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

10
TaskE08/test.in Normal file
View File

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

10
TaskE08/test.out Normal file
View File

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

36
TaskE09/description.txt Normal file
View 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: 2021-12-04 23:59:59
REMAINDER: 9/10

19
TaskE09/run.py Normal file
View File

@ -0,0 +1,19 @@
import re
import sys
def isCapAnd2Digirts(s):
pattern = re.compile(r'.*[A-Z]\d{2}.*')
return bool(re.match(pattern, s))
inFile = sys.argv[1]
outFile = sys.argv[2]
# inFile = 'test.in'
# outFile = 'test.out'
with open(inFile, 'r', encoding='utf-8') as inputFile, open(outFile, 'w', encoding='utf-8') as outputFile:
for line in inputFile:
line = line.strip()
result = "yes" if isCapAnd2Digirts(line) else "no"
outputFile.write(result + '\n')

9
TaskE09/test.exp Normal file
View File

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

9
TaskE09/test.in Normal file
View File

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

9
TaskE09/test.out Normal file
View File

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

37
TaskE10/description.txt Normal file
View 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: 2021-12-04 23:59:59
REMAINDER: 10/27

19
TaskE10/run.py Normal file
View File

@ -0,0 +1,19 @@
import re
import sys
def isPow2Hex(s):
pattern = re.compile(r'^(?:[1-9A-Fa-f]0*|0)$')
return bool(re.match(pattern, s))
# inFile = sys.argv[1]
# outFile = sys.argv[2]
inFile = 'test.in'
outFile = 'test.out'
with open(inFile, 'r', encoding='utf-8') as inputFile, open(outFile, 'w', encoding='utf-8') as outputFile:
for line in inputFile:
line = line.strip()
result = "yes" if isPow2Hex(line) else "no"
outputFile.write(result + '\n')

12
TaskE10/test.exp Normal file
View File

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

12
TaskE10/test.in Normal file
View File

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

12
TaskE10/test.out Normal file
View File

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

40
TaskE11/description.txt Normal file
View 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: 2021-12-04 23:59:59
REMAINDER: 11/27

17
TaskE11/test.exp Normal file
View 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
View 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
View 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: 2021-12-04 23:59:59
REMAINDER: 12/27

6
TaskE12/test.exp Normal file
View File

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

6
TaskE12/test.in Normal file
View 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
View 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: 2021-12-04 23:59:59
REMAINDER: 13/27

9
TaskE13/test.exp Normal file
View File

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

9
TaskE13/test.in Normal file
View 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
View 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: 2021-12-04 23:59:59
REMAINDER: 14/27

7
TaskE14/test.exp Normal file
View File

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

7
TaskE14/test.in Normal file
View 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
View 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: 2021-12-04 23:59:59
REMAINDER: 15/27

12
TaskE15/test.exp Normal file
View File

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

12
TaskE15/test.in Normal file
View 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
View 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: 2021-12-04 23:59:59
REMAINDER: 16/27

8
TaskE16/test.exp Normal file
View File

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

8
TaskE16/test.in Normal file
View 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
View 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: 2021-12-04 23:59:59
REMAINDER: 17/27

10
TaskE17/test.exp Normal file
View File

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

10
TaskE17/test.in Normal file
View 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
View 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: 2021-12-04 23:59:59
REMAINDER: 18/27

8
TaskE18/test.exp Normal file
View File

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

8
TaskE18/test.in Normal file
View 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
View 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: 2021-12-04 23:59:59
REMAINDER: 19/27

9
TaskE19/test.exp Normal file
View File

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

9
TaskE19/test.in Normal file
View File

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

36
TaskE20/description.txt Normal file
View File

@ -0,0 +1,36 @@
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 wydobyć 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 nie spełnia podanych warunków, należy wypisać
"<NONE>".
For each string, extract 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 does
not fulfill the condition, print "<NONE>".
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: 2021-12-04 23:59:59
REMAINDER: 20/27

6
TaskE20/test.exp Normal file
View File

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

6
TaskE20/test.in Normal file
View 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