Zadanie problémovej úlohy.

 

Program na výpočet odporu pri paralelnom a sériovom zapojení rezistorov

Vytvorte program, ktorý bude obsahovať tri metódy.

Metódy budú spúšťane z menu, ktoré zrealizujete pomocou switch case príkazu

Menu bude obsahovať možnosti:

  • paralelne zapojenie dvoch rezistorov,
  • sériové zapojenie dvoch rezistorov,
  • o programe,
  • koniec
  1. V menu programu bude možné voliť výpočet paralelného a sériového zapojenia dvoch rezistorov, realizované to bude dvomi metódami. Consola si vypýta hodnoty dvoch rezistorov a vypíše na konzolu výsledný odpor. Výpočty je potrebné ošetriť, aby nemohli byt zadane záporné hodnoty, a o možnosť delenia s nulou. Ošetrenie môžete doladiť neskôr.
  2. metóda O programe – bude informovať o funkciách programu, a o programátorovi
  3. akákoľvek metóda po ukončení sa bude vracať do menu.
  4. Je to potrebné ošetriť pomocou cyklu s podmienkou na konci.
  5. Takisto aj ukončenie programu je potrebné ošetriť otázkou ci chcete ukončiť program.

Budete pracovať vo dvojici, stým, že si rozdelíte úlohy, kto za čo bude zodpovedný, musíte medzi sebou konzultovať, prehodnocovať úlohy.

Navrhujem, že jeden z dvojice by mohol naprogramovať metódy, čiže podprogram na výpočet paralelného a sériového zapojenia a metódu o programe. Druhý programátor by mohol pripraviť menu a korektne ukončenie celého programu. A následne spoločne vložiť metódy do programu a overiť funkčnosť a odladenie celkovej aplikácie. Na záver dvojhodinovky je potrebne zhrnúť a zhodnotiť spoluprácu, program nemusí byť nevyhnutne dokončený, stačí zhodnotiť čo sa stihlo čo sa podarilo a na čom je potrebne ešte pracovať. Zhodnoťte svoj prínos pri spolupráci na problémovej úlohe a tiež pomenujte silné stránky svojho kolegu, prípadne ho povzbuďte k väčšej pracovitosti a k vyšším cieľom.

Pracovný list: Súbory

16

Rozšírte riešenie cvičenie 1 v solution Subory nasledujúcim spôsobom. Program vyzve užívateľa, aby zadal cesty k súborom so vstupnými dátami a s týmito bude program pracovať. Zároveň sa po výpise na konzolu užívateľa spýta, či chce tento výpis zapísať aj do súboru. Pokiaľ áno, tak sa spýta na cestu, kam má byť súbor s výpisom uložený a následne ho vytvorí na danom umiestnení.

17

Doplňte riešenie cvičenia 2 zo solution OOP2 tak, aby si program svoje dáta o prihláškach ukladal do súboru a po opätovnom spustení načíta dáta, ktoré predtým užívateľ vytvoril. Pokiaľ mate naprogramovanú úlohu 14 z OOP2, tak môžete rozšíriť tento program.

18

Predstavte si , že sa vo firme hral amatérsky biliardový turnaj. Pravidlá boli skutočne triviálne. Každý hráč odohral hru s každým hráčom. Hralo sa na dve víťazné hry, výsledky teda mohli byť 0:2, 1:2, 2:0, 2:1. Máte k dispozícii dáta o výsledkoch hry v súbore, kde na každom riadku je výsledok z jedného zápasu. Vašou úlohou je napísať program, ktorý vypíše na konzolu meno zamestnanca, ktorý mal najviac víťazných hier a zamestnanca, ktorý prehral najviac stretnutí. V prípade, že dvaja zamestnanci budú mať rovnako výhier alebo prehier, tak vypíše ľubovoľného z nich. Vstupné dáta by mohli vyzerať nasledujúcim spôsobom:

Pavol Novak;Karol Prechadzka;2:1
Jana Mlada;Richard Neubert;2:0
Pavol Novak;Jana Mlada;1:2
Pavol Novak;Richard Neubert;2:0
Jana Mlada;Karol Prechadzka;2:1
Richard Neubert;Karol Prechadzka;0:2

V tomto prípade by bola víťazkou Jana s naväčším počtom výhier (3) a najmenší počet výhier by mal Richard, pretože vyhral 0 hier.

Pracovný list: OOP 2

13

Vyberte si ľubovoľnú oblasť zo svojho okolia, ktorú dobre poznáte a pokúste sa pre ňu navrhnúť štruktúru tried podobne ako je to vyriešené v riešenom cvičení 12. v solution Kapitola – OOP2

14

Doplňte program z riešeného cvičenia 13. v solution Kapitola – OOP2 o nasledujúcu funkčnosť. Zamestnanec bude mat možnosť vyhľadať podľa kódu prihlášku a zadať počet bodov, ktoré študent získal z prijímacieho konania. Tým budeme v podstate mat dva stavy prihlášiek. Prvá je, že prihláška je vytvorená, ale študent zatiaľ nemá zapísané body. Druhy stav bude, že ma pridelene študent body z prijímacieho konania. Program umožní vo výpise prihlášok podľa oboru zvoliť, či chce užívateľ vypísať úplne všetky prihlášky alebo len prijate prihlášky alebo len prihlášky, ktoré majú vyplnene bodové hodnotenie.

15

Zopakujte si prácu s kolekciami List a Directory. Vytvorte si jednoduché programy podľa seba, na ktorých si precvičíte metódy a cykly pre prácu s kolekciami.

Pracovný list: OOP 1

10

Doplňte program na simuláciu zoo o možnosť evidovať zamestnancov zoo. U zamestnancov evidujte meno, priezvisko, dátum narodenia, plat a názov pracovnej pozície. Možnosti evidencie budú obdobné ako pri evidencii zvierat:

    • Pridať nového zamestnanca do evidencie
    • Vypísať zoznam evidovaných zamestnancov
    • Upraviť údaje o vybranom zamestnancovi
    • Zmazať vybraného zamestnanca z evidencie

Zároveň upravte hlavné menu aplikácie tak, aby užívateľ najskôr zvolil, či chce vykonávať operácie v evidencii zvierat alebo v evidencii zamestnancov. Vytvorte teda dvojúrovňové menu.

11

Doplňte program na simuláciu zoo o možnosť vyhľadania zvierat podľa názvu. Vyhľadávanie bude prebiehať tak, že užívateľ zadá ľubovoľný reťazec a program vypíše všetky zvieratá, ktoré vo svojom názve obsahuje hľadaný reťazec. Použite metódu na triede String, ktorá vracia informáciu, či daný reťazec obsahuje hľadaný podreťazec.

12

Doplnte program na simuláciu zoo o možnosť vypísať si súhrnné štatistiky:

    • Celkový počet zvierat v evidencii
    • Celkový počet zamestnacov v evidencii
    • Súčet miezd všetkých zamestnancov v zoo

Pracovný list: Metódy

7.

Napíšte dve metódy. Prvá vypočíta obsah štvorca a druha vypočíta obsah obdĺžnika. Zvoľte si samostatne aké parametre budú tieto dve metódy prijímať. Vyskúšajte použitie návratovej hodnoty, aby vypočítaný obsah bol metódou vracaný a mohli ste ho ďalej v program použiť. Podľa vlastného uváženia implementujte metódy pre výpočet ďalších geometrických útvarov. Pokiaľ budete pre výpočet potrebovať konštantu pi, tak môžete použiť Math.Pi.

8.

Napíšte metódu, ktorá na svoj vstup získa nasledujúce parametre: meno prvého študenta, pole známok prvého študenta, meno druhého študenta, pole známok druhého študenta. Metoda spočíta aritmetické priemery známok týchto študentov a vypíše informáciu, ktorý študent ma lepší priemer.

9.

Napíšte metódu, ktorá na svoj vstup získa nasledujúce parametre: meno prvého užívateľa, dátum narodenia prvého užívateľa, meno druhého užívateľa, dátum narodenia druhého užívateľa. Metoda potom vypíše, ktorý užívateľ je starší a o koľko dní je starší.

Pracovný list: Práca s cyklami a ladenie programu

5.

Predstavte si situáciu, kedy mate v poli uložené väčšie množstvo mien a telefónnych čísiel zamestnancov. V programe nemusíte tieto dáta načítať od užívateľa. Vytvorte si pole a priamo v zdrojovom kóde ich naplňte reťazcami ako napr. „Karol Konštanta 505 111 111“. Potom užívateľovi vypíšte 5 záznamov a spýtajte sa ho či chce výpis ukončiť, alebo chce vypísať ďalších 5 záznamov. Ukončenie cyklu implementujte pomocou príkazu break. Nezabudnite na to, že počet záznamov v poli nemusí byt násobkom piatich, v poli môže byt napr. 21 záznamov.

6.

Vezmite si program na výpis násobilky a upravte ho tak, aby umožnil precvičenie násobilky. Namiesto jednoduchého výpisu násobilky sa vždy užívateľa opýta na výsledok. Napr. vypíše 1 x 5 = ? a užívateľ zadá svoju odpoveď. Pokiaľ je odpoveď správna, program vypíše ďalší príklad a takto pokračuje celou násobilkou. Pokiaľ užívateľ zadá nesprávnu odpoveď, ukončite pomocou príkazu break vnorený a vonkajší cyklus. Na zaver program vypíše, koľko príkladov užívateľ vypočítal správne, kým sa dopustil chyby, pripadne mu pogratulujte ak všetko vypočítal správne.

Pracovný list: Cykly a pole

3.

Napíšte program, ktorý užívateľa vyzve k zadaniu poctu zamestnancov, ktorý pracujú vo firme. Potom program umožní zadať mzdy jednotlivých zamestnancov. Tieto mzdy si program uloží do pola. Potom program na konzolu vypíše tie mzdy, ktoré sú väčšie ako priemerná mzda.

4.

V programe si vytvorte pole čísiel, napr. [1, 3, 5, 8, 10] a vypíšete na konzole postupne nasledujúce:

    • Čísla uložené v poli odzadu (10 8 5 3 1)
    • Čísla na párnych indexoch (1 5 10)
    • Párne čísla, ktoré sú na nepárnych indexoch (8)

Pracovný list: Riadenie toku programu – vetvenie

1.

Predstavte si, že užívateľ potrebuje vyhľadať príslušný telefonický kontakt na bankového špecialistu podľa produktu, s ktorým potrebuje poradiť. Napíšte program, ktorý najprv zistí, či je užívateľ klientom banky, pomocou otázky, na ktorú užívateľ odpovie pomocou áno alebo nie. Potom mu ponúkne jednotlivé produkty. Užívateľ si zvolí príslušný produkt a program mu vypíše telefónne číslo na príslušné oddelenie špecialistu. Telefónne číslo má nasledujúci tvar. Začína 100, nasleduje 200 alebo 300 podľa toho či je alebo nie je klientom banky a je zakončené trojčíslím podľa typu produktu. Povedzme, že bude banka ponúkať len 3 produkty, ktoré budú mať nasledujúce trojčíslie:

      • Hypotéky – 500
      • Sporiace účty – 600
      • Podielové fondy – 700

Napríklad bankový klient, ktorý chce poradiť s hypotékou, bude zobrazené číslo 100 200 500. Užívateľ, ktorý nie je klientom banky a chce poradiť sporiacim účtom, bude mať zobrazené číslo 100 300 600

2.

Predstavte si situáciu, kedy určitú funkčnosť programu budete chcieť sprístupniť len užívateľovi, ktorý pozná príslušné heslo. Napíšte program, ktorý na začiatku vyzve užívateľa k zadaniu užívateľského mena a hesla. Pokiaľ zadá užívateľské meno „admin“ a heslo „csharp“, program vypíše text určený pre administrátora. Pokiaľ zadá užívateľské meno „admin“ a nesprávne heslo, tak vypíše, že zadal neplatné administrátorské údaje. Pokiaľ zadá akúkoľvek inú kombináciu mena a hesla, program vypíše ľubovoľný iný text.