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 1

Last edited by Ing. Lukáš Hruška Jan 10, 2022
Page history

exam 1

Skúška 10.1.2022

  • Je povolené používať 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, Discordu 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é mená pre premenné a metódy používajte presne tie mená, ktoré sú uvedené v zadaní.
  • Dodržanie rovnakých podmienok, ako 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).
  • Hotové zadanie odovzdajte cez MS Teams) - nezabudnite pred zabalením dať clean solution (a vymazať skrytý priečinok .vs)

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é.

Úloha 1

(25 bodov)

Vytvorte si rozhranie

public interface IOperation
{
    double Calculate(double value1, double value2, char operation);
}

Vytvorte si triedy Add, Substract, Multiply, Divide (všetky 4 implementujú rozhranie IOperation)

Ďalej si vytvorte triedu Calculator:

public class Calculator
{
    double Calculate(double value);
    char SetOperation(char operation);
    void Reset();
}

Pomocou návrhového vzoru chain of responsibility implementujte v triede Calculator fungovanie kalkulačky:

  • kalkulačka má v pamäti uložené 1 číslo (na začiatku je to 0) a aktuálnu operáciu (na začiatku +)
  • Calculate aplikuje zvolenú operáciu na číslo uložené v pamäti a číslo dodané v ako parameter
  • výsledok sa:
    • uloží do pamäti kalkulačky
    • použije sa ako návratové hodnota metódy.
  • Reset nastaví kalkulačku do východzieho stavu

Vstup čítajte z klávesnice; vzhľadom na časovú limitáciu nie je potrebné kontrolovať platnosť vstupu.

Úloha 2

(15 bodov)

Ak bude na vstupe z klávesnice písmeno f:

  • načítajte si súbor numbers.txt - čísla sú uložené vo formáte a operacia b
  • vypočítajte príklady pomocou kalkulačky z prvej úlohy
  • uložte vyriešené úlohy do súboru results.txt
  • numbers.txt obsahuje 70 000 záznamov, nenačítavajte ich naraz, ale priebežne
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