|
|
|
# Skúška 31.1.2022
|
|
|
|
|
|
|
|
- Je povolené používať svoj (už existujúci) kód a tiež internet na vyhľadanie informácii týkajúcich sa syntaxe jazyka C#, metód a pod. Nie je povolené komunikovať cez Internet (ani inak) s použitím mailu, chatu, Facebooku a pod. Porušenie tohto zákazu je dôvodom pre vylúčenie zo skúšky s hodnotením 0 bodov. Nie je povolená žiadna forma plagiátorstva (čiastkové riešenia problémov môžete použiť, v takomto prípade uveďte do komentárov URL).
|
|
|
|
- V prípade, že bude odhalený pokus o podvod, všetci zúčastnení na podvode budú vylúčení zo skúšky s hodnotením 0 bodov.
|
|
|
|
- Ak sú v zadaní uvedené názvy tried, premenných a metód, používajte presne tie mená, ktoré sú uvedené v zadaní.
|
|
|
|
- Dodržanie bodov uvedených v podmienkach akceptácie zadania – rovnaké podmienky platili pri zápočte.
|
|
|
|
- Uznané bude len riešenie, ktoré je možné skompilovať a spustiť na testovacom počítači (na ktorom sa budú spúšťať všetky zadania).
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
Na vypracovanie zadania máte 60 minút. Body sa prideľujú iba ak je študent schopný obhájiť svoj kód, nestačí, že to je napísané.
|
|
|
|
|
|
|
|
Ak používate kód prebraný z internetu, je __nutné uviesť zdroj__.
|
|
|
|
|
|
|
|
## Úloha 1
|
|
|
|
|
|
|
|
( 10bodov)
|
|
|
|
|
|
|
|
Vytvorte si rozhranie:
|
|
|
|
|
|
|
|
```csharp
|
|
|
|
public interface ITextProcessor
|
|
|
|
{
|
|
|
|
string GetText();
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
Vytvorte si triedu `TextProcessor` ktorá implementuje toto rozhranie. V konštruktore bude jeden parameter - cesta k súboru.
|
|
|
|
|
|
|
|
`GetText()` vráti obsah tohoto súboru (súbor si dajte priamo k binárke, nestrácajte čas).
|
|
|
|
|
|
|
|
## Úloha 2
|
|
|
|
|
|
|
|
( 20bodov)
|
|
|
|
|
|
|
|
Vytvorte si abstraktnú triedu `TextDecorator` a triedy `AddSpaceDecorator, UnderscoreDecorator` a implementujte návrhový vzor decorator (zvážte, ktoré triedy majú čo implementovať a od čoho dediť).
|
|
|
|
|
|
|
|
__Poznámka:__ `AddSpaceDecorator` pridá medzeru medzi každú dvojicu znakov, tzn. `abc` -> `a b c` (nedávajte medzeru na začiatok / koniec) a `UnderscoreDecorator` nahradí medzery podčiarkovníkom: `a b c` -> `a_b_c`
|
|
|
|
|
|
|
|
__Poznámka 2:__ môžete predpokladať, že vstupný reťazec neobsahuje žiadne špeciálne znaky (ako napr. `\` )
|
|
|
|
|
|
|
|
## Úloha 3
|
|
|
|
|
|
|
|
(10 bodov)
|
|
|
|
|
|
|
|
Zabezpečte nasledovnú interakciu s konzolou (nezabudnite na výpis aktuálneho stavu):
|
|
|
|
|
|
|
|
- `q` - ukončí sa program
|
|
|
|
- `u` - pridá sa `UnderscoreDecorator`
|
|
|
|
- `s` - `AddSpaceDecorator`
|
|
|
|
- `r` - reset
|
|
|
|
|
|
|
|
Na vymazanie obsahu konzoly môžete použiť `Console.Clear()` |