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 5

Last edited by Ing. Lukáš Hruška Feb 07, 2022
Page history

exam 5

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:

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()

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