|
|
# 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
|
|
|
|
|
|
```csharp
|
|
|
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`:
|
|
|
|
|
|
```csharp
|
|
|
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
|
|
|
|