Najneskorší termín odovzdania: 24.10.2021 (nedeľa) o 18:00
Odovzdávané súbory: HomeTurtle.java
, ClickPane.java
Cieľom tejto sady domácich zadaní je vytvoriť triedu HomeTurtle
, ktorá rozširuje triedu Turtle
a ktorá obsahuje nižšie predpísané metódy, a triedu ClickPane
, ktorá rozširuje triedu WinPane
.
Doplňujúce požiadavky:
Naučte korytnačky triedy HomeTurtle
metódu toEmailAddress
, ktoré pre zadané meno a priezvisko zamestnanca UPJŠ vráti jeho e-mailovú adresu. E-mailová adresa zamestnanca UPJŠ má formát meno.priezvisko@upjs.sk
, kde meno a priezvisko sú napísané malými písmenami. Meno a priezvisko osoby sa nachádzajú v parametri osoba
a sú oddelené jednou medzerou.
Príklad:
toEmailAddress("Janko HRASKO")
= "janko.hrasko@upjs.sk"
toEmailAddress("Peter Chemik")
= "peter.chemik@upjs.sk"
toEmailAddress("ALBERT MATEMATIK")
= "albert.matematik@upjs.sk"
Tip: metóda toLowerCase
triedy String
Informatika je plná troj- a viacpísmenových skratiek (OOP, TCP, MQTT, SOAP, XSLT, RMI, CORBA, ...) Do triedy HomeTurtle
pridajte metódu countAcronyms
. Táto metóda dostane ako parameter nenullovú referenciu na reťazec (objekt triedy String
) a vráti počet informatických skratiek v tomto reťazci. Informatickou skratkou nazývame každý súvislý podreťazec tvorený aspoň troma veľkými písmenami anglickej abecedy.
Príklady:
countAcronyms("Čo vieš o TCP a UDP?") = 2
countAcronyms("Neskôr boli CORBA a RMI vytlačené SOAPom.") = 3
countAcronyms("self-verifying-DFA") = 1
Rôzne poruchy nervového a svalového systému výrazne zhoršujú používanie počítačov - zvyčajnými vstupmi sú totiž klávesnica alebo myš. Dôsledkom takýchto porúch (napr. svalový tras a chvenie) môže byť akási obdoba koktavosti. Používateľ vtedy namiesto slova Java
napíše Jaaaavvaa
. Naučte korytnačky triedy HomeTurtle
metódu sanitize
, ktorá vráti referenciu na novovytvorený objekt triedy String
, ktorého obsah vznikne odstránením duplicitných výskytov rovnakého znaku v rade za sebou.
Príklady:
sanitize("Jaaavvaaa") = "Java"
sanitize("IIIssiel") = "Isiel"
sanitize("IIissiel") = "Iisiel"
sanitize("Odddstran duuuupllicitu") = "Odstran duplicitu"
Úloha Pomoc pre hendikepovaných je bez evaulácie. To znamená, že evaluácia pre túto úlohu kontroluje iba prítomnosť metódy nie jej funkcionalitu. Plná kontrola evaluátorom bude zapnutá až po deadline hodnotiteľmi. Odporúčame si kód otestovať v Eclipse s vlastnými vstupnými parametrami. Toto odporúčanie platí aj pre úlohy s evaluátorom.
Zobrazila sa vám niekedy webová stránka "divne"? Ak áno, možno bol dôvod ten, že tvorca stránky nekorektne uviedol kódovanie obsahu stránky. Okrem nastavenia kódovania zaujímavé riešenie priniesla aj HTML 4: znakové entity. Základná myšlienka spočívala v tom, že špeciálne znaky sa kódovali prostredníctvom sekvencie znakov. Napríklad znak <
sa dá zapísať ako <
alebo ako <
. A práve tá druhá možnosť je pre nás zaujímavá. Konkrétne, akýkoľvek znak môžeme v HTML4 zapísať pomocou znakovej entity ako &#N;
, kde N
je kód tohto znaku v UNICODE kódovaní.
Viac o html znakových entitách nájdete tu:
Naučte korytnačky triedy HomeTurtle
metódy charsToEntities
a entitiesToChars
. Každá z metód vráti referenciu na novovytvorený reťazec (objekt triedy String
), ktorý obsahuje výsledok prevodu zadaného reťazca.
Metóda charsToEntities
(2 body) prevedie každý znak v zadanom reťazci na prislúchajúcu znakovú entitu. Výnimkou sú znaky anglickej abecedy (a-z, A-Z, 0-9), ktoré sa neprevádzajú.
Príklad:
charsToEntities("Počítač") = "Počítač"
Metóda entitiesToChars
(5 bodov) prevedie každý výskyt znakovej entity (kódovanej ako &#N;
) na odpovedajúci znak. Môžete predpokladať korektný vstup, t.j., že prevádzaný reťazec nebude obsahovať znakové entity kódované iným spôsobom (hexadecimálne alebo pomenované znakové entity).
Príklad:
entitiesToChars("Počítač") = "Počítač"
Pomôcka:
Integer.parseInt()
:
Integer.toString()
:
substring
:
Naprogramujte triedu ClickPane
rozšírujúcu triedu WinPane
, ktorá klikaním do plochy umožní kresliť mnohouholníky s očíslovanými vrcholmi.
Klikacia plocha funguje nasledovne:
onMousePressed
), pričom miesto kliknutia je stredom vrcholu
Pomôcka:
printCenter
:
Integer.toString()
:
"OK" pri metóde znamená, že sa podarilo zrealizovať všetky testy a po skončení metódy ostala korytnačka v požadovanom stave. Neznamená to, že korytnačka nakreslila to, čo mala. Upozorňujeme, že evaluátor dokresľuje do grafických výstupov vizuálne značky (poloha korytnačky, významné body, podfarbenie, atď.), ktoré umožňujú rýchlu vizuálnu kontrolu riešenia.
Očakávané grafické výstupy evaluátora pre korektné riešenie: