|
|
# Skúška 7.2.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
|
|
|
|
|
|
(8 bodov)
|
|
|
|
|
|
Vytvorte si rozhrania:
|
|
|
|
|
|
```csharp
|
|
|
public interface IStringTransformStrategy
|
|
|
{
|
|
|
string TransformString(string str);
|
|
|
}
|
|
|
|
|
|
public interface ITextProcessor
|
|
|
{
|
|
|
string GetText();
|
|
|
void SetStringTransformStrategy(IStringTransformStrategy strategy);
|
|
|
}
|
|
|
```
|
|
|
|
|
|
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
|
|
|
|
|
|
( 25bodov)
|
|
|
|
|
|
Vytvorte si triedy `NormalStringTransformStrategy, ReverseOrderStringStrategy, UppercaseStringStrategy` a implementujte návrhový vzor strategy (zvážte, ktoré triedy majú čo implementovať a od čoho dediť).
|
|
|
|
|
|
__Poznámka:__ `NormalStringTransformStrategy` vráti nezmeneý reťazec (`abc -> abc`), `ReverseOrderStringStrategy` obráti zadaný reťazec (`abc -> cba`) a `UppercaseStringStrategy` vráti all caps (`abc -> ABC`)
|
|
|
|
|
|
__Poznámka 2:__ môžete predpokladať, že vstupný reťazec neobsahuje žiadne špeciálne znaky (ako napr. `\` )
|
|
|
|
|
|
## Úloha 3
|
|
|
|
|
|
(7 bodov)
|
|
|
|
|
|
Zabezpečte nasledovnú interakciu s konzolou (nezabudnite na výpis aktuálneho stavu a to, že kód má bežať až kým nie je stlačená klávesa pre ukončenie):
|
|
|
|
|
|
- `q` - ukončí sa program
|
|
|
- `r` - reverse order
|
|
|
- `u` - uppercase
|
|
|
- `n` - normal
|
|
|
|
|
|
Na vymazanie obsahu konzoly môžete použiť `Console.Clear()` |