Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
P PVJCs2021
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Ing. Lukáš Hruška
  • PVJCs2021
  • Wiki
  • exam 4

exam 4 · Changes

Page history
Create exam 4 authored Jan 31, 2022 by Ing. Lukáš Hruška's avatar Ing. Lukáš Hruška
Hide whitespace changes
Inline Side-by-side
Showing with 53 additions and 0 deletions
+53 -0
  • exam-4.md exam-4.md +53 -0
  • No files found.
exam-4.md 0 → 100644
View page @ 67aef56a
# 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()`
Clone repository
  • assignment 1
  • assignment 2
  • cv10
  • cv2
  • cv3
  • cv4
  • cv5
  • cv7
  • cv8
  • cv9
  • exam 0
  • exam 1
  • exam 2
  • exam 3
  • exam 4
View All Pages