This commit is contained in:
deadsmond 2020-01-20 16:07:21 +01:00
commit ad4060e298
37 changed files with 456 additions and 4 deletions

View File

@ -53,5 +53,5 @@ NOTE 2. Task only for students whose student index number ("numer
indeksu") is divisible by 3 with a remainder of 0
POINTS: 14
DEADLINE: 2019-12-16 23:59
DEADLINE: 2020-01-11 23:59
REMAINDER: 0/3

29
TaskB04/description.txt Normal file
View File

@ -0,0 +1,29 @@
Paths
======
Your program should read a finite-state automaton from standard input.
The automaton is deterministic, you can assume it does not contain
cycles. The automaton alphabet is the set of Polish lower-case letters
(English letters plus: ą, ć, ę, ł, ń, ó, ś, ź and ż).
Your program should print, on standard output, all the paths of the
automaton in alphabetical order (to be precise: order induced by byte
codes of strings, not according to the standard Polish order). "Print
a path" means print a text line containing all subsequent characters.
The program does not have to check whether the automaton is correct
and whether it is deterministic and does not contain cycles.
Weights (if any) should be disregarded.
NOTE 1. In section B for points for your tasks, the maximum (rather
than sum) is taken.
NOTE 2. Task only for students whose student index number ("numer
indeksu") is divisible by 3 with a remainder of 1
NOTE 3. You can add `LANG=C sort` to your Bash wrapper for the write sort.
POINTS: 14
DEADLINE: 2020-01-11 23:59
REMAINDER: 1/3

View File

@ -25,5 +25,5 @@ NOTE 2. Task only for students whose student index number ("numer
indeksu") is divisible by 3 with a remainder of 2.
POINTS: 14
DEADLINE: 2019-12-16 23:59
DEADLINE: 2020-01-11 23:59
REMAINDER: 2/3

14
TaskC00/description.txt Normal file
View File

@ -0,0 +1,14 @@
Zamiana cyfr z ułamkami na słowa
================================
Napisać gramatykę thraxową, która zamienia liczby z zakresu
od -999,999 od 999,999 na postać słowną.
Zakładamy, że liczby nie mają zer nieznaczących.
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
dzieli się przez 7 z resztą 0.
POINTS: 14
DEADLINE: 2020-01-28 23:59
REMAINDER: 0/7

13
TaskC00/test.exp Normal file
View File

@ -0,0 +1,13 @@
Input string: Output string: minus dziewięćset dziewięćdziesiąt dziewięć i dziewięćset dziewięćdziesiąt dziewięć tysięcznych
Input string: Output string: dziewięćset dziewięćdziesiąt dziewięć i dziewięćset dziewięćdziesiąt jeden tysięcznych
Input string: Output string: trzy i jedna dziesiąta
Input string: Output string: dwanaście i sześćdziesiąt siedem setnych
Input string: Output string: minus trzydzieści
Input string: Output string: minus trzydzieści pięć i sto dwadzieścia jeden tysięcznych
Input string: Output string: jedna dziesiąta
Input string: Output string: jedna setna
Input string: Output string: jedna tysięczna
Input string: Output string: zero
Input string: Output string: osiem i jedna setna
Input string: Output string: osiem i pięć setnych
Input string:

12
TaskC00/test.in Normal file
View File

@ -0,0 +1,12 @@
-999,999
999,991
3,1
12,67
-30
-35,121
0,1
0,01
0,001
0
8,01
8,05

15
TaskC01/description.txt Normal file
View File

@ -0,0 +1,15 @@
Zamiana cyfr na słowa polskie
=============================
Napisać gramatykę thraxową, która zamienia liczby całkowite pisane
cyframi z zakresu od -999999999 do 999999999 na postać słowną (po
polsku).
Zakładamy, że liczby nie mają zer nieznaczących.
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
dzieli się przez 7 z resztą 1.
POINTS: 14
DEADLINE: 2020-01-28 23:59
REMAINDER: 1/7

11
TaskC01/test.exp Normal file
View File

@ -0,0 +1,11 @@
Input string: Output string: dwanaście tysięcy trzysta czterdzieści pięć
Input string: Output string: zero
Input string: Output string: minus dziewięćset dziewięćdziesiąt dziewięć milionów dziewięćset dziewięćdziesiąt dziewięć tysięcy dziewięćset dziewięćdziesiąt dziewięć
Input string: Output string: tysiąc osiemset dziewięć
Input string: Output string: minus dwanaście
Input string: Output string: trzy tysiące dziewięćdziesiąt osiem
Input string: Output string: trzy miliony
Input string: Output string: osiem
Input string: Output string: dwadzieścia dwa
Input string: Output string: milion jeden
Input string:

10
TaskC01/test.in Normal file
View File

@ -0,0 +1,10 @@
12345
0
-999999999
1809
-12
3098
3000000
8
22
1000001

29
TaskC02/description.txt Normal file
View File

@ -0,0 +1,29 @@
Podział na sylaby
=================
Napisać gramatykę thraxową, która dzieli wyraz na sylaby. Zakładamy,
że na wejściu podawane polskie wyrazy (tj. ciągi małych liter,
włącznie z polskimi znakami diakrytycznymi). Należy zaznaczyć podział
na sylaby (przez dodanie spacji).
Założenia:
- preferujemy taki podział, by sylaba kończyła się i zaczynała spółgłoską,
np. "parter" dzielimy na "par ter",
- w przypadku zbitek więcej niż dwóch spółgłosek, pierwsza spółgłoska
powinna zostać włączona do lewej sylaby, pozostałe — do prawej sylaby
np. "bartnik" dzielimy na "bar tnik",
- pojedynczą spółgłoską dołączamy do prawej sylaby,
- pamiętamy przy tym, że niektóre głoski oddajemy za pomocą dwuznaków,
np. "szczebrzeszyn" dzielimy na "szczeb rze szyn",
- pamiętamy, że zbitki typu "ia" to jedna samogłoska.
(Powyższe założenia to oczywiście tylko przybliżenie poprawnej definicji
sylaby).
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
dzieli się przez 7 z resztą 2.
POINTS: 14
DEADLINE: 2020-01-28 23:59
REMAINDER: 2/7

8
TaskC02/test.exp Normal file
View File

@ -0,0 +1,8 @@
Input string: Output string: par ter
Input string: Output string: bar ter
Input string: Output string: bar tnik
Input string: Output string: szczeb rze szyn
Input string: Output string: most
Input string: Output string: ma nia kal nie
Input string: Output string: a pos tro ficz ny
Input string:

7
TaskC02/test.in Normal file
View File

@ -0,0 +1,7 @@
parter
barter
bartnik
szczebrzeszyn
most
maniakalnie
apostroficzny

25
TaskC03/description.txt Normal file
View File

@ -0,0 +1,25 @@
Korektor gramatyczny
====================
Napisać gramatykę thraxową, która dokona prostej korekty gramatycznej, tj.:
* wstawi brakujący przecinek przed formami zaimków "jaki" i "który",
* ... z uwzględnieniem przyimków (także przyimka złożonego "odnośnie do")
— wtedy przecinek powinien być przed przyimkiem,
* zamieni "odnośnie" (bez "do") na "odnośnie do",
* zamieni "w każdym bądź razie" na "w każdym razie",
* zamieni formy typu "12 marzec" (nazwa miesiąca w mianowniku) na "12
marca" (nazwa miesiąc w dopełniaczu).
Należy uwzględnić też przypadki, gdy powyższe konstrukcje pisane są
wielką literą (na początku zdania).
Zakładamy, że wejściowy tekst może zawierać duże i wielkie litery
polskiego alfabetu, spacje, przecinki, kropki i znaki zapytania.
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
dzieli się przez 7 z resztą 3.
POINTS: 14
DEADLINE: 2020-01-28 23:59
REMAINDER: 3/7

13
TaskC03/test.exp Normal file
View File

@ -0,0 +1,13 @@
Input string: Output string: Jaki człowiek wie, w którym roku urodził się Mozart?
Input string: Output string: Jaki człowiek wie, w którym roku urodził się Mozart?
Input string: Output string: Powiedz, jaki człowiek wie, w którym roku urodził się Mozart?
Input string: Output string: sprawa, odnośnie do której się pytam
Input string: Output string: Odnośnie do tego
Input string: Output string: do tyłu, tak zrobili wtedy
Input string: Output string: w każdym razie, człowiek, który grał na pianinie
Input string: Output string: cofnęliby się 31 stycznia
Input string: Output string: to był 1 października 2012
Input string: Output string: to był 2 października 2012
Input string: Output string: W każdym razie, stało się to 28 lutego
Input string: Output string: odnośnie do wydarzeń, które przypadły na 29 września
Input string:

12
TaskC03/test.in Normal file
View File

@ -0,0 +1,12 @@
Jaki człowiek wie, w którym roku urodził się Mozart?
Jaki człowiek wie w którym roku urodził się Mozart?
Powiedz jaki człowiek wie w którym roku urodził się Mozart?
sprawa odnośnie której się pytam
Odnośnie tego
do tyłu, tak zrobili wtedy
w każdym bądź razie, człowiek który grał na pianinie
cofnęliby się 31 styczeń
to był 1 październik 2012
to był 2 październik 2012
W każdym bądź razie, stało się to 28 luty
odnośnie wydarzeń które przypadły na 29 wrzesień

32
TaskC04/description.txt Normal file
View File

@ -0,0 +1,32 @@
Wymowa
======
Napisać gramatykę thraxową, która przekształca tekst polski do jego
zapisu "fonetycznego", tj.:
* "rz" na "ż" (chyba że po "t" i "p" — wówczas na "sz"), "ch" na "h", "ó" na "u",
* wyjątkowo w formach wyrazu "marznąć" nie zamieniamy "rz" na "ż",
* "ę" na "en", chyba że na końcu wyrazu lub przed "ł" — wówczas jako "e"
" "ą" na "on", chyba że na końcu wyrazu — wówczas zostaje "ą",
* oddajemy rzeczywistą wymowę na końcu bezdźwięcznych spółgłosek,
np. "g" na końcu wyrazu zamienia na "k"
* w przypadku zbitek "i" z samogłoską zmiękczamy poprzedzającą
samogłoskę (np. "siano" na "śano"), w przeciwnym razie
zamieniamy "i" na "j" ("bieda" na "bjeda"),
* zbitki typu "ci" zamieniamy na "ć", np. "zima" na "źima", wyjątki:
"sinus" i formy przymiotnika "silikonowy",
* wszystkie wielkie litery należy zamienić na małe,
* znaki interpunkcyjne należy usunąć.
(Oczywiście to tylko przybliżenie rzeczywistej transkrypcji
fonetycznej).
Zakładamy, że wejściowy tekst może zawierać duże i wielkie litery
polskiego alfabetu, spacje, przecinki, kropki i znaki zapytania.
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
dzieli się przez 7 z resztą 4.
POINTS: 14
DEADLINE: 2020-01-28 23:59
REMAINDER: 4/7

12
TaskC04/test.exp Normal file
View File

@ -0,0 +1,12 @@
Input string: Output string: ala ma kota
Input string: Output string: być albo ńe być oto jest pytańe
Input string: Output string: żeby hrońić informacje zainteresowane państwa podjeły ruwńeż dźałańa psyhologiczne
Input string: Output string: marzne bo ńe mjeli silikonu
Input string: Output string: pjorun kulisty wyglondem pszypomina śwjetlistą kule o średńicy od kilku do kilkudźeśenću centymetruf
Input string: Output string: renką
Input string: Output string: pewnego dńa zrozumjesz że w żyću jest tylko jeden uńiwersalny jenzyk śiła i matematyka
Input string: Output string: pszesada dwje laski dynamitu to by była pszesada
Input string: Output string: ruk rogi
Input string: Output string: rico żadnyh testuf jondrowyh w baźe
Input string: Output string: ńe dawać na sztywno
Input string:

11
TaskC04/test.in Normal file
View File

@ -0,0 +1,11 @@
Ala ma kota.
Być albo nie być, oto jest pytanie.
Żeby chronić informacje zainteresowane państwa podjęły również działania psychologiczne.
Marznę, bo nie mieli silikonu.
Piorun kulisty wyglądem przypomina świetlistą kulę o średnicy od kilku do kilkudziesięciu centymetrów.
ręką
Pewnego dnia zrozumiesz, że w życiu jest tylko jeden uniwersalny język siła. I matematyka.
Przesada? Dwie laski dynamitu to by była przesada.
róg rogi
Rico, żadnych testów jądrowych w bazie!
nie dawać na sztywno

29
TaskC05/description.txt Normal file
View File

@ -0,0 +1,29 @@
Rozwijanie skrótów
==================
Napisać gramatykę thraxową, która rozwija skróty poprzedzające
imiona/nazwiska, tj.: "prof.", "dr", "hab.", "ks.", "mgr",
"inż.", także formy typu "dra", "mgrowi". Skróty "dr" i "mgr"
mogą być opcjonalnie zakończone kropką.
Domyślnie należy zamieniać skróty na formę podstawową (mianownik),
chyba że:
* skróty typu "dra" i "mgrowi" należy rozwijać do odpowiednich form (np. "doktora", "magistrowi"),
także towarzyszące im inne skróty;
* możemy odgadnąć formę po imieniu następującym po skrócie lub ciągu skrótów,
należy uwzględnić przynajmniej 20 częstych imion męskich
* możemy odgadnąć formę po nazwisku występującym po skrócie lub ciągu skrótów lub jeden wyraz dalej
uwzględniamy nazwiska "Nowak", "Kaczmarek" oraz nazwiska zakończone na "-ski", "-cki", "-owicz";
* możemy odgadnąć forme po poprzedzającym przyimku.
Zakładamy, że wejściowy tekst może zawierać duże i wielkie litery
polskiego alfabetu, spacje, przecinki, kropki i znaki zapytania.
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
dzieli się przez 7 z resztą 5.
POINTS: 14
DEADLINE: 2020-01-28 23:59
REMAINDER: 5/7

3
TaskC05/run Normal file
View File

@ -0,0 +1,3 @@
#!/bin/bash
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/fst" thraxrewrite-tester --far=TaskC05/legiatolech.far --rules=PROCESS

13
TaskC05/test.exp Normal file
View File

@ -0,0 +1,13 @@
Input string: Output string: Widzę księdza profesora Mateusza Kusia, jak rozmawia z doktorem inżynierem jak mu tam było.
Input string: Output string: profesor doktor habilitowany ksiądz magister inżynier
Input string: Output string: profesor habilitowany hahahaha
Input string: Output string: od profesora habilitowanego hahahaha
Input string: Output string: doktor Michał Rrrrrrrr
Input string: Output string: doktora Michała Rrrrrrrr
Input string: Output string: doktor Michał Rrrrrrrr
Input string: Output string: doktora Michała Rrrrrrrr
Input string: Output string: profesor Pasem Ratunkowym
Input string: Output string: profesorem Pasem Kaczmarkiem
Input string: Output string: doktor habilitowany Rups Koźlarski doktora habilitowanego Rups Koźlarskiego
Input string: Output string: dramat wyprof.
Input string:

12
TaskC05/test.in Normal file
View File

@ -0,0 +1,12 @@
Widzę ks. prof. Mateusza Kusia, jak rozmawia z drem inż. jak mu tam było.
prof. dr hab. ks. mgr inż.
prof. hab. hahahaha
od prof. hab. hahahaha
dr Michał Rrrrrrrr
dr Michała Rrrrrrrr
dr. Michał Rrrrrrrr
dr. Michała Rrrrrrrr
prof. Pasem Ratunkowym
prof. Pasem Kaczmarkiem
dr hab. Rups Koźlarski dr hab. Rups Koźlarskiego
dramat wyprof.

33
TaskC06/description.txt Normal file
View File

@ -0,0 +1,33 @@
Tłumacz polsko-poznański
========================
Napisać gramatykę thraxową, która przekształca tekst polski na wersję poznańską
Uwzględnić zamiany (wraz z formami fleksyjnymi):
* "tramwaj"/"bimba",
* "pieniądze"/"bejmy",
* "ludzie"/"wiaruchna",
* "zamknąć na klucz"/"zakluczyć",
* "nacisnąć"/"nadusić",
* "czerwona kapusta"/"modra kapusta",
W co trzeci wyraz (zaczynając od początku) należy wstawić wyraz "tej".
Przy zamianie rodzaju/liczby (np. "tramwaj" na "bimba") należy zmienić:
* formę przymiotnika poprzedzającą wyraz (uwzględniamy regularne
przymiotniki zakończone na "-y"),
* formę przymiotnika następującego po wyrazie (uwzględniamy regularne
przymiotniki zakończone na "-y"),
* formę czasownika następującego po mianowniku lub jeden wyraz dalej
(uwzględniamy regularne formy czasu przeszłego).
Zakładamy, że wejściowy tekst może zawierać duże i wielkie litery
polskiego alfabetu i spacje.
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
dzieli się przez 7 z resztą 6.
POINTS: 14
DEADLINE: 2020-01-28 23:59
REMAINDER: 6/7

7
TaskC06/test.exp Normal file
View File

@ -0,0 +1,7 @@
Input string: Output string: tej Czerwona bimba tej przyjechała i tej zielony autobus tej odjechał
Input string: Output string: tej Wiaruchna zakluczyła tej modrą kapustę tej
Input string: Output string: tej Ci dziwna tej wiaruchna to tej chyba
Input string: Output string: tej Bimbą jechał tej i nadusił tej przycisk
Input string: Output string: tej Bejmy były tej zakluczone
Input string: Output string: tej Bimba dzisiaj tej odblablowała
Input string:

6
TaskC06/test.in Normal file
View File

@ -0,0 +1,6 @@
Czerwony tramwaj przyjechał i zielony autobus odjechał
Ludzie zamknęli na klucz czerwoną kapustę
Ci dziwni ludzie to chyba
Tramwajem jechał i nacisnął przycisk
Pieniądze były zamknięte na klucz
Tramwaj dzisiaj odblablował

21
TaskE05/description.txt Normal file
View File

@ -0,0 +1,21 @@
Text normalization for a TTS
============================
The task is to write a Thrax grammar for normalizing text for a
text-to-speech system, i.e. the text should be converted to a form
closer to speech (but without phonetic transcription).
For instance, "I bought 21 books from prof. Smith" should
be transformed into "i bought twenty-one books from professor smith"
You should:
- convert numbers 0-99 into words
- convert Roman numbers I-X into adjectives (the first, the second, etc.)
- expand abbreviations: "e.g." ("for example"), , "prof." ("professor"), "dr." ("doctor"),
"p." ("page"), "pp." ("pages")
- remove punctuations (except for hyphen)
- lower-case everything
POINTS: 10
DEADLINE: 2020-01-28 23:59

8
TaskE05/test.exp Normal file
View File

@ -0,0 +1,8 @@
Input string: Output string: i bought twenty-one books from professor smith
Input string: Output string: doctor
Input string: Output string: for example world war the second and other things
Input string: Output string: ninety-nine helium-oxygen balloons
Input string: Output string: four four four
Input string: Output string: nothing to normalize
Input string: Output string: thirteen
Input string:

7
TaskE05/test.in Normal file
View File

@ -0,0 +1,7 @@
I bought 21 books from prof. Smith!
dr.
E.g. World War II, and other things.
99 helium-oxygen balloons
4 4 4
nothing to normalize
13

11
TaskX07/description.txt Normal file
View File

@ -0,0 +1,11 @@
Write a Thrax grammar that adds 4 to a non-negative integer (in decimal
notation).
Hints:
- easier to define reverted automaton and then use Reverse
- consider two cases: adding with carry and without
- be careful with sequences of nines
- sometimes the result will one digit longer
POINTS: 2
DEADLINE: 2020-01-20 18:50

11
TaskX07/test.exp Normal file
View File

@ -0,0 +1,11 @@
Input string: Output string: 4
Input string: Output string: 335
Input string: Output string: 786
Input string: Output string: 7
Input string: Output string: 99998
Input string: Output string: 55559
Input string: Output string: 10000
Input string: Output string: 387899881
Input string: Output string: 40002
Input string: Output string: 10013
Input string:

10
TaskX07/test.in Normal file
View File

@ -0,0 +1,10 @@
0
331
782
3
99994
55555
9996
387899877
39998
10009

9
TaskX08/description.txt Normal file
View File

@ -0,0 +1,9 @@
Napisz gramatykę Thraxową, która usuwa wszystkie znaki z wyjątkiem
polskich liter (małych i wielkich) i spacji. Wielkie litery powinny
być zamieniane na małe.
Podpowiedź: rozwiązanie nie będzie _bardzo_ krótkie, pewne rzeczy
trzeba będzie wyliczyć.
POINTS: 2
DEADLINE: 2020-01-20 18:50

6
TaskX08/test.exp Normal file
View File

@ -0,0 +1,6 @@
Input string: Output string: ala ma kota
Input string: Output string: być albo nie być oto jest pytanie
Input string: Output string: przesada dwie laski dynamitu to by była przesada
Input string: Output string: róg rogi
Input string: Output string: rico żadnych testów jądrowych w bazie
Input string:

5
TaskX08/test.in Normal file
View File

@ -0,0 +1,5 @@
Ala ma kota.
Być albo nie być, oto jest pytanie.
Przesada? Dwie laski dynamitu to by była przesada.
róg rogi
Rico, żadnych testów jądrowych w bazie!

View File

@ -19,7 +19,7 @@ cp "${PREFIX}/count-points.pl" arena/
cp "${PREFIX}/overrides.txt" arena/
cp "${PREFIX}/Makefile" arena/
for TX in X01 X02 X03 X04 X05 X06 B00 B01 B02 B03 B04 B05 B06 E01 E02 E03 E04 # X05 X06 X07 X08 X09 X10 B03 B04 X10
for TX in X01 X02 X03 X04 X05 X06 X07 X08 B00 B01 B02 B03 B04 B05 B06 C00 C01 C02 C03 C04 C05 C06 E01 E02 E03 E04 E05 # X05 X06 X07 X08 X09 X10 B03 B04 X10
do
mkdir -p arena/Task$TX
done

View File

@ -165,7 +165,7 @@ sub check_if_the_right_task {
return 0 if $task_id =~ m{^TaskE} and not is_estudent($student_id);
return 0 if $task_id =~ m{^TaskA} and is_estudent($student_id);
return 0 if $task_id =~ m{^Task[AC]} and is_estudent($student_id);
return 1;
}

View File

@ -1 +1,9 @@
434739 A44 4 manually
442613 B01 8 manually
442613 E01 2 manually
442613 E02 2 manually
442613 E03 2 manually
442613 X06 1 manually
434726 A06 2 manually
434726 A26 3 manually
434726 A40 2 manually